gcc.git
12 years ago* config/sparc/sparc.h (MAX_FIXED_MODE_SIZE): Define.
Eric Botcazou [Mon, 20 Aug 2012 18:50:13 +0000 (18:50 +0000)]
* config/sparc/sparc.h (MAX_FIXED_MODE_SIZE): Define.

From-SVN: r190540

12 years agore PR c++/10416 ('unused variable' warning ignores ctor/dtor side-effects)
Paolo Carlini [Mon, 20 Aug 2012 17:38:53 +0000 (17:38 +0000)]
re PR c++/10416 ('unused variable' warning ignores ctor/dtor side-effects)

/cp
2012-08-20  Paolo Carlini  <paolo.carlini@oracle.com>

PR c++/10416
* decl.c (poplevel): Check TYPE_HAS_NONTRIVIAL_DESTRUCTOR for
Wunused_variable too.

/testsuite
2012-08-20  Paolo Carlini  <paolo.carlini@oracle.com>

PR c++/10416
* g++.dg/warn/Wunused-var-17.C: New.

From-SVN: r190538

12 years agore PR middle-end/53992 (Combining -fopenmp and -fgnu-tm results in segfault or misbeh...
Patrick Marlier [Mon, 20 Aug 2012 16:22:17 +0000 (16:22 +0000)]
re PR middle-end/53992 (Combining -fopenmp and -fgnu-tm results in segfault or misbehaving binaries)

gcc/
2012-08-20  Patrick Marlier  <patrick.marlier@gmail.com>

PR middle-end/53992
* omp-low.c (lower_omp_1): Handle GIMPLE_TRANSACTION.

testsuite/
2012-08-20  Patrick Marlier  <patrick.marlier@gmail.com>

PR middle-end/53992
* gcc.dg/gomp/pr53992.c: New test.

From-SVN: r190536

12 years agoFix -ftime-report for C++ lookup.
Diego Novillo [Mon, 20 Aug 2012 14:23:32 +0000 (10:23 -0400)]
Fix -ftime-report for C++ lookup.

Found this while running -ftime-report on a largish C++ source file.
We need to start TV_NAME_LOOKUP conditionally inside poplevel()
because it may be called from another lookup routine that already has
TV_NAME_LOOKUP going.

Tested on x86_64.  Committed to trunk.

2012-08-20  Diego Novillo  <dnovillo@google.com>

* decl.c (poplevel): Start TV_NAME_LOOKUP conditionally.

From-SVN: r190535

12 years agore PR tree-optimization/54295 (Widening multiply-accumulate operation uses wrong...
Richard Earnshaw [Mon, 20 Aug 2012 14:13:16 +0000 (14:13 +0000)]
re PR tree-optimization/54295 (Widening multiply-accumulate operation uses wrong value extension)

PR tree-ssa/54295
* tree-ssa-math-opts.c (is_widening_mult_rhs_p): Delete rhs_code
declaration and setter.

From-SVN: r190534

12 years agore PR tree-optimization/54295 (Widening multiply-accumulate operation uses wrong...
Richard Earnshaw [Mon, 20 Aug 2012 12:49:47 +0000 (12:49 +0000)]
re PR tree-optimization/54295 (Widening multiply-accumulate operation uses wrong value extension)

PR tree-ssa/54295
* tree-ssa-math-opts.c (widening_mult_conversion_strippable_p):
New function.
(is_widening_mult_rhs_p): Use it.

* gcc.c-torture/execute/20120817-1.c: New test.

From-SVN: r190533

12 years agoconfigure.ac (ffs): Check for declaration.
Joseph Myers [Mon, 20 Aug 2012 12:31:25 +0000 (13:31 +0100)]
configure.ac (ffs): Check for declaration.

* configure.ac (ffs): Check for declaration.
* configure, config.in: Regenerate.

From-SVN: r190532

12 years agotree-flow.h (register_new_name_mapping): Remove.
Richard Guenther [Mon, 20 Aug 2012 12:04:38 +0000 (12:04 +0000)]
tree-flow.h (register_new_name_mapping): Remove.

2012-08-20  Richard Guenther  <rguenther@suse.de>

* tree-flow.h (register_new_name_mapping): Remove.
* tree-into-ssa.c (register_new_name_mapping): Likewise.
(add_new_name_mapping): Do not push/pop timevar here.
(create_new_def_for): Instead do it here.  Initialize
update-ssa here, handle a NULL def.
* tree-vrp.c (build_assert_expr_for): Use create_new_def_for.

From-SVN: r190531

12 years agothumb-16bit-ops.c (f): This test uses a 16-bit add instruction.
Richard Earnshaw [Mon, 20 Aug 2012 10:57:45 +0000 (10:57 +0000)]
thumb-16bit-ops.c (f): This test uses a 16-bit add instruction.

* gcc.target/arm/thumb-16bit-ops.c (f): This test uses a 16-bit
add instruction.
(f2): New test that really does need adds.

From-SVN: r190530

12 years agoname-lookup.c (store_binding_p): New predicate, split out from ...
Richard Guenther [Mon, 20 Aug 2012 10:27:37 +0000 (10:27 +0000)]
name-lookup.c (store_binding_p): New predicate, split out from ...

2012-08-20  Richard Guenther  <rguenther@suse.de>

* name-lookup.c (store_binding_p): New predicate, split out from ...
(store_binding): ... here.  Always store binding and require
target vector with enough space.
(store_bindings): Collect to store bindings and reserve space
for them, then store them.
(store_class_bindings): Likewise.

From-SVN: r190529

12 years agore PR middle-end/54327 (Segmentation fault in init_ggc)
Richard Guenther [Mon, 20 Aug 2012 10:26:45 +0000 (10:26 +0000)]
re PR middle-end/54327 (Segmentation fault in init_ggc)

2012-08-20  Richard Guenther  <rguenther@suse.de>

PR tree-optimization/54327
* gimple-fold.c (get_maxval_strlen): Do not walk use-def chains
if the use is registered for SSA update.

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

From-SVN: r190528

12 years agore PR middle-end/54321 (ice in tree_low_cst at -O3)
Jakub Jelinek [Mon, 20 Aug 2012 09:12:05 +0000 (11:12 +0200)]
re PR middle-end/54321 (ice in tree_low_cst at -O3)

PR tree-optimization/54321
* tree-ssa-forwprop.c (simplify_builtin_call): Pass 0 instead of 1
as second argument to tree_low_cst call on val2.

* gcc.c-torture/compile/pr54321.c: New test.

From-SVN: r190526

12 years agogimple.h (gimple_statement_base): Annotate with GTY chain_next.
Richard Guenther [Mon, 20 Aug 2012 09:03:20 +0000 (09:03 +0000)]
gimple.h (gimple_statement_base): Annotate with GTY chain_next.

2012-08-20  Richard Guenther  <rguenther@suse.de>

* gimple.h (gimple_statement_base): Annotate with GTY chain_next.

From-SVN: r190525

12 years agore PR bootstrap/54326 (GCC does not build with G++ version 3.4.0)
Richard Guenther [Mon, 20 Aug 2012 07:49:41 +0000 (07:49 +0000)]
re PR bootstrap/54326 (GCC does not build with G++ version 3.4.0)

2012-08-20  Richard Guenther  <rguenther@suse.de>

PR bootstrap/54326
* genoutput.c (note_constraint): Properly use CONST_CAST.

From-SVN: r190524

12 years agore PR fortran/54301 (Add optional warning if pointer assigning a local variable to...
Tobias Burnus [Mon, 20 Aug 2012 05:47:46 +0000 (07:47 +0200)]
re PR fortran/54301 (Add optional warning if pointer assigning a local variable to a nonlocal pointer)

2012-08-20  Tobias Burnus  <burnus@net-b.de>

        PR fortran/54301
        * expr.c (gfc_check_pointer_assign): Warn when the pointer
        might outlive its target.
        * gfortran.h (struct gfc_option_t): Add warn_target_lifetime.
        * options.c (gfc_init_options, set_wall, gfc_handle_option):
        handle it.
        * invoke.texi (-Wtarget-lifetime): Document it.
        (-Wall): Implied it.
        * lang.opt (-Wtarget-lifetime): New flag.

2012-08-20  Tobias Burnus  <burnus@net-b.de>

        PR fortran/54301
        * gfortran.dg/warn_target_lifetime_1.f90: New.

From-SVN: r190522

12 years agoDaily bump.
GCC Administrator [Mon, 20 Aug 2012 00:17:46 +0000 (00:17 +0000)]
Daily bump.

From-SVN: r190521

12 years ago* ChangeLog: Remove entry that shouldn't be there.
Jan-Benedict Glaw [Sun, 19 Aug 2012 19:15:45 +0000 (19:15 +0000)]
* ChangeLog: Remove entry that shouldn't be there.

From-SVN: r190518

12 years agocrtstuff.c (USE_PT_GNU_EH_FRAME): Define for systems using glibc even if inhibit_libc.
Joseph Myers [Sun, 19 Aug 2012 15:11:40 +0000 (16:11 +0100)]
crtstuff.c (USE_PT_GNU_EH_FRAME): Define for systems using glibc even if inhibit_libc.

* crtstuff.c (USE_PT_GNU_EH_FRAME): Define for systems using glibc
even if inhibit_libc.

From-SVN: r190517

12 years agore PR fortran/54298 (Add warning when doing equal/nonequal floating-point comparisons)
Thomas Koenig [Sun, 19 Aug 2012 15:05:41 +0000 (15:05 +0000)]
re PR fortran/54298 (Add warning when doing equal/nonequal floating-point comparisons)

2012-08-19  Thomas König  <tkoenig@gcc.gnu.org>

PR fortran/54298
* gfortran.h (struct gfc_option_t): Add warn_compare_reals.
* lang.opt:  Add Wcompare-reals.
* invoke.texi:  Document -Wcompare-reals.
* resolve.c (resolve_operator):  If -Wcompare-reals is in effect,
warn about equality/inequality comparisions for REAL and COMPLEX.
* options.c (gfc_init_options):  Set warn_compare_reals.
(set_Wall):  Include warn_compare_reals in Wall.
(gfc_handle_option):  Handle Wcompare_reals.

2012-08-19  Thomas König  <tkoenig@gcc.gnu.org>

PR fortran/54298
* gfortran.dg/real_compare_1.f90:  New test case.
* gfortran.dg/bessel_5.f90  Add -Wno-compare-reals to options.

From-SVN: r190516

12 years agolayout.adb (Set_Elem_Alignment): Cap the alignment of access types to that of a regul...
Eric Botcazou [Sun, 19 Aug 2012 14:17:22 +0000 (14:17 +0000)]
layout.adb (Set_Elem_Alignment): Cap the alignment of access types to that of a regular access type for...

* layout.adb (Set_Elem_Alignment): Cap the alignment of access types
to that of a regular access type for non-strict-alignment platforms.
* gcc-interface/utils.c (finish_fat_pointer_type): Do not set the
alignment for non-strict-alignment platforms.

From-SVN: r190515

12 years agodecl.c (gnat_to_gnu_entity): Use proper dummy type for the temporary COMPONENT_REF...
Eric Botcazou [Sun, 19 Aug 2012 14:07:58 +0000 (14:07 +0000)]
decl.c (gnat_to_gnu_entity): Use proper dummy type for the temporary COMPONENT_REF built for a derived...

* gcc-interface/decl.c (gnat_to_gnu_entity) <E_Record_Type>: Use proper
dummy type for the temporary COMPONENT_REF built for a derived tagged
type with discriminant.

From-SVN: r190514

12 years agoMake-lang.in: Fix typo.
Mikael Morin [Sun, 19 Aug 2012 10:03:10 +0000 (10:03 +0000)]
Make-lang.in: Fix typo.

cp/
* Make-lang.in: Fix typo.

From-SVN: r190513

12 years ago* ChangeLog: Fix whitespace.
Jan-Benedict Glaw [Sun, 19 Aug 2012 08:31:25 +0000 (08:31 +0000)]
* ChangeLog: Fix whitespace.

From-SVN: r190512

12 years agore PR c/54306 (ARM iwmmxt2 commit adds imbalanced #endif in mmintrin.h)
Nick Clifton [Sun, 19 Aug 2012 07:11:35 +0000 (07:11 +0000)]
re PR c/54306 (ARM iwmmxt2 commit adds imbalanced #endif in mmintrin.h)

PR target/54306
* config/arm/mmintrin.h: Remove spurious #endif.

From-SVN: r190511

12 years agoavr-log.c (avr_log_vadump): Properly use int-promoted enum values.
Jan-Benedict Glaw [Sun, 19 Aug 2012 06:15:03 +0000 (06:15 +0000)]
avr-log.c (avr_log_vadump): Properly use int-promoted enum values.

        * config/avr/avr-log.c (avr_log_vadump): Properly use
        int-promoted enum values.
        * config/avr/avr.h (struct mcu_type_s): Change `arch' from
        int to enum avr_arch.
        * config/avr/gen-avr-mmcu-texi.c (main): Use correct initializer.

From-SVN: r190510

12 years agore PR lto/45375 ([meta-bug] Issues with building Mozilla (i.e. Firefox) with LTO)
Jan Hubicka [Sun, 19 Aug 2012 05:55:20 +0000 (07:55 +0200)]
re PR lto/45375 ([meta-bug] Issues with building Mozilla (i.e. Firefox) with LTO)

PR lto/45375
* ipa-inline.c (want_inline_small_function_p): Bypass
inline limits for hinted functions.
(edge_badness): Dump hints; decrease badness for hinted funcitons.
* ipa-inline.h (enum inline_hints_vals): New enum.
(inline_hints): New type.
(edge_growth_cache_entry): Add hints.
(dump_inline_summary): Update.
(dump_inline_hints): Declare.
(do_estimate_edge_hints): Declare.
(estimate_edge_hints): New inline function.
(reset_edge_growth_cache): Update.
* predict.c (cgraph_maybe_hot_edge_p): Do not ice on indirect edges.
* ipa-inline-analysis.c (dump_inline_hints): New function.
(estimate_edge_devirt_benefit): Return true when function should be
hinted.
(estimate_calls_size_and_time): New hints argument; set it when
devritualization happens.
(estimate_node_size_and_time): New hints argument.
(do_estimate_edge_time): Cache hints.
(do_estimate_edge_growth): Update.
(do_estimate_edge_hints): New function

From-SVN: r190509

12 years agoDaily bump.
GCC Administrator [Sun, 19 Aug 2012 00:17:52 +0000 (00:17 +0000)]
Daily bump.

From-SVN: r190508

12 years agore PR middle-end/53823 (FAIL: gcc.c-torture/execute/930921-1.c execution at -O0 and...
John David Anglin [Sat, 18 Aug 2012 23:16:53 +0000 (23:16 +0000)]
re PR middle-end/53823 (FAIL: gcc.c-torture/execute/930921-1.c execution at -O0 and -O1)

PR middle-end/53823
* expmed.c (expand_mult): Skip synth_mult for negative coefficients
if the mode is larger than a wide int and it is too costly to multiply
by a positive multiplier and negate the result.

From-SVN: r190505

12 years agoAdd the working testcase from PR fortran/39290.
Mikael Morin [Sat, 18 Aug 2012 22:00:10 +0000 (22:00 +0000)]
Add the working testcase from PR fortran/39290.

testsuite/
PR fortran/39290
* gfortran.dg/interface_37.f90: New test.

From-SVN: r190504

12 years agosparseset.c (sparseset_alloc): Use non-clearing allocation.
Steven Bosscher [Sat, 18 Aug 2012 13:44:00 +0000 (13:44 +0000)]
sparseset.c (sparseset_alloc): Use non-clearing allocation.

* sparseset.c (sparseset_alloc): Use non-clearing allocation.  Tell
valgrind not to worry about reading from unitialized memory.

From-SVN: r190503

12 years agore PR middle-end/54313 (GCC fails to bootstrap with MALLOC_PERTURB – Segfault in...
Steven Bosscher [Sat, 18 Aug 2012 10:35:36 +0000 (10:35 +0000)]
re PR middle-end/54313 (GCC fails to bootstrap with MALLOC_PERTURB – Segfault in bitmap_obstack_free)

PR middle-end/54313
* dse.c (dse_step7): Don't free kill_on_calls bitmap, it is
freed when its obstack is release.

From-SVN: r190502

12 years agoalloc-pool.c (pool_alloc): Add valgrind markers.
Andrew Pinski [Sat, 18 Aug 2012 08:24:06 +0000 (01:24 -0700)]
alloc-pool.c (pool_alloc): Add valgrind markers.

2012-08-18  Andrew Pinski  <pinskia@gmail.com>

* alloc-pool.c (pool_alloc): Add valgrind markers.
(pool_free): Likewise.

From-SVN: r190501

12 years agoDefine stubs for feedback instrumentation.
Walter Lee [Sat, 18 Aug 2012 03:21:55 +0000 (03:21 +0000)]
Define stubs for feedback instrumentation.

* config/tilegx/feedback.h (FEEDBACK_ENTER_EXPLICIT): Define.
(FEEDBACK_ENTER): Define.
(FEEDBACK_REENTER): Define.
(FEEDBACK_ENTRY): Define.
* config/tilepro/feedback.h: (FEEDBACK_ENTER_EXPLICIT): Define.
(FEEDBACK_ENTER): Define.
(FEEDBACK_REENTER): Define.
(FEEDBACK_ENTRY): Define.

From-SVN: r190499

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

From-SVN: r190498

12 years agofloatformat.c (floatformat_to_double): Correctly handle numbers between 1 and 2.
Andreas Schwab [Fri, 17 Aug 2012 21:56:48 +0000 (21:56 +0000)]
floatformat.c (floatformat_to_double): Correctly handle numbers between 1 and 2.

* floatformat.c (floatformat_to_double): Correctly handle numbers
between 1 and 2.  Simplify handling of denormal number.
(main): Test with 1.1.

From-SVN: r190493

12 years agoDefine MAX_FIXED_MODE_SIZE/TARGET_MEMBER_TYPE_FORCES_BLK for i386
H.J. Lu [Fri, 17 Aug 2012 19:59:46 +0000 (19:59 +0000)]
Define MAX_FIXED_MODE_SIZE/TARGET_MEMBER_TYPE_FORCES_BLK for i386

gcc/

PR target/20020
* config/i386/i386.c (ix86_member_type_forces_blk): New function.
(TARGET_MEMBER_TYPE_FORCES_BLK): New macro.

* config/i386/i386.h (MAX_FIXED_MODE_SIZE): New macro.

gcc/testsuite/

PR target/20020
* gcc.target/i386/pr20020-1.c: New test.
* gcc.target/i386/pr20020-2.c: Likewise.
* gcc.target/i386/pr20020-3.c: Likewise.

Co-Authored-By: Gary Funck <gary@intrepid.com>
From-SVN: r190492

12 years agosimplify-rtx.c (simplify_binary_operation_1): Optimize shuffle of a concatenation.
Marc Glisse [Fri, 17 Aug 2012 17:53:57 +0000 (19:53 +0200)]
simplify-rtx.c (simplify_binary_operation_1): Optimize shuffle of a concatenation.

2012-08-17  Marc Glisse  <marc.glisse@inria.fr>

gcc/
* simplify-rtx.c (simplify_binary_operation_1): Optimize shuffle of
a concatenation.

gcc/testsuite/
* gcc.target/i386/perm-concat.c: New test.

From-SVN: r190490

12 years agoConvert MEMBER_TYPE_FORCES_BLK to target hook
H.J. Lu [Fri, 17 Aug 2012 15:50:44 +0000 (15:50 +0000)]
Convert MEMBER_TYPE_FORCES_BLK to target hook

* stor-layout.c (compute_record_mode): Replace
MEMBER_TYPE_FORCES_BLK with targetm.member_type_forces_blk.
(layout_type): Likewise.

* system.h: Poison MEMBER_TYPE_FORCES_BLK.

* target.def (member_type_forces_blk): New target hook.

* targhooks.c (default_member_type_forces_blk): New.
* targhooks.h (default_member_type_forces_blk): Likewise.

* doc/tm.texi.in (MEMBER_TYPE_FORCES_BLK): Removed.
(TARGET_MEMBER_TYPE_FORCES_BLK): New hook.
* doc/tm.texi: Regenerated.

* config/ia64/hpux.h (MEMBER_TYPE_FORCES_BLK): Removed.

* config/ia64/ia64.c (ia64_member_type_forces_blk): New
function.
(TARGET_MEMBER_TYPE_FORCES_BLK): New macro.

* config/rs6000/rs6000.c (TARGET_MEMBER_TYPE_FORCES_BLK): New
macro.
(rs6000_member_type_forces_blk): New function.

* config/rs6000/rs6000.h (MEMBER_TYPE_FORCES_BLK): Removed.

* config/xtensa/xtensa.c (xtensa_member_type_forces_blk): New
function.
(TARGET_MEMBER_TYPE_FORCES_BLK): New macro.

* config/xtensa/xtensa.h (MEMBER_TYPE_FORCES_BLK): Removed.

From-SVN: r190488

12 years agore PR bootstrap/54281 (Fails to bootstrap with --disable-nls)
Diego Novillo [Fri, 17 Aug 2012 15:37:57 +0000 (11:37 -0400)]
re PR bootstrap/54281 (Fails to bootstrap with --disable-nls)

2012-08-17  Diego Novillo  <dnovillo@google.com>

PR bootstrap/54281
* configure.ac: Add libintl.h to AC_CHECK_HEADERS list.
* config.in: Regenerate.
* configure: Regenerate.
* intl.h: Always include libintl.h if HAVE_LIBINTL_H is
set.

From-SVN: r190487

12 years agoMakefile.in (LIB2_DIVMOD_EXCEPTION_FLAGS): Default to -fexceptions -fnon-call-excepti...
Julian Brown [Fri, 17 Aug 2012 15:06:06 +0000 (15:06 +0000)]
Makefile.in (LIB2_DIVMOD_EXCEPTION_FLAGS): Default to -fexceptions -fnon-call-exceptions if not defined.

    libgcc/
    * Makefile.in (LIB2_DIVMOD_EXCEPTION_FLAGS): Default to
    -fexceptions -fnon-call-exceptions if not defined.
    ($(lib2-divmod-o), $(lib2-divmod-s-o)): Use above.
    * config/arm/t-bpabi (LIB2_DIVMOD_EXCEPTION_FLAGS): Define.

    gcc/testsuite/
    * gcc.target/arm/div64-unwinding.c: New test.

From-SVN: r190483

12 years agolinux-atomic.c (__sync_lock_test_and_set_1): Fix type.
Andreas Schwab [Fri, 17 Aug 2012 12:33:09 +0000 (12:33 +0000)]
linux-atomic.c (__sync_lock_test_and_set_1): Fix type.

* config/m68k/linux-atomic.c (__sync_lock_test_and_set_1): Fix
type.

From-SVN: r190480

12 years agobitmap.h (struct bitmap_element_def): GTY annotate next/prev.
Richard Guenther [Fri, 17 Aug 2012 10:49:30 +0000 (10:49 +0000)]
bitmap.h (struct bitmap_element_def): GTY annotate next/prev.

2012-08-17  Richard Guenther  <rguenther@suse.de>

* bitmap.h (struct bitmap_element_def): GTY annotate next/prev.
(struct bitmap_head_def): GTY skip current field.

From-SVN: r190479

12 years agofr30.md (cbranchsi4): Remove mode from comparison.
Nick Clifton [Fri, 17 Aug 2012 10:27:10 +0000 (10:27 +0000)]
fr30.md (cbranchsi4): Remove mode from comparison.

* config/fr30/fr30.md  (cbranchsi4): Remove mode from
comparison.
(branch_true): Likewise.
(branch_false): Likewise.

From-SVN: r190478

12 years agomcore.md (cbranchsi4): Remove mode from comparison.
Nick Clifton [Fri, 17 Aug 2012 09:58:53 +0000 (09:58 +0000)]
mcore.md (cbranchsi4): Remove mode from comparison.

* config/mcore/mcore.md (cbranchsi4): Remove mode from
comparison.

From-SVN: r190477

12 years agoiq2000.md (cbranchsi4): Remove mode from comparison and label.
Nick Clifton [Fri, 17 Aug 2012 09:54:51 +0000 (09:54 +0000)]
iq2000.md (cbranchsi4): Remove mode from comparison and label.

* config/iq2000/iq2000.md (cbranchsi4): Remove mode from
comparison and label.
(branch_zero): Likewise.
(branch_zero_inverted): Likewise.
(branch_equality): Likewise.
(branch_equality_inverted): Likewise.
(extend-and-compare): Disable until reload issues can be
resolved.
* config/iq2000/iq2000.c (gen_conditional_branch): Use VOIDmode
for comparison.
(iq2000_function_arg_advance): Remove CONST_CAST2.

From-SVN: r190476

12 years agore PR middle-end/54146 (Very slow compile with attribute((flatten)))
Steven Bosscher [Fri, 17 Aug 2012 09:42:06 +0000 (09:42 +0000)]
re PR middle-end/54146 (Very slow compile with attribute((flatten)))

PR middle-end/54146
* tree-ssa-loop-im.c (lim_bitmap_obstack): New bitmap_obstack.
(memref_free): Don't free the bitmaps individually here.
(mem_ref_alloc): Allocate the bitmaps on the new bitmap obstack.
(analyze_memory_references): Likewise.
(tree_ssa_lim_initialize): Initialize the new bitmap obstack.
(tree_ssa_lim_finalize): Release it.
* dse.c (dse_bitmap_obstack): New bitmap obstack.
(dse_obstack): New obstack.
(get_group_info): Allocate the bitmaps on the new bitmap obstack.
(dse_step0): Allocate the scratch bitmap on reg_obstack.  Initialize
the new bitmap obstack and normal obstack.  Use XNEWVEC for bb_table.
(record_store): Allocate regs_set on reg_obstack.
(dse_step1): Allocate regs_live on reg_obstack.
(dse_step2_init): Allocate offset_map_n and offset_map_p on the new
obstack.
(dse_step3_scan): Allocate bitmaps on the new bitmap obstack.
(dse_step3): Likewise.
(dse_confluence_0): Likewise.
(dse_confluence_n): Likewise.
(dse_transfer_function): Likewise.
(dse_step7): Destroy the new obstacks, and everything allocated on
them, in one big sweep.
(rest_of_handle_dse): Update.
* cfgexpand.c (stack_var_bitmap_obstack): New bitmap obstack.
(add_stack_var_conflict): Allocate bitmaps on it.
(add_scope_conflicts_1): Likewise.
(add_scope_conflicts): Likewise.
(update_alias_info_with_stack_vars): Likewise.
(init_vars_expansion): Move TREE_USED fiddling expand_used_vars.
Initialize the new bitmap obstack.
(fini_vars_expansion): Release it.
(estimated_stack_frame_size): Use init_vars_expansion to set things up
and always clean up at the end.
(expand_used_vars): Do the TREE_USED trickery here.  Always call
fini_vars_expansion.
* tree-ssa-live.h (struct tree_live_info_d): Make livein and liveout
arrays of bitmap_head to avoid one indirection per bitmap access.
(live_on_entry, live_on_exit, live_var_map, live_merge_and_clear,
make_live_on_entry): Update.
* tree-ssa-live.c (partition_view_bitmap): Don't double-free 'used'.
(liveness_bitmap_obstack): New bitmap obstack.
(remove_unused_locals): Use it to allocate all bitmaps on.  Update
for livein/liveout changes in tree-ssa-live.h.
(delete_tree_live_info): Release the bitmap obstack.
(loe_visit_block, live_worklist, set_var_live_on_entry,
calculate_live_on_exit, dump_live_info): Update.
(calculate_live_ranges): Initialize the bitmap.
* tree-ssa-ter.c (ter_bitmap_obstack): New bitmap obstack.
(new_temp_expr_table): Allocate bitmap on it.
(make_dependent_on_partition, add_to_partition_kill_list,
add_dependence, process_replaceable): Likewise.
(find_replaceable_exprs): Initialize and release the new obstack here.
* df-problems.c (df_lr_add_problem): Allocate persistent bitmap
for out_of_date_transfer_functions on df_bitmap_obstack.
(df_live_add_problem): Likewise.
(df_chain_add_problem): Likewise.
(df_word_lr_add_problem): Likewise.

From-SVN: r190475

12 years agot-mep (mep-pragma.o): Use $(COMPILER) to compile mep-pragma.c.
Nick Clifton [Fri, 17 Aug 2012 09:16:29 +0000 (09:16 +0000)]
t-mep (mep-pragma.o): Use $(COMPILER) to compile mep-pragma.c.

* config/mep/t-mep (mep-pragma.o): Use $(COMPILER) to compile
mep-pragma.c.

From-SVN: r190474

12 years agot-avr (gen-avr-mmcu-texi): Use $(CC) to compile gen-avr-mmcu-texi.c.
Georg-Johann Lay [Fri, 17 Aug 2012 09:09:44 +0000 (09:09 +0000)]
t-avr (gen-avr-mmcu-texi): Use $(CC) to compile gen-avr-mmcu-texi.c.

* config/avr/t-avr (gen-avr-mmcu-texi): Use $(CC) to compile
gen-avr-mmcu-texi.c.

From-SVN: r190473

12 years agoarm.md (arm_addsi3): New variant for Thumb2 16-bit ADD instruction.
Richard Earnshaw [Fri, 17 Aug 2012 08:50:29 +0000 (08:50 +0000)]
arm.md (arm_addsi3): New variant for Thumb2 16-bit ADD instruction.

* arm.md (arm_addsi3): New variant for Thumb2 16-bit ADD instruction.
* arm.c (thumb2_reorg): Don't convert an ADD instruction that's
already 16 bits.

From-SVN: r190472

12 years agohash-table.h (class hash_table): Use a descriptor template argument instead of decomp...
Richard Guenther [Fri, 17 Aug 2012 08:03:54 +0000 (08:03 +0000)]
hash-table.h (class hash_table): Use a descriptor template argument instead of decomposed element type and...

2012-08-17  Richard Guenther  <rguenther@suse.de>

* hash-table.h (class hash_table): Use a descriptor template
argument instead of decomposed element type and support
functions.
(struct pointer_hash): New generic typed pointer-hash.
(struct typed_free_remove, struct typed_noop_remove): Generic
hash_table support pieces.
* coverage.c (struct counts_entry): Add hash_table support
members.
* tree-ssa-ccp.c (gimple_htab): Use pointer_hash.
* tree-ssa-coalesce.c (struct ssa_name_var_hash): New generic
SSA name by SSA_NAME_VAR hash.
(coalesce_ssa_name): Use it.
* tree-ssa-pre.c (struct pre_expr_d): Add hash_table support.
(expression_to_id): Adjust.
(struct expr_pred_trans_d): Add hash_table support.
(phi_translate_table): Adjust.
(phi_trans_lookup): Likewise.
(phi_trans_add): Likewise.
(do_regular_insertion): Likewise.
* tree-ssa-tail-merge.c (struct same_succ_def): Add hash_table
support.
(same_succ_htab): Adjust.
(find_same_succ_bb): Likewise.
(find_same_succ): Likewise.
(update_worklist): Likewise.
* tree-ssa-threadupdate.c (struct redirection_data): Add hash_table
support.
(redirection_data): Adjust.

From-SVN: r190471

12 years agoparams.def (integer-share-limit): Decrease from 256 to 251, add rationale.
Richard Guenther [Fri, 17 Aug 2012 07:53:05 +0000 (07:53 +0000)]
params.def (integer-share-limit): Decrease from 256 to 251, add rationale.

2012-08-17  Richard Guenther  <rguenther@suse.de>

* params.def (integer-share-limit): Decrease from 256 to 251,
add rationale.

From-SVN: r190470

12 years agotree-sra.c (modify_function): Free redirect_callers vector.
Richard Guenther [Fri, 17 Aug 2012 07:51:31 +0000 (07:51 +0000)]
tree-sra.c (modify_function): Free redirect_callers vector.

2012-08-17  Richard Guenther  <rguenther@suse.de>

* tree-sra.c (modify_function): Free redirect_callers vector.
* ipa-split.c (split_function): Free args_to_pass vector.
* tree-vect-data-refs.c (vect_peeling_hash_get_lowest_cost): Free
body_cost_vec properly.
(vect_enhance_data_refs_alignment): Likewise.
* tree-vect-stmts.c (vectorizable_operation): Do not pre-allocate
vec_oprnds.
(new_stmt_vec_info): Do not pre-allocate STMT_VINFO_SAME_ALIGN_REFS.
* tree-vect-slp.c (vect_free_slp_instance): Free the instance.
(vect_analyze_slp_instance): Free everything.
(destroy_bb_vec_info): Free the SLP instances.

From-SVN: r190469

12 years agors6000.c (macho_branch_islands): Adjust for changes to vec.h.
Iain Sandoe [Fri, 17 Aug 2012 07:30:24 +0000 (07:30 +0000)]
rs6000.c (macho_branch_islands): Adjust for changes to vec.h.

* config/rs6000/rs6000.c (macho_branch_islands): Adjust for changes
to vec.h.

From-SVN: r190468

12 years agoinvoke.texi (-Wsizeof-pointer-memaccess): Document.
Jakub Jelinek [Fri, 17 Aug 2012 07:17:56 +0000 (09:17 +0200)]
invoke.texi (-Wsizeof-pointer-memaccess): Document.

* doc/invoke.texi (-Wsizeof-pointer-memaccess): Document.
c/
* c-tree.h (c_last_sizeof_arg): Declare.
* c-parser.c (struct c_tree_loc_pair): New type.
(c_parser_expr_list): Add sizeof_arg argument.  Fill it in if
non-NULL.
(c_parser_attributes, c_parser_objc_keywordexpr): Adjust callers.
(c_parser_postfix_expression_after_primary): Likewise.  Call
sizeof_pointer_memaccess_warning if needed.
(sizeof_ptr_memacc_comptypes): New function.
* c-typeck.c (c_last_sizeof_arg): New global variable.
(c_expr_sizeof_expr, c_expr_sizeof_type): Initialize it.
cp/
* cp-tree.def (SIZEOF_EXPR): Move to c-common.def.
c-family/
* c-common.c (sizeof_pointer_memaccess_warning): New function.
* c.opt (-Wsizeof-pointer-memaccess): Add new option.
* c-opts.c (c_common_handle_option): Enable it for -Wall.
* c-common.h (sizeof_pointer_memaccess_warning): Add prototype.
* c-common.def (SIZEOF_EXPR): Moved here from cp-tree.def.
fortran/
* array.c (gfc_match_array_ref): Fix up memset arguments.
testsuite/
* gcc.dg/torture/Wsizeof-pointer-memaccess1.c: New test.

From-SVN: r190467

12 years agoconfig.host (*-*-aix*): Move rs6000/t-ibm-ldouble after rs6000/t-slibgcc-aix.
David Edelsohn [Fri, 17 Aug 2012 02:19:04 +0000 (02:19 +0000)]
config.host (*-*-aix*): Move rs6000/t-ibm-ldouble after rs6000/t-slibgcc-aix.

        * config.host (*-*-aix*): Move rs6000/t-ibm-ldouble after
        rs6000/t-slibgcc-aix.

From-SVN: r190465

12 years ago2012-08-16 Sandra Loosemore <sandra@codesourcery.com>
Sandra Loosemore [Fri, 17 Aug 2012 00:47:05 +0000 (20:47 -0400)]
2012-08-16  Sandra Loosemore  <sandra@codesourcery.com>

gcc/
* config/mips/mips-dsp.md (mips_dpau_h_qbl, mips_dpau_h_qbr)
(mips_dpsu_h_qbl, mips_dpsu_h_qbr, mips_dpaq_s_w_ph)
(mips_dpsq_s_w_ph, mips_mulsaq_s_w_ph, mips_dpaq_sa_l_w)
(mips_dpsq_sa_l_w, mips_maq_s_w_phl, mips_maq_s_w_phr)
(mips_maq_sa_w_phl, mips_maq_sa_w_phr): Add accum_in attribute.

From-SVN: r190464

12 years agore PR middle-end/54261 (reverse sync/atomic operators when only sync_compare_and_swap...
Hans-Peter Nilsson [Fri, 17 Aug 2012 00:18:35 +0000 (00:18 +0000)]
re PR middle-end/54261 (reverse sync/atomic operators when only sync_compare_and_swap_optab libfuncs implemented)

PR middle-end/54261
* optabs.c (expand_atomic_fetch_op): Save and restore code when
retrying after failed attempt.

From-SVN: r190463

12 years agoDaily bump.
GCC Administrator [Fri, 17 Aug 2012 00:18:22 +0000 (00:18 +0000)]
Daily bump.

From-SVN: r190462

12 years agore PR target/54236 ([SH] Improve addc and subc insn utilization)
Oleg Endo [Thu, 16 Aug 2012 23:19:45 +0000 (23:19 +0000)]
re PR target/54236 ([SH] Improve addc and subc insn utilization)

PR target/54236
* config/sh/sh.md (addc): Add commutative modifier.
(*addc, *minus_plus_one, *subc, *negc): New insns and splits.

PR target/54236
* gcc.target/sh/pr54236-1.c: New.

From-SVN: r190459

12 years agore PR target/39423 ([SH] performance regression: lost mov @(disp,Rn))
Oleg Endo [Thu, 16 Aug 2012 23:16:53 +0000 (23:16 +0000)]
re PR target/39423 ([SH]  performance regression: lost mov @(disp,Rn))

PR target/39423
* config/sh/sh.md (*movsi_index_disp, *movhi_index_disp): Handle
potential T_REG clobber.  Convert zero extending split to
insn_and_split.

From-SVN: r190458

12 years agore PR target/54089 ([SH] Refactor shift patterns)
Oleg Endo [Thu, 16 Aug 2012 23:13:11 +0000 (23:13 +0000)]
re PR target/54089 ([SH] Refactor shift patterns)

PR target/54089
* config/sh/sh.md (ashlsi3_d): Do not split if it would result
in a T_REG clobber.  Correct comment.
(ashlsi3_n): Correct comment.

From-SVN: r190457

12 years ago* lib/target-supports.exp (check_effective_target_sync_int_long)
Hans-Peter Nilsson [Thu, 16 Aug 2012 22:42:09 +0000 (22:42 +0000)]
* lib/target-supports.exp (check_effective_target_sync_int_long)
(check_effective_target_sync_char_short): Enable for crisv32-*
and cris-*.

From-SVN: r190456

12 years agore PR middle-end/54261 (reverse sync/atomic operators when only sync_compare_and_swap...
Hans-Peter Nilsson [Thu, 16 Aug 2012 22:05:32 +0000 (22:05 +0000)]
re PR middle-end/54261 (reverse sync/atomic operators when only sync_compare_and_swap_optab libfuncs implemented)

PR middle-end/54261
* gcc.dg/torture/pr54261-1.c: New test.

From-SVN: r190455

12 years agore PR middle-end/54261 (reverse sync/atomic operators when only sync_compare_and_swap...
Hans-Peter Nilsson [Thu, 16 Aug 2012 22:03:33 +0000 (22:03 +0000)]
re PR middle-end/54261 (reverse sync/atomic operators when only sync_compare_and_swap_optab libfuncs implemented)

PR middle-end/54261
* optabs.c (expand_atomic_fetch_op): Save and restore code when
retrying after failed attempt.

From-SVN: r190454

12 years agoi386-protos.h (ix86_split_lea_for_addr): Add additional argument.
Yuri Rumyantsev [Thu, 16 Aug 2012 19:58:11 +0000 (21:58 +0200)]
i386-protos.h (ix86_split_lea_for_addr): Add additional argument.

2012-08-16  Yuri Rumyantsev  <ysrumyan@gmail.com>

* config/i386/i386-protos.h (ix86_split_lea_for_addr) : Add
additional argument.
* config/i386/i386.md (ix86_split_lea_for_addr) : Add
additional argument curr_insn.
* config/i386/i386.c (ix86_split_lea_for_addr): Load base or index
register first, depending on their defintion distances.
(ix86_lea_outperforms): Prefer LEA only if split cost exceeds
AGU stall.
(find_nearest_reg-def): New function. Find register with
nearest definition.

From-SVN: r190452

12 years agoAdd a stub header file "feedback.h," needed to compile glibc and linux.
Walter Lee [Thu, 16 Aug 2012 19:54:59 +0000 (19:54 +0000)]
Add a stub header file "feedback.h," needed to compile glibc and linux.

Add a stub header file "feedback.h," needed to compile glibc and
linux.
* config.gcc (tilegx-*-linux*): Add feedback.h.
(tilepro-*-linux*): Likewise.
* config/tilegx/feedback.h: New file.
* config/tilepro/feedback.h: New file.

From-SVN: r190451

12 years agorevert: re PR bootstrap/54281 (Fails to bootstrap with --disable-nls)
Diego Novillo [Thu, 16 Aug 2012 18:24:22 +0000 (14:24 -0400)]
revert: re PR bootstrap/54281 (Fails to bootstrap with --disable-nls)

2012-08-16   Diego Novillo  <dnovillo@google.com>

Revert

PR bootstrap/54281
* double-int.h: Move including of gmp.h ...
* system.h: ... here.
* realmpfr.h: Do not include gmp.h.
* tree-ssa-loop-niter.c: Do not include gmp.h.

From-SVN: r190449

12 years agodarwin.h (TARGET_IEEE_QUAD): Fix comment.
Segher Boessenkool [Thu, 16 Aug 2012 14:43:00 +0000 (16:43 +0200)]
darwin.h (TARGET_IEEE_QUAD): Fix comment.

2012-08-16  Segher Boessenkool  <segher@kernel.crashing.org>

       * config/rs6000/darwin.h (TARGET_IEEE_QUAD): Fix comment.

From-SVN: r190446

12 years agore PR middle-end/54146 (Very slow compile with attribute((flatten)))
Richard Guenther [Thu, 16 Aug 2012 14:27:51 +0000 (14:27 +0000)]
re PR middle-end/54146 (Very slow compile with attribute((flatten)))

2012-08-16  Richard Guenther  <rguenther@suse.de>

PR middle-end/54146
* tree-ssa-loop-niter.c (find_loop_niter_by_eval): Free the
exit vector.
* ipa-pure-const.c (analyze_function): Use FOR_EACH_LOOP_BREAK.
* cfgloop.h (FOR_EACH_LOOP_BREAK): Fix.
* tree-ssa-structalias.c (handle_lhs_call): Properly free rhsc.
* tree-into-ssa.c (get_ssa_name_ann): Allocate info only when
needed.
* tree-ssa-loop-im.c (analyze_memory_references): Adjust.
(tree_ssa_lim_finalize): Free all mem_refs.
* tree-ssa-sccvn.c (extract_and_process_scc_for_name): Free
scc when bailing out.
* modulo-sched.c (sms_schedule): Use FOR_EACH_LOOP_BREAK.
* ira-build.c (loop_with_complex_edge_p): Free loop exit vector.
* graphite-sese-to-poly.c (scop_ivs_can_be_represented): Use
FOR_EACH_LOOP_BREAK.

From-SVN: r190445

12 years agore PR bootstrap/54281 (Fails to bootstrap with --disable-nls)
Diego Novillo [Thu, 16 Aug 2012 13:28:13 +0000 (09:28 -0400)]
re PR bootstrap/54281 (Fails to bootstrap with --disable-nls)

2012-08-16  Diego Novillo  <dnovillo@google.com>

PR bootstrap/54281
* double-int.h: Move including of gmp.h ...
* system.h: ... here.
* realmpfr.h: Do not include gmp.h.
* tree-ssa-loop-niter.c: Do not include gmp.h.

fortran/ChangeLog
* gfortran.h: Do not include gmp.h.

From-SVN: r190444

12 years agore PR middle-end/54146 (Very slow compile with attribute((flatten)))
Steven Bosscher [Thu, 16 Aug 2012 10:52:14 +0000 (10:52 +0000)]
re PR middle-end/54146 (Very slow compile with attribute((flatten)))

PR middle-end/54146
* tree-flow.h (compute_global_livein): Remove prototype.
* tree-into-ssa.c (compute_global_livein): Remove function.
* tree-ssa-loop-manip.c: Include gimple-pretty-print.h.
(find_sibling_superloop): New function.
(compute_live_loop_exits): New function.
(add_exit_phis_edge): Rename to add_exit_phi.  Do not allow
inserting a PHI in a block that is not a loop exit for VAR.
Add dumping if TDF_DETAILS.
(add_exit_phis_var): Rewrite.
(add_exit_phis): Update.
(get_loops_exits): Rewrite to return an array of per-loop exits
rather than one bitmap with all loop exits.
(find_uses_to_rename_bb): Ignore virtual PHI nodes.
(rewrite_into_loop_closed_ssa): Update.

From-SVN: r190442

12 years agoi386elf.h (ASM_OUTPUT_ASCII): Cast _ascii_bytes before passing it to ASM_OUTPUT_LIMIT...
Nick Clifton [Thu, 16 Aug 2012 10:41:44 +0000 (10:41 +0000)]
i386elf.h (ASM_OUTPUT_ASCII): Cast _ascii_bytes before passing it to ASM_OUTPUT_LIMITED_STRING.

* config/i386/i386elf.h (ASM_OUTPUT_ASCII): Cast _ascii_bytes
before passing it to ASM_OUTPUT_LIMITED_STRING.

From-SVN: r190441

12 years ago* config/bfin/bfin.c (hwloop_optimize): Fix use of VEC_last macro.
Nick Clifton [Thu, 16 Aug 2012 09:56:11 +0000 (09:56 +0000)]
* config/bfin/bfin.c (hwloop_optimize): Fix use of VEC_last macro.

From-SVN: r190440

12 years agot-avr: Replace occurrences of $(CC) with $(COMPILER).
Nick Clifton [Thu, 16 Aug 2012 09:49:21 +0000 (09:49 +0000)]
t-avr: Replace occurrences of $(CC) with $(COMPILER).

* config/avr/t-avr: Replace occurrences of $(CC) with $(COMPILER).
* config/avr/avr.c (avr_legitimize_reload_address): Add casts
for reload_type enums.
        (DEF_BUILTIN): Cast the icode to enum insn_code.

From-SVN: r190439

12 years agoRevert unintended change from last commit
Sandra Loosemore [Thu, 16 Aug 2012 02:17:19 +0000 (22:17 -0400)]
Revert unintended change from last commit

From-SVN: r190437

12 years agoAdd missing ChangeLog entry for r190406
Maxim Kuvyrkov [Thu, 16 Aug 2012 02:13:21 +0000 (02:13 +0000)]
Add missing ChangeLog entry for r190406

From-SVN: r190436

12 years agolonglong.h: (powerpc): Delete _ARCH_PWR and _ARCH_COM handling.
Segher Boessenkool [Thu, 16 Aug 2012 01:49:57 +0000 (03:49 +0200)]
longlong.h: (powerpc): Delete _ARCH_PWR and _ARCH_COM handling.

2012-08-15  Segher Boessenkool  <segher@kernel.crashing.org>

libgcc/
       * longlong.h: (powerpc): Delete _ARCH_PWR and _ARCH_COM handling.

From-SVN: r190434

12 years agoaix43.h (ASM_CPU_SPEC): Use %(asm_default) instead of -mppc.
Segher Boessenkool [Thu, 16 Aug 2012 01:36:47 +0000 (03:36 +0200)]
aix43.h (ASM_CPU_SPEC): Use %(asm_default) instead of -mppc.

2012-08-15  Segher Boessenkool  <segher@kernel.crashing.org>

gcc/
        * config/rs6000/aix43.h (ASM_CPU_SPEC): Use %(asm_default)
        instead of -mppc.
        * config/rs6000/aix51.h (ASM_CPU_SPEC): Ditto.

From-SVN: r190433

12 years agoaix43.h (TARGET_DEFAULT): Delete MASK_NEW_MNEMONICS.
Segher Boessenkool [Thu, 16 Aug 2012 01:34:27 +0000 (03:34 +0200)]
aix43.h (TARGET_DEFAULT): Delete MASK_NEW_MNEMONICS.

2012-08-15  Segher Boessenkool  <segher@kernel.crashing.org>

gcc/
* config/rs6000/aix43.h (TARGET_DEFAULT): Delete MASK_NEW_MNEMONICS.
(RS6000_CALL_GLUE): Adjust for single assembler syntax.
* config/rs6000/aix51.h (TARGET_DEFAULT, RS6000_CALL_GLUE):
Ditto.
* config/rs6000/aix52.h (TARGET_DEFAULT, RS6000_CALL_GLUE):
Ditto.
* config/rs6000/aix53.h (TARGET_DEFAULT, RS6000_CALL_GLUE):
Ditto.
* config/rs6000/aix61.h (TARGET_DEFAULT, RS6000_CALL_GLUE):
Ditto.
* config/rs6000/darwin.h (TARGET_DEFAULT): Ditto.
* config/rs6000/darwin.md (whole file): Adjust to single
assembler syntax.
* config/rs6000/darwin64.h (TARGET_DEFAULT): Delete
MASK_NEW_MNEMONICS.
* config/rs6000/default64.h (TARGET_DEFAULT): Ditto.
* config/rs6000/dfp.md: (whole file): Adjust to single
assembler syntax.
* config/rs6000/eabi.h (TARGET_DEFAULT): Delete
MASK_NEW_MNEMONICS.
* config/rs6000/eabialtivec.h (TARGET_DEFAULT): Ditto.
* config/rs6000/eabispe.h (TARGET_DEFAULT): Ditto.
* config/rs6000/linuxaltivec.h (TARGET_DEFAULT): Ditto.
* config/rs6000/linuxspe.h (TARGET_DEFAULT): Ditto.
* config/rs6000/rs6000-cpus.def (whole file): Delete
POWERPC_BASE_MASK.
* config/rs6000/rs6000-tables.opt: Regenerate.
* config/rs6000/rs6000.c (POWERPC_BASE_MASK): Delete.
(num_insns_constant_wide): Adjust comments.
(whole file): Adjust to single assembler syntax.
(output_cbranch): Adjust comment.
* config/rs6000/rs6000.h (ASSEMBLER_DIALECT): Delete.
* config/rs6000/rs6000.md: (whole file): Adjust to single
assembler syntax.
* config/rs6000/rs6000.opt (mnew-mnemonics): Delete.
(mold-mnemonics): Delete.
* config/rs6000/spe.md: (whole file): Adjust to single
assembler syntax.
* config/rs6000/sync.md: (whole file): Adjust to single
assembler syntax.
* config/rs6000/sysv4.h (TARGET_DEFAULT): Delete
MASK_NEW_MNEMONICS.
(ASM_OUTPUT_REG_PUSH): Adjust.
(ASM_OUTPUT_REG_POP): Adjust.
* config/rs6000/sysv4le.h (TARGET_DEFAULT): Delete
MASK_NEW_MNEMONICS.
* config/rs6000/vsx.md: (whole file): Adjust to single
assembler syntax.
* config/rs6000/vxworks.h (TARGET_DEFAULT): Delete
MASK_NEW_MNEMONICS.
* doc/invoke.texi: Adjust documentation to reflect the
removal of -mnew-mnemonics and -mold-mnemonics.

libgcc/
* longlong.h: (whole file, powerpc): Adjust to single assembler syntax.

From-SVN: r190432

12 years agors6000-common.c (rs6000_handle_option): Delete handling for -mno-powerpc and -mpowerpc.
Segher Boessenkool [Thu, 16 Aug 2012 01:18:01 +0000 (03:18 +0200)]
rs6000-common.c (rs6000_handle_option): Delete handling for -mno-powerpc and -mpowerpc.

2012-08-15  Segher Boessenkool  <segher@kernel.crashing.org>

gcc/
* common/config/rs6000/rs6000-common.c (rs6000_handle_option):
Delete handling for -mno-powerpc and -mpowerpc.
* config/rs6000/aix43.h (ASM_CPU_SPEC): Similar.
(ASM_DEFAULT_SPEC): Use -mppc instead of -mcom.
* config/rs6000/aix51.h (ASM_CPU_SPEC, ASM_DEFAULT_SPEC): Ditto.
* config/rs6000/aix52.h (TARGET_DEFAULT): Delete MASK_POWERPC.
* config/rs6000/aix53.h (TARGET_DEFAULT): Ditto.
* config/rs6000/aix61.h (TARGET_DEFAULT): Ditto.
* config/rs6000/darwin.h (TARGET_DEFAULT): Ditto.
* config/rs6000/darwin64.h (TARGET_DEFAULT): Ditto.
* config/rs6000/default64.h (TARGET_DEFAULT): Ditto.
* config/rs6000/driver-rs6000.c (asm_names): Delete handling
for -mcpu=common and -mpowerpc.
* config/rs6000/eabi.h (TARGET_DEFAULT): Delete MASK_POWERPC.
* config/rs6000/eabialtivec.h (TARGET_DEFAULT): Ditto.
* config/rs6000/eabispe.h (TARGET_DEFAULT): Ditto.
* config/rs6000/linuxaltivec.h (TARGET_DEFAULT): Ditto.
* config/rs6000/linuxspe.h (TARGET_DEFAULT): Ditto.
* config/rs6000/rs6000-builtin.def (RS6000_BUILTIN_CFSTRING):
Use RS6000_BTM_ALWAYS instead of RS6000_BTM_POWERPC.
* config/rs6000/rs6000-c.c (rs6000_target_modify_macros):
Adjust.
(rs6000_cpu_cpp_builtins): Adjust.
* config/rs6000/rs6000.c (POWERPC_BASE_MASK): Delete MASK_POWERPC.
(rs6000_builtin_mask_calculate): Adjust.
(rs6000_emit_move): Delete code for ! TARGET_POWERPC.
(rs6000_init_libfuncs): Ditto.
(rs6000_output_function_prologue): Ditto.
(rs6000_opt_masks): Delete MASK_POWERPC.
(rs6000_builtin_mask_names): Delete RS6000_BTM_POWERPC.
* config/rs6000/rs6000.h (ASM_CPU_SPEC): Delete handling for
-mpowerpc.
(RS6000_BTM_POWERPC): Delete.
(RS6000_BTM_COMMON): Delete RS6000_BTM_POWERPC.
* config/rs6000/rs6000.md (extendqisi2 patterns): Adjust for
TARGET_POWERPC always on.
(extendqihi2 patterns): Similar.
(various unnamed subtract patterns): Similar.
(bswaphi2 patterns): Similar.
(divmodsi4): Similar.
(udiv<GPR:mode>3): Similar.
(div<GPR:mode>3 patterns): Similar.
(udivmodsi4): Similar.
(mulhcall): Delete.
(mullcall): Delete.
(divss_call): Delete.
(divus_call): Delete.
(quoss_call): Delete.
(quous_call): Delete.
(insvsi patterns): Adjust.
(addsf3 patterns): Adjust.
(subsf3 patterns): Adjust.
(mulsf3 patterns): Adjust.
(divsf3 patterns): Adjust.
(*fmasf4_fpr): Adjust.
(*fmssf4_fpr): Adjust.
(*nfmasf4_fpr): Adjust.
(*nfmssf4_fpr): Adjust.
(*floatunssidf2_internal): Adjust.
(fix_trunc<SFDF:mode>si2_internal): Adjust.
(fctiwz_<SFDF:mode>): Adjust.
(mulsidi3 patterns): Adjust.
(smulsi3_highpart patterns): Adjust.
(umulsi3_highpart patterns): Adjust.
(fix_trunctfsi2 patterns): Adjust.
(prefetch): Adjust.
* config/rs6000/rs6000.opt (mpowerpc): Replace by stub option.
(mno-powerpc): Delete.
* config/rs6000/sync.md (load_locked<ATOMIC:mode>): Adjust.
(store_conditional<ATOMIC:mode>): Adjust.
(atomic_compare_and_swap<ATOMIC:mode>): Adjust.
(atomic_exchange<ATOMIC:mode>): Adjust.
(atomic_<fetchop_name><ATOMIC:mode>): Adjust.
(atomic_nand<ATOMIC:mode>): Adjust.
(atomic_fetch_<fetchop_name><ATOMIC:mode>): Adjust.
(atomic_fetch_nand<ATOMIC:mode>): Adjust.
(atomic_<fetchop_name>_fetch<ATOMIC:mode>): Adjust.
(atomic_nand_fetch<ATOMIC:mode>): Adjust.
* config/rs6000/sysv4.h (TARGET_DEFAULT): Delete MASK_POWERPC.
* config/rs6000/sysv4le.h (TARGET_DEFAULT): Ditto.
* config/rs6000/vxworks.h (TARGET_DEFAULT): Ditto.
* doc/invoke.texi: Adjust documentation.

From-SVN: r190430

12 years agors6000.h (RS6000_BTM_ALWAYS): New.
Segher Boessenkool [Thu, 16 Aug 2012 01:01:30 +0000 (03:01 +0200)]
rs6000.h (RS6000_BTM_ALWAYS): New.

2012-08-15  Segher Boessenkool <segher@kernel.crashing.org>

gcc/
        * config/rs6000/rs6000.h (RS6000_BTM_ALWAYS): New.

From-SVN: r190429

12 years agoaix52.h (ASM_CPU_SPEC): Fix typo.
Segher Boessenkool [Thu, 16 Aug 2012 01:00:05 +0000 (03:00 +0200)]
aix52.h (ASM_CPU_SPEC): Fix typo.

2012-08-15  Segher Boessenkool  <segher@kernel.crashing.org>

gcc/
        * config/rs6000/aix52.h (ASM_CPU_SPEC): Fix typo.
        * config/rs6000/aix53.h (ASM_CPU_SPEC): Ditto.
        * config/rs6000/aix61.h (ASM_CPU_SPEC): Ditto.
        * config/rs6000/driver-rs6000.c (asm_names): Ditto.

From-SVN: r190428

12 years agore PR target/54142 (ppc64 build failure - Unrecognized opcode: `sldi' (and `srdi`))
Segher Boessenkool [Thu, 16 Aug 2012 00:57:37 +0000 (02:57 +0200)]
re PR target/54142 (ppc64 build failure - Unrecognized opcode: `sldi' (and `srdi`))

2012-08-15  Segher Boessenkool  <segher@kernel.crashing.org>

gcc/
        PR target/54142
        * config/rs6000/driver-rs6000.c (asm_names): Use %(asm_default)
        instead of -mcom.
        * config/rs6000/rs6000.h (ASM_CPU_SPEC): Ditto.

From-SVN: r190427

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

From-SVN: r190426

12 years agoMIPS Technologies, Inc.
Sandra Loosemore [Wed, 15 Aug 2012 23:56:52 +0000 (19:56 -0400)]
MIPS Technologies, Inc.

2012-08-15  Sandra Loosemore  <sandra@codesourcery.com>
    Maxim Kuvyrkov  <maxim@codesourcery.com>
    Julian Brown  <julian@codesourcery.com>
    MIPS Technologies, Inc.

gcc/
* config/mips/mips.md (dspmac, dspmacsat, accext, accmod, dspalu)
(dspalusat): Add insn types.
* config/mips/mips-dsp.md (add<DSPV:mode>3)
(mips_add<DSP:dspfmt1>_s_<DSP:dspfmt2>)
(sub<DSPV:mode>3, mips_sub<DSP:dspfmt1>_s_<DSP:dspfmt2>, mips_addsc)
(mips_addwc, mips_modsub, mips_raddu_w_qb, mips_absq_s_<DSPQ:dspfmt2>)
(mips_precrq_qb_ph, mips_precrq_ph_w, mips_precrq_rs_ph_w)
(mips_precrqu_s_qb_ph, mips_preceq_w_phl, mips_preceq_w_phr)
(mips_precequ_ph_qbl, mips_precequ_ph_qbr, mips_precequ_ph_qbla)
(mips_precequ_ph_qbra, mips_preceu_ph_qbl, mips_preceu_ph_qbr)
(mips_preceu_ph_qbla, mips_preceu_ph_qbra, mips_shll_<DSPV:dspfmt2>)
(mips_shll_s_<DSPQ:dspfmt2>, mips_shll_s_<DSPQ:dspfmt2>, mips_shrl_qb)
(mips_shra_ph, mips_shra_r_<DSPQ:dspfmt2>, mips_bitrev, mips_insv)
(mips_repl_qb, mips_repl_ph)
(mips_cmp<DSPV:dspfmt1_1>_eq_<DSPV:dspfmt2>)
(mips_cmp<DSPV:dspfmt1_1>_lt_<DSPV:dspfmt2>)
(mips_cmp<DSPV:dspfmt1_1>_le_<DSPV:dspfmt2>, mips_cmpgu_eq_qb)
(mips_cmpgu_lt_qb, mips_cmpgu_le_qb, mips_pick_<DSPV:dspfmt2>)
(mips_packrl_ph, mips_wrdsp, mips_rddsp): Change type to dspalu.
(mips_dpau_h_qbl, mips_dpau_h_qbr, mips_dpsu_h_qbl, mips_dpsu_h_qbr)
(mips_dpaq_s_w_ph, mips_dpsq_s_w_ph, mips_mulsaq_s_w_ph)
(mips_maq_s_w_phl, mips_maq_s_w_phr, mips_maq_sa_w_phr): Set type to
dspmac.
(mips_dpaq_sa_l_w, mips_dpsq_sa_l_w, mips_maq_sa_w_phl): Set type to
dspmacsat.
(mips_extr_w, mips_extr_r_w, mips_extr_rs_w, mips_extp, mips_extpdp):
Set type to accext.
(mips_shilo, mips_mthlip): Set type to accmod.
* config/mips/mips-dspr2.md (mips_absq_s_qb, mips_addu_s_ph)
(mips_adduh_r_qb): Set type to dspalusat.
(mips_addu_ph, mips_adduh_qb, mips_append, mips_balign)
(mips_cmpgdu_eq_qb, mips_cmpgdu_lt_qb, mips_cmpgdu_le_qb)
(mips_precr_qb_ph, mips_precr_sra_ph_w, mips_precr_sra_r_ph_w)
(mips_prepend, mips_shra_qb, mips_shra_r_qb, mips_shrl_ph)
(mips_subu_ph, mips_subuh_qb, mips_subuh_r_qb, mips_addqh_ph)
(mips_addqh_r_ph, mips_addqh_w, mips_addqh_r_w, mips_subqh_ph)
(mips_subqh_r_ph, mips_subqh_w, mips_subqh_r_w): Set type to dspalu.
(mips_dpa_w_ph, mips_dps_w_ph, mips_mulsa_w_ph, mips_dpax_w_ph)
(mips_dpsx_w_ph, mips_dpaqx_s_w_ph, mips_dpsqx_s_w_ph): Set type to
dspmac.  Set accum_in attribute.
(mips_subu_s_ph): Set type to dspalusat.
(mips_dpaqx_sa_w_ph, mips_dpsqx_sa_w_ph): Set type to dspmacsat.
Set accum_in attribute.
* config/mips/mips-protos.h (mips_dspalu_bypass_p): Add prototype.
* config/mips/mips.c (dspalu_bypass_table): New.
(mips_dspalu_bypass_p): New.
* config/mips/24k.md (r24k_dsp_alu, r24k_dsp_mac, r24k_dsp_mac_sat)
(r24k_dsp_acc_ext, r24k_dsp_acc_mod): New insn reservations.
(r24k_int_mult, r24k_int_mthilo, r24k_dsp_mac, r24k_dsp_mac_sat)
(r24k_dsp_acc_ext, r24k_dsp_acc_mod, r24k_dsp_alu): New bypasses.
* config/mips/74k.md (r74k_dsp_alu, r74k_dsp_alu_sat, r74k_dsp_mac)
(r74k_dsp_mac_sat, r74k_dsp_acc_ext, r74k_dsp_acc_mod): New insn
reservations.
(r74k_dsp_mac, r74k_dsp_mac_sat, r74k_int_mult, r74k_int_mul3)
(r74k_dsp_mac, r74k_dsp_mac_sat): New bypasses.

Co-Authored-By: Julian Brown <julian@codesourcery.com>
Co-Authored-By: Maxim Kuvyrkov <maxim@codesourcery.com>
From-SVN: r190423

12 years agospu.c: Include "cfgloop.h".
Ulrich Weigand [Wed, 15 Aug 2012 22:15:44 +0000 (22:15 +0000)]
spu.c: Include "cfgloop.h".

* config/spu/spu.c: Include "cfgloop.h".
(spu_machine_dependent_reorg): Call loop_optimizer_init and
loop_optimizer_finalize.  Use bb_loop_depth instead of loop_depth.
Directly compare loop_father values where appropriate.
* config/spu/t-spu-elf (spu.o): Update dependencies.

From-SVN: r190421

12 years agore PR fortran/54243 ([OOP] ICE (segfault) in gfc_type_compatible for invalid BT_CLASS)
Janus Weil [Wed, 15 Aug 2012 22:11:03 +0000 (00:11 +0200)]
re PR fortran/54243 ([OOP] ICE (segfault) in gfc_type_compatible for invalid BT_CLASS)

2012-08-15  Janus Weil  <janus@gcc.gnu.org>

PR fortran/54243
PR fortran/54244
* resolve.c (check_typebound_baseobject): Check for class_ok attribute.
(resolve_procedure_interface,resolve_fl_derived0): Copy class_ok
attribute.

2012-08-15  Janus Weil  <janus@gcc.gnu.org>

PR fortran/54243
PR fortran/54244
* gfortran.dg/typebound_call_24.f03: New.

From-SVN: r190420

12 years agoAdd missing entry for merge from cxx-conversion branch.
Eric Botcazou [Wed, 15 Aug 2012 20:56:21 +0000 (20:56 +0000)]
Add missing entry for merge from cxx-conversion branch.

From-SVN: r190419

12 years agocxx11.cc (struct datum): New.
Tom Tromey [Wed, 15 Aug 2012 18:37:30 +0000 (18:37 +0000)]
cxx11.cc (struct datum): New.

* testsuite/libstdc++-prettyprinters/cxx11.cc (struct datum):
New.
(global): New global.
(main): Add test for unique_ptr.
* python/libstdcxx/v6/printers.py
(UniquePointerPrinter.to_string): Extract the pointer and also
print its type.

From-SVN: r190417

12 years agoAdd $(TARGET_H) dependency to tree-cfg.o
H.J. Lu [Wed, 15 Aug 2012 16:59:04 +0000 (16:59 +0000)]
Add $(TARGET_H) dependency to tree-cfg.o

* Makefile.in (tree-cfg.o): Also depend on $(TARGET_H).

From-SVN: r190416

12 years agore PR tree-optimization/54245 (incorrect optimisation)
Bill Schmidt [Wed, 15 Aug 2012 13:27:29 +0000 (13:27 +0000)]
re PR tree-optimization/54245 (incorrect optimisation)

gcc:

2012-08-15  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

PR tree-optimization/54245
* gimple-ssa-strength-reduction.c (legal_cast_p_1): New function.
(legal_cast_p): Split out logic to legal_cast_p_1.
(analyze_increments): Avoid introducing multiplies in smaller types.

gcc/testsuite:

2012-08-15  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

PR tree-optimization/54245
* gcc.dg/tree-ssa/pr54245.c: New test.

From-SVN: r190412

12 years agore PR tree-optimization/54240 (Routine hoist_adjacent_loads does not work properly...
Bill Schmidt [Wed, 15 Aug 2012 13:17:42 +0000 (13:17 +0000)]
re PR tree-optimization/54240 (Routine hoist_adjacent_loads does not work properly after r189366)

gcc:

2012-08-15  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

PR tree-optimization/54240
* tree-ssa-phiopt.c (hoist_adjacent_loads): Correct test for
existence of conditional move with given mode.

gcc/testsuite:

2012-08-15  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

PR tree-optimization/54240
* gcc.target/powerpc/pr54240.c: New test.
* gcc.target/mips/pr54240.c: Likewise.

From-SVN: r190411

12 years agodouble-int.h (double_int::from_unsigned): Rename to ...
Richard Guenther [Wed, 15 Aug 2012 11:39:52 +0000 (11:39 +0000)]
double-int.h (double_int::from_unsigned): Rename to ...

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

* double-int.h (double_int::from_unsigned): Rename to ...
(double_int::from_uhwi): ... this.
(double_int::from_signed): Rename to ...
(double_int::from_shwi): ... this.
(double_int::to_signed): Rename to ...
(double_int::to_shwi): ... this.
(double_int::to_unsigned): Rename to ...
(double_int::to_uhwi): ... this.
(double_int::fits_unsigned): Rename to ...
(double_int::fits_uhwi): ... this.
(double_int::fits_signed): Rename to ...
(double_int::fits_shwi): ... this.
(double_int::fits): Rename to ...
(double_int::fits_hwi): ... this.
* double-int.c: Likewise.

From-SVN: r190410

12 years agotimevar.def (TV_VARPOOL, [...]): Remove.
Steven Bosscher [Wed, 15 Aug 2012 08:47:13 +0000 (08:47 +0000)]
timevar.def (TV_VARPOOL, [...]): Remove.

* timevar.def (TV_VARPOOL, TV_WHOPR_WPA_LTRANS_EXEC, TV_LIFE,
TV_LIFE_UPDATE, TV_DF_UREC, TV_INLINE_HEURISTICS,
TV_TREE_LINEAR_TRANSFORM, TV_TREE_LOOP_INIT, TV_TREE_LOOP_FINI,
TV_VPT, TV_LOCAL_ALLOC, TV_GLOBAL_ALLOC, TV_SEQABSTR): Remove.
(TV_IPA_INLINING, TV_FLATTEN_INLINING, TV_EARLY_INLINING,
TV_INLINE_PARAMETERS, TV_LOOP_INIT, TV_LOOP_FINI): New.
* timevar.c (timevar_print): Make printing width of timevar names
more flexible, but enforce maximum length.
* ipa-inline.c (pass_early_inline): Use TV_EARLY_INLINING.
(pass_ipa_inline): Use TV_IPA_INLINING.
* ipa-inline-analysis.c (pass_inline_parameters): Use
TV_INLINE_HEURISTICS.
* tree-ssa-loop.c (pass_tree_loop_init): No timevar for wrapper pass.
(pass_tree_loop_done): Likewise.
* final.c (pass_shorten_branches): Use TV_SHORTEN_BRANCH.
* loop-init.c (loop_optimizer_init): Push/pop TV_LOOP_INIT.
(loop_optimizer_finalize): Push/pop TV_LOOP_FINI.

From-SVN: r190409

12 years agoCanonicalize operand to vaba and vabal.
Ramana Radhakrishnan [Wed, 15 Aug 2012 08:39:48 +0000 (08:39 +0000)]
Canonicalize operand to vaba and vabal.

2012-08-15  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>

* config/arm/neon.md (neon_vaba<mode> VDQIW): Canonicalize
operands.
(neon_vabal<mode> VDQIW): Likewise.

From-SVN: r190408

12 years agore PR target/54212 (ARM: invalid instruction (vdupeq.32) generated)
Ramana Radhakrishnan [Wed, 15 Aug 2012 07:56:41 +0000 (07:56 +0000)]
re PR target/54212 (ARM: invalid instruction (vdupeq.32) generated)

Fix PR target/54212

2012-08-15  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>

PR target/54212
* config/arm/neon.md (vec_set<mode>_internal VD,VQ): Do not
mark as predicable. Adjust asm template.
(vec_setv2di_internal): Likewise.
(vec_extract<mode> VD, VQ): Likewise.
(vec_extractv2di): Likewise.
(neon_vget_lane<mode>_sext_internal VD, VQ): Likewise.
(neon_vset_lane<mode>_sext_internal VD, VQ): Likewise.
(neon_vdup_n<mode> VX, V32): Likewise.
(neon_vdup_nv2di): Likewise.

From-SVN: r190407

12 years agomips.md (define_attr accum_in): New instruction attribute.
Maxim Kuvyrkov [Wed, 15 Aug 2012 05:56:08 +0000 (05:56 +0000)]
mips.md (define_attr accum_in): New instruction attribute.

* config/mips/mips.md (define_attr accum_in): New instruction attribute.
Set it for imadd and fmadd patterns.
* config/mips/mips.c (mips_linked_madd_p): Use accum_in to extract
accumulator register.

From-SVN: r190406

12 years agocompiler: Adjust for GCC always being built with C++.
Ian Lance Taylor [Wed, 15 Aug 2012 03:47:05 +0000 (03:47 +0000)]
compiler: Adjust for GCC always being built with C++.

From-SVN: r190405

12 years agoAdd an xfail manifest for x86_64-unknown-linux-gnu to trunk.
Diego Novillo [Wed, 15 Aug 2012 02:25:19 +0000 (22:25 -0400)]
Add an xfail manifest for x86_64-unknown-linux-gnu to trunk.

This patch adds an xfail manifest for trunk for x86_64 builds. I find
this useful to determine whether my patch has introduced new failures.
The failures in these manifest are always present in trunk and
deciding what to ignore is not very straightforward.

I will keep maintaining this manifest out of clean builds. They are
not hard to maintain. Manifest files can be generated by going to the
top of the build directory and typing:

$ cd <top-of-bld-dir>
$ <path-to-src>/contrib/testsuite-management --produce_manifest

This will generate a .xfail file with the triple name of the target
you just built.  Once this file exist you can run the validator again
on the build directory with no arguments.  It should produce the
output:

$ cd <top-of-bld-dir>
$ <path-to-src>/contrib/testsuite-management/validate_failures.py
Source directory: <path-to-src>
Build target:     x86_64-unknown-linux-gnu
Manifest:         <path-to-src>/contrib/testsuite-management/x86_64-unknown-linux-gnu.xfail
Getting actual results from build
        ./x86_64-unknown-linux-gnu/libstdc++-v3/testsuite/libstdc++.sum
        ./x86_64-unknown-linux-gnu/libffi/testsuite/libffi.sum
        ./x86_64-unknown-linux-gnu/libgomp/testsuite/libgomp.sum
        ./x86_64-unknown-linux-gnu/libgo/libgo.sum
        ./x86_64-unknown-linux-gnu/boehm-gc/testsuite/boehm-gc.sum
        ./x86_64-unknown-linux-gnu/libatomic/testsuite/libatomic.sum
        ./x86_64-unknown-linux-gnu/libmudflap/testsuite/libmudflap.sum
        ./x86_64-unknown-linux-gnu/libitm/testsuite/libitm.sum
        ./x86_64-unknown-linux-gnu/libjava/testsuite/libjava.sum
        ./gcc/testsuite/g++/g++.sum
        ./gcc/testsuite/gnat/gnat.sum
        ./gcc/testsuite/ada/acats/acats.sum
        ./gcc/testsuite/gcc/gcc.sum
        ./gcc/testsuite/gfortran/gfortran.sum
        ./gcc/testsuite/obj-c++/obj-c++.sum
        ./gcc/testsuite/go/go.sum
        ./gcc/testsuite/objc/objc.sum

SUCCESS: No unexpected failures.

If the output shows new failures, you investigate them. If they are
not yours, you can add them to the xfail manifest (after reporting
them) and then commit the modified .xfail file.

Long term, I would like to have this script pull manifest files from
postings made to gcc-testresults. This way, we won't have to maintain
these .xfail files manually. In branches this is not a big problem,
but in trunk it may be a tad annoying.

From-SVN: r190404

12 years agobackport: As described in http://gcc.gnu.org/ml/gcc/2012-08/msg00015.html...
Diego Novillo [Wed, 15 Aug 2012 01:56:07 +0000 (21:56 -0400)]
backport: As described in gcc.gnu.org/ml/gcc/2012-08/msg00015.html...

Merge from cxx-conversion branch (http://gcc.gnu.org/wiki/cxx-conversion).

As described in http://gcc.gnu.org/ml/gcc/2012-08/msg00015.html, this patch
changes the default bootstrap process so that stage 1 always builds with a C++
compiler.

Other than the bootstrap change, the patch makes no functional changes to the
compiler.  Everything should build as it does now in trunk.  The main
changes in this patch are:

1- Configuration changes.
2- Re-write of VEC.
3- Re-write of gengtype to support C++ templates and
   user-provided marking functions.
4- New hash table class.
5- Re-write double_int.
6- Implement tree macros as inline functions so they can be
   called from gdb.

As discussed before, several of these changes do not fully change
the call sites to use the new APIs.

The bootstrap changes have already been tested on a wide range of
targets (http://gcc.gnu.org/wiki/CppBuildStatus).  Additionally,
I have tested the merged trunk on: x86_64-unknown-linux-gnu,
mips64el-unknown-linux-gnu, powerpc64-unknown-linux-gnu,
i686-pc-linux-gnu, and ia64-unknown-linux-gnu.

ChangeLog
2012-08-14   Diego Novillo  <dnovillo@google.com>

Merge from cxx-conversion branch.

* Makefile.tpl (STAGE[+id+]_CXXFLAGS): Remove
POSTSTAGE1_CONFIGURE_FLAGS.
* Makefile.in: Regenerate.
* configure.ac (ENABLE_BUILD_WITH_CXX): Remove.  Update all users.
Force C++ when bootstrapping.
* configure: Regenerate.

libcpp/ChangeLog
2012-08-14   Diego Novillo  <dnovillo@google.com>

Merge from cxx-conversion branch.  Configury.

* Makefile.in: Remove all handlers of ENABLE_BUILD_WITH_CXX.
* configure.ac: Likewise.
* configure: Regenerate.

2012-08-14   Lawrence Crowl  <crowl@google.com>

Merge from cxx-conversion branch.  New C++ hash table.

* include/symtab.h (typedef struct ht hash_table): Change the typedef
name to cpp_hash_table.  Update all users of the typedef.

gcc/ChangeLog
2012-08-14   Diego Novillo  <dnovillo@google.com>

Merge from cxx-conversion branch.  Configury.

* configure.ac (CXX_FOR_BUILD): Define and substitute.
(BUILD_CXXFLAGS): Define.
Remove all handlers of ENABLE_BUILD_WITH_CXX.
Force all build to be with C++.
* Makefile.in (BUILD_CXXFLAGS): Use it.
Remove all handlers of ENABLE_BUILD_WITH_CXX.
* configure: Regenerate.
* config.in: Regenerate.
* doc/install.texi: Remove documentation for --enable-build-with-cxx
and --enable-build-poststage1-with-cxx.

2012-08-14   Diego Novillo  <dnovillo@google.com>

Merge from cxx-conversion branch.  Re-implement VEC in C++.

* vec.c (vec_heap_free): Convert into a template function.
(vec_gc_o_reserve_1): Make extern.
(vec_gc_p_reserve): Remove.
(vec_gc_p_reserve_exact): Remove.
(vec_gc_o_reserve): Remove.
(vec_gc_o_reserve_exact): Remove.
(vec_heap_o_reserve_1): Make extern.
(vec_heap_p_reserve): Remove.
(vec_heap_p_reserve_exact): Remove.
(vec_heap_o_reserve): Remove.
(vec_heap_o_reserve_exact): Remove.
(vec_stack_p_reserve): Remove.
(vec_stack_p_reserve_exact): Remove.
* vec.h (VEC_CHECK_INFO, VEC_CHECK_DECL, VEC_CHECK_PASS,
VEC_ASSERT, VEC_ASSERT_FAIL, vec_assert_fail): Move earlier
in the file.
(VEC): Define to vec_t<T>.
(vec_allocation_t): Define.
(struct vec_prefix): Move earlier in the file.
(vec_t<T>): New template.
(DEF_VEC_I, DEF_VECL_ALLOC_I, DEF_VEC_P, DEF_VEC_ALLOC_P,
DEF_VEC_O, DEF_VEC_ALLOC_P, DEF_VEC_O, DEF_VEC_ALLOC_O,
DEF_VEC_ALLOC_P_STACK, DEF_VEC_ALLOC_O_STACK,
DEF_VEC_ALLOC_I_STACK): Expand to 'struct vec_swallow_trailing_semi'.
(DEF_VEC_A): Provide template instantiations for
GC/PCH markers that do not traverse the vector.
(vec_stack_p_reserve): Remove.
(vec_stack_p_reserve_exact): Remove.
(vec_stack_p_reserve_exact_1): Remove.
(vec_stack_o_reserve): Remove.
(vec_stack_o_reserve_exact): Remove.
(vec_stack_free): Re-write as a template function.
(vec_reserve): New template function.
(vec_reserve_exact): New template function.
(vec_heap_free): New template function if GATHER_STATISTICS is
defined.  Otherwise, macro that expands to free().
(VEC_length_1): New template function.
(VEC_length): Call it.
(VEC_empty_1): New template function.
(VEC_empty): Call it.
(VEC_address_1): New template function.
(VEC_address): Call it.
(VEC_last_1): New template function.
(VEC_last): Call it.  Change return type to T&.
Change all users that used VEC_Os.
(VEC_index_1): New template function.
(VEC_index): Call it.  Return a T& instead of a T*.
Update all callers that were using VEC_O before.
(VEC_iterate_1): New template function.
(VEC_iterate): Call it.
(VEC_embedded_size_1): New template function.
(VEC_embedded_size): Call it.
(VEC_embedded_init_1): New template function.
(VEC_embedded_init): Call it.
(VEC_alloc_1): New template function.
(VEC_alloc): Call it.  If A is 'stack', call XALLOCAVAR to
do the allocation.
(VEC_free_1): New template function.
(VEC_free): Call it.
(VEC_copy_1): New template function.
(VEC_copy): Call it.
(VEC_space_1): New template function
(VEC_space): Call it.
(VEC_reserve_1): New template function.
(VEC_reserve): Call it.
(VEC_reserve_exact_1): New template function.
(VEC_reserve_exact): Call it.
(VEC_splice_1): New template function.
(VEC_splice): Call it.
(VEC_safe_splice_1): New template function.
(VEC_safe_splice): Call it.
(VEC_quick_push_1): New template function.  Create two overloads, one
accepting T, the other accepting T *.  Update all callers
where T and T * are ambiguous.
(VEC_quick_push): Call it.
(VEC_safe_push_1): New template function. Create two overloads, one
accepting T, the other accepting T *.  Update all callers
where T and T * are ambiguous.
(VEC_safe_push): Call it.
(VEC_pop_1): New template function.
(VEC_pop): Call it.
(VEC_truncate_1): New template function.
(VEC_truncate): Call it.
(VEC_safe_grow_1): New template function.
(VEC_safe_grow): Call it.
(VEC_safe_grow_cleared_1): New template function.
(VEC_safe_grow_cleared): Call it.
(VEC_replace_1): New template function.
(VEC_replace): Call it.  Always accept T instead of T*.
Update all callers that used VEC_Os.
(VEC_quick_insert_1): New template function.
(VEC_quick_insert): Call it.
(VEC_safe_insert_1): New template function.
(VEC_safe_insert): Call it.
(VEC_ordered_remove_1): New template function.
(VEC_ordered_remove): Call it.
(VEC_unordered_remove_1): New template function.
(VEC_unordered_remove): Call it.
(VEC_block_remove_1): New template function.
(VEC_block_remove): Call it.
(VEC_lower_bound_1): New template function.
(VEC_lower_bound): Call it.
(VEC_OP): Remove.
(DEF_VEC_FUNC_P): Remove.
(DEF_VEC_ALLOC_FUNC_P): Remove.
(DEF_VEC_NONALLOC_FUNCS_P): Remove.
(DEF_VEC_FUNC_O): Remove.
(DEF_VEC_ALLOC_FUNC_O): Remove.
(DEF_VEC_NONALLOC_FUNCS_O): Remove.
(DEF_VEC_ALLOC_FUNC_I): Remove.
(DEF_VEC_NONALLOC_FUNCS_I): Remove.
(DEF_VEC_ALLOC_FUNC_P_STACK): Remove.
(DEF_VEC_ALLOC_FUNC_O_STACK): Remove.
(DEF_VEC_ALLOC_FUNC_I_STACK): Remove.
(vec_reserve_exact): New template function.

* gengtype-lex.l (DEF_VEC_ALLOC_[IOP]/{EOID}): Remove.
* gengtype-parse.c (token_names): Remove DEF_VEC_ALLOC_[IOP].
(typedef_name): Emit vec_t<C1> instead of VEC_C1_C2.
(def_vec_alloc): Remove.  Update all callers.
* gengtype.c (filter_type_name): New.
(output_mangled_typename): Call it.
(write_func_for_structure): Likewise.
(write_types): Likewise.
(write_root): Likewise.
(write_typed_alloc_def): Likewise.
(note_def_vec): Emit vec_t<TYPE_NAME> instead of VEC_TYPE_NAME_base.
(note_def_vec_alloc): Remove.
* gengtype.h (note_def_vec_alloc): Remove.
(DEFVEC_ALLOC): Remove token code.

* df-scan.c (df_bb_verify): Remove call to df_free_collection_rec
inside the insn traversal loop.
* gimplify.c (gimplify_compound_lval): Rename STACK to EXPR_STACK.
* ipa-inline.c (inline_small_functions): Rename HEAP to EDGE_HEAP.
* reg-stack.c (stack): Rename to STACK_PTR.  Update all users.
* tree-vrp.c (stack): Rename to EQUIV_STACK.  Update all users.

* config/bfin/bfin.c (hwloop_optimize): Update some calls to
VEC_* for vectors of non-pointers.
* config/c6x/c6x.c (try_rename_operands): Likewise.
(reshuffle_units): Likewise.
* config/mips/mips.c (mips_multi_start): Likewise.
(mips_multi_add): Likewise.
(mips_multi_copy_insn): Likewise.
(mips_multi_set_operand): Likewise.
* hw-doloop.c (discover_loop): Likewise.
(discover_loops): Likewise.
(reorg_loops): Likewise.

2012-08-14   Diego Novillo  <dnovillo@google.com>

Merge from cxx-conversion branch.  C++ support in gengtype.

* coretypes.h (gt_pointer_operator): Move from ...
* ggc.h: ... here.
* doc/gty.texi: Document support for C++ templates and
user-provided markers.
* gcc/gengtype-lex.l: Update copyright year.
Remove support for recognizing DEF_VEC_O, DEF_VEC_P and
DEFVEC_I.
* gengtype-parse.c: Update copyright year.
(token_names): Remove DEF_VEC_O, DEF_VEC_P and DEF_VEC_I.
(require_template_declaration): New.
(typedef_name): Call it.
(type): Replace IS_UNION with KIND. Replace all users.
(def_vec): Remove.  Update all users.
* gengtype-state.c (type_lineloc): Handle TYPE_USER_STRUCT.
(write_state_user_struct_type): New.
(write_state_type): Call it.
(read_state_user_struct_type): New.
(read_state_type): Call it.
* gengtype.c: Update copyright year.
(dump_pair): Move declaration to the top.
(dump_type): Likewise.
(dump_type_list): Likewise.
(dbgprint_count_type_at): Handle TYPE_USER_STRUCT.
(create_user_defined_type): New.
(resolve_typedef): Call it.
(new_structure): Replace argument ISUNION with KIND.
Change users to refer to KIND directly.
Update all callers.
(find_structure): Likewise.
(set_gc_used_type): Handle TYPE_USER_STRUCT.
(create_file): Update HDR to include new copyright year.
(struct walk_type_data): Add field IN_PTR_FIELD.
(output_mangled_typename): Handle TYPE_USER_STRUCT.
(walk_type): Set D->IN_PTR_FIELD when walking a TYPE_POINTER.
Clear it afterwards.
Handle TYPE_USER_STRUCT.
(write_types_process_field): Handle TYPE_USER_STRUCT.
(get_type_specifier): Move earlier in the file.
(write_type_decl): New.
(write_marker_function_name): New.
(write_user_func_for_structure_ptr): New.
(write_user_func_for_structure_body): New.
(write_user_marking_functions): New.
(write_func_for_structure): Call write_marker_function_name
and write_type_decl.
Do not call walk_type for TYPE_USER_STRUCT. Emit a call to the user
function directly.
Call write_user_marking_functions on TYPE_USER_STRUCTs.
(write_types_local_user_process_field): New.
(write_pch_user_walking_for_structure_body): New.
(write_pch_user_walking_functions): New.
(write_types_local_process_field): Handle TYPE_USER_STRUCT.
(write_local_func_for_structure): Do not call walk_type for
TYPE_USER_STRUCT. Instead, emit the call to gt_pch_nx directly.
Call write_pch_user_walking_functions for TYPE_USER_STRUCTs.
(write_root): Handle TYPE_USER_STRUCT.
(vec_prefix_type): Remove.  Update all users.
(note_def_vec): Remove.  Update all users.
(dump_typekind): Handle TYPE_USER_STRUCT.
(dump_type): Initialize SEEN_TYPES, if needed.
Handle TYPE_USER_STRUCT.
(dump_everything): Do not initialize SEEN_TYPES.
* gengtype.h: Update copyright year.
(enum typekind): Add TYPE_USER_STRUCT.
(union_or_struct_p): Rename from UNION_OR_STRUCT_P.
Convert into function.
Add an overload taking const_type_p.
Update all callers.
(new_structure): Change second field to type enum typekind.
Update all users.
(find_structure): Likewise.
(note_def_vec): Remove.
(DEFVEC_OP): Remove.
(DEFVEC_I): Remove.
* ggc-page.c (gt_ggc_mx): Add entry points for marking
'const char *&', 'unsigned char *&' and 'unsigned char&'.
* ggc-zone.c (gt_ggc_mx): Add entry points for marking
'const char *&' and 'unsigned char *&'.
* stringpool.c (gt_pch_nx): Add entry points for marking
'const char *&', 'unsigned char *&' and 'unsigned char&'.
Add an entry point for the overload taking arguments 'unsigned char
*', 'gt_pointer_operator' and 'void *'.
* vec.h (struct vec_prefix): Remove GTY marker.
(struct vec_t): Remove GTY((length)) attribute from field 'vec'.
(gt_ggc_mx (vec_t<T> *)): New template function.
(gt_pch_nx (vec_t<T> *)): New template function.
(gt_pch_nx (vec_t<T *> *, gt_pointer_operator, void *)): New template
function.
(gt_pch_nx (vec_t<T> *, gt_pointer_operator, void *)): New template
function.

* basic-block.h (struct edge_def): Mark GTY((user)).
Remove all GTY markers from fields.
(gt_ggc_mx): Declare.
(gt_pch_nx): Declare.
* tree-cfg.c (gt_ggc_mx): New.
(gt_pch_nx): New.

* gengtype-lex.l (USER_GTY): Add pattern for "user".
* gengtype-parse.c (option): Handle USER_GTY.
(opts_have): New.
(type): Call it.
If the keyword 'user' is used, do not walk the fields
of the structure.
* gengtype.h (USER_GTY): Add.
* doc/gty.texi: Update.

2012-08-14   Lawrence Crowl  <crowl@google.com>

Merge cxx-conversion branch.  Implement C++ hash table.

* hash-table.h: New. Implementation borrowed from libiberty/hashtab.c.
* hash-table.c: Likewise.
* tree-ssa-tail-merge.c: Include hash-table.h instead of hashtab.h.
(static htab_t same_succ_htab): Change type to hash_table;
move specification of helper functions from create call to declaration.
Change users to invoke member functions.
(same_succ_print_traverse): Make extern ssa_.... Change callers.
Remove void* casting.
(same_succ_hash): Likewise.
(same_succ_equal): Likewise.
(same_succ_delete): Likewise.
* tree-ssa-threadupdate.c: Include hash-table.h.
(struct local_info): Rename to ssa_local_info_t to avoid overloading
the type name local_info with the variable name local_info.
(static htab_t redirection_data): Change type to hash_table.
Move specification of helper functions from create call to declaration.
Change users to invoke member functions.
(redirection_data_hash): Make extern ssa_.... Change callers.
Remove void* casting.
(redirection_data_eq): Likewise.
(fix_duplicate_block_edges): Likewise.
(create_duplicates): Likewise.
(fixup_template_block): Likewise.
(redirect_edges): Likewise.
(lookup_redirection_data): Change types associated with the hash table
from void* to their actual type. Remove unnecessary casts.
* tree-ssa-ccp.c: Include hash-table.h.
(typedef gimple_htab): New.  Uses hash_table.  Replace specific uses
of htab_t with gimple_htab.  Change users to invoke member functions.
Move specification of helper functions from create call to declaration.
* tree-ssa-coalesce.c: Include hash-table.h instead of hashtab.h.
(hash_ssa_name_by_var): Make extern. Remove void* casting.
(eq_ssa_name_by_var): Likewise.
(coalesce_ssa_name): Change type of local static htab_t ssa_name_hash
to hash_table. Change users to invoke member functions.
Move specification of helper functions from create call to declaration.
* coverage.c: Include hash-table.h instead of hashtab.h.
(static htab_t counts_hash): Change type to hash_table;
move specification of helper functions from create call to declaration.
Change users to invoke member functions.
(htab_counts_entry_hash): Make extern. Rename with coverage_... instead
of htab_... Remove void* casting.
(htab_counts_entry_eq): Likewise.
(htab_counts_entry_del): Likewise.
* tree-ssa-pre.c: Include hash-table.h instead of hashtab.h.
(static htab_t expression_to_id): Change type to hash_table.
Move specification of helper functions from create call to declaration.
Change users to invoke member functions.
(static htab_t phi_translate_table): Likewise.
(pre_expr_eq): Make extern ssa_.... Change callers.
Remove void* casting.
(pre_expr_hash): Likewise.
(expr_pred_trans_hash): Likewise.
(expr_pred_trans_eq): Likewise.
(alloc_expression_id): Change types associated with the hash table
from void* to their actual type. Remove unnecessary casts.
(lookup_expression_id): Likewise.
(phi_trans_lookup): Likewise.
(phi_trans_add): Likewise.
* stringpool.c: Rename uses of libcpp typedef hash_table to
cpp_hash_table.
* Makefile.in: Add hash-table.o to OBJS-libcommon-target.
Add $(HASH_TABLE_H). Add new dependences on $(HASH_TABLE_H).

2012-08-14   Lawrence Crowl  <crowl@google.com>

Merge from cxx-conversion branch.  Re-write double_int in C++.

* hash-table.h
(typedef double_int): Change to struct (POD).
(double_int::make): New overloads for int to double-int conversion.
(double_int::mask): New.
(double_int::max_value): New.
(double_int::min_value): New.
(double_int::operator ++): New.
(double_int::operator --): New.
(double_int::operator *=): New.
(double_int::operator +=): New.
(double_int::operator -=): New.
(double_int::to_signed): New.
(double_int::to_unsigned): New.
(double_int::fits_unsigned): New.
(double_int::fits_signed): New.
(double_int::fits): New.
(double_int::trailing_zeros): New.
(double_int::popcount): New.
(double_int::multiple_of): New.
(double_int::set_bit): New.
(double_int::mul_with_sign): New.
(double_int::operator * (binary)): New.
(double_int::operator + (binary)): New.
(double_int::operator - (binary)): New.
(double_int::operator - (unary)): New.
(double_int::operator ~ (unary)): New.
(double_int::operator & (binary)): New.
(double_int::operator | (binary)): New.
(double_int::operator ^ (binary)): New.
(double_int::and_not): New.
(double_int::lshift): New.
(double_int::rshift): New.
(double_int::alshift): New.
(double_int::arshift): New.
(double_int::llshift): New.
(double_int::lrshift): New.
(double_int::lrotate): New.
(double_int::rrotate): New.
(double_int::div): New.
(double_int::sdiv): New.
(double_int::udiv): New.
(double_int::mod): New.
(double_int::smod): New.
(double_int::umod): New.
(double_int::divmod): New.
(double_int::sdivmod): New.
(double_int::udivmod): New.
(double_int::ext): New.
(double_int::zext): New.
(double_int::sext): New.
(double_int::is_zero): New.
(double_int::is_one): New.
(double_int::is_minus_one): New.
(double_int::is_negative): New.
(double_int::cmp): New.
(double_int::ucmp): New.
(double_int::scmp): New.
(double_int::ult): New.
(double_int::ugt): New.
(double_int::slt): New.
(double_int::sgt): New.
(double_int::max): New.
(double_int::smax): New.
(double_int::umax): New.
(double_int::min): New.
(double_int::smin): New.
(double_int::umin): New.
(double_int::operator ==): New.
(double_int::operator !=): New.
(shwi_to_double_int): Change implementation to use member function.
(double_int_minus_one): Likewise.
(double_int_zero): Likewise.
(double_int_one): Likewise.
(double_int_two): Likewise.
(double_int_ten): Likewise.
(uhwi_to_double_int): Likewise.
(double_int_to_shwi): Likewise.
(double_int_to_uhwi): Likewise.
(double_int_fits_in_uhwi_p): Likewise.
(double_int_fits_in_shwi_p): Likewise.
(double_int_fits_in_hwi_p): Likewise.
(double_int_mul): Likewise.
(double_int_mul_with_sign): Likewise.
(double_int_add): Likewise.
(double_int_sub): Likewise.
(double_int_neg): Likewise.
(double_int_div): Likewise.
(double_int_sdiv): Likewise.
(double_int_udiv): Likewise.
(double_int_mod): Likewise.
(double_int_smod): Likewise.
(double_int_umod): Likewise.
(double_int_divmod): Likewise.
(double_int_sdivmod): Likewise.
(double_int_udivmod): Likewise.
(double_int_multiple_of): Likewise.
(double_int_setbit): Likewise.
(double_int_ctz): Likewise.
(double_int_not): Likewise.
(double_int_ior): Likewise.
(double_int_and): Likewise.
(double_int_and_not): Likewise.
(double_int_xor): Likewise.
(double_int_lshift): Likewise.
(double_int_rshift): Likewise.
(double_int_lrotate): Likewise.
(double_int_rrotate): Likewise.
(double_int_cmp): Likewise.
(double_int_scmp): Likewise.
(double_int_ucmp): Likewise.
(double_int_max): Likewise.
(double_int_smax): Likewise.
(double_int_umax): Likewise.
(double_int_min): Likewise.
(double_int_smin): Likewise.
(double_int_umin): Likewise.
(double_int_ext): Likewise.
(double_int_sext): Likewise.
(double_int_zext): Likewise.
(double_int_mask): Likewise.
(double_int_max_value): Likewise.
(double_int_min_value): Likewise.
(double_int_zero_p): Likewise.
(double_int_one_p): Likewise.
(double_int_minus_one_p): Likewise.
(double_int_equal_p): Likewise.
(double_int_popcount): Likewise.
* hash-table.c
(double_int_mask): Reuse implementation for double_int::mask.
(double_int_max_value): Likewise.
(double_int_min_value): Likewise.
(double_int_ext): Likewise.
(double_int_zext): Likewise.
(double_int_sext): Likewise.
(double_int_mul_with_sign): Likewise.
(double_int_divmod): Likewise.
(double_int_sdivmod): Likewise.
(double_int_udivmod): Likewise.
(double_int_div): Likewise.
(double_int_sdiv): Likewise.
(double_int_udiv): Likewise.
(double_int_mod): Likewise.
(double_int_smod): Likewise.
(double_int_umod): Likewise.
(double_int_multiple_of): Likewise.
(double_int_lshift): Likewise.
(double_int_rshift): Likewise.
(double_int_lrotate): Likewise.
(double_int_rrotate): Likewise.
(double_int_cmp): Likewise.
(double_int_ucmp): Likewise.
(double_int_scmp): Likewise.
(double_int_max): Likewise.
(double_int_smax): Likewise.
(double_int_umax): Likewise.
(double_int_min): Likewise.
(double_int_smin): Likewise.
(double_int_umin): Likewise.
(double_int_min): Likewise.
(double_int_min): Likewise.
(double_int_min): Likewise.
(double_int_min): Likewise.
(double_int_min): Likewise.
(double_int_min): Likewise.
(double_int::alshift): New.
(double_int::arshift): New.
(double_int::llshift): New.
(double_int::lrshift): New.
(double_int::ult): New.
(double_int::ugt): New.
(double_int::slt): New.
(double_int::sgt): New.
(double_int_setbit): Reuse implementation for double_int::set_bit,
which avoids a name conflict with a macro.
(double_int_double_int_ctz): Reuse implementation for
double_int::trailing_zeros.
(double_int_fits_in_shwi_p): Reuse implementation for
double_int::fits_signed.
(double_int_fits_in_hwi_p): Reuse implementation for double_int::fits.
(double_int_mul): Reuse implementation for binary
double_int::operator *.
(double_int_add): Likewise.
(double_int_sub): Likewise.
(double_int_neg): Reuse implementation for unary
double_int::operator -.
(double_int_max_value): Likewise.
* fixed-value.c: Change to use member functions introduced above.

2012-08-14   Lawrence Crowl  <crowl@google.com>

Merge cxx-conversion branch.  Support tree macro calling
from gdb.

* tree.h (tree_check): New.
(TREE_CHECK): Use inline function above instead of __extension__.
(tree_not_check): New.
(TREE_NOT_CHECK): Use inline function above instead of __extension__.
(tree_check2): New.
(TREE_CHECK2): Use inline function above instead of __extension__.
(tree_not_check2): New.
(TREE_NOT_CHECK2): Use inline function above instead of __extension__.
(tree_check3): New.
(TREE_CHECK3): Use inline function above instead of __extension__.
(tree_not_check3): New.
(TREE_NOT_CHECK3): Use inline function above instead of __extension__.
(tree_check4): New.
(TREE_CHECK4): Use inline function above instead of __extension__.
(tree_not_check4): New.
(TREE_NOT_CHECK4): Use inline function above instead of __extension__.
(tree_check5): New.
(TREE_CHECK5): Use inline function above instead of __extension__.
(tree_not_check5): New.
(TREE_NOT_CHECK5): Use inline function above instead of __extension__.
(contains_struct_check): New.
(CONTAINS_STRUCT_CHECK): Use inline function above instead of
__extension__.
(tree_class_check): New.
(TREE_CLASS_CHECK): Use inline function above instead of __extension__.
(tree_range_check): New.
(TREE_RANGE_CHECK): Use inline function above instead of __extension__.
(omp_clause_subcode_check): New.
(OMP_CLAUSE_SUBCODE_CHECK): Use inline function above instead of
__extension__.
(omp_clause_range_check): New.
(OMP_CLAUSE_RANGE_CHECK): Use inline function above instead of
__extension__.
(expr_check): New.
(EXPR_CHECK): Use inline function above instead of __extension__.
(non_type_check): New.
(NON_TYPE_CHECK): Use inline function above instead of __extension__.
(tree_vec_elt_check): New.
(TREE_VEC_ELT_CHECK): Use inline function above instead of
__extension__.
(omp_clause_elt_check): New.
(OMP_CLAUSE_ELT_CHECK): Use inline function above instead of
__extension__.
(tree_operand_check): New.
(TREE_OPERAND_CHECK): Use inline function above instead of
__extension__.
(tree_operand_check_code): New.
(TREE_OPERAND_CHECK_CODE): Use inline function above instead of
__extension__.
(TREE_CHAIN): Simplify implementation.
(TREE_TYPE): Simplify implementation.
(tree_operand_length): Move for compilation dependences.
* gdbinit.in: (macro define __FILE__): New.
(macro define __LINE__): New.
(skip "tree.h"): New.

gcc/cp/ChangeLog
2012-08-14   Diego Novillo  <dnovillo@google.com>

Merge from cxx-conversion branch.  Re-write VEC in C++.

* call.c (add_function_candidate): Remove const qualifier
from call to VEC_index.

2012-08-14   Diego Novillo  <dnovillo@google.com>

Merge from cxx-conversion branch.  Configury.

* go-c.h: Remove all handlers of ENABLE_BUILD_WITH_CXX.
* go-gcc.cc: Likewise.
* go-system.h: Likewise.

From-SVN: r190402