Commit Graph

57246 Commits

Author SHA1 Message Date
H.J. Lu a699d67255 Always use PIC option with -shared in libtool
Libtool needs to pass PIC option -shared when creating shared object to
link regular object files with slim-lto archive.

	PR bootstrap/63784
	* libtool.m4: Add $pic_flag with -shared.

boehm-gc/

	PR bootstrap/63784
	* configure: Regenerated.

gcc/

	PR bootstrap/63784
	* configure: Regenerated.

libatomic/

	PR bootstrap/63784
	* configure: Regenerated.

libbacktrace/

	PR bootstrap/63784
	* configure: Regenerated.

libcc1/

	PR bootstrap/63784
	* configure: Regenerated.

libcilkrts/

	PR bootstrap/63784
	* configure: Regenerated.

libffi/

	PR bootstrap/63784
	* configure: Regenerated.

libgfortran/

	PR bootstrap/63784
	* configure: Regenerated.

libgomp/

	PR bootstrap/63784
	* configure: Regenerated.

libitm/

	PR bootstrap/63784
	* configure: Regenerated.

libjava/

	PR bootstrap/63784
	* configure: Regenerated.

libjava/classpath/

	PR bootstrap/63784
	* configure: Regenerated.

libobjc/

	PR bootstrap/63784
	* configure: Regenerated.

libquadmath/

	PR bootstrap/63784
	* configure: Regenerated.

libsanitizer/

	PR bootstrap/63784
	* configure: Regenerated.

libssp/

	PR bootstrap/63784
	* configure: Regenerated.

libstdc++-v3/

	PR bootstrap/63784
	* configure: Regenerated.

libvtv/

	PR bootstrap/63784
	* configure: Regenerated.

lto-plugin/

	PR bootstrap/63784
	* configure: Regenerated.

From-SVN: r217937
2014-11-21 08:49:17 -08:00
Kyrylo Tkachov 522b094f15 [AArch64] Implement vsqrt_f64 intrinsic
* config/aarch64/arm_neon.h (vsqrt_f64): New intrinsic.

	* gcc.target/aarch64/simd/vsqrt_f64_1.c

From-SVN: r217936
2014-11-21 16:28:29 +00:00
Ilya Tocar 36e9b73ea9 Add x86 pcommit instruction.
gcc/

	* common/config/i386/i386-common.c (OPTION_MASK_ISA_PCOMMIT_UNSET,
	OPTION_MASK_ISA_PCOMMIT_SET): New.
	(ix86_handle_option): Handle OPT_mpcommit.
	* config.gcc: Add pcommitintrin.h
	* config/i386/pcommitintrin.h: New file.
	* config/i386/cpuid.h (bit_PCOMMIT): Define.
	* config/i386/driver-i386.c (host_detect_local_cpu): Detect pcommit.
	* config/i386/i386-c.c (ix86_target_macros_internal): Define
	__PCOMMIT__.
	* config/i386/i386.c (ix86_target_string): Add -mpcommit.
	(PTA_PCOMMIT): Define.
	(ix86_option_override_internal): Handle new option.
	(ix86_valid_target_attribute_inner_p): Add pcommit.
	(ix86_builtins): Add IX86_BUILTIN_PCOMMIT.
	(bdesc_special_args): Add __builtin_ia32_pcommit.
	* config/i386/i386.h (TARGET_PCOMMIT, TARGET_PCOMMIT_P): Define.
	* config/i386/i386.md (unspecv): Add UNSPECV_PCOMMIT.
	(pcommit): New instruction.
	* config/i386/i386.opt: Add mpcommit.
	* config/i386/x86intrin.h: Include pcommitintrin.h.

gcc/testsuite/

	* g++.dg/other/i386-2.C: Add -mpcommit.
	* g++.dg/other/i386-3.C: Ditto.
	* gcc.target/i386/pcommit-1.c: New test.
	* gcc.target/i386/sse-12.c: Add new options.
	* gcc.target/i386/sse-13.c: Ditto.
	* gcc.target/i386/sse-14.c: Ditto.
	* gcc.target/i386/sse-22.c: Ditto.
	* gcc.target/i386/sse-23.c: Ditto.

From-SVN: r217935
2014-11-21 19:04:20 +03:00
Mark Wielaard dcc9706615 PR debug/38757 gcc does not emit DW_LANG_C99.
For C and C++ add the language standard version in use to lang_hooks.name.
Change users of lang_hook.name to check with new functions lang_GNU_C or
lang_GNU_CXX. In dwarf2out.c output the DW_LANG_C version from the
lang_hooks.name and merge any LTO TRANSLATION_UNIT_LANGUAGE found. Adds
two testcases to dwarf2.exp to check the right DWARF DW_AT_language is set
on the compile_unit depending on the -std=c89 or -std=c99 setting.

gcc/c-family/ChangeLog

	PR debug/38757
	* c-opts.c (set_std_c89): Set lang_hooks.name.
	(set_std_c99): Likewise.
	(set_std_c11): Likewise.
	(set_std_cxx98): Likewise.
	(set_std_cxx11): Likewise.
	(set_std_cxx14): Likewise.
	(set_std_cxx1z): Likewise.

gcc/ChangeLog

	PR debug/38757
	* config/avr/avr-c.c (avr_cpu_cpp_builtins): Use lang_GNU_C.
	* config/darwin.c (darwin_file_end): Use lang_GNU_CXX.
	(darwin_override_options): Likewise.
	* config/ia64/ia64.c (ia64_struct_retval_addr_is_first_parm_p):
	Likewise.
	* config/rs6000/rs6000.c (rs6000_output_function_epilogue):
	Likewise.
	* dbxout.c (get_lang_number): Likewise.
	(dbxout_type): Likewise.
	(dbxout_symbol_location): Likewise.
	* dwarf2out.c (add_prototyped_attribute): Add DW_AT_prototype
	also for DW_LANG_{C,C99,ObjC}.
	(highest_c_language): New function.
	(gen_compile_unit_die): Call highest_c_language to merge LTO
	TRANSLATION_UNIT_LANGUAGE. Use strncmp language_string to
	determine if DW_LANG_C99 or DW_LANG_C89 should be returned.
	* fold-const.c (fold_cond_expr_with_comparison): Use lang_GNU_CXX.
	* langhooks.h (struct lang_hooks): Add version comment to name.
	(lang_GNU_C): New function declaration.
	(lang_GNU_CXX): Likewise.
	* langhooks.c (lang_GNU_C): New function.
	(lang_GNU_CXX): Likewise.
	* vmsdbgout.c (vmsdbgout_init): Use lang_GNU_C and lang_GNU_CXX.

gcc/testsuite/ChangeLog

	PR debug/38757
	* gcc.dg/debug/dwarf2/lang-c89.c: New test.
	* gcc.dg/debug/dwarf2/lang-c99.c: Likewise.

From-SVN: r217934
2014-11-21 16:00:06 +00:00
Ilya Tocar 9c3bca1143 Support clwb x86 instruction.
gcc/
	* common/config/i386/i386-common.c (OPTION_MASK_ISA_CLWB_UNSET,
	OPTION_MASK_ISA_CLWB_SET): New.
	(ix86_handle_option): Handle OPT_mclwb.
	* config.gcc: Add clwbintrin.h.
	* config/i386/clwbintrin.h: New file.
	* config/i386/cpuid.h (bit_CLWB): Define.
	* config/i386/driver-i386.c (host_detect_local_cpu): Detect clwb. 
	* config/i386/i386-c.c (ix86_target_macros_internal): Define
	__CLWB__.
	* config/i386/i386.c (ix86_target_string): Add -mclwb.
	(PTA_CLWB): Define.
	(ix86_option_override_internal): Handle new option.
	(ix86_valid_target_attribute_inner_p): Add clwb.
	(ix86_builtins): Add IX86_BUILTIN_CLWB.
	(ix86_init_mmx_sse_builtins): Add __builtin_ia32_clwb.
	(ix86_expand_builtin): Handle IX86_BUILTIN_CLWB.
	* config/i386/i386.h (TARGET_CLWB, TARGET_CLWB_P): Define.
	* config/i386/i386.md (unspecv): Add UNSPECV_CLWB.
	(clwb): New instruction.
	* config/i386/i386.opt: Add mclwb.
	* config/i386/x86intrin.h: Include clwbintrin.h.

gcc/testsuite/

	* g++.dg/other/i386-2.C: Add -mclwb.
	* g++.dg/other/i386-3.C: Ditto.
	* gcc.target/i386/clwb-1.c: New test.
	* gcc.target/i386/sse-12.c: Add new options.
	* gcc.target/i386/sse-13.c: Ditto.
	* gcc.target/i386/sse-14.c: Ditto.
	* gcc.target/i386/sse-22.c: Ditto.
	* gcc.target/i386/sse-23.c: Ditto.

From-SVN: r217933
2014-11-21 18:52:49 +03:00
Ilya Tocar 3dcc8af5cd Add avx512vbmi instructions.
gcc/

	* common/config/i386/i386-common.c (OPTION_MASK_ISA_AVX512VBMI_SET
	OPTION_MASK_ISA_AVX512VBMI_UNSET): New.
	(ix86_handle_option): Handle OPT_mavx512vbmi.
	* config.gcc: Add avx512vbmiintrin.h, avx512vbmivlintrin.h.
	* config/i386/avx512vbmiintrin.h: New file.
	* config/i386/avx512vbmivlintrin.h: Ditto.
	* config/i386/cpuid.h (bit_AVX512VBMI): New.
	* config/i386/driver-i386.c (host_detect_local_cpu): Detect avx512vbmi.
	* config/i386/i386-c.c (ix86_target_macros_internal): Define
	__AVX512VBMI__.
	* config/i386/i386.c (ix86_target_string): Add -mavx512vbmi.
	(PTA_AVX512VBMI): Define.
	(ix86_option_override_internal): Handle new options.
	(ix86_valid_target_attribute_inner_p): Add avx512vbmi,
	(ix86_builtins): Add IX86_BUILTIN_VPMULTISHIFTQB512,
	IX86_BUILTIN_VPMULTISHIFTQB256, IX86_BUILTIN_VPMULTISHIFTQB128,
	IX86_BUILTIN_VPERMVARQI512_MASK, IX86_BUILTIN_VPERMT2VARQI512,
	IX86_BUILTIN_VPERMT2VARQI512_MASKZ, IX86_BUILTIN_VPERMI2VARQI512,
	IX86_BUILTIN_VPERMVARQI256_MASK, IX86_BUILTIN_VPERMVARQI128_MASK,
	IX86_BUILTIN_VPERMT2VARQI256, IX86_BUILTIN_VPERMT2VARQI256_MASKZ,
	IX86_BUILTIN_VPERMT2VARQI128, IX86_BUILTIN_VPERMI2VARQI256,
	IX86_BUILTIN_VPERMI2VARQI128.
	(bdesc_special_args): Add __builtin_ia32_vpmultishiftqb512_mask,
	__builtin_ia32_vpmultishiftqb256_mask,
	__builtin_ia32_vpmultishiftqb128_mask,
	__builtin_ia32_permvarqi512_mask, __builtin_ia32_vpermt2varqi512_mask,
	__builtin_ia32_vpermt2varqi512_maskz,
	__builtin_ia32_vpermi2varqi512_mask, __builtin_ia32_permvarqi256_mask,
	__builtin_ia32_permvarqi128_mask, __builtin_ia32_vpermt2varqi256_mask,
	__builtin_ia32_vpermt2varqi256_maskz,
	__builtin_ia32_vpermt2varqi128_mask,
	__builtin_ia32_vpermt2varqi128_maskz,
	__builtin_ia32_vpermi2varqi256_mask,
	__builtin_ia32_vpermi2varqi128_mask.
	(ix86_hard_regno_mode_ok): Allow big masks for AVX512VBMI.
	* config/i386/i386.h (TARGET_AVX512VBMI, TARGET_AVX512VBMI_P): Define.
	* config/i386/i386.opt: Add mavx512vbmi.
	* config/i386/immintrin.h: Include avx512vbmiintrin.h,
	avx512vbmivlintrin.h.
	* config/i386/sse.md (unspec): Add UNSPEC_VPMULTISHIFT.
	(VI1_AVX512VL): New iterator.
	(<avx512>_permvar<mode><mask_name>): Use it.
	(<avx512>_vpermi2var<mode>3_maskz): Ditto.
	(<avx512>_vpermi2var<mode>3<sd_maskz_name>): Ditto.
	(<avx512>_vpermi2var<mode>3_mask): Ditto.
	(<avx512>_vpermt2var<mode>3_maskz): Ditto.
	(<avx512>_vpermt2var<mode>3<sd_maskz_name>): Ditto.
	(<avx512>_vpermt2var<mode>3_mask): Ditto.
	(vpmultishiftqb<mode><mask_name>): Ditto.

gcc/testsuite/

	* g++.dg/other/i386-2.C: Add -mavx512vbmi.
	* g++.dg/other/i386-3.C: Ditto.
	* gcc.target/i386/avx512f-helper.h: Add avx512vbmi-check.h.
	* gcc.target/i386/avx512vbmi-check.h: Ditto.
	* gcc.target/i386/avx512vbmi-vpermb-1.c: Ditto.
	* gcc.target/i386/avx512vbmi-vpermb-2.c: Ditto.
	* gcc.target/i386/avx512vbmi-vpermi2b-1.c: Ditto.
	* gcc.target/i386/avx512vbmi-vpermi2b-2.c: Ditto.
	* gcc.target/i386/avx512vbmi-vpermt2b-1.c: Ditto.
	* gcc.target/i386/avx512vbmi-vpermt2b-2.c: Ditto.
	* gcc.target/i386/avx512vbmi-vpmultishiftqb-1.c: Ditto.
	* gcc.target/i386/avx512vbmi-vpmultishiftqb-2.c: Ditto.
	* gcc.target/i386/avx512vl-vpermb-2.c: Ditto.
	* gcc.target/i386/avx512vl-vpermi2b-2.c: Ditto.
	* gcc.target/i386/avx512vl-vpermt2b-2.c: Ditto.
	* gcc.target/i386/avx512vl-vpmaddhuq-2.c: Ditto.
	* gcc.target/i386/avx512vl-vpmaddluq-2.c: Ditto.
	* gcc.target/i386/avx512vl-vpmultishiftqb-2.c: Ditto.
	* gcc.target/i386/i386.exp (check_effective_target_avx512vbmi): New.
	* gcc.target/i386/sse-12.c: Add new options.
	* gcc.target/i386/sse-13.c: Ditto.
	* gcc.target/i386/sse-14.c: Ditto.
	* gcc.target/i386/sse-22.c: Ditto.
	* gcc.target/i386/sse-23.c: Ditto.

From-SVN: r217932
2014-11-21 18:44:37 +03:00
Ulrich Weigand de6fba39f3 re PR rtl-optimization/63952 (bootstrap failure (ICE in prepare_cmp_insn) on s390x in libjava)
PR rtl-optimization/63952
	* optabs.c (prepare_cmp_insn): Do not call can_compare_p for CCmode.
	* config/s390/s390.md ("cbranchcc4"): Accept any s390_comparison.
	Remove incorrect TARGET_HARD_FLOAT check and no-op expander code.

From-SVN: r217929
2014-11-21 15:33:27 +00:00
Ilya Tocar 4190ea3804 Add avx512ifma instructions.
gcc/
	* common/config/i386/i386-common.c (OPTION_MASK_ISA_AVX512IFMA_SET,
	OPTION_MASK_ISA_AVX512IFMA_UNSET): New.
	(ix86_handle_option): Handle OPT_mavx512ifma.
	* config.gcc: Add avx512ifmaintrin.h, avx512ifmavlintrin.h.
	* config/i386/avx512ifmaintrin.h: New file.
	* config/i386/avx512ifmaivlntrin.h: Ditto.
	* config/i386/cpuid.h (bit_AVX512IFMA): New.
	* config/i386/driver-i386.c (host_detect_local_cpu): Detect
	avx512ifma.
	* config/i386/i386-c.c (ix86_target_macros_internal): Define
	__AVX512IFMA__.
	* config/i386/i386.c (ix86_target_string): Add -mavx512ifma.
	(PTA_AVX512IFMA): Define.
	(ix86_option_override_internal): Handle new options.
	(ix86_valid_target_attribute_inner_p): Add avx512ifma.
	(ix86_builtins): Add IX86_BUILTIN_VPMADD52LUQ512,
	IX86_BUILTIN_VPMADD52HUQ512, IX86_BUILTIN_VPMADD52LUQ256,
	IX86_BUILTIN_VPMADD52HUQ256, IX86_BUILTIN_VPMADD52LUQ128,
	IX86_BUILTIN_VPMADD52HUQ128, IX86_BUILTIN_VPMADD52LUQ512_MASKZ,
	IX86_BUILTIN_VPMADD52HUQ512_MASKZ, IX86_BUILTIN_VPMADD52LUQ256_MASKZ,
	IX86_BUILTIN_VPMADD52HUQ256_MASKZ, IX86_BUILTIN_VPMADD52LUQ128_MASKZ,
	IX86_BUILTIN_VPMADD52HUQ128_MASKZ.
	(bdesc_special_args): Add __builtin_ia32_vpmadd52luq512_mask,
	__builtin_ia32_vpmadd52luq512_maskz,
	__builtin_ia32_vpmadd52huq512_mask,
	__builtin_ia32_vpmadd52huq512_maskx,
	__builtin_ia32_vpmadd52luq256_mask,
	__builtin_ia32_vpmadd52luq256_maskz,
	__builtin_ia32_vpmadd52huq256_mask,
	__builtin_ia32_vpmadd52huq256_maskz,
	__builtin_ia32_vpmadd52luq128_mask,
	__builtin_ia32_vpmadd52luq128_maskz,
	__builtin_ia32_vpmadd52huq128_mask,
	__builtin_ia32_vpmadd52huq128_maskz,
	* config/i386/i386.h (TARGET_AVX512IFMA, TARGET_AVX512IFMA_P): Define.
	* config/i386/i386.opt: Add mavx512ifma.
	* config/i386/immintrin.h: Include avx512ifmaintrin.h,
	avx512ifmavlintrin.h.
	* config/i386/sse.md (unspec): Add UNSPEC_VPMADD52LUQ,
	UNSPEC_VPMADD52HUQ.
	(VPMADD52): New iterator.
	(vpmadd52type): New attribute.
	(vpamdd52huq<mode>_maskz): New.
	(vpamdd52luq<mode>_maskz): Ditto.
	(vpamdd52<vpmadd52type><mode><sd_maskz_name>): Ditto.
	(vpamdd52<vpmadd52type><mode>_mask): Ditto.

gcc/testsuite/

	* g++.dg/other/i386-2.C: Add -mavx512ifma.
	* g++.dg/other/i386-3.C: Ditto.
	* gcc.target/i386/avx512f-helper.h: Add avx512ifma-check.h.
	* gcc.target/i386/avx512ifma-check.h: New.
	* gcc.target/i386/avx512ifma-vpmaddhuq-1.c: Ditto.
	* gcc.target/i386/avx512ifma-vpmaddhuq-2.c: Ditto.
	* gcc.target/i386/avx512ifma-vpmaddluq-1.c: Ditto.
	* gcc.target/i386/avx512ifma-vpmaddluq-2.c: Ditto.
	* gcc.target/i386/avx512vl-vpmaddhuq-2.c: Ditto.
	* gcc.target/i386/avx512vl-vpmaddluq-2.c: Ditto.
	* gcc.target/i386/i386.exp (check_effective_target_avx512ifma): New.
	* gcc.target/i386/sse-12.c: Add new options.
	* gcc.target/i386/sse-13.c: Ditto.
	* gcc.target/i386/sse-14.c: Ditto.
	* gcc.target/i386/sse-22.c: Ditto.
	* gcc.target/i386/sse-23.c: Ditto.

2014-11-21  Georg-Johann Lay  <avr@gjlay.de>

From-SVN: r217928
2014-11-21 18:28:24 +03:00
Alan Lawrence 8f399c3e85 Revert: Workaround following [PATCH] Pul all constants last in tree_swap_operands_p
https://gcc.gnu.org/ml/gcc-patches/2014-09/msg01509.html
	2014-09-22  Alan Lawrence  <alan.lawrence@arm.com>
	gcc/:
        	* fold-const.c (tree_swap_operands_p): Strip only sign-preserving NOPs.

From-SVN: r217927
2014-11-21 14:44:31 +00:00
Andrew Bennett 3b6eaaa53d [MIPS] If using branch likelies in MIPS sync code fill the delay slot
with a nop.

gcc/
	* config/mips/mips.c (mips_process_sync_loop): Place a 
	nop in the delay slot of the branch likely instruction.
	(mips_output_sync_loop): Ensure mips_branch_likely is 
	set before calling mips_output_sync_loop.
	(mips_sync_loop_insns): Likewise.

From-SVN: r217926
2014-11-21 14:34:55 +00:00
William Schmidt 4bec983122 missing ChangeLog entry
From-SVN: r217925
2014-11-21 14:20:42 +00:00
Georg-Johann Lay 81d9b5a392 Add ChangeLog entry
From-SVN: r217923
2014-11-21 14:05:32 +00:00
Jakub Jelinek d8def3cff6 re PR testsuite/61137 (FAIL: gcc.target/ia64/small-addr-1.c (test for excess errors))
PR target/61137
	* config/ia64/ia64.c (ia64_attribute_takes_identifier_p): New function.
	(TARGET_ATTRIBUTE_TAKES_IDENTIFIER_P): Redefine to it.

From-SVN: r217919
2014-11-21 14:28:58 +01:00
James Greenhalgh 130ee2ebe7 [AArch64, Obvious] Fix formatting of SHLL and friends
gcc/

	* config/aarch64/aarch64-simd.md
	(aarch64_<ANY_EXTEND:su><ADDSUB:optab>l<mode>): Add a tab between
	output mnemonic and operands.
	(aarch64_simd_vec_unpack<su>_lo_<mode>): Likewise.
	(aarch64_simd_vec_unpack<su>_hi_<mode>): Likewise.

From-SVN: r217917
2014-11-21 12:29:26 +00:00
Evgeny Stupachenko db2d5d467e i386.c (ix86_option_override_internal): Increase PARAM_MAX_COMPLETELY_PEELED_INSNS.
* config/i386/i386.c (ix86_option_override_internal): Increase
	PARAM_MAX_COMPLETELY_PEELED_INSNS.

From-SVN: r217914
2014-11-21 11:50:37 +00:00
Evgeny Stupachenko d5dcbe8e3f re PR target/60451 (X86 vectorization improve: pack instead of pshufb)
gcc/testsuite

	PR target/60451
	* gcc.target/i386/pr60451.c: New.

gcc/
	PR target/60451
	* config/i386/i386.c (expand_vec_perm_even_odd_pack): New.
	(expand_vec_perm_even_odd_1): Add new expand for V8HI mode,
	replace for V16QI, V16HI and V32QI modes.
	(ix86_expand_vec_perm_const_1): Add new expand.

From-SVN: r217913
2014-11-21 11:13:37 +00:00
Nick Clifton 7bbf5a3df2 rl78-real.md (movqi_from_es): New pattern.
* config/rl78/rl78-real.md (movqi_from_es): New pattern.
	* config/rl78/rl78.c (struct machine_function): Add uses_es field.
	(rl78_expand_prologue): Save the ES register in interrupt handlers
	that use it.
	(rl78_expand_epilogue): Restore the ES register if necessary.
	(rl78_start_function): Mention if the function uses the ES
	register.
	(rl78_lo16): Record the use of the ES register.
	(transcode_memory_rtx): Likewise.

From-SVN: r217911
2014-11-21 10:32:06 +00:00
Jakub Jelinek 1e762c6ad8 re PR tree-optimization/61773 (ICE in tree-ssa-strlen.c:417)
PR tree-optimization/61773
	* tree-ssa-strlen.c (get_string_length): Don't assert
	stpcpy has been prototyped if si->stmt is BUILT_IN_MALLOC.

	* gcc.dg/pr61773.c: New test.

From-SVN: r217910
2014-11-21 10:27:19 +01:00
Jakub Jelinek 0daaf8aa4d re PR target/63910 (ICE: simplify_immed_subreg, at simplify-rtx.c:5519 with -mstringop-strategy=vector_loop -mavx512f)
PR target/63910
	* simplify-rtx.c (simplify_immed_subreg): Return NULL for integer
	modes wider than MAX_BITSIZE_MODE_ANY_INT.  If not using
	CONST_WIDE_INT, make sure r fits into CONST_DOUBLE.

	* gcc.target/i386/pr63910.c: New test.

From-SVN: r217908
2014-11-21 10:23:26 +01:00
Markus Trippelsdorf 1b5e27711e rs6000: Fix compiler warning
2014-11-20  Markus Trippelsdorf  <markus@trippelsdorf.de>

	* config/rs6000/rs6000.c (includes_rldic_lshift_p): Use
	HOST_WIDE_INT_M1U instead of ~0.
	(includes_rldicr_lshift_p): Likewise.

From-SVN: r217905
2014-11-21 06:50:47 +00:00
Chung-Ju Wu 3442502561 [NDS32] Look into LO_SUM's operand to determine whether it is a valid address.
gcc/
	* config/nds32/nds32.c (nds32_legitimate_address_p): For LO_SUM,
	we need to look into its operand to determine whether it is a valid
	address.

From-SVN: r217904
2014-11-21 05:51:12 +00:00
Chung-Ju Wu 47e0e7d28f [NDS32] Create correct CFI info for variadic function arguments.
gcc/
	* config/nds32/nds32.c (nds32_emit_stack_push_multiple): Add new
	vaarg_p argument and create correct CFI info.
	(nds32_expand_prologue): Pass true or false to
	nds32_emit_stack_push_multiple function.

From-SVN: r217903
2014-11-21 05:32:51 +00:00
Chung-Ju Wu 7064dcad59 [NDS32] Add missing RTX_FRAME_RELATED_P to set fp_adjust_insn rtx.
gcc/
	* config/nds32/nds32.c (nds32_expand_prologue): Set fp_adjust_insn
	as RTX_FRAME_RELATED_P rtx.

From-SVN: r217902
2014-11-21 05:19:00 +00:00
Chung-Ju Wu 667a055aa7 [NDS32] Complete -march= option design so that it can display available items in --target-help message.
gcc/
	* config/nds32/nds32.opt (march): Add help message.

From-SVN: r217901
2014-11-21 05:13:44 +00:00
Patrick Palka 7ac753f968 Disable an unsafe VRP transformation when -fno-strict-overflow is set
gcc/
	* tree-vrp.c (test_for_singularity): New parameter
	strict_overflow_p.  Set *strict_overflow_p to true if signed
	overflow must be undefined for the return value to satisfy the
	conditional.
	(simplify_cond_using_ranges): Don't perform the simplification
	if it violates overflow rules.

gcc/testsuite/
	* gcc.dg/no-strict-overflow-8.c: New test.

From-SVN: r217895
2014-11-20 22:25:35 +00:00
Marek Polacek e7ea147586 * tree-ssa-loop-niter.c (maybe_lower_iteration_bound): Fix typo.
From-SVN: r217892
2014-11-20 20:56:23 +00:00
Andrew Stubbs 4806772429 Warn on undefined loop exit.
2014-11-20  Andrew Stubbs  <ams@codesourcery.com>

	gcc/
	* tree-ssa-loop-niter.c (maybe_lower_iteration_bound): Warn if a loop
	condition would be removed due to undefined behaviour.

	gcc/testsuite/
	* gcc.dg/undefined-loop-1.c: New file.
	* gcc.dg/undefined-loop-2.c: New file.

From-SVN: r217891
2014-11-20 20:22:54 +00:00
Andrew Pinski ea6a433c6c re PR target/63981 (some C++ tests fail with -mabi=ilp32 on aarch64 (with -O2 and above))
2014-11-20  Andrew Pinski  <apinski@cavium.com>

        PR ipa/63981
        PR ipa/63982
        * ipa-polymorphic-call.c (possible_placement_new):
        Use POINTER_SIZE instead of GET_MODE_BITSIZE (Pmode).
        (ipa_polymorphic_call_context::restrict_to_inner_class): Likewise.
        (extr_type_from_vtbl_ptr_store): Likewise.

From-SVN: r217889
2014-11-20 09:14:09 -08:00
Andrew Pinski b30df7b6cb re PR target/63981 (some C++ tests fail with -mabi=ilp32 on aarch64 (with -O2 and above))
2014-11-20  Andrew Pinski  <apinski@cavium.com>

        PR ipa/63981
        * ipa-polymorphic-call.c (possible_placement_new):
        Use POINTER_SIZE instead of GET_MODE_BITSIZE (Pmode).
        (ipa_polymorphic_call_context::restrict_to_inner_class): Likewise.
        (extr_type_from_vtbl_ptr_store): Likewise.

From-SVN: r217888
2014-11-20 09:12:02 -08:00
Markus Trippelsdorf d7ca26e416 PR63426 Fix various signed integer overflows
Running the testsuite after bootstrap-ubsan on gcc112 shows several issues. See
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63426 for the full list.

This patch fixes several of them.

2014-11-20  Markus Trippelsdorf  <markus@trippelsdorf.de>

	* config/rs6000/constraints.md: Avoid signed integer overflows.
	* config/rs6000/predicates.md: Likewise.
	* config/rs6000/rs6000.c (num_insns_constant_wide): Likewise.
	(includes_rldic_lshift_p): Likewise.
	(includes_rldicr_lshift_p): Likewise.
	* emit-rtl.c (const_wide_int_htab_hash): Likewise.
	* loop-iv.c (determine_max_iter): Likewise.
	(iv_number_of_iterations): Likewise.
	* tree-ssa-loop-ivopts.c (get_computation_cost_at): Likewise.
	* varasm.c (get_section_anchor): Likewise.

From-SVN: r217886
2014-11-20 16:36:14 +00:00
Charles Baylis 46ed60245a re PR target/63870 ([Aarch64] [ARM] Errors in use of NEON intrinsics are reported incorrectly)
PR target/63870
        * config/aarch64/aarch64-builtins.c (aarch64_simd_expand_args): Pass
        expression to aarch64_simd_lane_bounds.
        * config/aarch64/aarch64-protos.h (aarch64_simd_lane_bounds): Update
        prototype.
        * config/aarch64/aarch64-simd.md: (aarch64_combinez<mode>): Update
        call to aarch64_simd_lane_bounds.
        (aarch64_get_lanedi): Likewise.
        (aarch64_ld2_lane<mode>): Likewise.
        (aarch64_ld3_lane<mode>): Likewise.
        (aarch64_ld4_lane<mode>): Likewise.
        (aarch64_im_lane_boundsi): Likewise.
        * config/aarch64/aarch64.c (aarch64_simd_lane_bounds): Add exp
        parameter. Report calling function in error message if exp is non-NULL.

From-SVN: r217885
2014-11-20 16:26:54 +00:00
Segher Boessenkool f3101b311c re PR target/60111 ([SH] ICE compiling Newlib)
2014-11-20  Segher Boessenkool  <segher@kernel.crashing.org>

	PR target/60111
	* config/sh/sh.c: Use signed char for signed field.

From-SVN: r217883
2014-11-20 17:03:16 +01:00
Trevor Saunders 509793471a convert trans-mem to hash_table
gcc/

	* cfgexpand.c, gimple-ssa.h, trans-mem.c: Replace htab with
	hash_table.

From-SVN: r217872
2014-11-20 15:10:56 +00:00
Trevor Saunders 907dadbd2a remove more ggc htabs
gcc/

	* ipa-utils.c, lto-section-in.c, lto-streamer.h,
	tree-scalar-evolution.c: Replace htab with hash_table.

lto/

	* lto.c: Replace htab with hash_table.

From-SVN: r217871
2014-11-20 15:10:49 +00:00
Trevor Saunders 9c71e9df38 use vec in lto_tree_ref_table
gcc/ChangeLog:

2014-11-20  Trevor Saunders  <tsaunders@mozilla.com>

	* lto-section-in.c (lto_delete_in_decl_state): Adjust.
	(lto_free_function_in_decl_state): Likewise.
	* lto-streamer-out.c (copy_function_or_variable): Likewise.
	* lto-streamer.h (lto_file_decl_data_get_ ## name): Likewise.
	(lto_file_decl_data_num_ ## name ## s): Likewise.
	(struct lto_tree_ref_table): Remove.
	(struct lto_in_decl_state): Replace lto_tree_ref_table with vec<tree>.

gcc/lto/ChangeLog:

2014-11-20  Trevor Saunders  <tsaunders@mozilla.com>

	* lto.c (lto_read_in_decl_state): Adjust.
	(lto_fixup_state): Likewise.

From-SVN: r217870
2014-11-20 15:10:42 +00:00
Trevor Saunders de144fb24f remove param1_is usage
gcc/

	* hash-map.h (hash_map::iterator): New class.
	(hash_map::begin): New method.
	(hash_map::end): Likewise.
	* alias.c, config/alpha/alpha.c, dwarf2asm.c, omp-low.c, tree.h:
	replace splay_tree with hash_map.

From-SVN: r217869
2014-11-20 15:10:33 +00:00
Trevor Saunders 1f012f560f fix hash_table when empty elements are not 0
gcc/ChangeLog:

2014-11-20  Trevor Saunders  <tsaunders@mozilla.com>

	* hash-table.h (hash_table::hash_table): Call alloc_entries.
	(hash_table::alloc_entries): new method.
	(hash_table::expand): Call alloc_entries.
	(hash_table::empty): Likewise.

From-SVN: r217868
2014-11-20 15:10:26 +00:00
Trevor Saunders d242408fda convert many if_marked htab to hash_table
ada/

	* gcc-interface/decl.c, gcc-interface/utils.c: replace htab with
	hash_table.

cp/

	* cp-objcp-common.c: Use hash_table instead of htab.

gcc/

	* config/i386/i386.c, function.c, trans-mem.c, tree-core.h,
	tree.c, tree.h, ubsan.c, varasm.c: Use hash_table instead of htab.

From-SVN: r217867
2014-11-20 15:10:19 +00:00
Trevor Saunders aebf76a2d6 implement a replacement for if_marked
gcc/ChangeLog:

2014-11-20  Trevor Saunders  <tsaunders@mozilla.com>

	* doc/gty.texi: Document the new cache gty attribute.
	* gengtype.c (finish_cache_funcs): New function.
	(write_roots): Call gt_clear_cache on global variables with the cache
	gty attribute.
	* ggc-common.c (ggc_mark_roots): Call gt_clear_caches.
	* ggc.h (gt_clear_caches): New declaration.
	* hash-table.h (struct ggc_cache_hasher): New hasher for caches in gc
	memory.
	(gt_cleare_cache): New function.
	* emit-rtl.c, rtl.h, tree.c: Use hash_table instead of htab.

From-SVN: r217866
2014-11-20 15:10:11 +00:00
Segher Boessenkool 77486f4480 combine.c (try_combine): Prefer to delete dead SETs inside a PARALLEL over keeping them.
* combine.c (try_combine): Prefer to delete dead SETs inside
	a PARALLEL over keeping them.

From-SVN: r217865
2014-11-20 15:56:29 +01:00
Segher Boessenkool 43ae6da22f combine.c (combine_validate_cost): Always print the insn costs to the dump file.
* combine.c (combine_validate_cost): Always print the insn costs
	to the dump file.

From-SVN: r217864
2014-11-20 15:54:56 +01:00
Richard Henderson ad1048a528 re PR target/63977 (r217769 caused many failures)
PR target/63977

 * config/i386/i386.c (ix86_static_chain): Reinstate the check
 for DECL_STATIC_CHAIN.

From-SVN: r217853
2014-11-20 06:13:04 -08:00
Tejas Belagod f8b756b74c aarch64-protos.h (aarch64_classify_symbol): Fixup prototype.
2014-11-20  Tejas Belagod  <tejas.belagod@arm.com>

gcc/
	* config/aarch64/aarch64-protos.h (aarch64_classify_symbol):
	Fixup prototype.
	* config/aarch64/aarch64.c (aarch64_expand_mov_immediate,
	aarch64_cannot_force_const_mem, aarch64_classify_address,
	aarch64_classify_symbolic_expression): Fixup call to
	aarch64_classify_symbol.
	(aarch64_classify_symbol): Add range-checking for
	symbol + offset addressing for tiny and small models.

testsuite/
         * gcc.target/aarch64/symbol-range.c: New.
         * gcc.target/aarch64/symbol-range-tiny.c: New.

From-SVN: r217852
2014-11-20 13:58:23 +00:00
Richard Biener e6121733d5 re PR tree-optimization/63962 ([x86] Code pessimization after r217213)
2014-11-20  Richard Biener  <rguenther@suse.de>

	PR middle-end/63962
	* match.pd ((p +p off1) +p off2 -> (p +p (off1 + off2))):
	Guard with single-use operand 0.

	* gcc.dg/tree-ssa/forwprop-30.c: New testcase.

From-SVN: r217828
2014-11-20 09:26:48 +00:00
Richard Biener b00734dfd6 re PR tree-optimization/63677 (Failure to constant fold with vectorization.)
2014-11-20   Richard Biener  <rguenther@suse.de>

	PR tree-optimization/63677
	* tree-ssa-dom.c: Include gimplify.h for unshare_expr.
	(avail_exprs_stack): Make a vector of pairs.
	(struct hash_expr_elt): Replace stmt member with vop member.
	(expr_elt_hasher::equal): Simplify.
	(initialize_hash_element): Adjust.
	(initialize_hash_element_from_expr): Likewise.
	(dom_opt_dom_walker::thread_across_edge): Likewise.
	(record_cond): Likewise.
	(dom_opt_dom_walker::before_dom_children): Likewise.
	(print_expr_hash_elt): Likewise.
	(remove_local_expressions_from_table): Restore previous state
	if requested.
	(record_equivalences_from_stmt): Record &x + CST as constant
	&MEM[&x, CST] for further propagation.
	(vuse_eq): New function.
	(lookup_avail_expr): For loads use the alias oracle to see
	whether a candidate from the expr hash is usable.
	(avail_expr_hash): Do not hash VUSEs.

	* gcc.dg/tree-ssa/ssa-dom-cse-2.c: New testcase.
	* gcc.dg/tree-ssa/ssa-dom-cse-3.c: Likewise.

From-SVN: r217827
2014-11-20 08:40:52 +00:00
Ramana Radhakrishnan 07dc4e8707 Fix missing output formatter.
2014-11-20  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>

	PR target/59593
	* config/arm/arm.md (*movhi_insn): Use right formatting
	for immediate.

From-SVN: r217826
2014-11-20 08:38:34 +00:00
Igor Zamyatin 8f51aa6b26 re PR sanitizer/63845 (c-c++-common/asan/bitfield-[12345].c fails on i?86 -with -fpic)
gcc/

	PR sanitizer/63845
	* function.c (assign_parms): Move init of pic_offset_table_rtx
	from here to...
	* cfgexpand.c (expand_used_vars): ...here.

gcc/testsuite/

	PR sanitizer/63845
	* gcc.dg/asan/pr63845.c: New test.

From-SVN: r217825
2014-11-20 08:15:21 +00:00
Jan Hubicka 1be0e58d30 tree.c (free_lang_data_in_type): If BINFO has no important information in it, set it to NULL.
* tree.c (free_lang_data_in_type): If BINFO has no important
	information in it, set it to NULL.
	(get_binfo_at_offset): Do not walk fields, only bases.
	* ipa-utils.h (polymorphic_type_binfo_p): Be ready for BINFO_TYPE
	to be NULL.
	* ipa-polymorphic-call.c (record_known_type): Likewise.

From-SVN: r217824
2014-11-20 06:15:03 +00:00
David Malcolm ba2dbfce55 PR jit/63854: Fix leak in ipa-icf.c
gcc/ChangeLog:
	PR jit/63854
	* ipa-icf.c (sem_item_optimizer::~sem_item_optimizer): Free each
	congruence_class_group *.

From-SVN: r217811
2014-11-19 20:42:29 +00:00
Uros Bizjak 9da8fef02f re PR target/63947 (Wrong fcmov suffix)
PR target/63947
	* config/i386/i386.c (put_condition_code) <case LTU, case GEU>:
	Output "b" and "nb" suffix for FP mode.

testsuite/ChangeLog:

	PR target/63947
	* gcc.target/i386/pr63947.c: New test.

From-SVN: r217810
2014-11-19 21:38:59 +01:00