gcc.git
12 years agoconfig.host (arm*-*-eabi* | arm*-*-symbianelf* | arm*-*-rtemseabi*): Rename "arm...
Sebastian Huber [Fri, 19 Oct 2012 01:17:53 +0000 (01:17 +0000)]
config.host (arm*-*-eabi* | arm*-*-symbianelf* | arm*-*-rtemseabi*): Rename "arm*-*-rtemseabi*" to "arm*-*-rtems*".

2012-10-18  Sebastian Huber <sebastian.huber@embedded-brains.de>

* config.host
(arm*-*-eabi* | arm*-*-symbianelf* | arm*-*-rtemseabi*): Rename
"arm*-*-rtemseabi*" to "arm*-*-rtems*".

From-SVN: r192599

12 years agoDaily bump.
GCC Administrator [Fri, 19 Oct 2012 00:18:48 +0000 (00:18 +0000)]
Daily bump.

From-SVN: r192598

12 years agoconfigure.ac (HAVE_LD_NO_DOT_SYMS): Set if using gold.
Alan Modra [Thu, 18 Oct 2012 23:02:25 +0000 (09:32 +1030)]
configure.ac (HAVE_LD_NO_DOT_SYMS): Set if using gold.

* configure.ac (HAVE_LD_NO_DOT_SYMS): Set if using gold.
(HAVE_LD_LARGE_TOC): Likewise.
* configure: Regenerate.

From-SVN: r192593

12 years agore PR c++/54501 (infinite recursion on illegal code)
Paolo Carlini [Thu, 18 Oct 2012 22:48:35 +0000 (22:48 +0000)]
re PR c++/54501 (infinite recursion on illegal code)

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

PR c++/54501
* decl.c (reshape_init_array_1): Avoid infinite loops.

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

PR c++/54501
* g++.dg/init/array30.C: New.
* g++.dg/init/array31.C: Likewise.

From-SVN: r192592

12 years agopredicates.md (splat_input_operand): Don't call input_operand for MEMs.
Alan Modra [Thu, 18 Oct 2012 22:33:15 +0000 (09:03 +1030)]
predicates.md (splat_input_operand): Don't call input_operand for MEMs.

* config/rs6000/predicates.md (splat_input_operand): Don't call
input_operand for MEMs.  Instead check for volatile and call
memory_address_addr_space_p with modified mode.

From-SVN: r192590

12 years agoi386.md (rdpmc): Remove expander.
Uros Bizjak [Thu, 18 Oct 2012 21:46:52 +0000 (23:46 +0200)]
i386.md (rdpmc): Remove expander.

* config/i386/i386.md (rdpmc): Remove expander.
(rdtsc): Ditto.
(rdtscp): Ditto.
(rdpmc): Rename from *rdpmc.
(rdpmc_rex64): Rename from *rdpmc_rex64.
(rdtsc): Rename from *rdtsc.
(rdtsc_rex64): Rename from *rdtsc_rex64.
(rdtscp): Rename from *rdtscp.
(rdtscp_rex64): Rename from *rdtscp_rex64.

* config/i386/i386.c (struct builtin_description bdesc_special_args)
<IX86_BUILTIN_RDTSC>: Use CODE_FOR_NOTHING.
<IX86_BUILTIN_RDTSCP>: Ditto.
(struct builtin_description bdesc__args) <IX86_BUILTIN_RDPMC>: Ditto.
(ix86_expand_builtin) <IX86_BUILTIN_{RDPMC,RDTSC,RDTSCP}>: Handle here.

From-SVN: r192589

12 years agoforward_list.h: Add C++11 allocator support.
Jonathan Wakely [Thu, 18 Oct 2012 21:06:21 +0000 (21:06 +0000)]
forward_list.h: Add C++11 allocator support.

* include/bits/forward_list.h: Add C++11 allocator support.
* include/bits/forward_list.tcc: Likewise.
* doc/xml/manual/status_cxx2011.xml: Update.
* testsuite/23_containers/forward_list/allocator/copy.cc: New.
* testsuite/23_containers/forward_list/allocator/copy_assign.cc: New.
* testsuite/23_containers/forward_list/allocator/minimal.cc: New.
* testsuite/23_containers/forward_list/allocator/move_assign.cc: New.
* testsuite/23_containers/forward_list/allocator/noexcept.cc: New.
* testsuite/23_containers/forward_list/allocator/swap.cc: New.

From-SVN: r192588

12 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

12 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

12 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

12 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

12 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

12 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

12 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

12 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

12 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

12 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

12 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

12 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

12 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

12 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

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

From-SVN: r192552

12 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

12 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

12 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

12 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

12 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

12 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

12 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

12 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

12 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

12 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

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

From-SVN: r192527

12 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

12 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

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

From-SVN: r192522

12 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

12 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

12 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

12 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

12 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

12 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

12 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

12 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

12 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

12 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

12 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

12 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

12 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

12 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

12 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

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

From-SVN: r192486

12 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

12 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

12 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

12 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

12 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

12 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

12 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

12 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

12 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

12 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

12 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

12 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

12 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

12 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

12 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

12 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

12 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

12 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

12 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

12 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

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

From-SVN: r192456

12 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

12 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

12 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

12 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

12 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

12 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

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

From-SVN: r192445

12 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

12 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

12 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

12 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

12 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

12 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

12 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

12 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

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

From-SVN: r192430

12 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

12 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

12 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

12 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

12 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

12 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

12 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

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

From-SVN: r192420

12 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

12 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

12 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