1. 18 Oct, 2012 10 commits
    • re PR c++/29633 (syntax error in do/while condition with templates reports incorrect line number) · 0fb2e994
      2012-10-18  Paolo Carlini  <paolo.carlini@oracle.com>
      
      	PR c++/29633
      	* g++.dg/template/pr29633.C: New.
      
      From-SVN: r192570
      Paolo Carlini committed
    • A15 neon description. · 855828f1
      2012-10-18  Matthew Gretton-Dann  <matthew.gretton-dann@arm.com>
      	    Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
                  Sameera Deshpande  <sameera.deshpande@arm.com>
      
                 * config/arm/cortex-a15-neon.md: New file.
                 * config/arm/cortex-a15.md (cortex_a15_call): Adjust reservation.
                 (cortex_a15_load1): Likewise.
                 (cortex_a15_load3): Likewise.
                 (cortex_a15_store1): Likewise.
                 (cortex_a15_store3): Likewise.
                 (cortex-a15-neon.md): Include.
      
      
      
      
      Co-Authored-By: Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
      Co-Authored-By: Sameera Deshpande <sameera.deshpande@arm.com>
      
      From-SVN: r192569
      Matthew Gretton-Dann committed
    • altivec.md (altivec_lvsl, [...]): Add mode. · 1ba24090
      gcc/
      	* config/rs6000/altivec.md (altivec_lvsl, altivec_lvsr): Add mode.
      	(altivec_vsumsws_nomode): Delete.
      	(reduc_splus_<mode>, reduc_uplus_<mode>): Call gen_altivec_vsumsws
      	instead of gen_altivec_vsumsws_nomode.
      	(altivec_lvlx, altivec_lvlxl, altivec_lvrx, altivec_lvrxl):
      	Add mode.
      	* config/rs6000/rs6000.md (probe_stack): Rename to...
      	(probe_stack_<mode>): ... this.  Add mode.  Change pattern to
      	use std instead of stw when appropriate.
      	(probe_stack): New expander.
      	(move_from_CR_ov_bit): Add mode.
      	(splitter for compare_plus_ne0_<mode>, splitter for
      	compare_plus_ne0_<mode>_1): Remove constraints.
      	* config/rs6000/sync.md (loadsync): Rename to...
      	(loadsync_<mode>): ... this.  Add mode.
      	(atomic_load<mode>): Adjust.
      
      From-SVN: r192568
      Segher Boessenkool committed
    • loop-invariant.c: Include target.h. · 1a17bd35
      	* loop-invariant.c: Include target.h.
      	(check_dependency): Return false for an uninitialized argument register
      	that is likely to be spilled.
      	* Makefile.in (loop-invariant.o): Add $(TARGET_H).
      
      From-SVN: r192566
      Eric Botcazou committed
    • Add support for fma intrinsics for ARM. · c4216388
      Correct dates in changelog from earlier commit.
      
      
      2012-10-18  Matthew Gretton-Dann  <matthew.gretton-dann@arm.com>
      	    Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
      
              * config/arm/arm.c (neon_builtin_data): Add vfma and vfms
            	builtins.
              * config/arm/neon-docgen.ml (intrinsic_groups): Add
              fused-multiply-* groups.
              * config/neon-gen.ml (print_feature_test_start): New function.
              (print_feature_test_end): Likewise.
              (print_variant): Print feature test macros.
              * config/arm/neon-testgen.ml (emit_prologue): Allow different
              tests to require different effective targets.
              (effective_target): New function.
              (test_intrinsic): Specify correct effective targets.
              * gcc/config/arm/neon.md (fma<VCVTF:mode>4_intrinsic): New pattern.
              (fmsub<VCVTF:mode>4_intrinsic): Likewise.
              (neon_vfma<VCVFT:mode>): New expand.
              (neon_vfms<VCVFT:mode>): Likewise.
              * config/neon.ml (opcode): Add Vfma and Vfms.
              (features): Add Requires_feature.
              (ops): Add VFMA and VFMS intrinsics.
              * config/arm/arm_neon.h: Regenerate.
              * doc/arm-neon-intrinsics.texi: Likewise.
      
      
      
      
      
      2012-10-18  Matthew Gretton-Dann  <matthew.gretton-dann@arm.com>
      
              * gcc.target/arm/neon/vfmaQf32.c: New testcase.
              * gcc.target/arm/neon/vfmaf32.c: Likewise.
              * gcc.target/arm/neon/vfmsQf32.c: Likewise.
              * gcc.target/arm/neon/vfmsf32.c: Likewise.
      
      
      
      Co-Authored-By: Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
      
      From-SVN: r192560
      Matthew Gretton-Dann committed
    • lto-streamer.h (enum LTO_tags): Add LTO_integer_cst. · c61f8c3b
      2012-10-18  Richard Guenther  <rguenther@suse.de>
      
      	* lto-streamer.h (enum LTO_tags): Add LTO_integer_cst.
      	* lto-streamer-in.c (lto_input_tree): Use it.
      	* lto-streamer-out.c (lto_output_tree): Likewise, for
      	!TREE_OVERFLOW integer constants only.
      	* tree-streamer-in.c (unpack_ts_int_cst_value_fields): New function.
      	(unpack_value_fields): Call it.
      	(streamer_read_integer_cst): Simplify.
      	* tree-streamer-out.c (pack_ts_int_cst_value_fields): New function.
      	(streamer_pack_tree_bitfields): Call it.
      	(streamer_write_integer_cst): Adjust.
      
      From-SVN: r192559
      Richard Guenther committed
    • Add basic armv8-a support · 595fefee
      
      2012-10-17  Matthew Gretton-Dann  <matthew.gretton-dann@arm.com>
      
      	* config/arm/lib1funcs.S (__ARM_ARCH__): Define for ARMv8-A.
      
      2012-10-17  Matthew Gretton-Dann  <matthew.gretton-dann@arm.com>
      
              * gcc.target/arm/ftest-armv8a-arm.c: New testcase.
              * gcc.target/arm/ftest-armv8a-thumb.c: Likewise.
              * gcc.target/arm/ftest-support-arm.h (feature_matrix): Add
              ARMv8-A row.
              * gcc.target/arm/ftest-support-thumb.h (feature_matrix):
              Likewise.
              * gcc.target/arm/ftest-support.h (architecture): Add ARMv8-A.
              * lib/target-supports.exp: Add ARMv8-A architecture expectation.
      
      2012-10-17  Matthew Gretton-Dann  <matthew.gretton-dann@arm.com>
      	    Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
      
              * config.gcc: Add support for ARMv8 for arm*-*-* targets.
              * config/arm/arm-arches.def: Add armv8-a
              * config/arm/arm-fpus.def: Add fp-armv8, neon-fp-armv8,
              crypto-neon-fp-armv8.  Add crypto field.
              * config/arm/arm-tables.opt: Regenerate.
              * config/arm/arm.c (FL_FOR_ARCH8A): Likewise.
              (arm_arch8): New global variable.
              (ARM_FPU): Add crypto parameter.
              (arm_option_override): Set arm_arch8, update comments.
              * config/arm/arm.h (TARGET_CRYPTO): New macro.
              (arm_fpu_desc): Add crypto field.
              (base_architecture): Add ARMv8 entry.
              (arm_arch8): New variable declaration.
              * config/arm/bpabi.h: ARMv8 supports BE8.
              * doc/invoke.texi: Document ARMv8 options.
      
      
      
      
      
      
      Co-Authored-By: Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
      
      From-SVN: r192558
      Matthew Gretton-Dann committed
    • move.h (move_if_noexcept): Mark constexpr. · a9ba8ba5
      2012-10-17  Benjamin Kosnik  <bkoz@redhat.com>
      
      	* include/bits/move.h (move_if_noexcept): Mark constexpr.
      	* include/std/array (front, back): Same.
      	* include/std/chrono: Add comment.
      	* include/std/tuple (__tuple_compare): Mark __eq, __less constexpr.
      	(operator ==, <, >, !=, <=, >=): Same.
      	* testsuite/20_util/forward/c_neg.cc: Adjust line numbers.
      	* testsuite/20_util/forward/f_neg.cc: Same.
      	* testsuite/20_util/move_if_noexcept/constexpr.cc: New.
      	* testsuite/20_util/tuple/comparison_operators/constexpr.cc: New.
      	* testsuite/20_util/tuple/creation_functions/constexpr.cc: Add.
      	* testsuite/23_containers/array/element_access/
      	constexpr_element_access.cc: Same.
      	* testsuite/23_containers/array/tuple_interface/get_neg.cc: Adjust
      	line numbers.
      	* testsuite/23_containers/array/tuple_interface/tuple_element_neg.cc:
      	Same.
      
      	* testsuite/20_util/tuple/comparison_operators/35480_neg.cc:
                Temporarily add dg-excess-errors.
      
      From-SVN: r192556
      Benjamin Kosnik committed
    • Daily bump. · 21676429
      From-SVN: r192552
      GCC Administrator committed
  2. 17 Oct, 2012 14 commits
    • re PR middle-end/54893 (unable to access volatile variable within relaxed transaction) · a3770d3b
      	PR middle-end/54893
              * trans-mem.c (diagnose_tm_1_op): Allow volatiles inside relaxed
              transactions.
      
      From-SVN: r192549
      Aldy Hernandez committed
    • re PR rtl-optimization/54900 (write introduction incorrect wrt the C11 memory model (2)) · a7b159a4
      	PR rtl-optimization/54900
      	* ifcvt.c (noce_can_store_speculate_p): Call
      	memory_must_be_modified_in_insn_p.
      	* alias.c (memory_must_be_modified_in_insn_p): New.
      	(set_dest_equal_p): New.
      	* rtl.h (memory_must_be_modified_in_p): Protoize.
      
      From-SVN: r192548
      Aldy Hernandez committed
    • rs6000.opt (rs6000_isa_flags): New flag word to replace target_flags that gives… · 4d967549
      rs6000.opt (rs6000_isa_flags): New flag word to replace target_flags that gives us 63 possible switches.
      
      2012-10-17  Michael Meissner  <meissner@linux.vnet.ibm.com>
      
      	* config/rs6000/rs6000.opt (rs6000_isa_flags): New flag word to
      	replace target_flags that gives us 63 possible switches.
      	(x_rs6000_isa_flags): Save area for rs6000_isa_flags.
      	(x_rs6000_isa_flags_explicit): Save area for
      	rs6000_isa_flags_explicit.
      	(rs6000_target_flags_explicit): Delete in favor of
      	x_rs6000_isa_flags_explicit.
      	(-mpowerpc64): Change all switches that used to be in target_flags
      	to now be in rs6000_isa_flags.  In using rs6000_isa_flags, the
      	options machinary will generate names of the form OPITON_<xxx>
      	instead of TARGET_<xxx> and OPTION_MASK_<xxx> instead of
      	MASK_<xxx>.
      	(-mpowerpc-gpopt): Likewise.
      	(-mpowerpc-gfxopt): Likewise.
      	(-mmfcrf): Likewise.
      	(-mpopcntb): Likewise.
      	(-mfprnd): Likewise.
      	(-mcmpb): Likewise.
      	(-mmfpgpr): Likewise.
      	(-maltivec): Likewise.
      	(-mhard-dfp): Likewise.
      	(-mmulhw): Likewise.
      	(-mdlmzb): Likewise.
      	(-mmultiple): Likewise.
      	(-mstring): Likewise.
      	(-msoft-float): Likewise.
      	(-mhard-float): Likewise.
      	(-mpopcntd): Likewise.
      	(-mvsx): Likewise.
      	(-mno-update): Likewise.
      	(-mupdate): Likewise.
      	(-mrecip-precision): Likewise.
      	(-mminimal-toc): Likewise.
      	(-misel): Likewise.
      	* config/rs6000/aix64.opt (-maix64): Likewise.
      	(-maix32): Likewise.
      	* config/rs6000/sysv4.opt (-mstrict-align): Likewise.
      	(-mrelocatable): Likewise.
      	(-mlittle-endian): Likewise.
      	(-mlittle): Likewise.
      	(-mbig-endian): LIkewise.
      	(-mbig): Likewise.
      	(-meabi): Likewise.
      	(-m64): Likewise.
      	(-m32): Likewise.
      	* config/rs6000/darwin.opt (-m64): Likewise.
      	(-m32): Likewise.
      
      	* config/rs6000/rs6000-cpus.def (ISA_2_1_MASKS): Move the various
      	masks used in rs6000.c here, since they are more logically in this
      	file.  Convert from being enums to just #defines, since the types
      	of these masks is now HOST_WIDE_INT instead of int.  For
      	POWERPC_MASKS, add MASK_SOFT_FLOAT, since the only use case or'ed
      	in the mask.  Change the use in rs6000.c not to do the OR of
      	MASK_SOFT_FLOAT.
      	(ISA_2_1_MASKS): Likewise.
      	(ISA_2_2_MASKS): Likewise.
      	(ISA_2_4_MASKS): Likewise.
      	(ISA_2_5_MASKS_EMBEDDED): Likewise.
      	(ISA_2_5_MASKS_SERVER): Likewise.
      	(POWERPC_7400_MASK): Likewise.
      	(POWERPC_MASKS): Likewise.
      	* config/rs6000/rs6000.c (ISA_2_1_MASKS): Likewise.
      	(ISA_2_1_MASKS): Likewise.
      	(ISA_2_2_MASKS): Likewise.
      	(ISA_2_4_MASKS): Likewise.
      	(ISA_2_5_MASKS_EMBEDDED): Likewise.
      	(ISA_2_5_MASKS_SERVER): Likewise.
      	(POWERPC_7400_MASK): Likewise.
      	(POWERPC_MASKS): Likewise.
      	(rs6000_option_override_internal): Likewise.
      
      	* config/rs6000/rs6000.c (darwin_rs6000_override_options): Change
      	all uses of target_flags to rs6000_isa_flags.  Change all uses of
      	target_flags_explicit to rs6000_isa_flags_explicit.  Change the
      	use of MASK_<xxx> to OPTION_MASK_<xxx> that options.h defines when
      	we use a secondary flags word.  Save/restore/print the new flags
      	word when switching contexts with different target attributes.
      	(rs6000_option_override_internal): Likewise.
      	(rs6000_darwin_file_start): Likewise.
      	(rs6000_opt_masks): Likewise.
      	(rs6000_inner_target_options): Likewise.
      	(rs6000_pragma_target_parse): Likewise.
      	(rs6000_set_current_function): Likewise.
      	(rs6000_function_specific_save): Likewise.
      	(rs6000_function_specific_restore): Likewise.
      	(rs6000_function_specific_print): Likewise.
      	(rs6000_can_inline_p): Likewise.
      	* config/rs6000/rs6000-c.c (rs6000_target_modify_macros):
      	Likewise.
      	(rs6000_cpu_cpp_builtins): Likewise.
      	* common/config/rs6000/rs6000-driver.c (rs6000_handle_option):
      	Likewise.
      
      	* config/rs6000/rs6000.h (MASK_ALTIVEC): In moving to using
      	Var(...) for all of the isa switches, the options machinery now
      	uses OPTION_MASK_<xxx> instead of MASK_<xxx> for the mask name.
      	Use #define to map the old name into the new name.  For switches
      	that are defined in aix64.opt, sysv4.opt, and darwin.opt, only do
      	the definition if those switches were defined.
      	(MASK_ALTIVEC): Likewise.
      	(MASK_CMPB): Likewise.
      	(MASK_DFP): Likewise.
      	(MASK_DLMZB): Likewise.
      	(MASK_EABI): Likewise.
      	(MASK_FPRND): Likewise.
      	(MASK_HARD_FLOAT): Likewise.
      	(MASK_ISEL): Likewise.
      	(MASK_MFCRF): Likewise.
      	(MASK_MFPGPR): Likewise.
      	(MASK_MULHW): Likewise.
      	(MASK_MULTIPLE): Likewise.
      	(MASK_NO_UPDATE): Likewise.
      	(MASK_POPCNTB): Likewise.
      	(MASK_POPCNTD): Likewise.
      	(MASK_PPC_GFXOPT): Likewise.
      	(MASK_PPC_GPOPT): Likewise.
      	(MASK_RECIP_PRECISION): Likewise.
      	(MASK_SOFT_FLOAT): Likewise.
      	(MASK_STRICT_ALIGN): Likewise.
      	(MASK_STRING): Likewise.
      	(MASK_UPDATE): Likewise.
      	(MASK_VSX): Likewise.
      	(MASK_POWERPC64): Likewise.
      	(MASK_64BIT): Likewise.
      	(MASK_RELOCATABLE): Likewise.
      	(MASK_LITTLE_ENDIAN): Likewise.
      	(MASK_MINIMAL_TOC): Likewise.
      	(MASK_REGNAMES): Likewise.
      	(MASK_PROTOTYPE): Likewise.
      	(rs6000_isa_flags_explicit): Define in terms of the
      	global_options_set structure.
      
      	* gcc/config/rs6000/aix43.h (SUBTARGET_OVERRIDE_OPTIONS):
      	Change use of target_flags to rs6000_isa_flags,
      	target_flags_explicit to rs6000_isa_flags_explicit, and MASK_<xxx>
      	to OPTION_MASK_<xxx>.
      	* gcc/config/rs6000/aix51.h (SUBTARGET_OVERRIDE_OPTIONS):
      	Likewise.
      	* gcc/config/rs6000/aix52.h (SUBTARGET_OVERRIDE_OPTIONS):
      	Likewise.
      	* gcc/config/rs6000/aix53.h (SUBTARGET_OVERRIDE_OPTIONS):
      	Likewise.
      	* gcc/config/rs6000/aix61.h (SUBTARGET_OVERRIDE_OPTIONS):
      	Likewise.
      	* gcc/config/rs6000/freebsd64.h (RELOCATABLE_NEEDS_FIXUP):
      	Likewise.
      	(SUBSUBTARGET_OVERRIDE_OPTIONS): Likewise.
      	* gcc/config/rs6000/freebsd.h (RELOCATABLE_NEEDS_FIXUP):
      	Likewise.
      	* gcc/config/rs6000/linux64.h (RELOCATABLE_NEEDS_FIXUP):
      	Likewise.
      	(SUBSUBTARGET_OVERRIDE_OPTIONS): Likewise.
      	(OPTION_LITTLE_ENDIAN): Likewise.
      	(OPTION_RELOCATABLE): Likewise.
      	(OPTION_EABI): Likewise.
      	(OPTION_PROTOTYPE): Likewise.
      	* gcc/config/rs6000/linux.h (RELOCATABLE_NEEDS_FIXUP): Likewise.
      	* gcc/config/rs6000/option-defaults.h (OPTION_MASK_64BIT):
      	Likewise.
      	(OPT_ARCH32): Likewise.
      	(OPT_ARCH64): Likewise.
      	* gcc/config/rs6000/sysv4.h (TARGET_TOC): Likewise.
      	(SUBTARGET_OVERRIDE_OPTIONS): Likewise.
      	(SUBSUBTARGET_OVERRIDE_OPTIONS): Likewise.
      	(TARGET_OS_SYSV_CPP_BUILTINS): Likewise.
      
      	* config/rs6000/t-rs6000 (rs6000.o): Add rs6000-cpus.def as a
      	dependency.
      
      From-SVN: r192545
      Michael Meissner committed
    • cfgloopmanip.c (copy_loop_info): New function. · bf45c4c0
      	* cfgloopmanip.c (copy_loop_info): New function.
      	(duplicate_loop): Use it.
      	(loop_version): Use it.
      	* loop-unswitch.c (unswitch_loop): Use it.
      	* cfgloop.h (copy_loop_info): Declare.
      
      From-SVN: r192543
      Jan Hubicka committed
    • tree-ssa-loop-ivcanon.c (tree_estimate_loop_size): Add edge_to_cancel parameter… · b7442c2f
      tree-ssa-loop-ivcanon.c (tree_estimate_loop_size): Add edge_to_cancel parameter and use it to estimate code optimized out in the...
      
      
      	* tree-ssa-loop-ivcanon.c (tree_estimate_loop_size): Add edge_to_cancel
      	parameter and use it to estimate code optimized out in the final iteration.
      	(loop_edge_to_cancel): New function.
      	(try_unroll_loop_completely): New IRRED_IVALIDATED parameter;
      	handle unrolling loops with bounds given via max_loop_iteratins;
      	handle unrolling non-inner loops when code size shrinks;
      	tidy dump output; when the last iteration loop still stays
      	as loop in the CFG forcongly redirect the latch to
      	__builtin_unreachable.
      	(canonicalize_loop_induction_variables): Add irred_invlaidated
      	parameter; record niter bound derrived; dump
      	max_loop_iterations bounds; call try_unroll_loop_completely
      	even if no niter bound is given.
      	(canonicalize_induction_variables): Handle irred_invalidated.
      	(tree_unroll_loops_completely): Handle non-innermost loops;
      	handle irred_invalidated.
      	* cfgloop.h (unlop): Declare.
      	* cfgloopmanip.c (unloop): Export.
      	* tree.c (build_common_builtin_nodes): Build BULTIN_UNREACHABLE.
      
      	* gcc.target/i386/l_fma_float_?.c: Update.
      	* gcc.target/i386/l_fma_double_?.c: Update.
      	* gfortran.dg/do_1.f90: XFAIL
      	* gcc.dg/tree-ssa/cunroll-1.c: New testcase.
      	* gcc.dg/tree-ssa/cunroll-2.c: New testcase.
      	* gcc.dg/tree-ssa/cunroll-3.c: New testcase.
      	* gcc.dg/tree-ssa/cunroll-4.c: New testcase.
      	* gcc.dg/tree-ssa/cunroll-5.c: New testcase.
      	* gcc.dg/tree-ssa/ldist-17.c: Block cunroll to make testcase still
      	valid.
      
      From-SVN: r192538
      Jan Hubicka committed
    • opth-gen.awk (TARGET_* generation): Always generate TARGET_<xxx> for Mask… · 90922d36
      opth-gen.awk (TARGET_* generation): Always generate TARGET_<xxx> for Mask options, whether they use Var(...) or not.
      
      2012-10-17  Michael Meissner  <meissner@linux.vnet.ibm.com>
      
      	* opth-gen.awk (TARGET_* generation): Always generate TARGET_<xxx>
      	for Mask options, whether they use Var(...) or not.
      
      	* config/linux-android.h (ANDROID_TARGET_OS_CPP_BUILTINS): Use
      	TARGET_<xxx> instead of OPTION_<xxx>.
      	* config/i386/i386.h (TARGET_64BIT): Likewise.
      	(TARGET_MMX): Likewise.
      	(TARGET_3DNOW): Likewise.
      	(TARGET_3DNOW_A): Likewise.
      	(TARGET_SSE): Likewise.
      	(TARGET_SSE2): Likewise.
      	(TARGET_SSE3): Likewise.
      	(TARGET_SSSE3): Likewise.
      	(TARGET_SSE4_1): Likewise.
      	(TARGET_SSE4_2): Likewise.
      	(TARGET_AVX): Likewise.
      	(TARGET_AVX2): Likewise.
      	(TARGET_FMA): Likewise.
      	(TARGET_SSE4A): Likewise.
      	(TARGET_FMA4): Likewise.
      	(TARGET_XOP): Likewise.
      	(TARGET_LWP): Likewise.
      	(TARGET_ROUND): Likewise.
      	(TARGET_ABM): Likewise.
      	(TARGET_BMI): Likewise.
      	(TARGET_BMI2): Likewise.
      	(TARGET_LZCNT): Likewise.
      	(TARGET_TBM): Likewise.
      	(TARGET_POPCNT): Likewise.
      	(TARGET_SAHF): Likewise.
      	(TARGET_MOVBE): Likewise.
      	(TARGET_CRC32): Likewise.
      	(TARGET_AES): Likewise.
      	(TARGET_PCLMUL): Likewise.
      	(TARGET_CMPXCHG16B): Likewise.
      	(TARGET_FSGSBASE): Likewise.
      	(TARGET_RDRND): Likewise.
      	(TARGET_F16C): Likewise.
      	(TARGET_RTM     ): Likewise.
      	(TARGET_HLE): Likewise.
      	(TARGET_RDSEED): Likewise.
      	(TARGET_PRFCHW): Likewise.
      	(TARGET_ADX): Likewise.
      	(TARGET_64BIT): Likewise.
      	(TARGET_MMX): Likewise.
      	(TARGET_3DNOW): Likewise.
      	(TARGET_3DNOW_A): Likewise.
      	(TARGET_SSE): Likewise.
      	(TARGET_SSE2): Likewise.
      	(TARGET_SSE3): Likewise.
      	(TARGET_SSSE3): Likewise.
      	(TARGET_SSE4_1): Likewise.
      	(TARGET_SSE4_2): Likewise.
      	(TARGET_AVX): Likewise.
      	(TARGET_AVX2): Likewise.
      	(TARGET_FMA): Likewise.
      	(TARGET_SSE4A): Likewise.
      	(TARGET_FMA4): Likewise.
      	(TARGET_XOP): Likewise.
      	(TARGET_LWP): Likewise.
      	(TARGET_ROUND): Likewise.
      	(TARGET_ABM): Likewise.
      	(TARGET_BMI): Likewise.
      	(TARGET_BMI2): Likewise.
      	(TARGET_LZCNT): Likewise.
      	(TARGET_TBM): Likewise.
      	(TARGET_POPCNT): Likewise.
      	(TARGET_SAHF): Likewise.
      	(TARGET_MOVBE): Likewise.
      	(TARGET_CRC32): Likewise.
      	(TARGET_AES): Likewise.
      	(TARGET_PCLMUL): Likewise.
      	(TARGET_CMPXCHG16B): Likewise.
      	(TARGET_FSGSBASE): Likewise.
      	(TARGET_RDRND): Likewise.
      	(TARGET_F16C): Likewise.
      	(TARGET_RTM): Likewise.
      	(TARGET_HLE): Likewise.
      	(TARGET_RDSEED): Likewise.
      	(TARGET_PRFCHW): Likewise.
      	(TARGET_ADX): Likewise.
      	(TARGET_LP64): Likewise.
      	(TARGET_X32): Likewise.
      	(TARGET_ISA_ROUND): Likewise.
      	* config/i386/darwin.h (TARGET_64BIT): Likewise.
      
      	* doc/options.texi (Mask): Update documentation to specify only
      	TARGET_<xxx> is generated.
      
      From-SVN: r192537
      Michael Meissner committed
    • arm.md (UNSPEC_PROLOGUE_USE): Rename this... · 42083999
      
              * config/arm/arm.md (UNSPEC_PROLOGUE_USE): Rename this...
              (UNSPEC_REGISTER_USE): ... to this.
              (prologue_use): Rename this...
      	  (force_register_use): ... to this and update output assembly.
              (epilogue) Rename gen_prologue_use to gen_force_register_use.
              * config/arm/arm.c (arm_expand_prologue): Likewise.
              (thumb1_expand_epilogue): Likewise.
              (arm_expand_epilogue): Likewise.
              (arm_expand_epilogue): Likewise.
      
      From-SVN: r192533
      Greta Yorsh committed
    • avr-arch.h (avr_extra_arch_macro): Remove prototype. · eb5af262
      	* config/avr/avr-arch.h (avr_extra_arch_macro): Remove prototype.
      	* config/avr/avr.c (avr_extra_arch_macro): Remove variable.
      	(avr_option_override): Remove setting of avr_extra_arch_macro.
      	* config/avr/avr-c.c (avr_extra_arch_macro): Replace with
      	avr_current_device->macro.
      
      From-SVN: r192532
      Georg-Johann Lay committed
    • tree-streamer-out.c (write_ts_decl_common_tree_pointers): Do not write TREE_CHAIN of PARM_DECLs. · 3855380a
      2012-10-17  Richard Biener  <rguenther@suse.de>
      
      	* tree-streamer-out.c (write_ts_decl_common_tree_pointers):
      	Do not write TREE_CHAIN of PARM_DECLs.
      	(write_ts_decl_non_common_tree_pointers): Instead stream
      	the DECL_ARGUMENTS chain.
      	* tree-streamer-in.c (lto_input_ts_decl_common_tree_pointers):
      	Do not read TREE_CHAIN of PARM_DECLs.
      	(lto_input_ts_decl_non_common_tree_pointes): Instead read
      	the DECL_ARGUMENTS as chain.
      
      From-SVN: r192529
      Richard Biener committed
    • iq2000.h (call_used_regs): Remove definition. · e0de0c3b
      	* config/iq2000/iq2000.h (call_used_regs): Remove definition.
      
      From-SVN: r192528
      Steven Bosscher committed
    • Add missing entry. · 3768afe9
      From-SVN: r192527
      Eric Botcazou committed
    • df-problems.c (df_kill_notes): Split up in two functions. · 8c266ffa
      	* df-problems.c (df_kill_notes): Split up in two functions.
      	(df_remove_dead_and_unused_notes): New function, first half of
      	df_kill notes to remove all REG_DEAD and REG_UNUSED notes.
      	(df_remove_dead_eq_notes): New function, second half of df_kill_notes
      	to remove REG_EQUAL and REG_EQUIV notes referring to dead registers.
      	(df_note_bb_compute): Call df_remove_dead_and_unused_notes instead
      	of df_kill_notes.  Call df_remove_dead_eq_notes after processing insn.
      
      	* web.c (web): Re-add DF_RD_PRUNE_DEAD_DEFS;
      
      From-SVN: r192526
      Steven Bosscher committed
    • extend.texi (Return Address): Change __builtin_extract_return_address to… · d564b816
      extend.texi (Return Address): Change __builtin_extract_return_address to __builtin_extract_return_addr.
      
      
      	* doc/extend.texi (Return Address): Change
      	__builtin_extract_return_address to
      	__builtin_extract_return_addr.
      
      From-SVN: r192525
      Ian Lance Taylor committed
    • Daily bump. · 8f1646e5
      From-SVN: r192522
      GCC Administrator committed
  3. 16 Oct, 2012 16 commits
    • re PR rtl-optimization/54870 (gfortran.dg/array_constructor_4.f90 FAILs) · 88d8330d
      	PR rtl-optimization/54870
      	* tree.h (TREE_ADDRESSABLE): Document special usage on SSA_NAME.
      	* cfgexpand.c (update_alias_info_with_stack_vars ): Set it on the
      	SSA_NAME pointer that points to a partition if there is at least
      	one variable with it set in the partition.
      	* dse.c (local_variable_can_escape): New predicate.
      	(can_escape): Call it.
      	* gimplify.c (mark_addressable): If this is a partitioned decl, also
      	mark the SSA_NAME pointer that points to a partition.
      
      From-SVN: r192517
      Eric Botcazou committed
    • rtl.h (get_call_rtx_from): New prototype. · da4fdf2d
      	* rtl.h (get_call_rtx_from): New prototype.
      	* rtlanal.c (get_call_rtx_from): New function.
      	* calls.c (emit_call_1): Use it.
      	* dse.c (scan_insn): Likewise
      	* dwarf2out.c (dwarf2out_var_location): Likewise.
      	* sched-deps.c (call_may_noreturn_p): Likewise.
      	* var-tracking.c (prepare_call_arguments): Likewise.
      	* config/sh/sh.c (sh_adjust_cost): Likewise.
      
      From-SVN: r192516
      Steven Bosscher committed
    • 2012-10-16 Tom de Vries <tom@codesourcery.com> · f841b683
      	* expr.c (move_by_pieces, move_by_pieces_ninsns, can_store_by_pieces)
      	(store_by_pieces_1): Don't enter loop when no more data is left.
      
      From-SVN: r192514
      Tom de Vries committed
    • formatter.h (_Debug_msg_id): Add __msg_bucket_index_oob. · 7181e991
      2012-10-16  François Dumont  <fdumont@gcc.gnu.org>
      
      	* include/debug/formatter.h (_Debug_msg_id): Add
      	__msg_bucket_index_oob.
      	* include/debug/macros.h (__glibcxx_check_bucket_index): New.
      	* include/debug/unordered_set (unordered_set<>::begin(size_type)):
      	Add check on bucket index.
      	(unordered_set<>::begin(size_type) const): Likewise.
      	(unordered_set<>::cbegin(size_type) const): Likewise.
      	(unordered_set<>::end(size_type)): Likewise.
      	(unordered_set<>::end(size_type) const): Likewise.
      	(unordered_set<>::cend(size_type) const): Likewise.
      	(unordered_set<>::bucket_size(size_type)): Likewise.
      	(unordered_multiset<>::begin(size_type)): Likewise.
      	(unordered_multiset<>::begin(size_type) const): Likewise.
      	(unordered_multiset<>::cbegin(size_type) const): Likewise.
      	(unordered_multiset<>::end(size_type)): Likewise.
      	(unordered_multiset<>::end(size_type) const): Likewise.
      	(unordered_multiset<>::cend(size_type) const): Likewise.
      	(unordered_multiset<>::bucket_size(size_type)): Likewise.
      	* include/debug/unordered_map (unordered_map<>::begin(size_type)):
      	Likewise.
      	(unordered_map<>::begin(size_type) const): Likewise.
      	(unordered_map<>::cbegin(size_type) const): Likewise.
      	(unordered_map<>::end(size_type)): Likewise.
      	(unordered_map<>::end(size_type) const): Likewise.
      	(unordered_map<>::cend(size_type) const): Likewise.
      	(unordered_map<>::bucket_size(size_type)): Likewise.
      	(unordered_multimap<>::begin(size_type)): Likewise.
      	(unordered_multimap<>::begin(size_type) const): Likewise.
      	(unordered_multimap<>::cbegin(size_type) const): Likewise.
      	(unordered_multimap<>::end(size_type)): Likewise.
      	(unordered_multimap<>::end(size_type) const): Likewise.
      	(unordered_multimap<>::cend(size_type) const): Likewise.
      	(unordered_multimap<>::bucket_size(size_type)): Likewise.
      	* testsuite/23_containers/unordered_map/debug/bucket_size_neg.cc:
      	New.
      	* testsuite/23_containers/unordered_map/debug/begin1_neg.cc: New.
      	* testsuite/23_containers/unordered_map/debug/begin2_neg.cc: New.
      	* testsuite/23_containers/unordered_map/debug/cbegin_neg.cc: New.
      	* testsuite/23_containers/unordered_map/debug/end1_neg.cc: New.
      	* testsuite/23_containers/unordered_map/debug/end2_neg.cc: New.
      	* testsuite/23_containers/unordered_map/debug/cend_neg.cc: New.
      	* testsuite/23_containers/unordered_multimap/debug/bucket_size_neg.cc:
      	New.
      	* testsuite/23_containers/unordered_multimap/debug/begin1_neg.cc: New.
      	* testsuite/23_containers/unordered_multimap/debug/begin2_neg.cc: New.
      	* testsuite/23_containers/unordered_multimap/debug/cbegin_neg.cc: New.
      	* testsuite/23_containers/unordered_multimap/debug/end1_neg.cc: New.
      	* testsuite/23_containers/unordered_multimap/debug/end2_neg.cc: New.
      	* testsuite/23_containers/unordered_multimap/debug/cend_neg.cc: New.
      	* testsuite/23_containers/unordered_set/debug/bucket_size_neg.cc:
      	New.
      	* testsuite/23_containers/unordered_set/debug/begin1_neg.cc: New.
      	* testsuite/23_containers/unordered_set/debug/begin2_neg.cc: New.
      	* testsuite/23_containers/unordered_set/debug/cbegin_neg.cc: New.
      	* testsuite/23_containers/unordered_set/debug/end1_neg.cc: New.
      	* testsuite/23_containers/unordered_set/debug/end2_neg.cc: New.
      	* testsuite/23_containers/unordered_set/debug/cend_neg.cc: New.
      	* testsuite/23_containers/unordered_multiset/debug/bucket_size_neg.cc:
      	New.
      	* testsuite/23_containers/unordered_multiset/debug/begin1_neg.cc: New.
      	* testsuite/23_containers/unordered_multiset/debug/begin2_neg.cc: New.
      	* testsuite/23_containers/unordered_multiset/debug/cbegin_neg.cc: New.
      	* testsuite/23_containers/unordered_multiset/debug/end1_neg.cc: New.
      	* testsuite/23_containers/unordered_multiset/debug/end2_neg.cc: New.
      	* testsuite/23_containers/unordered_multiset/debug/cend_neg.cc: New.
      
      From-SVN: r192512
      François Dumont committed
    • loop-doloop.c (doloop_modify): Pass doloop_end pattern to gen_doloop_begin. · 2407343c
              * loop-doloop.c (doloop_modify): Pass doloop_end pattern to
              gen_doloop_begin.
              (doloop_optimize): Pass flag to indicate if loop is entered at top
              to gen_doloop_end.
              * config/arm/thumb2.md (doloop_end): Accept extra operand.
              * config/bfin/bfin.md (doloop_end): Likewise.
              * config/c6x/c6x.md (doloop_end): Likewise.
              * config/ia64/ia64.md (doloop_end): Likewise.
              * config/mep/mep.md (doloop_begin, doloop_end): Likewise.
              * config/rs6000/rs6000.md (doloop_end): Likewise.
              * config/s390/s390.md (doloop_end): Likewise.
              * config/sh/sh.md (doloop_end): Likewise.
              * config/spu/spu.md (doloop_end): Likewise.
              * config/tilegx/tilegx.md (doloop_end): Likewise.
              * config/tilepro/tilepro.md (doloop_end): Likewise.
              * doc/md.texi (doloop_end): Document new operand.
              * basic-block.h (contains_no_active_insn_p): Declare.
              * cfgrtl.c (contains_no_active_insn_p): New function, factored
              out of ...
              (forwarder_block_p): ... here.
      
      From-SVN: r192505
      Joern Rennecke committed
    • re PR c/53063 (encode group options in the .opt files) · d919140b
      2012-10-16  Manuel López-Ibáñez  <manu@gcc.gnu.org>
      
      	PR c/53063
      	PR c/40989
      	* doc/options.texi (EnabledBy): Document new form.
      	* optc-gen.awk: Handle new form of EnabledBy.
      	* common.opt (Wunused-but-set-parameter): Use EnabledBy.
      	(Wunused-parameter): Likewise.
      	* opts.c (finish_options): Do not handle them explicitly.
      	* opt-functions.awk (search_var_name): New.
      
      From-SVN: r192503
      Manuel López-Ibáñez committed
    • re PR c/53063 (encode group options in the .opt files) · 65d4f2cd
      2012-10-16  Manuel López-Ibáñez  <manu@gcc.gnu.org>
      
      	PR c/53063
      	PR c/40989
      gcc/
      	* optc-gen.awk: Handle new form of LangEnabledBy.
      	* opts.c (set_Wstrict_aliasing): Declare here. Make static.
      	* common.opt (Wstrict-aliasing=,Wstrict-overflow=): Do not use Init.
      	* doc/options.texi (LangEnabledBy): Document new form.
      	* flags.h (set_Wstrict_aliasing): Do not declare.
      c-family/
      	* c.opt (Wstrict-aliasing=,Wstrict-overflow=): Use LangEnabledBy.
      	* c-opts.c (c_common_handle_option): Do not set them here. Add
      	comment.
      	(c_common_post_options): Likewise.
      testsuite/
      	* gcc.dg/Wstrict-overflow-24.c: New.
      
      From-SVN: r192502
      Manuel López-Ibáñez committed
    • reload.c (find_reloads_subreg_address): Remove FORCE_REPLACE parameter. · 80de67b8
      	* reload.c (find_reloads_subreg_address): Remove FORCE_REPLACE
      	parameter.  Always replace normal subreg with memory reference
      	whenever possible.  Return NULL otherwise.
      	(find_reloads_toplev): Always call find_reloads_subreg_address
      	for subregs of registers equivalent to a memory location.
      	Only recurse further if find_reloads_subreg_address fails.
      	(find_reloads_address_1): Only call find_reloads_subreg_address
      	for subregs of registers equivalent to a memory location.
      	Properly handle failure of find_reloads_subreg_address.
      
      From-SVN: r192499
      Ulrich Weigand committed
    • re PR fortran/50981 ([OOP] Wrong-code for scalarizing ELEMENTAL call with absent OPTIONAL argument) · 16e82b25
      2012-10-16  Tobias Burnus  <burnus@net-b.de>
      
              PR fortran/50981
              PR fortran/54618
              * trans.h (gfc_conv_derived_to_class, gfc_conv_class_to_class):
              Update prototype.
              * trans-stmt.c (trans_associate_var,gfc_trans_allocate): Update
              calls to those functions.
              * trans-expr.c (gfc_conv_derived_to_class,
              * gfc_conv_class_to_class,
              gfc_conv_expr_present): Handle absent polymorphic arguments.
              (class_scalar_coarray_to_class): New function.
              (gfc_conv_procedure_call): Update calls.
      
      2012-10-16  Tobias Burnus  <burnus@net-b.de>
      
              PR fortran/50981
              PR fortran/54618
              * gfortran.dg/class_optional_1.f90: New.
              * gfortran.dg/class_optional_2.f90: New.
      
      From-SVN: r192495
      Tobias Burnus committed
    • re PR debug/54796 (Non-addressable stack parameter debug quality regression) · 0fe03ac3
      	PR debug/54796
      	* rtl.h: Document jump flag on VALUE.
      	* cselib.h (cselib_set_value_sp_based,
      	cselib_sp_based_value_p): New prototypes.
      	* alias.c (find_base_term): For cselib_sp_based_value_p
      	return static_reg_base_value[STACK_POINTER_REGNUM].
      	* cselib.c (SP_BASED_VALUE_P): Define.
      	(cselib_set_value_sp_based, cselib_sp_based_value_p): New functions.
      	* var-tracking.c (add_stores): Call cselib_set_value_sp_based
      	for not yet preserved VALUEs of sp on sp assignments if
      	hard_frame_pointer_adjustment != -1.
      	(vt_initialize): When setting hard_frame_pointer_adjustment,
      	disassociate sp from its previous value and call
      	cselib_set_value_sp_based on a new VALUE created for sp.
      
      	* gcc.dg/guality/pr54796.c: New test.
      
      From-SVN: r192494
      Jakub Jelinek committed
    • re PR tree-optimization/54889 (Revision 191983 gives compfail for 465.tonto in… · cded4e9e
      re PR tree-optimization/54889 (Revision 191983 gives compfail for 465.tonto in SPEC CPU 2006 when use -O3 -mavx)
      
      	PR tree-optimization/54889
      	* tree-vect-stmts.c (vectorizable_load): Add VIEW_CONVERT_EXPR if
      	ARRAY_REF newref doesn't have compatible type with vectype element
      	type, use vectype element type for MEM_REF.
      
      	* gfortran.dg/pr54889.f90: New test.
      
      From-SVN: r192493
      Jakub Jelinek committed
    • combine.c (record_dead_and_set_regs): Iterate over hard register set with a hard_reg_set_iterator. · c7fb4c7a
      	* combine.c (record_dead_and_set_regs): Iterate over hard register set
      	with a hard_reg_set_iterator.
      	* cse.c (invalidate_for_call): Likewise.
      	* gcse.c (compute_hash_table_work): Likewise.
      	* loop-iv.c (simplify_using_initial_values): Likewise.
      	* postreload-gcse.c (record_opr_changes): Likewise.
      	* regcprop.c (copyprop_hardreg_forward_1): Likewise.
      	* var-tracking.c (dataflow_set_clear_at_call): Likewise.
      
      From-SVN: r192490
      Steven Bosscher committed
    • c-ada-spec.c (ADA_HOST_WIDE_INT_PRINT_DOUBLE_HEX): Define. · 909881cb
      	* c-ada-spec.c (ADA_HOST_WIDE_INT_PRINT_DOUBLE_HEX): Define.
      	(dump_generic_ada_node) <INTEGER_CST>: Deal with sizetype specially.
      	Remove POINTER_TYPE handling, add large unsigned handling and use
      	ADA_HOST_WIDE_INT_PRINT_DOUBLE_HEX for big numbers.
      
      From-SVN: r192489
      Eric Botcazou committed
    • [multiple changes] · a4da41e1
      2012-10-15   Easwaran Raman  <eraman@google.com>
      
              * optabs.c (emit_cmp_and_jump_insn_1): Add a new parameter to
              specificy the probability of taking the jump.
              (emit_cmp_and_jump_insns): Likewise.
              (expand_compare_and_swap_loop): Make the jump predicted not taken.
              * dojump.c (do_compare_rtx_and_jump): Remove the code attaching
              REG_BR_PROB note and pass probability to emit_cmp_and_jump_insns.
              * cfgbuild.c (compute_outgoing_frequencies): Do not guess outgoing
              probabilities for branches with more than two successors.
              * expr.c (emit_block_move_via_loop): Predict the loop backedge loop
              to be highly taken.
              (try_casesi): Pass the probability of jumping to the default label.
              (try_tablejump): Likewise.
              (do_tablejump): Likewise.
              * expr.h (try_tablejump): Add a new parameter.
              (try_casesi): Likewise.
              (emit_cmp_and_jump_insns): Add probability as default parameter with a
              default value of -1.
              * except.c (sjlj_emit_function_enter): Pass probability to
              emit_cmp_and_jump_insns.
              * stmt.c (case_node): Add new fields PROB and SUBTREE_PROB.
              (do_jump_if_equal): Pass probability for REG_BR_PROB note.
              (add_case_node): Pass estimated probability of jumping to the case
              label.
              (emit_case_decision_tree): Pass default_prob to emit_case_nodes.
              (get_outgoing_edge_probs): New function.
              (conditional_probability): Likewise.
              (reset_out_edges_aux): Likewise.
              (compute_cases_per_edge): Likewise.
              (emit_case_dispatch_table): Update probabilities of edges coming out
              of the switch statement.
              (expand_case): Compute and propagate default edge probability to
              emit_case_dispatch_table.
              (expand_sjlj_dispatch_table): Update calls to add_case_node and
              emit_case_dispatch_table.
              (balance_case_nodes): Update subtree_prob values.
              (emit_case_nodes): Compute edge probabilities and add pass them to
              emit_cmp_and_jump_insns.
      
      testsuite/ChangeLog:
      2012-10-15   Easwaran Raman  <eraman@google.com> 
              * gcc.dg/tree-prof/switch-case-1.c: New test case.
              * gcc.dg/tree-prof/switch-case-2.c: New test case.
      
      From-SVN: r192488
      Easwaran Raman committed
    • Daily bump. · 07a11640
      From-SVN: r192486
      GCC Administrator committed