gcc.git
11 years agoformatter.h (_Debug_msg_id): Add __msg_valid_load_factor.
François Dumont [Thu, 18 Oct 2012 19:50:37 +0000 (19:50 +0000)]
formatter.h (_Debug_msg_id): Add __msg_valid_load_factor.

2012-10-18  François Dumont  <fdumont@gcc.gnu.org>

* include/debug/formatter.h (_Debug_msg_id): Add
__msg_valid_load_factor.
* include/debug/macros.h (__glibcxx_check_max_load_factor): New.
* include/debug/unordered_set
(unordered_set<>::max_load_factor(float)): Check max load factor
is positive.
(unordered_multiset<>::max_load_factor(float)): Likewise.
* include/debug/unordered_map
(unordered_map<>::max_load_factor(float)): Likewise.
(unordered_multimap<>::max_load_factor(float)): Likewise.
* testsuite/23_containers/unordered_map/debug/max_load_factor_neg.cc:
New.
* testsuite/23_containers/unordered_multimap/debug/
max_load_factor_neg.cc: New.
* testsuite/23_containers/unordered_set/debug/max_load_factor_neg.cc:
New.
* testsuite/23_containers/unordered_multiset/debug/
max_load_factor_neg.cc: New.

From-SVN: r192575

11 years agoc-ada-spec.c (LOCATION_COL): Delete.
Eric Botcazou [Thu, 18 Oct 2012 18:47:23 +0000 (18:47 +0000)]
c-ada-spec.c (LOCATION_COL): Delete.

* c-ada-spec.c (LOCATION_COL): Delete.
(compare_location): New function.
(compare_node): Use it.
(compare_comment): Likewise.

From-SVN: r192574

11 years agoChangelog: Fix whitespace.
Jan-Benedict Glaw [Thu, 18 Oct 2012 18:07:17 +0000 (18:07 +0000)]
Changelog: Fix whitespace.

2012-10-18  Jan-Benedict Glaw  <jbglaw@lug-owl.de>

gcc/
* Changelog: Fix whitespace.

From-SVN: r192573

11 years agosh.c: Fix comment to silence warning.
Jan-Benedict Glaw [Thu, 18 Oct 2012 17:59:37 +0000 (17:59 +0000)]
sh.c: Fix comment to silence warning.

2012-10-18  Jan-Benedict Glaw  <jbglaw@lug-owl.de>

gcc/
* config/sh/sh.c: Fix comment to silence warning.

From-SVN: r192572

11 years agore PR fortran/54884 (Externally used PRIVATE module procedure wrongly marked as TREE_...
Tobias Burnus [Thu, 18 Oct 2012 17:09:13 +0000 (19:09 +0200)]
re PR fortran/54884 (Externally used PRIVATE module procedure wrongly marked as TREE_PUBLIC()=0)

2012-10-18  Tobias Burnus  <burnus@net-b.de>

        PR fortran/54884
        * resolve.c (specification_expr): Change to bool.
        (resolve_formal_arglist, resolve_symbol): Set
        specification_expr to true before resolving the array spec.
        (resolve_variable, resolve_charlen, resolve_fl_variable):
        Properly reset specification_expr.
        (resolve_function): Set public_use when used in
        a specification expr.

2012-10-18  Tobias Burnus  <burnus@net-b.de>

        PR fortran/54884
        * gfortran.dg/public_private_module_7.f90: New.

From-SVN: r192571

11 years agore PR c++/29633 (syntax error in do/while condition with templates reports incorrect...
Paolo Carlini [Thu, 18 Oct 2012 17:02:10 +0000 (17:02 +0000)]
re PR c++/29633 (syntax error in do/while condition with templates reports incorrect line number)

2012-10-18  Paolo Carlini  <paolo.carlini@oracle.com>

PR c++/29633
* g++.dg/template/pr29633.C: New.

From-SVN: r192570

11 years agoA15 neon description.
Matthew Gretton-Dann [Thu, 18 Oct 2012 16:43:15 +0000 (16:43 +0000)]
A15 neon description.

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

11 years agoaltivec.md (altivec_lvsl, [...]): Add mode.
Segher Boessenkool [Thu, 18 Oct 2012 16:35:07 +0000 (18:35 +0200)]
altivec.md (altivec_lvsl, [...]): Add mode.

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

11 years agoloop-invariant.c: Include target.h.
Eric Botcazou [Thu, 18 Oct 2012 15:46:04 +0000 (15:46 +0000)]
loop-invariant.c: Include target.h.

* 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

11 years ago* except.c (sjlj_emit_function_enter): Remove unused variable.
Eric Botcazou [Thu, 18 Oct 2012 15:38:26 +0000 (15:38 +0000)]
* except.c (sjlj_emit_function_enter): Remove unused variable.

From-SVN: r192565

11 years agoAdd support for fma intrinsics for ARM.
Matthew Gretton-Dann [Thu, 18 Oct 2012 12:02:01 +0000 (12:02 +0000)]
Add support for fma intrinsics for ARM.

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

11 years agolto-streamer.h (enum LTO_tags): Add LTO_integer_cst.
Richard Guenther [Thu, 18 Oct 2012 10:59:55 +0000 (10:59 +0000)]
lto-streamer.h (enum LTO_tags): Add LTO_integer_cst.

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

11 years agoAdd basic armv8-a support
Matthew Gretton-Dann [Thu, 18 Oct 2012 10:49:23 +0000 (10:49 +0000)]
Add basic armv8-a support

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

11 years agomove.h (move_if_noexcept): Mark constexpr.
Benjamin Kosnik [Thu, 18 Oct 2012 08:36:06 +0000 (08:36 +0000)]
move.h (move_if_noexcept): Mark constexpr.

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

11 years agoDaily bump.
GCC Administrator [Thu, 18 Oct 2012 00:18:37 +0000 (00:18 +0000)]
Daily bump.

From-SVN: r192552

11 years agore PR middle-end/54893 (unable to access volatile variable within relaxed transaction)
Aldy Hernandez [Wed, 17 Oct 2012 21:18:16 +0000 (21:18 +0000)]
re PR middle-end/54893 (unable to access volatile variable within relaxed transaction)

PR middle-end/54893
        * trans-mem.c (diagnose_tm_1_op): Allow volatiles inside relaxed
        transactions.

From-SVN: r192549

11 years agore PR rtl-optimization/54900 (write introduction incorrect wrt the C11 memory model...
Aldy Hernandez [Wed, 17 Oct 2012 20:59:40 +0000 (20:59 +0000)]
re PR rtl-optimization/54900 (write introduction incorrect wrt the C11 memory model (2))

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

11 years agors6000.opt (rs6000_isa_flags): New flag word to replace target_flags that gives us...
Michael Meissner [Wed, 17 Oct 2012 20:12:38 +0000 (20:12 +0000)]
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

11 years agocfgloopmanip.c (copy_loop_info): New function.
Jan Hubicka [Wed, 17 Oct 2012 19:50:16 +0000 (21:50 +0200)]
cfgloopmanip.c (copy_loop_info): New function.

* 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

11 years agotree-ssa-loop-ivcanon.c (tree_estimate_loop_size): Add edge_to_cancel parameter and...
Jan Hubicka [Wed, 17 Oct 2012 17:12:05 +0000 (19:12 +0200)]
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

11 years agoopth-gen.awk (TARGET_* generation): Always generate TARGET_<xxx> for Mask options...
Michael Meissner [Wed, 17 Oct 2012 16:49:26 +0000 (16:49 +0000)]
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

11 years agoarm.md (UNSPEC_PROLOGUE_USE): Rename this...
Greta Yorsh [Wed, 17 Oct 2012 13:17:30 +0000 (14:17 +0100)]
arm.md (UNSPEC_PROLOGUE_USE): Rename this...

        * 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

11 years agoavr-arch.h (avr_extra_arch_macro): Remove prototype.
Georg-Johann Lay [Wed, 17 Oct 2012 12:53:22 +0000 (12:53 +0000)]
avr-arch.h (avr_extra_arch_macro): Remove prototype.

* 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

11 years agotree-streamer-out.c (write_ts_decl_common_tree_pointers): Do not write TREE_CHAIN...
Richard Biener [Wed, 17 Oct 2012 10:25:56 +0000 (10:25 +0000)]
tree-streamer-out.c (write_ts_decl_common_tree_pointers): Do not write TREE_CHAIN of PARM_DECLs.

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

11 years agoiq2000.h (call_used_regs): Remove definition.
Steven Bosscher [Wed, 17 Oct 2012 09:51:02 +0000 (09:51 +0000)]
iq2000.h (call_used_regs): Remove definition.

* config/iq2000/iq2000.h (call_used_regs): Remove definition.

From-SVN: r192528

11 years agoAdd missing entry.
Eric Botcazou [Wed, 17 Oct 2012 07:03:35 +0000 (07:03 +0000)]
Add missing entry.

From-SVN: r192527

11 years agodf-problems.c (df_kill_notes): Split up in two functions.
Steven Bosscher [Wed, 17 Oct 2012 06:15:38 +0000 (06:15 +0000)]
df-problems.c (df_kill_notes): Split up in two functions.

* 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

11 years agoextend.texi (Return Address): Change __builtin_extract_return_address to __builtin_ex...
Ian Lance Taylor [Wed, 17 Oct 2012 05:18:02 +0000 (05:18 +0000)]
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

11 years agoDaily bump.
GCC Administrator [Wed, 17 Oct 2012 00:17:59 +0000 (00:17 +0000)]
Daily bump.

From-SVN: r192522

11 years agoRemove debug code accidentially checked in with last commit.
Joern Rennecke [Tue, 16 Oct 2012 23:38:24 +0000 (00:38 +0100)]
Remove debug code accidentially checked in with last commit.

From-SVN: r192519

11 years agore PR rtl-optimization/54870 (gfortran.dg/array_constructor_4.f90 FAILs)
Eric Botcazou [Tue, 16 Oct 2012 22:49:07 +0000 (22:49 +0000)]
re PR rtl-optimization/54870 (gfortran.dg/array_constructor_4.f90 FAILs)

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

11 years agortl.h (get_call_rtx_from): New prototype.
Steven Bosscher [Tue, 16 Oct 2012 22:05:17 +0000 (22:05 +0000)]
rtl.h (get_call_rtx_from): New prototype.

* 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

11 years ago2012-10-16 Tom de Vries <tom@codesourcery.com>
Tom de Vries [Tue, 16 Oct 2012 20:32:45 +0000 (20:32 +0000)]
2012-10-16  Tom de Vries  <tom@codesourcery.com>

* 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

11 years agoformatter.h (_Debug_msg_id): Add __msg_bucket_index_oob.
François Dumont [Tue, 16 Oct 2012 19:57:03 +0000 (19:57 +0000)]
formatter.h (_Debug_msg_id): Add __msg_bucket_index_oob.

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

11 years agoloop-doloop.c (doloop_modify): Pass doloop_end pattern to gen_doloop_begin.
Joern Rennecke [Tue, 16 Oct 2012 16:11:00 +0000 (16:11 +0000)]
loop-doloop.c (doloop_modify): Pass doloop_end pattern to gen_doloop_begin.

        * 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

11 years agore PR c/53063 (encode group options in the .opt files)
Manuel López-Ibáñez [Tue, 16 Oct 2012 15:38:58 +0000 (15:38 +0000)]
re PR c/53063 (encode group options in the .opt files)

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

11 years agore PR c/53063 (encode group options in the .opt files)
Manuel López-Ibáñez [Tue, 16 Oct 2012 15:31:46 +0000 (15:31 +0000)]
re PR c/53063 (encode group options in the .opt files)

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

11 years agoreload.c (find_reloads_subreg_address): Remove FORCE_REPLACE parameter.
Ulrich Weigand [Tue, 16 Oct 2012 13:26:31 +0000 (13:26 +0000)]
reload.c (find_reloads_subreg_address): Remove FORCE_REPLACE parameter.

* 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

11 years agore PR fortran/50981 ([OOP] Wrong-code for scalarizing ELEMENTAL call with absent...
Tobias Burnus [Tue, 16 Oct 2012 13:02:02 +0000 (15:02 +0200)]
re PR fortran/50981 ([OOP] Wrong-code for scalarizing ELEMENTAL call with absent OPTIONAL argument)

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

11 years agore PR debug/54796 (Non-addressable stack parameter debug quality regression)
Jakub Jelinek [Tue, 16 Oct 2012 11:21:20 +0000 (13:21 +0200)]
re PR debug/54796 (Non-addressable stack parameter debug quality regression)

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

11 years agore PR tree-optimization/54889 (Revision 191983 gives compfail for 465.tonto in SPEC...
Jakub Jelinek [Tue, 16 Oct 2012 11:19:37 +0000 (13:19 +0200)]
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

11 years agocombine.c (record_dead_and_set_regs): Iterate over hard register set with a hard_reg_...
Steven Bosscher [Tue, 16 Oct 2012 07:46:11 +0000 (07:46 +0000)]
combine.c (record_dead_and_set_regs): Iterate over hard register set with a hard_reg_set_iterator.

* 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

11 years agoc-ada-spec.c (ADA_HOST_WIDE_INT_PRINT_DOUBLE_HEX): Define.
Eric Botcazou [Tue, 16 Oct 2012 07:13:37 +0000 (07:13 +0000)]
c-ada-spec.c (ADA_HOST_WIDE_INT_PRINT_DOUBLE_HEX): Define.

* 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

11 years ago[multiple changes]
Easwaran Raman [Tue, 16 Oct 2012 05:28:08 +0000 (05:28 +0000)]
[multiple changes]

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

11 years agoDaily bump.
GCC Administrator [Tue, 16 Oct 2012 00:18:27 +0000 (00:18 +0000)]
Daily bump.

From-SVN: r192486

11 years agobuiltin-apply-2.c, [...]: Correct STACK_ARGUMENTS_SIZE for MMIX.
Hans-Peter Nilsson [Mon, 15 Oct 2012 22:38:37 +0000 (22:38 +0000)]
builtin-apply-2.c, [...]: Correct STACK_ARGUMENTS_SIZE for MMIX.

* gcc.dg/torture/stackalign/builtin-apply-2.c,
gcc.dg/builtin-apply2.c: Correct STACK_ARGUMENTS_SIZE for MMIX.

From-SVN: r192483

11 years agore PR target/54925 (Segfault in gen_split_910)
Oleg Endo [Mon, 15 Oct 2012 22:15:18 +0000 (22:15 +0000)]
re PR target/54925 (Segfault in gen_split_910)

PR target/54925
* gcc.c-torture/compile/pr54925.c: New.

From-SVN: r192482

11 years agore PR target/51244 ([SH] Inefficient conditional branch and code around T bit)
Oleg Endo [Mon, 15 Oct 2012 22:08:07 +0000 (22:08 +0000)]
re PR target/51244 ([SH] Inefficient conditional branch and code around T bit)

PR target/51244
* config/sh/sh-protos.h (set_of_reg): New struct.
(sh_find_set_of_reg, sh_is_logical_t_store_expr,
sh_try_omit_signzero_extend):  Declare...
* config/sh/sh.c (sh_find_set_of_reg, sh_is_logical_t_store_expr,
sh_try_omit_signzero_extend): ...these new functions.
* config/sh/sh.md (*logical_op_t): New insn_and_split.
(*zero_extend<mode>si2_compact): Use sh_try_omit_signzero_extend
in splitter.
(*extend<mode>si2_compact_reg): Convert to insn_and_split.
Use sh_try_omit_signzero_extend in splitter.
(*mov<mode>_reg_reg): Disallow t_reg_operand as operand 1.
(*cbranch_t): Rewrite combine part in splitter using new
sh_find_set_of_reg function.

PR target/51244
* gcc.target/sh/pr51244-17.c: New.

From-SVN: r192481

11 years agore PR target/54760 ([SH] Add __builtin_thread_pointer, __builtin_set_thread_pointer)
Oleg Endo [Mon, 15 Oct 2012 22:04:37 +0000 (22:04 +0000)]
re PR target/54760 ([SH] Add __builtin_thread_pointer, __builtin_set_thread_pointer)

PR target/54760
* config/sh/sh.c (sh_find_base_reg_disp): Stop searching insns when
hitting a call insn if GBR is marked as call used.
* config/sh/iterators.md (QIHISIDI): New mode iterator.
* config/sh/predicates.md (gbr_address_mem): New predicate.
* config/sh/sh.md (*movdi_gbr_load, *movdi_gbr_store): New
insn_and_split.
Use QIHISIDI instead of QIHISI in unnamed GBR addressing splits.

PR target/54760
* gcc.target/sh/pr54760-2.c: Add long long and unsigned long long test
functions.
* gcc.target/sh/pr54760-4.c: New.

From-SVN: r192480

11 years agosh.c: Update function attribute comments.
Oleg Endo [Mon, 15 Oct 2012 22:01:26 +0000 (22:01 +0000)]
sh.c: Update function attribute comments.

* config/sh/sh.c: Update function attribute comments.
* doc/extend.texi (function_vector): Rephrase SH2A specific part.
(nosave_low_regs, renesas, trapa_handler): Document SH specific
attributes.
(sp_switch, trap_exit): Add to index.

From-SVN: r192479

11 years agore PR target/34777 (uClibc-0.9.29 compilation error for sh4 arch with gcc-4.x)
Oleg Endo [Mon, 15 Oct 2012 21:59:21 +0000 (21:59 +0000)]
re PR target/34777 (uClibc-0.9.29 compilation error for sh4 arch with gcc-4.x)

PR target/34777
* gcc.target/sh/torture/sh-torture.exp: New.
* gcc.target/sh/torture/pr34777.c: New.

From-SVN: r192478

11 years agoconfig.gcc: Match arm*-*-linux-* for ARM Linux/GNU.
Matthias Klose [Mon, 15 Oct 2012 21:12:23 +0000 (21:12 +0000)]
config.gcc: Match arm*-*-linux-* for ARM Linux/GNU.

gcc/
2012-10-15  Matthias Klose  <doko@ubuntu.com>

        * config.gcc: Match arm*-*-linux-* for ARM Linux/GNU.
        * doc/install.texi: Use arm-*-*linux-* instead of arm-*-*linux-gnueabi.

gcc/testsuite/
2012-10-15  Matthias Klose  <doko@ubuntu.com>

        * lib/target-supports.exp (check_profiling_available): Match
        arm*-*-linux-* for ARM Linux/GNU.
        * g++.dg/torture/predcom-1.C: Match arm*-*-linux-* for ARM Linux/GNU.
        * gfortran.dg/enum_10.f90: Likewise.
        * gfortran.dg/enum_9.f90: Likewise.
        * gcc.target/arm/synchronize.c: Likewise.
        * g++.old-deja/g++.jason/enum6.C: Likewise.
        * g++.old-deja/g++.other/enum4.C: Likewise.
        * g++.old-deja/g++.law/enum9.C: Likewise.

gcc/ada/
2012-10-15  Matthias Klose  <doko@ubuntu.com>

        * gcc-interface/Makefile.in: Match arm*-*-linux-*eabi* for
        ARM Linux/GNU.

libgcc/
2012-10-15  Matthias Klose  <doko@ubuntu.com>

        * config.host: Match arm*-*-linux-* for ARM Linux/GNU.

libstdc++-v3/
2012-10-15  Matthias Klose  <doko@ubuntu.com>

        * configure.host: Match arm*-*-linux-* for ARM Linux/GNU.
        * testsuite/20_util/make_signed/requirements/typedefs-2.cc: Likewise.
        * testsuite/20_util/make_unsigned/requirements/typedefs-2.cc: Likewise.

libjava/
2012-10-15  Matthias Klose  <doko@ubuntu.com>

        * configure.ac: Match arm*-*-linux-* for ARM Linux/GNU.
        * configure: Regenerate.

From-SVN: r192475

11 years agofiles.c (read_file_guts, [...]): Free memory before returning.
Tobias Burnus [Mon, 15 Oct 2012 20:08:57 +0000 (22:08 +0200)]
files.c (read_file_guts, [...]): Free memory before returning.

2012-10-15  Tobias Burnus  <burnus@net-b.de>

        * files.c (read_file_guts, _cpp_save_file_entries): Free memory
        before returning.
        * lex.c (warn_about_normalization): Ditto.
        * mkdeps.c (deps_save): Ditto.
        * pch.c (cpp_valid_state): Ditto.

From-SVN: r192474

11 years agothread_local-cse.C: Move dg-do line.
Richard Sandiford [Mon, 15 Oct 2012 19:58:03 +0000 (19:58 +0000)]
thread_local-cse.C: Move dg-do line.

gcc/testsuite/
* g++.dg/tls/thread_local-cse.C: Move dg-do line.
* g++.dg/tls/thread_local-wrap4.C: Require fpic.

From-SVN: r192473

11 years ago2012-10-15 Paolo Carlini <paolo.carlini@oracle.com>
Paolo Carlini [Mon, 15 Oct 2012 19:18:15 +0000 (19:18 +0000)]
2012-10-15  Paolo Carlini  <paolo.carlini@oracle.com>

* Fix typo in ChangeLog entry.

From-SVN: r192472

11 years agore PR c++/17805 (too liberal operator lookup)
Alexandre Oliva [Mon, 15 Oct 2012 19:15:48 +0000 (19:15 +0000)]
re PR c++/17805 (too liberal operator lookup)

/cp
2012-10-15  Alexandre Oliva  <aoliva@redhat.com>
    Paolo Carlini  <paolo.carlini@oracle.com>

PR c++/17805
* call.c (build_new_op): Filter out operator functions that don't
satisfy enum-conversion match requirements.

/testsuite
2012-10-15  Alexandre Oliva  <aoliva@redhat.com>
    Paolo Carlini  <paolo.carlini@oracle.com>

PR c++/17805
* g++.dg/overload/operator6.C: New.

Co-Authored-By: Paolo Carlini <paolo.carlini@oracle.com>
From-SVN: r192471

11 years agoPR c++/50080 (again)
Paolo Carlini [Mon, 15 Oct 2012 19:13:41 +0000 (19:13 +0000)]
PR c++/50080 (again)

/cp
2012-10-15  Paolo Carlini  <paolo.carlini@oracle.com>

PR c++/50080 (again)
* parser.c (cp_parser_optional_template_keyword): When -pedantic
and C++98 mode restore pre-Core/468 behavior.

/testsuite
2012-10-15  Paolo Carlini  <paolo.carlini@oracle.com>

PR c++/50080 (again)
* g++.dg/parse/tmpl-outside2.C: Tweak, error in C++98.
* g++.dg/parse/tmpl-outside1.C: Likewise.
* g++.dg/template/qualttp18.C: Likewise.
* g++.old-deja/g++.pt/memtemp87.C: Likewise.
* g++.old-deja/g++.pt/overload13.C: Likewise.

From-SVN: r192470

11 years ago* testsuite/ChangeLog: Missing from my previous commit.
Uros Bizjak [Mon, 15 Oct 2012 19:10:52 +0000 (21:10 +0200)]
* testsuite/ChangeLog: Missing from my previous commit.

From-SVN: r192469

11 years agosse.md (UNSPEC_MOVU): Remove.
Uros Bizjak [Mon, 15 Oct 2012 18:42:03 +0000 (20:42 +0200)]
sse.md (UNSPEC_MOVU): Remove.

* config/i386/sse.md (UNSPEC_MOVU): Remove.
(UNSPEC_LOADU): New.
(UNSPEC_STOREU): Ditto.
(<sse>_movu<ssemodesuffix><avxsizesuffix>): Split to ...
(<sse>_loadu<ssemodesuffix><avxsizesuffix>): ... this and ...
(<sse>_storeu<ssemodesuffix><avxsizesuffix>) ... this.
(<sse2>_movdqu<avxsizesuffix>): Split to ...
(<sse2>_loaddqu<avxsizesuffix>): ... this and ...
(<sse2>_storedqu<avxsizesuffix>): ... this.
(*sse4_2_pcmpestr_unaligned): Update.
(*sse4_2_pcmpistr_unaligned): Ditto.

* config/i386/i386.c (ix86_avx256_split_vector_move_misalign): Use
gen_avx_load{dqu,ups,upd}256 to load from unaligned memory and
gen_avx_store{dqu,ups,upd}256 to store to unaligned memory.
(ix86_expand_vector_move_misalign): Use gen_sse_loadups or
gen_sse2_load{dqu,upd} to load from unaligned memory and
gen_sse_loadups or gen_sse2_store{dqu,upd}256 to store to
unaligned memory.
(struct builtin_description bdesc_spec) <IX86_BUILTIN_LOADUPS>:
Use CODE_FOR_sse_loadups.
<IX86_BUILTIN_LOADUPD>: Use CODE_FOR_sse2_loadupd.
<IX86_BUILTIN_LOADDQU>: Use CODE_FOR_sse2_loaddqu.
<IX86_BUILTIN_STOREUPS>: Use CODE_FOR_sse_storeups.
<IX86_BUILTIN_STOREUPD>: Use CODE_FOR_sse2_storeupd.
<IX86_BUILTIN_STOREDQU>: Use CODE_FOR_sse2_storedqu.
<IX86_BUILTIN_LOADUPS256>: Use CODE_FOR_avx_loadups256.
<IX86_BUILTIN_LOADUPD256>: Use CODE_FOR_avx_loadupd256.
<IX86_BUILTIN_LOADDQU256>: Use CODE_FOR_avx_loaddqu256.
<IX86_BUILTIN_STOREUPS256>: Use CODE_FOR_avx_storeups256.
<IX86_BUILTIN_STOREUPD256>: Use CODE_FOR_avx_storeupd256.
<IX86_BUILTIN_STOREDQU256>: Use CODE_FOR_avx_storedqu256.

testsuite/ChangeLog:

* gcc.target/i386/avx256-unaligned-load-1.c: Update asm scan patterns.
* gcc.target/i386/avx256-unaligned-load-2.c: Ditto.
* gcc.target/i386/avx256-unaligned-load-3.c: Ditto.
* gcc.target/i386/avx256-unaligned-load-4.c: Ditto.
* gcc.target/i386/avx256-unaligned-store-1.c: Ditto.
* gcc.target/i386/avx256-unaligned-store-2.c: Ditto.
* gcc.target/i386/avx256-unaligned-store-3.c: Ditto.
* gcc.target/i386/avx256-unaligned-store-4.c: Ditto.

From-SVN: r192468

11 years agore PR c++/50080 ([DR 468] error: 'template' (as a disambiguator) is only allowed...
Paolo Carlini [Mon, 15 Oct 2012 16:47:52 +0000 (16:47 +0000)]
re PR c++/50080 ([DR 468] error: 'template' (as a disambiguator) is only allowed within templates)

/cp
2012-10-15  Paolo Carlini  <paolo.carlini@oracle.com>

PR c++/50080
* parser.c (cp_parser_optional_template_keyword): Implement
Core/468, allow outside template.

/testsuite
2012-10-15  Paolo Carlini  <paolo.carlini@oracle.com>

PR c++/50080
* g++.dg/parse/tmpl-outside2.C: New.
* g++.dg/parse/tmpl-outside1.C: Adjust.
* g++.dg/template/qualttp18.C: Likewise.
* g++.old-deja/g++.pt/memtemp87.C: Likewise.
* g++.old-deja/g++.pt/overload13.C: Likewise.

From-SVN: r192465

11 years agoCleanup comments in alias.c
Dodji Seketeli [Mon, 15 Oct 2012 16:06:42 +0000 (16:06 +0000)]
Cleanup comments in alias.c

While reading alias.c, it seemed to me that some comments could use
some cleanups.

gcc/

* alias.c: Cleanup comments.

From-SVN: r192463

11 years agore PR middle-end/54915 (ICE: verify_gimple failed: type mismatch in vector permute...
Marc Glisse [Mon, 15 Oct 2012 14:38:04 +0000 (16:38 +0200)]
re PR middle-end/54915 (ICE: verify_gimple failed: type mismatch in vector permute expression)

2012-10-15  Marc Glisse  <marc.glisse@inria.fr>

PR tree-optimization/54915

gcc/
* tree-ssa-forwprop.c (simplify_vector_constructor): Check
argument's type.

gcc/testsuite/
* gcc.dg/tree-ssa/pr54915.c: New testcase.

From-SVN: r192461

11 years agodata-streamer.h (bp_pack_string_with_length): New function.
Richard Biener [Mon, 15 Oct 2012 14:22:37 +0000 (14:22 +0000)]
data-streamer.h (bp_pack_string_with_length): New function.

2012-10-15  Richard Biener  <rguenther@suse.de>

* data-streamer.h (bp_pack_string_with_length): New function.
(bp_pack_string): Likewise.
(bp_unpack_indexed_string): Likewise.
(bp_unpack_string): Likewise.
* data-streamer-out.c (bp_pack_string_with_length): Likewise.
(bp_pack_string): Likewise.
* data-streamer-in.c (bp_unpack_indexed_string): Likewise.
(bp_unpack_string): Likewise.
* tree-streamer-out.c (pack_ts_translation_unit_decl_value_fields):
Pack TRANSLATION_UNIT_LANGUAGE here, not ...
(write_ts_translation_unit_decl_tree_pointers): ... here.  Remove.
(streamer_pack_tree_bitfields): Adjust.
(streamer_write_tree_body): Likewise.
* tree-streamer-in.c (unpack_ts_translation_unit_decl_value_fields):
Unpack TRANSLATION_UNIT_LANGUAGE here, not ...
(lto_input_ts_translation_unit_decl_tree_pointers): ... here.  Remove.
(unpack_value_fields): Adjust.
(streamer_read_tree_body): Likewise.

From-SVN: r192460

11 years agogthr.m4: New.
Pavel Chupin [Mon, 15 Oct 2012 13:10:30 +0000 (13:10 +0000)]
gthr.m4: New.

    * config/gthr.m4: New. Define GCC_AC_THREAD_HEADER.
    * libgcc/configure: Regenerate.
    * libgcc/configure.ac: Replace code with GCC_AC_THREAD_HEADER use.
    * libstdc++-v3/Makefile.in: Regenerate.
    * libstdc++-v3/acinclude.m4: Replace code with GCC_AC_THREAD_HEADER use.
    * libstdc++-v3/configure: Regenerate.
    * libstdc++-v3/doc/Makefile.in: Regenerate.
    * libstdc++-v3/include/Makefile.am: Regenerate.
    * libstdc++-v3/include/Makefile.in: Rename variable.
    * libstdc++-v3/libsupc++/Makefile.in: Regenerate.
    * libstdc++-v3/po/Makefile.in: Regenerate.
    * libstdc++-v3/python/Makefile.in: Regenerate.
    * libstdc++-v3/src/Makefile.in: Regenerate.
    * libstdc++-v3/src/c++11/Makefile.in: Regenerate.
    * libstdc++-v3/src/c++98/Makefile.in: Regenerate.
    * libstdc++-v3/testsuite/Makefile.in: Regenerate.

From-SVN: r192458

11 years agogenoutput.c (process_template): Process '*' in '@' alternatives.
J"orn Rennecke [Mon, 15 Oct 2012 12:44:40 +0000 (12:44 +0000)]
genoutput.c (process_template): Process '*' in '@' alternatives.

* genoutput.c (process_template): Process '*' in '@' alternatives.
* doc/md.texi (node Output Statement): Provide example for the above.

From-SVN: r192457

11 years agoUpdate Copyright years.
Joern Rennecke [Mon, 15 Oct 2012 12:38:56 +0000 (13:38 +0100)]
Update Copyright years.

From-SVN: r192456

11 years agore PR tree-optimization/54920 (segfault in tree-ssa-pre.c during Firefox build)
Richard Guenther [Mon, 15 Oct 2012 11:22:49 +0000 (11:22 +0000)]
re PR tree-optimization/54920 (segfault in tree-ssa-pre.c during Firefox build)

2012-10-15  Richard Guenther  <rguenther@suse.de>

PR tree-optimization/54920
* tree-ssa-pre.c (create_expression_by_pieces): Properly
allocate temporary storage for all NARY elements.

* gcc.dg/torture/pr54920.c: New testcase.

From-SVN: r192454

11 years ago* web.c (union_match_dups): Properly handle OP_INOUT match_dups.
Joern Rennecke [Mon, 15 Oct 2012 11:20:02 +0000 (11:20 +0000)]
* web.c (union_match_dups): Properly handle OP_INOUT match_dups.

From-SVN: r192453

11 years agoexpr.c (expand_expr_real_1): Do not unnecessarily copy the object in the MEM_P case.
Eric Botcazou [Mon, 15 Oct 2012 10:48:17 +0000 (10:48 +0000)]
expr.c (expand_expr_real_1): Do not unnecessarily copy the object in the MEM_P case.

* expr.c (expand_expr_real_1) <VIEW_CONVERT_EXPR>: Do not unnecessarily
copy the object in the MEM_P case.

From-SVN: r192452

11 years agotree-streamer-out.c (streamer_pack_tree_bitfields): Back BINFO_BASE_ACCESSES and...
Richard Guenther [Mon, 15 Oct 2012 10:39:59 +0000 (10:39 +0000)]
tree-streamer-out.c (streamer_pack_tree_bitfields): Back BINFO_BASE_ACCESSES and CONSTRUCTOR lengths here.

2012-10-15  Richard Guenther  <rguenther@suse.de>

* tree-streamer-out.c (streamer_pack_tree_bitfields): Back
BINFO_BASE_ACCESSES and CONSTRUCTOR lengths here.
(streamer_write_chain): Write TREE_CHAIN as null-terminated list.
(write_ts_exp_tree_pointers): Adjust.
(write_ts_binfo_tree_pointers): Likewise.
(write_ts_constructor_tree_pointers): Likewise.
* tree-streamer-in.c (streamer_read_chain): Read TREE_CHAIN as
null-terminated list.
(unpack_value_fields): Unpack BINFO_BASE_ACCESSES and
CONSTRUCTOR lengths and materialize the arrays.
(lto_input_ts_exp_tree_pointers): Adjust.
(lto_input_ts_binfo_tree_pointers): Likewise.
(lto_input_ts_constructor_tree_pointers): Likewise.

From-SVN: r192451

11 years agore PR target/54908 (misc regressions on emutls targets remain from dynamic initializa...
Jason Merrill [Mon, 15 Oct 2012 07:32:13 +0000 (03:32 -0400)]
re PR target/54908 (misc regressions on emutls targets remain from dynamic initialization of non-function-local TLS variables)

PR target/54908
* libsupc++/atexit_thread.cc: Rewrite to keep the cleanup list
with get/setspecific.  Destroy the key on dlclose.

From-SVN: r192449

11 years agoImplement C++11 inheriting constructors.
Jason Merrill [Mon, 15 Oct 2012 07:32:03 +0000 (03:32 -0400)]
Implement C++11 inheriting constructors.

* cp-tree.h (cpp0x_warn_str): Add CPP0X_INHERITING_CTORS.
(DECL_INHERITED_CTOR_BASE, SET_DECL_INHERITED_CTOR_BASE): New.
(special_function_kind): Add sfk_inheriting_constructor.
* class.c (add_method): An inheriting ctor is hidden by a
user-declared one.
(one_inheriting_sig, one_inherited_ctor): New.
(add_implicitly_declared_members): Handle inheriting ctors.
* error.c (maybe_warn_cpp0x): Handle CPP0X_INHERITING_CTORS.
* init.c (emit_mem_initializers): Don't set LOOKUP_DEFAULTED
for an inheriting constructor.
* method.c (type_has_trivial_fn): Handle sfk_inheriting_constructor.
(type_set_nontrivial_flag): Likewise.
(add_one_base_init): Split out from...
(do_build_copy_constructor): ...here.  Handle inheriting constructors.
(locate_fn_flags): Handle a list of arg types.
(synthesized_method_walk): Handle inheriting constructors.
(maybe_explain_implicit_delete): Likewise.
(deduce_inheriting_ctor): New.
(implicitly_declare_fn): Handle inheriting constructors.
* name-lookup.c (push_class_level_binding_1): An inheriting constructor
does not declare the base's name.
(do_class_using_decl): Allow inheriting constructors.
* pt.c (template_parms_to_args): Split from current_template_args.
(add_inherited_template_parms): New.
(tsubst_decl): Handle inheriting constructors.
* tree.c (special_function_p): Handle inheriting constructors.

Co-Authored-By: Ville Voutilainen <ville.voutilainen@gmail.com>
From-SVN: r192448

11 years agoDaily bump.
GCC Administrator [Mon, 15 Oct 2012 00:18:17 +0000 (00:18 +0000)]
Daily bump.

From-SVN: r192445

11 years agommix.c (mmix_opposite_regno): Handle the return-value register too.
Hans-Peter Nilsson [Sun, 14 Oct 2012 20:59:12 +0000 (20:59 +0000)]
mmix.c (mmix_opposite_regno): Handle the return-value register too.

* config/mmix/mmix.c (mmix_opposite_regno): Handle the
return-value register too.

From-SVN: r192441

11 years agore PR rtl-optimization/38711 (ira should not be using df-lr except at -O1.)
Steven Bosscher [Sun, 14 Oct 2012 19:30:59 +0000 (19:30 +0000)]
re PR rtl-optimization/38711 (ira should not be using df-lr except at -O1.)

PR rtl-optimization/38711
* df.h (df_get_live_out, df_get_live_in): Make static inline functions.
* df-problems.c (df_get_live_out, df_get_live_in): Moved to df.h.
* ira-lives.c (process_bb_node_lives): Use df_get_live_out instead of
DF_LR_OUT.
* ira-build.c (create_bb_allocnos): Likewise.
(create_loop_allocnos): Likewise, and use df_get_live_in instead of
DF_LR_IN.
* ira-emit.c (generate_edge_moves): Likewise.
(add_ranges_and_copies): Likewise.
* ira-color.c (ira_loop_edge_freq): Use df_get_live_out instead of
DF_LR_OUT, and df_get_live_in instead of DF_LR_IN.
* ira.c (mark_elimination): Update DF_LR and DF_LIVE.
(build_insn_chain): Use df_get_live_out instead of DF_LR_OUT.
(do_reload): Remove the DF_LIVE problem for -O1.

From-SVN: r192440

11 years agore PR rtl-optimization/54919 (gcc.dg/torture/pr54877.c FAILs with -fvariable-expansio...
Steven Bosscher [Sun, 14 Oct 2012 19:29:18 +0000 (19:29 +0000)]
re PR rtl-optimization/54919 (gcc.dg/torture/pr54877.c FAILs with -fvariable-expansion-in-unroller)

gcc/
PR rtl-optimization/54919
* loop-unroll.c (struct var_to_expand): Remove accum_pos field.
(analyze_insn_to_expand_var): Do not record accum_pos.
(expand_var_during_unrolling): Use validate_replace_rtx_group to
perform replacement of all references to SET_DEST (set) with the
new register, including references in REG_EQUAL notes.
(insert_var_expansion_initialization): Insert initializatio insns
at the bottom of the pre-header of the loop.

testsuite/
PR rtl-optimization/54919
* gcc.dg/pr54919.c: New testcase.

From-SVN: r192439

11 years agore PR c++/53581 (Segmentation fault when enabling -std=c++0x on template code)
Paolo Carlini [Sun, 14 Oct 2012 18:24:32 +0000 (18:24 +0000)]
re PR c++/53581 (Segmentation fault when enabling -std=c++0x on template code)

2012-10-14  Paolo Carlini  <paolo.carlini@oracle.com>

PR c++/53581
* g++.dg/template/crash113.C: New.

From-SVN: r192438

11 years agotree-ssa-loop-niter.c (estimate_numbers_of_iterations_loop): Do not predict loops...
Jan Hubicka [Sun, 14 Oct 2012 16:25:49 +0000 (16:25 +0000)]
tree-ssa-loop-niter.c (estimate_numbers_of_iterations_loop): Do not predict loops with multiple exits realistically.

* tree-ssa-loop-niter.c (estimate_numbers_of_iterations_loop): Do not
predict loops with multiple exits realistically.
* cfgloopanal.c (single_likely_exit): New function.

From-SVN: r192434

11 years agotree-ssa-loop-niter.c (estimate_numbers_of_iterations_loop): Do not predict loops...
Jan Hubicka [Sun, 14 Oct 2012 16:18:26 +0000 (18:18 +0200)]
tree-ssa-loop-niter.c (estimate_numbers_of_iterations_loop): Do not predict loops with multiple exits realistically.

* tree-ssa-loop-niter.c (estimate_numbers_of_iterations_loop): Do not
predict loops with multiple exits realistically.
* cfgloopanal.c (single_likely_exit): New function.

* gcc.dg/unroll_5.c: New testcase.

From-SVN: r192433

11 years agore PR c++/52643 (Stack overflow ICE in cc1plus when templates, exceptions, and contin...
Paolo Carlini [Sun, 14 Oct 2012 13:40:55 +0000 (13:40 +0000)]
re PR c++/52643 (Stack overflow ICE in cc1plus when templates, exceptions, and continue out of try used)

2012-10-14  Paolo Carlini  <paolo.carlini@oracle.com>

PR c++/52643
* g++.dg/opt/pr52643.C: New.

From-SVN: r192432

11 years agoalpha.md: Remove empty predicates and/or constraints.
Uros Bizjak [Sun, 14 Oct 2012 12:50:45 +0000 (14:50 +0200)]
alpha.md: Remove empty predicates and/or constraints.

* config/alpha/alpha.md: Remove empty predicates and/or constraints.
* config/alpha/sync.md: Ditto.

From-SVN: r192431

11 years agoDaily bump.
GCC Administrator [Sun, 14 Oct 2012 00:18:17 +0000 (00:18 +0000)]
Daily bump.

From-SVN: r192430

11 years agoalpha.md (I24MODE): New mode iterator.
Uros Bizjak [Sat, 13 Oct 2012 21:39:29 +0000 (23:39 +0200)]
alpha.md (I24MODE): New mode iterator.

* config/alpha/alpha.md (I24MODE): New mode iterator.
(any_divmod): New code iterator.
(<code>si3): Macroize expander from {div,mod,udiv,umod}si3 using
any_divmod code iterator.
(<code>si3): Macroize expander from {div,mod,udiv,umod}di3 using
any_divmod code iterator.
(extendqi<mode>2): Macroize insn from extendqi{hi,si}2 using
I24MODE mode iterator.
(unaligned_store<mode>): Macroize expander from unaligned_store{qi,hi}
using I12MODE mode iterator.
(mov<mode>): Macroize expander from mov{qi,hi} using
I12MODE mode iterator.

From-SVN: r192427

11 years agore PR rtl-optimization/54871 (gfortran.dg/vector_subscript_1.f90 FAILs)
Eric Botcazou [Sat, 13 Oct 2012 20:22:07 +0000 (20:22 +0000)]
re PR rtl-optimization/54871 (gfortran.dg/vector_subscript_1.f90 FAILs)

PR rtl-optimization/54871
* loop-iv.c (simplify_using_initial_values): When scanning previous
basic blocks, prune the recorded conditions if the current insn was
not used to make a replacement.

* loop-unroll.c (decide_unroll_constant_iterations): Clean up message.
(unroll_loop_constant_iterations): Clarify head comment.
(decide_unroll_runtime_iterations): Clean up message.
(unroll_loop_runtime_iterations): Clarify head comment.
(decide_peel_simple): Clean up message.
(peel_loop_simple): Clarify head comment.
(decide_unroll_stupid): Clean up message.
(unroll_loop_stupid): Clarify head comment.

From-SVN: r192426

11 years agore PR gcov-profile/44728 (gcov chokes when "." is present in DIR argument to -o flag)
Andreas Schwab [Sat, 13 Oct 2012 18:41:08 +0000 (18:41 +0000)]
re PR gcov-profile/44728 (gcov chokes when "." is present in DIR argument to -o flag)

PR gcov-profile/44728
* gcov.c (create_file_names): When stripping extension only look
at base name.

From-SVN: r192425

11 years agoloop-iv.c (determine_max_iter): Fix handling of AND.
Jan Hubicka [Sat, 13 Oct 2012 16:50:03 +0000 (18:50 +0200)]
loop-iv.c (determine_max_iter): Fix handling of AND.

* loop-iv.c (determine_max_iter): Fix handling of AND.
(iv_number_of_iterations): Record upper bounds as unsigned
values.

From-SVN: r192424

11 years agoira.c (ira): Set current_loops to &ira_loops before recording loop exits.
Steven Bosscher [Sat, 13 Oct 2012 13:21:34 +0000 (13:21 +0000)]
ira.c (ira): Set current_loops to &ira_loops before recording loop exits.

* ira.c (ira): Set current_loops to &ira_loops before recording
loop exits.  Release recorded exits and loops early.

From-SVN: r192423

11 years agobuiltins.c (expand_builtin_set_thread_pointer): Use create_input_operand() instead...
Chung-Lin Tang [Sat, 13 Oct 2012 09:28:26 +0000 (09:28 +0000)]
builtins.c (expand_builtin_set_thread_pointer): Use create_input_operand() instead of create_fixed_operand().

2012-10-13  Chung-Lin Tang  <cltang@codesourcery.com>

* builtins.c (expand_builtin_set_thread_pointer): Use
create_input_operand() instead of create_fixed_operand().

From-SVN: r192422

11 years agoalpha.md (FMODE): New mode iterator.
Uros Bizjak [Sat, 13 Oct 2012 08:36:21 +0000 (10:36 +0200)]
alpha.md (FMODE): New mode iterator.

* config/alpha/alpha.md (FMODE): New mode iterator.
(modesuffix): Handle SF and DF modes.
(opmode): New mode attribute.
(abs<mode>2): Macroize insn from abs{sf,df}2 using FMODE mode iterator.
(*nabs<mode>2): Macroize insn from *nabs{sf,df}2 using
FMODE mode iterator.
(neg<mode>2): Macroize insn from neg{sf,df}2 using FMODE mode iterator.
(copysign<mode>3): Macroize insn from copysign{sf,df}3 using
FMODE mode iterator.
(*ncopysign<mode>3): Macroize insn from *ncopysign{sf,df}3 using
FMODE mode iterator.
(*add<mode>3_ieee): Macroize insn from *add{sf,df}_ieee using
FMODE mode iterator.
(add<mode>3): Macroize insn from add{sf,df}3 using FMODE mode iterator.
(*sub<mode>3_ieee): Macroize insn from *sub{sf,df}3_ieee using
FMODE mode iterator.
(sub<mode>3): Macroize insn from sub{sf,df}3 using FMODE mode iterator.
(*mul<mode>3_ieee): Macroize insn from *mul{sf,df}3_ieee using
FMODE mode iterator.
(mul<mode>3): Macroize insn from mul{sf,df}3 using FMODE mode iterator.
(*div<mode>3_ieee): Macroize insn from *div{sf,df}3_ieee using
FMODE mode iterator.
(div<mode>3): Macroize insn from div{sf,df}3 using FMODE mode iterator.
(*sqrt<mode>2_ieee): Macroize insn from *sqrt{sf,df}2_ieee using
FMODE mode iterator.
(sqrt<mode>2): Macroize insn from sqrt{sf,df}2
using FMODE mode iterator.
(*mov<mode>cc_internal): Macroize insn from *mov{sf,df}cc_internal
using FMODE mode iterator.
(mov<mode>cc): Macroize expander from mov{sf,df}cc
using FMODE mode iterator.

From-SVN: r192421

11 years agoDaily bump.
GCC Administrator [Sat, 13 Oct 2012 00:18:42 +0000 (00:18 +0000)]
Daily bump.

From-SVN: r192420

11 years agore PR target/54602 ([SH] Register pop insn not put in rts delay slot)
Oleg Endo [Fri, 12 Oct 2012 23:22:48 +0000 (23:22 +0000)]
re PR target/54602 ([SH] Register pop insn not put in rts delay slot)

PR target/54602
* config/sh/sh.md: Correct define_delay for return insns.
(*movsi_pop): Delete.

PR target/54602
* gcc.target/sh/pr54602-1.c: New.
* gcc.target/sh/pr54602-2.c: New.
* gcc.target/sh/pr54602-3.c: New.
* gcc.target/sh/pr54602-4.c: New.

From-SVN: r192417

11 years agore PR target/54680 ([SH] Unnecessary int-float-int conversion of fsca fixed point...
Oleg Endo [Fri, 12 Oct 2012 23:19:27 +0000 (23:19 +0000)]
re PR target/54680 ([SH] Unnecessary int-float-int conversion of fsca fixed point input)

PR target/54680
* config/sh/sh.c (sh_fsca_sf2int, sh_fsca_int2sf): Fix swapped
comments.
* config/sh/predicates.md (fpul_operand): Add comment.
(fpul_fsca_operand, fsca_scale_factor): New predicates.
* config/sh/sh.md (fsca): Move below sincossf3 expander.  Convert to
insn_and_split.  Use fpul_fsca_operand and fsca_scale_factor predicates.
Simplify fpul operand in splitter.

PR target/54680
* gcc.target/sh/pr54680.c: New.

From-SVN: r192416

11 years agotree-ssa-threadupdate.c (def_split_header_continue_p): Do not escape the loop.
Jan Hubicka [Fri, 12 Oct 2012 20:38:19 +0000 (22:38 +0200)]
tree-ssa-threadupdate.c (def_split_header_continue_p): Do not escape the loop.

* tree-ssa-threadupdate.c (def_split_header_continue_p): Do not
escape the loop.

From-SVN: r192414

11 years ago* web.c (web_main): Do not set DF_RD_PRUNE_DEAD_DEFS flag.
Jan Hubicka [Fri, 12 Oct 2012 20:36:09 +0000 (22:36 +0200)]
* web.c (web_main): Do not set DF_RD_PRUNE_DEAD_DEFS flag.

From-SVN: r192413

11 years agopr48765.c: Skip for conflicting options, don't specify -m64.
Janis Johnson [Fri, 12 Oct 2012 19:45:25 +0000 (19:45 +0000)]
pr48765.c: Skip for conflicting options, don't specify -m64.

* gcc.dg/vect/pr48765.c: Skip for conflicting options, don't
specify -m64.

From-SVN: r192412

11 years agodiv64-unwinding.c: Skip, don't xfail, for GNU/Linux.
Janis Johnson [Fri, 12 Oct 2012 19:36:45 +0000 (19:36 +0000)]
div64-unwinding.c: Skip, don't xfail, for GNU/Linux.

* gcc.target/arm/div64-unwinding.c: Skip, don't xfail, for
GNU/Linux.

From-SVN: r192410

11 years agotarget-supports.exp (check_effective_target_arm_hard_vfp_ok): Return 0 if already...
Janis Johnson [Fri, 12 Oct 2012 19:33:28 +0000 (19:33 +0000)]
target-supports.exp (check_effective_target_arm_hard_vfp_ok): Return 0 if already specifying -mfloat-abi other than hard.

* lib/target-supports.exp (check_effective_target_arm_hard_vfp_ok):
Return 0 if already specifying -mfloat-abi other than hard.

From-SVN: r192409

11 years agopr53060.c: Prune irrelevant warning.
Joe Seymour [Fri, 12 Oct 2012 18:40:54 +0000 (18:40 +0000)]
pr53060.c: Prune irrelevant warning.

2012-10-12  Joe Seymour  <jseymour@codesourcery.com>

* gcc.dg/pr53060.c: Prune irrelevant warning.

From-SVN: r192407

11 years agore PR c/54381 (-Wsizeof-pointer-memaccess refers to "destination" for strncmp)
Jakub Jelinek [Fri, 12 Oct 2012 18:23:03 +0000 (20:23 +0200)]
re PR c/54381 (-Wsizeof-pointer-memaccess refers to "destination" for strncmp)

PR c/54381
* c-common.h (sizeof_pointer_memaccess_warning): Adjust prototype.
* c-common.c (sizeof_pointer_memaccess_warning): Take array of 3
locs and array of 3 trees instead of just single loc and single
sizeof_arg tree.  Handle __builtin___*_chk builtins too, and
also stpncpy, bcopy, bcmp, bzero, snprintf and vsnprintf builtins.
For *cmp* builtins that take two sources strings report warnings
about first and second source, not about destination and source.

* c-parser.c (struct c_tree_loc_pair): Removed.
(c_parser_expr_list): Remove struct c_tree_loc_pair * argument,
add location_t * and tree * arguments, fill in array of 3
sizeof_arg trees and corresponding locs.
(c_parser_attributes, c_parser_objc_keywordexpr): Adjust
c_parser_expr_list callers.
(c_parser_postfix_expression_after_primary): Likewise.  Pass
array of 3 sizeof_arg trees and locs (corresponding to first
3 arguments) to sizeof_pointer_memaccess_warning.

* semantics.c (finish_call_expr): Pass array of 3 sizeof_arg
trees and locs (corresponding to first 3 arguments) to
sizeof_pointer_memaccess_warning.

* c-c++-common/Wsizeof-pointer-memaccess1.c: New test.
* c-c++-common/Wsizeof-pointer-memaccess2.c: New test.
* gcc.dg/Wsizeof-pointer-memaccess1.c: New test.
* gcc.dg/torture/Wsizeof-pointer-memaccess1.c: Test also stpncpy.
Adjust expected wording of warnings for *cmp* builtins.
* g++.dg/torture/Wsizeof-pointer-memaccess1.C: Likewise.
* g++.dg/torture/Wsizeof-pointer-memaccess2.C: Likewise.

From-SVN: r192406

11 years agoAdd more C++ support in gengtype.
Diego Novillo [Fri, 12 Oct 2012 15:17:17 +0000 (11:17 -0400)]
Add more C++ support in gengtype.

This patch combines the changes from
http://gcc.gnu.org/ml/gcc-patches/2012-08/msg02016.html with other
additions to support C++ inside GTY'd structures.

The main changes wrt Aaron's original patch are:

- Support for function declarations inside classes.

- Support scoping in identifiers.  This does not mean that gengtype
  supports scopes, it just knows that 'Foo::id' is a single entity.

- Explicit non-support for typedef and enum inside class/struct.
  Since gengtype does not really know about scopes, it cannot
  understand these types, but it knows enough to recognize and reject
  them.  GTY'd struct/class that need to typedef their own types
  should use GTY((user)).

- Documentation on what is and is not supported.

There is one check I needed to remove that gave me some trouble.
When a ctor is detected, we have already parsed the name of the
ctor as a type, which is then registered in the list of structures.

We go on to recognize it as a ctor *after* the type has been
registered.  We reject the field in declarator() and it is never
added to the list of fields for the class.

However, when we reach the end of the class, we find that the
type we created while parsing the ctor has line number
information in it (the line where the ctor was) and gengtype
thinks that it is a duplicate structure definition.

I took out this check for two reasons: (a) It is actually
unnecessary because if there were really duplicate definitions of
this structure, the code would not compile, and (b) all the other
alternatives required making the parser much more convoluted and
I'm trying hard not to make gengtype parser too smart.

2012-10-12  Aaron Gray <aaronngray.lists@gmail.com>
    Diego Novillo <dnovillo@google.com>

        * gengtype-lex.l: Support for C++ single line comments.
        Support for classes.
(CXX_KEYWORD): New.  Support C++ keywords inline, public,
protected, private, template, operator, friend, &, ~.
(TYPEDEF): New.  Support typedef.
        * gengtype-parser.c: updated 'token_names[]'
        (direct_declarator): Add support for parsing functions
and ctors.

2012-10-12  Diego Novillo  <dnovillo@google.com>

* doc/gty.texi: Document C++ limitations in gengtype.
* gengtype-lex.l (CID): Rename from ID.
(ID): Include scoping '::' as part of the identifier name.
* gengtype-parse.c (token_names): Update.
(token_value_format): Update.
(consume_until_eos): Rename from consume_until_semi.
Remove unused argument IMMEDIATE.  Update all callers.
Also consider '}' as a finalizer.
(consume_until_comma_or_eos): Rename from
consume_until_comma_or_semi.
Remove unused argument IMMEDIATE.  Update all callers.
Also consider '}' as a finalizer.
(direct_declarator): Add documentation on ctor support.
Add argument IN_STRUCT.
If the token following ID is a '(', consider ID a
function and return NULL.
If the token following '(' is not a '*', and IN_STRUCT is
true, conclude that this is a ctor and return NULL.
If the token is IGNORABLE_CXX_KEYWORD, return NULL.
(inner_declarator): Add argument IN_STRUCT.
Update all callers.
(declarator): Add argument IN_STRUCT with default value
false.  Update all callers.
(type): Document argument NESTED.
Skip over C++ inheritance specifiers.
If a token TYPEDEF is found, emit an error.
If an enum is found inside a class/structure, emit an
error.
(typedefs, structures, param_structs, variables): Initialize.
(new_structure): Do not complain about duplicate
structures if S has a line location set.
* gengtype-state.c (write_state_type): Remove default
handler.  Add handler for TYPE_NONE.
(read_state_scalar_char_type):
* gengtype.c: Fix spacing.
* gengtype.h (enum gty_token): Add name.  Add token
IGNORABLE_CXX_KEYWORD.

From-SVN: r192405