gcc.git
11 years ago[multiple changes]
Uros Bizjak [Tue, 20 Nov 2012 18:02:36 +0000 (19:02 +0100)]
[multiple changes]

2012-11-20  Uros Bizjak  <ubizjak@gmail.com>

* config/i386/i386.md (fix_trunc<MODEF:mode><SWI48:mode>_sse): Macroize
insn from fix_trunc<mode>{si,di}_sse using SWI48 mode iterator.
(peephole2 to avoid vector decoded forms): Macroize peephole2
using MODEF mode iterator.  Use SWI48 mode iterator instead of SWI48x.

2012-11-20  Uros Bizjak  <ubizjak@gmail.com>

PR target/19398
* config/i386/i386.md
(peephole2 to shorten x87->SSE reload sequences): Remove peephole2.
* config/i386/i386.h (enum ix86_tune_indices)
<IX86_TUNE_SHORTEN_X87_SSE>: Remove.
* config/i386/i386.h (initial_ix86_tune_features): Update.

2012-11-20  Vladimir Makarov  <vmakarov@redhat.com>

PR target/19398
* lra-constraints.c (process_alt_operands): Discourage reloads
through secodnary memory.

testsuite/ChangeLog:

2012-11-20  Uros Bizjak  <ubizjak@gmail.com>

PR target/19398
* gcc.target/i386/pr19398.c: New test.

From-SVN: r193671

11 years ago* dwarf.c (read_attribute): Always clear val.
Ian Lance Taylor [Tue, 20 Nov 2012 17:28:05 +0000 (17:28 +0000)]
* dwarf.c (read_attribute): Always clear val.

From-SVN: r193670

11 years agors6000.md (largetoc_low): Revert.
David Edelsohn [Tue, 20 Nov 2012 16:27:57 +0000 (16:27 +0000)]
rs6000.md (largetoc_low): Revert.

        * config/rs6000/rs6000.md (largetoc_low): Revert.
        (largetoc_low_aix<mode>): New.

From-SVN: r193669

11 years agoFix dependencies for tlink.o.
Diego Novillo [Tue, 20 Nov 2012 16:26:24 +0000 (11:26 -0500)]
Fix dependencies for tlink.o.

Found while changing code in vec.h and doing incremental builds.

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

* Makefile.in (tlink.o): Add dependency on VEC_H.

From-SVN: r193668

11 years agoConvert vec<> into a POD.
Diego Novillo [Tue, 20 Nov 2012 16:26:09 +0000 (11:26 -0500)]
Convert vec<> into a POD.

This fixes PR 55398 by making vec<> a true POD.  I thought we could get
away with having private fields, but we can't.  We fail to pass vec<>
instances through varargs.

The patch makes every field public and mangles the field names in the
hope that no future patch will try to make use of them directly.  It's
horrible, but I could not think of anything better.

Tested with clang++ as the host compiler.

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

    PR middle-end/55398
    * vec.h (class vec_prefix): Make every field public.
    Rename field alloc_ to alloc_PRIVATE_.
    Rename field num_ to num_PRIVATE_.
    Update all users.
    (class vec<T, A, vl_embed>): Make every field public.
    Rename field pfx_ to pfx_PRIVATE_.
    Rename field data_ to data_PRIVATE_.
    Update all users.
    (class vec<T, A, vl_ptr>): Make every field public.
    Rename field vec_ to vec_PRIVATE_.
    Update all users.

From-SVN: r193667

11 years agore PR target/55268 (gcc4.8 mingw-w64 wrong stdcall import symbols generated after...
Kai Tietz [Tue, 20 Nov 2012 16:17:16 +0000 (17:17 +0100)]
re PR target/55268 (gcc4.8 mingw-w64 wrong stdcall import symbols generated after rev 193204)

        PR target/55268
        * i386.c (ix86_mangle_decl_assembler_name): Use
        SUBTARGET_MANGLE_DECL_ASSEMBLER_NAME if defined.
        * cygming.h (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Rename
        to SUBTARGET_MANGLE_DECL_ASSEMBLER_NAME.

From-SVN: r193666

11 years agore PR libstdc++/55413 ([LTO] hashtable.h:1648 '__bbegin_bkt' may be used uninitialize...
Paolo Carlini [Tue, 20 Nov 2012 14:54:11 +0000 (14:54 +0000)]
re PR libstdc++/55413 ([LTO] hashtable.h:1648 '__bbegin_bkt' may be used uninitialized in this function [-Werror=maybe-uninitialized])

2012-11-20  Paolo Carlini  <paolo.carlini@oracle.com>

PR libstdc++/55413
* include/bits/hashtable.h (_Hashtable<>::_M_rehash_aux): Initialize
__bbegin_bkt and __prev_bkt to avoid uninitialized warnings.
* testsuite/23_containers/unordered_set/instantiation_neg.cc: Adjust
dg-error line number.

From-SVN: r193663

11 years ago2012-11-20 Matthias Klose <doko@ubuntu.com>
Matthias Klose [Tue, 20 Nov 2012 13:48:28 +0000 (13:48 +0000)]
2012-11-20  Matthias Klose  <doko@ubuntu.com>

        * doc/doxygen/user.cfg.in (ALIASES). Escape sharp braces.
        * include/bits/allocator.h: Escape sharp braces in comment.
        * include/profile/impl/profiler_algos.h: Likewise.

From-SVN: r193662

11 years agov850.c (F): New function.
Nick Clifton [Tue, 20 Nov 2012 13:12:16 +0000 (13:12 +0000)]
v850.c (F): New function.

* config/v850/v850.c (F): New function.  Mark the given insn as
being frame related.
(v850_all_frame_related): New function.  Mark the given push insn
as being frame related.
(v850_pass_by_reference): When using the RH850 ABI do not pass
arguments by reference.
(v850_strict_argument_naming): Delete function.
(v850_function_arg): Use word alignment with the RH850 ABI.
(v850_arg_partial_bytes): Likewise.
(v850_function_arg_advance): Likewise.
(v850_print_operand): Handle CONST_INT and CONST_DOUBLE.
(compute_register_save_size): Use df_regs_ever_live_p.
(increment_stack): Mark prologue adjustments as being frame
related.
(expand_prologue): Handle pretend args.  Mark insns generated as
being frame related.
(expand_epilogue): Likewise.
(v850_return_in_memory): When using the RH850 ABI return
aggregates in memory.
(v850_setup_incoming_varargs): Delete function.
(v850_option_override): New function.
(TARGET_DEBUG_UNWIND_INFO): Delete definition.
(TARGET_SETUP_INCOMING_VARARGS): Likewise.
(TARGET_STRICT_ARGUMENT_NAMING): Likewise.
(TARGET_OPTION_OVERRIDE): Define.
* config/v850/v850.h (ASM_SPEC): Pass 8byte-align and gcc-abi
options on to assembler.
(LINK_SPEC): Likewise.
(TARGET_CPU_CPP_BUILTINS): Define __V850_8BYTE_ALIGN__ and
__V850_GCC_ABI__.
(STACK_BOUNDARY): Set to BIGGEST_ALIGNMENT.
(FUNCTION_BOUNDARY): With the RH850 ABI always 32-bit alignment.
(BIGGEST_ALIGNMENT): With -8byte-align set to 64-bits.
(BIGGEST_FIELD_ALIGNMENT): Likewise.
(enum reg_class): Swap EVEN_REGS and GENERAL_REGS.
(REG_CLASS_NAMES): Likewise.
(REG_CLASS_CONTENTS): Likewise.
(struct cum_arg): Delete anonymous_args field.
(INIT_CUMULATIVE_ARGS): Update.
(PREFERRED_DEBUG): Set to DWARF2_DEBUG.
(DWARF2_FRAME_INFO): Define.
(DWARF2_UNWIND_INFO): Define.
(INCOMING_RETURN_ADDR_RTX): Define.
(DWARF_FRAME_RETURN_COLUMN): Define.
(TARGET_USE_FPU): Define.
* config/v850/v850.md: Replace TARGET_V850E2V3 in floating point
insns with TARGET_USE_FPU.
(fixuns_truncsfsi2): New pattern.
(fixuns_truncdfsi2): New pattern.
(fix_truncsfdi2): New pattern.
(fixuns_truncsfdi2): New pattern.
(fix_truncdfdi2): New pattern.
(fixuns_truncdfdi2): New pattern.
(unsfloatsisf2): New pattern.
(unsfloatsidf2): New pattern.
(floatdisf2): New pattern.
(unsfloatdisf2): New pattern.
(floatdidf2): New pattern.
(unsfloatdidf2): New pattern.
(fnmasf4): Fix RTl description.
(fnmssf4): Likewise.
* config/v850/v850.opt (mrelax): New option.
(mlong-jumps): Likewise.
(msoft-float): Likewise.
(mhard-float): Likewise.
(mrh850-abi): Likewise.
(mgcc-abi): Likewise.
(m8byte-align): Likewise.
* config/v850/t-v850 (MULTILIB_OPTIONS): Update multilib options.
(MULTILIB_DIRNAMES): Likewise.

From-SVN: r193661

11 years agoi386.c (ix86_expand_call): Emit CLOBBERs in VOIDmode.
Uros Bizjak [Tue, 20 Nov 2012 12:54:23 +0000 (13:54 +0100)]
i386.c (ix86_expand_call): Emit CLOBBERs in VOIDmode.

* config/i386/i386.c (ix86_expand_call): Emit CLOBBERs in VOIDmode.

From-SVN: r193660

11 years agorx.c (rx_function_arg_boundary): When using the RX ABI align stack arguments to their...
Nick Clifton [Tue, 20 Nov 2012 12:22:44 +0000 (12:22 +0000)]
rx.c (rx_function_arg_boundary): When using the RX ABI align stack arguments to their natural alignment.

* config/rx/rx.c (rx_function_arg_boundary): When using the RX ABI
align stack arguments to their natural alignment.
(rx_narrow_volatile_bitfield): New function.  Allows narrow
volatile bitfields.
(rx_ok_to_inline): New function.  Do not inline functions with
local variables into a naked caller.
(TARGET_NARROW_VOLATILE_BITFIELD): Define.
(TARGET_CAN_INLINE_P): Define.
* config/rx/rx.c (TARGET_CPU_CPP_BUILTINS): Define __RX_ABI__ or
__RX_GC_ABI__.
(ASM_SPEC): Pass -mgcc-abi on to the assembler.
(STRICT_ALIGNMENT): Set to false.
(CTORS_SECTION_ASM_OP): Add executable attribute.
(DTORS_SECTION_ASM_OP): Add executable attribute.
(INIT_ARRAY_SECTION_ASM_OP): Add executable attribute.
(FINI_ARRAY_SECTION_ASM_OP): Add executable attribute.
* config/rx/rx.md (subdi3): Don't allow MEMs as the third operand,
as it causes too much reload pressure.
* config/rx/rx.opt (mgcc-abi): New option.
(mrx-abi): New option.
* config/rx/t-rx (MULTILIB_OPTIONS): Show how to add an ABI
multilib.
(MULTILIB_DIRNAMES): Likewise.

From-SVN: r193659

11 years agogcc/
James Greenhalgh [Tue, 20 Nov 2012 12:10:37 +0000 (12:10 +0000)]
gcc/
* config/aarch64/aarch64-builtins.c
(aarch64_simd_builtin_type_bits): Rename to...
(aarch64_simd_builtin_type_mode): ...this, make sequential.
(aarch64_simd_builtin_datum): Refactor members.
(VAR1, VAR2, ..., VAR12): Update accordingly.
(aarch64_simd_builtin_data): Include from aarch64-simd-builtins.def.
(aarch64_builtins): Update accordingly.
(init_aarch64_simd_builtins): Refactor, rename to...
(aarch64_init_simd_builtins): ...this.
(aarch64_simd_builtin_compare): Remove.
(locate_simd_builtin_icode): Likewise.
* config/aarch64/aarch64-protos.h (aarch64_init_builtins): New.
(aarch64_expand_builtin): New.
* config/aarch64/aarch64-simd-builtins.def: New file.
* config/aarch64/aarch64.c (aarch64_init_builtins):
Move to aarch64-builtins.c.
(aarch64_expand_builtin): Likewise.
* config/aarch64/aarch64.h
(aarch64_builtins): Move to aarch64-builtins.c.

Co-Authored-By: Tejas Belagod <tejas.belagod@arm.com>
From-SVN: r193658

11 years agore PR tree-optimization/55260 (ICE: in ipa_get_parm_lattices, at ipa-cp.c:263 with...
Martin Jambor [Tue, 20 Nov 2012 11:20:41 +0000 (12:20 +0100)]
re PR tree-optimization/55260 (ICE: in ipa_get_parm_lattices, at ipa-cp.c:263 with -O2 -fno-inline -fipa-cp-clone)

2012-11-20  Martin Jambor  <mjambor@suse.cz>

PR tree-optimization/55260
* ipa-cp.c (find_aggregate_values_for_callers_subset): Rename info to
dest_info, use caller_info instead of info when determining whether
callee is a clone.

* testsuite/g++.dg/torture/pr55260-1.C: New test.

From-SVN: r193657

11 years agosse.md (*<ssse3_avx2>_pmulhrsw<mode>3): Merge *avx2_pmulhrswv16hi3 and...
Andrey Turetskiy [Tue, 20 Nov 2012 11:05:10 +0000 (11:05 +0000)]
sse.md (*<ssse3_avx2>_pmulhrsw<mode>3): Merge *avx2_pmulhrswv16hi3 and...

        * config/i386/sse.md (*<ssse3_avx2>_pmulhrsw<mode>3): Merge
        *avx2_pmulhrswv16hi3 and *ssse3_pmulhrswv8hi3 into one pattern.

From-SVN: r193656

11 years agoFix to commit 193651.
James Greenhalgh [Tue, 20 Nov 2012 10:56:52 +0000 (10:56 +0000)]
Fix to commit 193651.

gcc/testsuite/
* gcc.target/aarch64/atomic-comp-swap-release-acquire.c:
Actually add this file.
* gcc.target/aarch64/atomic-op-acq_rel.c: Likewise.
* gcc.target/aarch64/atomic-op-acquire.c: Likewise.
* gcc.target/aarch64/atomic-op-char.c: Likewise.
* gcc.target/aarch64/atomic-op-consume.c: Likewise.
* gcc.target/aarch64/atomic-op-imm.c: Likewise.
* gcc.target/aarch64/atomic-op-int.c: Likewise.
* gcc.target/aarch64/atomic-op-long.c: Likewise.
* gcc.target/aarch64/atomic-op-relaxed.c: Likewise.
* gcc.target/aarch64/atomic-op-release.c: Likewise.
* gcc.target/aarch64/atomic-op-seq_cst.c: Likewise.
* gcc.target/aarch64/atomic-op-short.c: Likewise.

From-SVN: r193654

11 years agoFix revision 193651.
James Greenhalgh [Tue, 20 Nov 2012 10:51:02 +0000 (10:51 +0000)]
Fix revision 193651.

gcc/
* config/aarch64/atomics.md: Actually add this file.

From-SVN: r193653

11 years agoaarch64.md (define_attr "sync_*"): Remove.
Sofiane Naci [Tue, 20 Nov 2012 10:07:34 +0000 (10:07 +0000)]
aarch64.md (define_attr "sync_*"): Remove.

gcc/
* config/aarch64/aarch64.md
(define_attr "sync_*"): Remove.
(define_attr "length"): Update.
Include atomics.md.
* config/aarch64/aarch64-protos.h
(aarch64_expand_compare_and_swap): Add function prototype.
(aarch64_split_compare_and_swap): Likewise.
(aarch64_split_atomic_op): Likewise.
(aarch64_expand_sync): Remove function prototype.
(aarch64_output_sync_insn): Likewise.
(aarch64_output_sync_lock_release): Likewise.
(aarch64_sync_loop_insns): Likewise.
(struct aarch64_sync_generator): Remove.
(enum aarch64_sync_generator_tag): Likewise.
* config/aarch64/aarch64.c
(aarch64_legitimize_sync_memory): Remove function.
(aarch64_emit): Likewise.
(aarch64_insn_count): Likewise.
(aarch64_output_asm_insn): Likewise.
(aarch64_load_store_suffix): Likewise.
(aarch64_output_sync_load): Likewise.
(aarch64_output_sync_store): Likewise.
(aarch64_output_op2): Likewise.
(aarch64_output_op3): Likewise.
(aarch64_output_sync_loop): Likewise.
(aarch64_get_sync_operand): Likewise.
(aarch64_process_output_sync_insn): Likewise.
(aarch64_output_sync_insn): Likewise.
(aarch64_output_sync_lock_release): Likewise.
(aarch64_sync_loop_insns): Likewise.
(aarch64_call_generator): Likewise.
(aarch64_expand_sync): Likewise.
(* emit_f): Remove variable.
(aarch64_insn_count): Likewise.
(FETCH_SYNC_OPERAND): Likewise.
(aarch64_emit_load_exclusive): New function.
(aarch64_emit_store_exclusive): Likewise.
(aarch64_emit_unlikely_jump): Likewise.
(aarch64_expand_compare_and_swap): Likewise.
(aarch64_split_compare_and_swap): Likewise.
(aarch64_split_atomic_op): Likewise.
* config/aarch64/iterators.md
(atomic_sfx): New mode attribute.
(atomic_optab): New code attribute.
(atomic_op_operand): Likewise.
(atomic_op_str): Likewise.
(syncop): Rename to atomic_op.
* config/aarch64/sync.md: Delete.
* config/aarch64/atomics.md: New file.

gcc/testsuite
* gcc.target/aarch64/atomic-comp-swap-release-acquire.c: New testcase.
* gcc.target/aarch64/atomic-op-acq_rel.c: Likewise.
* gcc.target/aarch64/atomic-op-acquire.c: Likewise.
* gcc.target/aarch64/atomic-op-char.c: Likewise.
* gcc.target/aarch64/atomic-op-consume.c: Likewise.
* gcc.target/aarch64/atomic-op-imm.c: Likewise.
* gcc.target/aarch64/atomic-op-int.c: Likewise.
* gcc.target/aarch64/atomic-op-long.c: Likewise.
* gcc.target/aarch64/atomic-op-relaxed.c: Likewise.
* gcc.target/aarch64/atomic-op-release.c: Likewise.
* gcc.target/aarch64/atomic-op-seq_cst.c: Likewise.
* gcc.target/aarch64/atomic-op-short.c: Likewise.

From-SVN: r193651

11 years agore PR debug/55094 (ICE in maybe_record_trace_start, at dwarf2cfi.c:2224)
Jakub Jelinek [Tue, 20 Nov 2012 08:38:11 +0000 (09:38 +0100)]
re PR debug/55094 (ICE in maybe_record_trace_start, at dwarf2cfi.c:2224)

PR middle-end/55094
* builtins.c (expand_builtin_trap): Add REG_ARGS_SIZE note
on the trap insn for !ACCUMULATE_OUTGOING_ARGS.
* cfgcleanup.c (outgoing_edges_match): Don't look at debug insns
on the first old_insns_match_p call.  For !ACCUMULATE_OUTGOING_ARGS
fail if the last real insn doesn't have REG_ARGS_SIZE note.

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

From-SVN: r193649

11 years agore PR bootstrap/55370 (Bad libgcc.map)
Jakub Jelinek [Tue, 20 Nov 2012 08:36:31 +0000 (09:36 +0100)]
re PR bootstrap/55370 (Bad libgcc.map)

PR bootstrap/55370
* libgcc-std.ver.in: Add GCC_4.8.0 and %inherit for it.

From-SVN: r193648

11 years agore PR middle-end/54921 (wrong code with -Os -fno-omit-frame-pointer -fsched2-use...
Jakub Jelinek [Tue, 20 Nov 2012 08:34:43 +0000 (09:34 +0100)]
re PR middle-end/54921 (wrong code with -Os -fno-omit-frame-pointer -fsched2-use-superblocks -fstack-protector -ftree-slp-vectorize)

PR rtl-optimization/54921
* cselib.h (fp_setter_insn): New prototype.
* cselib.c (fp_setter_insn): New function.
(cselib_process_insn): If frame_pointer_needed,
call cselib_invalidate_rtx (stack_pointer_rtx) after
processing a frame pointer setter.
* var-tracking.c (fp_setter): Removed.
(vt_initialize): Use fp_setter_insn instead of fp_setter.

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

From-SVN: r193647

11 years agors6000.md (movdf_hardfloat32): Reorder move constraints so that the traditional float...
Michael Meissner [Tue, 20 Nov 2012 00:55:58 +0000 (00:55 +0000)]
rs6000.md (movdf_hardfloat32): Reorder move constraints so that the traditional floating point loads...

2012-11-19  Michael Meissner  <meissner@linux.vnet.ibm.com>

* config/rs6000/rs6000.md (movdf_hardfloat32): Reorder move
constraints so that the traditional floating point loads, stores,
and moves are done first, then the VSX loads, stores, and moves,
and finally the GPR loads, stores, and moves so that reload
chooses FPRs over GPRs, and uses the traditional load/store
instructions which provide an offset.
(movdf_hardfloat64): Likewise.

From-SVN: r193645

11 years agoarray_allocator.h: Replace uses of __GXX_EXPERIMENTAL_CXX0X__ with __cplusplus.
Jonathan Wakely [Tue, 20 Nov 2012 00:24:18 +0000 (00:24 +0000)]
array_allocator.h: Replace uses of __GXX_EXPERIMENTAL_CXX0X__ with __cplusplus.

* include/ext/array_allocator.h: Replace uses of
__GXX_EXPERIMENTAL_CXX0X__ with __cplusplus.

From-SVN: r193644

11 years agoDaily bump.
GCC Administrator [Tue, 20 Nov 2012 00:18:39 +0000 (00:18 +0000)]
Daily bump.

From-SVN: r193643

11 years agore PR middle-end/55359 (ICE in simplify_subreg accessing an unaligned subvector)
Richard Sandiford [Mon, 19 Nov 2012 23:28:04 +0000 (23:28 +0000)]
re PR middle-end/55359 (ICE in simplify_subreg accessing an unaligned subvector)

gcc/
PR middle-end/55359
* simplify-rtx.c (simplify_subreg): Return null for invalid offsets.

gcc/testsuite/
* gcc.target/i386/pr55359.c: New test.

From-SVN: r193640

11 years agotypedefs.cc: Check rebind and improve propagate_on_container_move_assignment check.
Jonathan Wakely [Mon, 19 Nov 2012 22:35:11 +0000 (22:35 +0000)]
typedefs.cc: Check rebind and improve propagate_on_container_move_assignment check.

* testsuite/20_util/allocator/requirements/typedefs.cc: Check rebind
and improve propagate_on_container_move_assignment check.

From-SVN: r193639

11 years agostl_algo.h (reverse_copy): Update comment per DR 2074.
Jonathan Wakely [Mon, 19 Nov 2012 22:28:00 +0000 (22:28 +0000)]
stl_algo.h (reverse_copy): Update comment per DR 2074.

* include/bits/stl_algo.h (reverse_copy): Update comment per DR 2074.
* include/bits/unordered_map.h: Apply DR 2005 resolution.
* doc/xml/manual/status_cxx2011.xml: Update per DR 2048.
* include/bits/allocator.h (allocator): Apply DR 2103 resolution.
* include/ext/array_allocator.h: Likewise.
* include/ext/bitmap_allocator.h: Likewise.
* include/ext/malloc_allocator.h: Likewise.
* include/ext/mt_allocator.h: Likewise.
* include/ext/new_allocator.h: Likewise.
* include/ext/pool_allocator.h: Likewise.
* include/ext/throw_allocator.h: Likewise.
* include/ext/alloc_traits.h (__allocator_always_compares_equal): Add
additional specializations.
* include/std/functional: Add comment about DR resolution.
* include/std/future: Likewise.
* include/std/scoped_allocator: Likewise.
* include/std/thread: Likewise.
* testsuite/20_util/allocator/requirements/typedefs.cc: New.
* testsuite/20_util/bind/ref_neg.cc: Adjust dg-error line numbers.

From-SVN: r193638

11 years ago* trans-mem.c (execute_tm_mark): Release bb_regions.
Aldy Hernandez [Mon, 19 Nov 2012 22:17:58 +0000 (22:17 +0000)]
* trans-mem.c (execute_tm_mark): Release bb_regions.

From-SVN: r193637

11 years agohashtable.h: Improve comments.
Jonathan Wakely [Mon, 19 Nov 2012 21:33:52 +0000 (21:33 +0000)]
hashtable.h: Improve comments.

* include/bits/hashtable.h: Improve comments.
* include/bits/hashtable_policy.h: Likewise.

From-SVN: r193636

11 years agothread_local-order1.C: Add dg-require-cxa-atexit.
Eric Botcazou [Mon, 19 Nov 2012 18:57:31 +0000 (18:57 +0000)]
thread_local-order1.C: Add dg-require-cxa-atexit.

* g++.dg/tls/thread_local-order1.C: Add dg-require-cxa-atexit.
* g++.dg/tls/thread_local3g.C: Likewise.
* g++.dg/tls/thread_local4g.C: Likewise.
* g++.dg/tls/thread_local5g.C: Likewise.
* g++.dg/tls/thread_local6g.C: Likewise.
* g++.dg/tls/thread_local-cse.C: XFAIL on Solaris 9.
* g++.dg/tls/thread_local2.C: Likewise.
* g++.dg/tls/thread_local2g.C: Likewise.
* g++.dg/tls/thread_local6.C: Likewise.

From-SVN: r193634

11 years agotrans-mem (collect_bb2reg): Stop scanning at irrevocable
Aldy Hernandez [Mon, 19 Nov 2012 18:43:40 +0000 (18:43 +0000)]
trans-mem (collect_bb2reg): Stop scanning at irrevocable

* trans-mem (collect_bb2reg): Stop scanning at irrevocable
* blocks.
(get_bb_regions_instrumented): Add new traverse_clone argument and
use it.
(expand_regions_1): Same.
(expand_region): Same.
(execute_tm_mark): Pass new argument to expand_regions.
(expand_block_edges): Pass new argument to
get_bb_regions_instrumented.
testsuite/
* g++.dg/tm/pr51516.C: Adjust for uninstrumented code path.
* gcc.dg/tm/clone-1.c: New test.

From-SVN: r193633

11 years ago* compare_tests: Add export LC_ALL=C to make sort happier.
Mike Stump [Mon, 19 Nov 2012 18:16:36 +0000 (18:16 +0000)]
* compare_tests: Add export LC_ALL=C to make sort happier.

From-SVN: r193631

11 years agogcc/
Sofiane Naci [Mon, 19 Nov 2012 18:10:09 +0000 (18:10 +0000)]
gcc/
* config/aarch64/aarch64.c
(aarch64_output_mi_thunk): Refactor to generate RTL patterns.

From-SVN: r193630

11 years agoAdd PR bootstrap/55384 to ChangeLog entry.
David Edelsohn [Mon, 19 Nov 2012 18:07:21 +0000 (13:07 -0500)]
Add PR bootstrap/55384 to ChangeLog entry.

From-SVN: r193629

11 years agore PR target/55276 (ppc: callee-saved vector registers not preserved)
David Edelsohn [Mon, 19 Nov 2012 16:58:31 +0000 (11:58 -0500)]
re PR target/55276 (ppc: callee-saved vector registers not preserved)

2012-11-19  Mans Rullgard  <mans@mansr.com>

        PR target/55276
        * config/rs6000/rs6000.c (rs6000_stack_info): Always set vrsave_mask
        for TARGET_ALTIVEC_ABI.  Zero vrsave_save_offset if
        !TARGET_ALTIVEC_VRSAVE.
        (rs6000_emit_prologue): For SAVE_INLINE_VLRs, check vrsave_size
        not vrsave_mask.

From-SVN: r193628

11 years agors6000.c (rs6000_stack_info): Always set vrsave_mask for TARGET_ALTIVEC_ABI.
Mans Rullgard [Mon, 19 Nov 2012 16:55:05 +0000 (16:55 +0000)]
rs6000.c (rs6000_stack_info): Always set vrsave_mask for TARGET_ALTIVEC_ABI.

2012-11-19  Mans Rullgard  <mans@mansr.com>

        * config/rs6000/rs6000.c (rs6000_stack_info): Always set vrsave_mask
        for TARGET_ALTIVEC_ABI.  Zero vrsave_save_offset if
        !TARGET_ALTIVEC_VRSAVE.
        (rs6000_emit_prologue): For SAVE_INLINE_VLRs, check vrsave_size
        not vrsave_mask.

From-SVN: r193627

11 years agore PR translation/53764 (Typo in translatable string: "literalto")
Ian Lance Taylor [Mon, 19 Nov 2012 16:28:04 +0000 (16:28 +0000)]
re PR translation/53764 (Typo in translatable string: "literalto")

PR translation/53764
compiler: Fix typo in error message.

Reported by Roland Stigge.

From-SVN: r193626

11 years ago* system.h (vec_free): Undef.
David Edelsohn [Mon, 19 Nov 2012 14:47:11 +0000 (14:47 +0000)]
* system.h (vec_free): Undef.

From-SVN: r193625

11 years agore PR c++/55368 (Comma before semicolon in struct definition is not rejected)
Paolo Carlini [Mon, 19 Nov 2012 14:41:26 +0000 (14:41 +0000)]
re PR c++/55368 (Comma before semicolon in struct definition is not rejected)

/cp
2012-11-19  Paolo Carlini  <paolo.carlini@oracle.com>

PR c++/55368
* parser.c (cp_parser_member_declaration): Emit an error in case
of stray comma at end of member declaration.

/testsuite
2012-11-19  Paolo Carlini  <paolo.carlini@oracle.com>

PR c++/55368
* g++.dg/parse/struct-5.C: New.

From-SVN: r193624

11 years ago* class.c (one_inheriting_sig): Don't inherit base copy ctors.
Jason Merrill [Mon, 19 Nov 2012 14:05:59 +0000 (09:05 -0500)]
* class.c (one_inheriting_sig): Don't inherit base copy ctors.

From-SVN: r193623

11 years agore PR c++/55262 ([C++0x] g++.dg/cpp0x/inh-ctor10.C ICEs with -g)
Jason Merrill [Mon, 19 Nov 2012 14:05:48 +0000 (09:05 -0500)]
re PR c++/55262 ([C++0x] g++.dg/cpp0x/inh-ctor10.C ICEs with -g)

PR c++/55262
* method.c (implicitly_declare_fn): Set DECL_PARM_INDEX on
the parms of an inheriting ctor.

From-SVN: r193622

11 years agore PR c++/55261 ([C++0x] ICE (SIGSEGV) when inheriting implicit constructor)
Jason Merrill [Mon, 19 Nov 2012 14:05:36 +0000 (09:05 -0500)]
re PR c++/55261 ([C++0x] ICE (SIGSEGV) when inheriting implicit constructor)

PR c++/55261
* class.c (add_implicitly_declared_members): Use
lookup_fnfields_slot to get the base constructors.

From-SVN: r193621

11 years agore PR middle-end/54630 (GCC 4.8 --enable-languages=c build fails: Undefined symbols...
Jakub Jelinek [Mon, 19 Nov 2012 13:44:15 +0000 (14:44 +0100)]
re PR middle-end/54630 (GCC 4.8 --enable-languages=c build fails: Undefined symbols: ___cxa_guard_acquire and ___cxa_guard_release)

PR middle-end/54630
* tree-ssa-coalesce.c (coalesce_ssa_name): Remove static
keyword from ssa_name_hash var.

* class.c (fixed_type_or_null_ref_ht): New variable.
(fixed_type_or_null): Use it instead of local static ht.

From-SVN: r193620

11 years agolibtool-version: Bump soversion.
Matthias Klose [Mon, 19 Nov 2012 11:49:48 +0000 (11:49 +0000)]
libtool-version: Bump soversion.

2012-11-19  Matthias Klose  <doko@ubuntu.com>

        * libtool-version: Bump soversion.

From-SVN: r193619

11 years agomd.texi: Document define_subst.
Maxim Kuznetsov [Mon, 19 Nov 2012 10:19:20 +0000 (10:19 +0000)]
md.texi: Document define_subst.

        * doc/md.texi: Document define_subst.
        * gensupport.c (MAX_OPERANDS): New define.
        (operand_data): New.
        (match_operand_entries_in_pattern): New.
        (used_operands_numbers): New.
        (subst_true): New.
        (subst_false): New.
        (define_subst_queue): New.
        (define_subst_tail): New.
        (define_subst_attr_queue): New.
        (define_subst_attr_tail): New.
        (has_subst_attribute): New.
        (subst_pattern_match): New.
        (get_alternatives_number): New.
        (alter_output_for_subst_insn): New.
        (alter_attrs_for_subst_insn): New.
        (process_substs_on_one_elem): New.
        (subst_dup): New.
        (process_define_subst): New.
        (duplicate_alternatives): New.
        (duplicate_each_alternative): New.
        (constraints_handler_t): New typedef.
        (alter_constraints): New.
        (adjust_operands_numbers): New.
        (replace_duplicating_operands_in_pattern): New.
        (remove_from_queue): New.
        (process_rtx): Handle define_subst and define_subst_attr.
        (change_subst_attribute): New.
        (alter_predicate_for_insn): Fix formatting.
        (alter_attrs_for_insn): Likewise.
        (alter_output_for_insn): Likewise.
        (mark_operands_from_match_dup): New.
        (mark_operands_used_in_match_dup): New.
        (find_first_unused_number_of_operand): New.
        (renumerate_operands_in_pattern): New.
        (generate_match_dup): New.
        (check_define_attr_duplicates): New.
        (init_rtx_reader_args_cb): Add checking for duplicated attrs and
        processing of define_subst.
        (read_md_rtx): Handle define_subst.
        * read-rtl.c (struct subst_attr_to_iter_mapping): New.
        (substs): New global.
        (apply_subst_iterator): New.
        (bind_subst_iter_and_attr): New.
        (find_subst_iter_by_attr): New.
        (map_attr_string): Handle subst-iterators.
        (add_condition_to_rtx): Handle define_subst.
        (apply_iterators): Likewise.
        (initialize_iterators): Likewise.
        (add_define_attr_for_define_subst): New.
        (add_define_subst_attr): New.
        (read_subst_mapping): New.
        (read_rtx): Handle define_subst_attr.
        (read_rtx_code): Add subst-attributes recognition during reading of
        strings.
        * rtl.def (DEFINE_EXPAND): Add vector of attributes.
        (DEFINE_SUBST): New.
        (DEFINE_SUBST_ATTR): New.

Co-Authored-By: Kirill Yukhin <kirill.yukhin@intel.com>
Co-Authored-By: Michael Zolotukhin <michael.v.zolotukhin@intel.com>
From-SVN: r193618

11 years agore PR rtl-optimization/55315 (comparing address to constant is folded in cse)
Tom de Vries [Mon, 19 Nov 2012 09:35:54 +0000 (09:35 +0000)]
re PR rtl-optimization/55315 (comparing address to constant is folded in cse)

2012-11-19  Tom de Vries  <tom@codesourcery.com>

PR rtl-optimization/55315

* gcc.target/mips/pr55315.c: New test.

From-SVN: r193617

11 years agore PR rtl-optimization/55315 (comparing address to constant is folded in cse)
Tom de Vries [Mon, 19 Nov 2012 09:35:48 +0000 (09:35 +0000)]
re PR rtl-optimization/55315 (comparing address to constant is folded in cse)

2012-11-19  Tom de Vries  <tom@codesourcery.com>

PR rtl-optimization/55315

* rtlanal.c (nonzero_address_p): Don't assume a nonzero address plus a
const is a nonzero address.

From-SVN: r193616

11 years agoreflect: Fix invalid sharing in valueInterface.
Ian Lance Taylor [Mon, 19 Nov 2012 05:34:08 +0000 (05:34 +0000)]
reflect: Fix invalid sharing in valueInterface.

From-SVN: r193614

11 years agoThis patch addresses the bogus "Invocation mismatch" messages seen in parallel profil...
Teresa Johnson [Mon, 19 Nov 2012 05:20:59 +0000 (05:20 +0000)]
This patch addresses the bogus "Invocation mismatch" messages seen in parallel profiledbootstrap builds of gcc.

This patch addresses the bogus "Invocation mismatch" messages seen in parallel
profiledbootstrap builds of gcc. See PR bootstrap/55051 for a discussion of
why this is occurring and why this checking is inaccurate. Leave it in when
!GCOV_LOCKED, to warn about concurrent update issues requiring locking.

2012-11-18  Teresa Johnson  <tejohnson@google.com>

PR bootstrap/55051
* libgcov.c (gcov_exit): Remove merged program summary
comparison unless !GCOV_LOCKED.

From-SVN: r193612

11 years agoextend.texi: Use @smallexample consistently.
Sandra Loosemore [Mon, 19 Nov 2012 03:55:32 +0000 (22:55 -0500)]
extend.texi: Use @smallexample consistently.

2012-11-18  Sandra Loosemore  <sandra@codesourcery.com>

gcc/
* doc/extend.texi: Use @smallexample consistently.  Add @noindent
when continuing a sentence or paragraph past an example.  Change
tabs to spaces in examples.

From-SVN: r193611

11 years agoDaily bump.
GCC Administrator [Mon, 19 Nov 2012 00:19:24 +0000 (00:19 +0000)]
Daily bump.

From-SVN: r193610

11 years agogcc/
Richard Sandiford [Sun, 18 Nov 2012 17:34:06 +0000 (17:34 +0000)]
gcc/
* doc/md.texi (extv@var{m}, extvmisalign@var{m}, extzv@var{m})
(extzvmisalign@var{m}, insv@var{m}, insvmisalign@var{m}): Document.
(insv, extv, extzv): Deprecate.
* optabs.def (insv_optab, extv_optab, extzv_optab)
(insvmisalign_optab, extvmisalign_optab, extzvmisalign_optab):
New optabs.
* optabs.c (get_optab_extraction_insn): New function.
(get_extraction_insn): Use it.
* config/mips/mips.md (extv): Split into...
(extvmisalign<mode>, extv<mode>): ...these new patterns.  Rename
existing extv<mode> pattern to...
(*extv<mode>): ...this.
(extzv): Split into...
(extzvmisalign<mode>, extzv<mode>): ...these new patterns.  Rename
existing extzv<mode> pattern to...
(*extzv<mode>): ...this.
(insv): Split into...
(insvmisalign<mode>, insv<mode>): ...these new patterns.  Rename
existing insv<mode> pattern to...
(*insv<mode>): ...this.  Use const_int_operand rather than
immediate_operand.
* config/mips/mips.c (mips_block_move_straight): Use set_mem_size
to set the size of BLKmode accesses.
(mips_get_unaligned_mem): Require OP0 to be a BLKmode memory,
turning it from an "rtx *" to an rtx.
(mips_expand_ext_as_unaligned_load): Simplify for new optab
interface.  Update call to mips_get_unaligned_mem.
(mips_expand_ins_as_unaligned_store): Update call to
mips_get_unaligned_mem.

From-SVN: r193606

11 years agoMakefile.in (recog.o): Add insn-codes.h.
Richard Sandiford [Sun, 18 Nov 2012 17:33:38 +0000 (17:33 +0000)]
Makefile.in (recog.o): Add insn-codes.h.

gcc/
* Makefile.in (recog.o): Add insn-codes.h.
* expr.h (extraction_pattern): Move to optabs.h.
(mode_for_extraction): Delete.
* optabs.h (extraction_insn): New structure.
(extraction_pattern): Moved from expr.h.
(get_best_reg_extraction_insn, get_best_mem_extraction_insn): Declare.
* optabs.c (HAVE_insv, CODE_FOR_insv, HAVE_extv, CODE_FOR_extv)
(HAVE_extzv, CODE_FOR_extzv): Provide defaults.
(extraction_type): New enum.
(get_traditional_extraction_insn, get_extraction_insn)
(get_best_reg_extraction_insn, get_best_mem_extraction_insn):
New functions.
* combine.c (make_extraction): Use get_best_reg_extraction_insn
instead of mode_for_extraction.
* expmed.c (HAVE_insv, CODE_FOR_insv, gen_insv, HAVE_extv)
(CODE_FOR_extv, gen_extv, HAVE_extzv, CODE_FOR_extzv, gen_extzv):
Remove fallback definitions.
(mode_for_extraction): Delete.
(adjust_bit_field_mem_for_reg): New function.
(store_bit_field_using_insv): Replace OP_MODE parameter with
an extraction_insn.  Pass struct_mode to narrow_bit_field_mem.
(extract_bit_field_using_extv): Likewise EXT_MODE.
(store_bit_field_1): Use get_best_reg_extraction_insn and
get_best_mem_extraction_insn instead of mode_for_extraction.
Use adjust_bit_field_mem_for_reg when forcing memory to a
register and doing a register insertion.  Update calls to
store_bit_field_using_insv.
(extract_bit_field_1): Likewise extractions and calls to
extract_bit_field_using_extv.
(store_Bit_field): When narrowing to a bitregion, don't use the
insv mode as a limit.
* recog.c: (HAVE_extv, CODE_FOR_extv, HAVE_extzv, CODE_FOR_extzv):
Provide defaults.
(simplify_while_replacing): Use insn_data instead of
mode_for_extraction.

From-SVN: r193605

11 years agostor-layout.c (bit_field_mode_iterator::bit_field_mode_iterator): Set up a default...
Richard Sandiford [Sun, 18 Nov 2012 17:33:15 +0000 (17:33 +0000)]
stor-layout.c (bit_field_mode_iterator::bit_field_mode_iterator): Set up a default value of bitregion_end_.

gcc/
* stor-layout.c (bit_field_mode_iterator::bit_field_mode_iterator):
Set up a default value of bitregion_end_.
(bit_field_mode_iterator::next_mode): Always apply bitregion_end_
check.  Include SLOW_UNALIGNED_ACCESS in the alignment check.
(get_best_mode): Ignore modes that are wider than the alignment.

From-SVN: r193604

11 years agomachmode.h (bit_field_mode_iterator): New class.
Richard Sandiford [Sun, 18 Nov 2012 17:33:01 +0000 (17:33 +0000)]
machmode.h (bit_field_mode_iterator): New class.

gcc/
* machmode.h (bit_field_mode_iterator): New class.
(get_best_mode): Change final parameter to bool.
* stor-layout.c (bit_field_mode_iterator::bit_field_mode_iterator)
(bit_field_mode_iterator::next_mode): New functions, split out from...
(get_best_mode): ...here.  Change final parameter to bool.
Use bit_field_mode_iterator.

From-SVN: r193603

11 years agoexpmed.c (narrow_bit_field_mem): New function.
Richard Sandiford [Sun, 18 Nov 2012 17:32:45 +0000 (17:32 +0000)]
expmed.c (narrow_bit_field_mem): New function.

gcc/
* expmed.c (narrow_bit_field_mem): New function.
(store_bit_field_using_insv, store_bit_field_1, store_fixed_bit_field)
(extract_bit_field_1): Use it.

From-SVN: r193602

11 years agoexpr.h (adjust_address_1): Add a size parameter.
Richard Sandiford [Sun, 18 Nov 2012 17:32:29 +0000 (17:32 +0000)]
expr.h (adjust_address_1): Add a size parameter.

gcc/
* expr.h (adjust_address_1): Add a size parameter.
(adjust_address, adjust_address_nv, adjust_bitfield_address)
(adjust_bitfield_address_nv): Adjust accordingly.
(adjust_bitfield_address_size): Define.
* emit-rtl.c (adjust_address_1): Add a size parameter.
Use it to set the size if MODE has no size.  Check whether
the size matches before returning the original memref.
Require the size to be known for adjust_object.
(adjust_automodify_address_1, widen_memory_access): Update calls
to adjust_address_1.

From-SVN: r193601

11 years agocombine.c (make_extraction): Handle TRUNCATEd INNERs.
Richard Sandiford [Sun, 18 Nov 2012 17:32:04 +0000 (17:32 +0000)]
combine.c (make_extraction): Handle TRUNCATEd INNERs.

gcc/
* combine.c (make_extraction): Handle TRUNCATEd INNERs.

From-SVN: r193600

11 years agoexpr.c (expand_assignment): Don't set MEM_KEEP_ALIAS_SET_P here.
Richard Sandiford [Sun, 18 Nov 2012 17:31:38 +0000 (17:31 +0000)]
expr.c (expand_assignment): Don't set MEM_KEEP_ALIAS_SET_P here.

gcc/
* expr.c (expand_assignment): Don't set MEM_KEEP_ALIAS_SET_P here.
* emit-rtl.c (set_mem_attributes_minus_bitpos): Handle DECL_BIT_FIELDs,
using their size instead of the COMPONENT_REF's.

From-SVN: r193599

11 years agot-linux64: Add multiarch names in MULTILIB_OSDIRNAMES.
Matthias Klose [Sun, 18 Nov 2012 13:37:05 +0000 (13:37 +0000)]
t-linux64: Add multiarch names in MULTILIB_OSDIRNAMES.

2012-11-17  Matthias Klose  <doko@ubuntu.com>

        * config/mips/t-linux64: Add multiarch names in MULTILIB_OSDIRNAMES.

From-SVN: r193598

11 years agodecl.c: Remove trailing spaces.
Eric Botcazou [Sun, 18 Nov 2012 10:26:56 +0000 (10:26 +0000)]
decl.c: Remove trailing spaces.

* gcc-interface/decl.c: Remove trailing spaces.
* gcc-interface/trans.c: Remove trailing spaces.

From-SVN: r193597

11 years agocompiler: Adjust for vec changes.
Ian Lance Taylor [Sun, 18 Nov 2012 07:56:13 +0000 (07:56 +0000)]
compiler: Adjust for vec changes.

From-SVN: r193596

11 years agoThis patch rewrites the old VEC macro-based interface into a new one based on the...
Diego Novillo [Sun, 18 Nov 2012 02:54:30 +0000 (21:54 -0500)]
This patch rewrites the old VEC macro-based interface into a new one based on the template class 'vec'.

This patch rewrites the old VEC macro-based interface into a new one
based on the template class 'vec'.  The user-visible changes are
described in http://gcc.gnu.org/wiki/cxx-conversion/cxx-vec.

I have tested the patch pretty extensively:

- Regular bootstraps on x86_64, ppc, ia64, sparc and hppa.
- Bootstraps with --enable-checking=release
- Bootstraps with --enable-checking=gc,gcac
- Basic builds on all targets (using contrib/config-list.mk).

We no longer access the vectors via VEC_* macros.  The pattern is
"VEC_operation (T, A, V, args)" becomes "V.operation (args)".

The only thing I could not do is create proper ctors and dtors for the
vec class.  Since these vectors are stored in unions, we
have to keep them as PODs (C++03 does not allow non-PODs in unions).

This means that creation and destruction must be explicit.  There is a
new method vec<type, allocation, layout>::create() and another vec<type,
allocation, layout>::destroy() to allocate the internal vector.

For vectors that must be pointers, there is a family of free functions
that implement the operations that need to tolerate NULL vectors.
These functions all start with the prefix 'vec_safe_'.  See the wiki
page for details.

The gengtype change removes the special handling for VEC() that used
to exist in gengtype. Additionally, it allows gengtype to recognize
templates of more than one argument and introduces the concept of an
undefined type (useful for template arguments that may or may not be
types).

When a TYPE_UNDEFINED is reached, gengtype will ignore it if it
happens inside a type marked with GTY((user)).  Otherwise, it will
emit an error.

Finally, gengtype rejects root types marked GTY((user)) that are not
first class pointers.

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

VEC API overhaul (http://gcc.gnu.org/wiki/cxx-conversion/cxx-vec)

* vec.c (register_overhead): Convert it into
member function of vec_prefix.
(release_overhead): Likewise.
(calculate_allocation): Likewise.
(vec_heap_free): Remove.
(vec_gc_o_reserve_1): Remove.
(vec_heap_o_reserve_1): Remove.
(vec_stack_o_reserve_1): Remove.
(vec_stack_o_reserve_exact): Remove.
(register_stack_vec): New.
(stack_vec_register_index): New.
(unregister_stack_vec): New.
(vec_assert_fail): Remove.
* vec.h: Conditionally include ggc.h.  Document conditional
hackery.
Update top-level documentation.
(ALONE_VEC_CHECK_INFO): Remove.
(VEC_CHECK_INFO): Remove.
(ALONE_VEC_CHECK_DECL): Remove.
(VEC_CHECK_DECL): Remove.
(ALONE_VEC_CHECK_PASS): Remove.
(VEC_CHECK_PASS): Remove.
(VEC_ASSERT): Remove.
(vec_prefix): Add friends va_gc, va_gc_atomic, va_heap and
va_stack.
Mark fields alloc_ and num_ as protected.
(struct vec_t): Remove.  Remove all function members.
(struct vl_embed): Declare.
(struct vl_ptr): Declare.
(free): Remove.
(reserve_exact): Remove.
(reserve): Remove.
(safe_splice): Remove.
(safe_push): Remove.
(safe_grow): Remove.
(safe_grow_cleared): Remove.
(safe_insert): Remove.
(DEF_VEC_I): Remove.
(DEF_VEC_ALLOC_I): Remove.
(DEF_VEC_P): Remove.
(DEF_VEC_ALLOC_P): Remove.
(DEF_VEC_O): Remove.
(DEF_VEC_ALLOC_O): Remove.
(DEF_VEC_ALLOC_P_STACK): Remove.
(DEF_VEC_ALLOC_O_STACK): Remove.
(DEF_VEC_ALLOC_I_STACK): Remove.
(DEF_VEC_A): Remove.
(DEF_VEC_ALLOC_A): Remove.
(vec_stack_p_reserve_exact_1): Remove.
(vec_stack_o_reserve): Remove.
(vec_stack_o_reserve_exact): Remove.
(VEC_length): Remove.
(VEC_empty): Remove.
(VEC_address): Remove.
(vec_address): Remove.
(VEC_last): Remove.
(VEC_index): Remove.
(VEC_iterate): Remove.
(VEC_embedded_size): Remove.
(VEC_embedded_init): Remove.
(VEC_free): Remove.
(VEC_copy): Remove.
(VEC_space): Remove.
(VEC_reserve): Remove.
(VEC_reserve_exact): Remove.
(VEC_splice): Remove.
(VEC_safe_splice): Remove.
(VEC_quick_push): Remove.
(VEC_safe_push): Remove.
(VEC_pop): Remove.
(VEC_truncate): Remove.
(VEC_safe_grow): Remove.
(VEC_replace): Remove.
(VEC_quick_insert): Remove.
(VEC_safe_insert): Remove.
(VEC_ordered_remove): Remove.
(VEC_unordered_remove): Remove.
(VEC_block_remove): Remove.
(VEC_lower_bound): Remove.
(VEC_alloc): Remove.
(VEC_qsort): Remove.

(va_heap): Declare.
(va_heap::default_layout): New typedef to vl_ptr.
(va_heap::reserve): New.
(va_heap::release): New.
(va_gc): Declare.
(va_gc::default_layout): New typedef to vl_embed.
(va_gc::reserve): New.
(va_gc::release): New.
(va_gc_atomic): Declare.  Inherit from va_gc.
(va_stack): Declare.
(va_stack::default_layout): New typedef to vl_ptr.
(va_stack::alloc): New.
(va_stack::reserve): New.
(va_stack::release): New.
(register_stack_vec): Declare.
(stack_vec_register_index): Declare.
(unregister_stack_vec): Declare.

(vec<T, A = va_heap, L = typename A::default_layout>): Declare
empty vec template.
(vec<T, A, vl_embed>): Partial specialization for embedded
layout.
(vec<T, A, vl_embed>::allocated): New.
(vec<T, A, vl_embed>::length): New.
(vec<T, A, vl_embed>::is_empty): New.
(vec<T, A, vl_embed>::address): New.
(vec<T, A, vl_embed>::operator[]): New.
(vec<T, A, vl_embed>::last New.
(vec<T, A, vl_embed>::space): New.
(vec<T, A, vl_embed>::iterate): New.
(vec<T, A, vl_embed>::iterate): New.
(vec<T, A, vl_embed>::copy): New.
(vec<T, A, vl_embed>::splice): New.
(vec<T, A, vl_embed>::quick_push New.
(vec<T, A, vl_embed>::pop New.
(vec<T, A, vl_embed>::truncate): New.
(vec<T, A, vl_embed>::quick_insert): New.
(vec<T, A, vl_embed>::ordered_remove): New.
(vec<T, A, vl_embed>::unordered_remove): New.
(vec<T, A, vl_embed>::block_remove): New.
(vec<T, A, vl_embed>::qsort): New.
(vec<T, A, vl_embed>::lower_bound): New.
(vec<T, A, vl_embed>::embedded_size): New.
(vec<T, A, vl_embed>::embedded_init): New.
(vec<T, A, vl_embed>::quick_grow): New.
(vec<T, A, vl_embed>::quick_grow_cleared): New.
(vec_safe_space): New.
(vec_safe_length): New.
(vec_safe_address): New.
(vec_safe_is_empty): New.
(vec_safe_reserve): New.
(vec_safe_reserve_exact): New.
(vec_alloc): New.
(vec_free): New.
(vec_safe_grow): New.
(vec_safe_grow_cleared): New.
(vec_safe_iterate): New.
(vec_safe_push): New.
(vec_safe_insert): New.
(vec_safe_truncate): New.
(vec_safe_copy): New.
(vec_safe_splice): New.

(vec<T, A, vl_ptr>): New partial specialization for the space
efficient layout.
(vec<T, A, vl_ptr>::exists): New.
(vec<T, A, vl_ptr>::is_empty): New.
(vec<T, A, vl_ptr>::length): New.
(vec<T, A, vl_ptr>::address): New.
(vec<T, A, vl_ptr>::operator[]): New.
(vec<T, A, vl_ptr>::operator!=): New.
(vec<T, A, vl_ptr>::operator==): New.
(vec<T, A, vl_ptr>::last): New.
(vec<T, A, vl_ptr>::space): New.
(vec<T, A, vl_ptr>::iterate): New.
(vec<T, A, vl_ptr>::copy): New.
(vec<T, A, vl_ptr>::reserve): New.
(vec<T, A, vl_ptr>::reserve_exact): New.
(vec<T, A, vl_ptr>::splice): New.
(vec<T, A, vl_ptr>::safe_splice): New.
(vec<T, A, vl_ptr>::quick_push): New.
(vec<T, A, vl_ptr>::safe_push): New.
(vec<T, A, vl_ptr>::pop): New.
(vec<T, A, vl_ptr>::truncate): New.
(vec<T, A, vl_ptr>::safe_grow): New.
(vec<T, A, vl_ptr>::safe_grow_cleared): New.
(vec<T, A, vl_ptr>::quick_grow): New.
(vec<T, A, vl_ptr>::quick_grow_cleared): New.
(vec<T, A, vl_ptr>::quick_insert): New.
(vec<T, A, vl_ptr>::safe_insert): New.
(vec<T, A, vl_ptr>::ordered_remove): New.
(vec<T, A, vl_ptr>::unordered_remove): New.
(vec<T, A, vl_ptr>::block_remove): New.
(vec<T, A, vl_ptr>::qsort): New.
(vec<T, A, vl_ptr>::lower_bound): New.
(vec_stack_alloc): Define.
(FOR_EACH_VEC_SAFE_ELT): Define.
* vecir.h: Remove.  Update all users.
* vecprim.h: Remove.  Update all users.
Move uchar to coretypes.h.

* Makefile.in (VEC_H): Add $(GGC_H).
Remove vecir.h and vecprim.h dependencies everywhere.

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

* gengtype-lex.l (VEC): Remove.
Add characters in the set [\!\>\.-].
* gengtype-parse.c (token_names): Remove "VEC".
(require_template_declaration): Remove handling of VEC_TOKEN.
(type): Likewise.
Call create_user_defined_type when parsing GTY((user)).
* gengtype-state.c (type_lineloc): handle TYPE_UNDEFINED.
(write_state_undefined_type): New.
(write_state_type): Call write_state_undefined_type for
TYPE_UNDEFINED.
(read_state_type): Call read_state_undefined_type for
TYPE_UNDEFINED.
* gengtype.c (dbgprint_count_type_at): Handle TYPE_UNDEFINED.
(create_user_defined_type): Make extern.
(type_for_name): Factor out of resolve_typedef.
(create_undefined_type): New
(resolve_typedef): Call it when we cannot find a previous
typedef and the type is not a template.
(find_structure): Accept TYPE_UNDEFINED.
(set_gc_used_type): Add argument ALLOWED_UNDEFINED_TYPES,
default to false.
Emit an error for TYPE_UNDEFINED unless LEVEL is GC_UNUSED or
ALLOWED_UNDEFINED_TYPES is set.
Set ALLOWED_UNDEFINED_TYPES to true for TYPE_USER_STRUCT.
(filter_type_name): Accept templates with more than one
argument.
(output_mangled_typename): Handle TYPE_UNDEFINED
(walk_type): Likewise.
(write_types_process_field): Likewise.
(write_func_for_structure): If CHAIN_NEXT is set, ORIG_S
should not be a user-defined type.
(write_types_local_user_process_field): Handle TYPE_ARRAY,
TYPE_NONE and TYPE_UNDEFINED.
(write_types_local_process_field): Likewise.
(contains_scalar_p): Return 0 for TYPE_USER_STRUCT.
(write_root): Reject user-defined types that are not pointers.
Handle TYPE_NONE, TYPE_UNDEFINED, TYPE_UNION, TYPE_LANG_STRUCT
and TYPE_PARAM_STRUCT.
(output_typename): Handle TYPE_NONE, TYPE_UNDEFINED, and
TYPE_ARRAY.
(dump_typekind): Handle TYPE_UNDEFINED.
* gengtype.h (enum typekind): Add TYPE_UNDEFINED.
(create_user_defined_type): Declare.
(enum gty_token): Remove VEC_TOKEN.

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

Adjust for new vec API (http://gcc.gnu.org/wiki/cxx-conversion/cxx-vec)

* coretypes.h (uchar): Define.
* alias.c: Use new vec API in vec.h.
* asan.c: Likewise.
* attribs.c: Likewise.
* basic-block.h: Likewise.
* bb-reorder.c: Likewise.
* builtins.c: Likewise.
* calls.c: Likewise.
* cfg.c: Likewise.
* cfganal.c: Likewise.
* cfgcleanup.c: Likewise.
* cfgexpand.c: Likewise.
* cfghooks.c: Likewise.
* cfghooks.h: Likewise.
* cfgloop.c: Likewise.
* cfgloop.h: Likewise.
* cfgloopanal.c: Likewise.
* cfgloopmanip.c: Likewise.
* cfgrtl.c: Likewise.
* cgraph.c: Likewise.
* cgraph.h: Likewise.
* cgraphclones.c: Likewise.
* cgraphunit.c: Likewise.
* combine.c: Likewise.
* compare-elim.c: Likewise.
* coverage.c: Likewise.
* cprop.c: Likewise.
* data-streamer.h: Likewise.
* dbxout.c: Likewise.
* dce.c: Likewise.
* df-core.c: Likewise.
* df-problems.c: Likewise.
* df-scan.c: Likewise.
* dominance.c: Likewise.
* domwalk.c: Likewise.
* domwalk.h: Likewise.
* dse.c: Likewise.
* dwarf2cfi.c: Likewise.
* dwarf2out.c: Likewise.
* dwarf2out.h: Likewise.
* emit-rtl.c: Likewise.
* except.c: Likewise.
* except.h: Likewise.
* expr.c: Likewise.
* expr.h: Likewise.
* final.c: Likewise.
* fold-const.c: Likewise.
* function.c: Likewise.
* function.h: Likewise.
* fwprop.c: Likewise.
* gcc.c: Likewise.
* gcse.c: Likewise.
* genattr.c: Likewise.
* genattrtab.c: Likewise.
* genautomata.c: Likewise.
* genextract.c: Likewise.
* genopinit.c: Likewise
* ggc-common.c: Likewise.
* ggc.h: Likewise.
* gimple-low.c: Likewise.
* gimple-ssa-strength-reduction.c: Likewise.
* gimple-streamer-in.c: Likewise.
* gimple.c: Likewise.
* gimple.h: Likewise.
* gimplify.c: Likewise.
* graph.c: Likewise.
* graphds.c: Likewise.
* graphds.h: Likewise.
* graphite-blocking.c: Likewise.
* graphite-clast-to-gimple.c: Likewise.
* graphite-dependences.c: Likewise.
* graphite-interchange.c: Likewise.
* graphite-optimize-isl.c: Likewise.
* graphite-poly.c: Likewise.
* graphite-poly.h: Likewise.
* graphite-scop-detection.c: Likewise.
* graphite-scop-detection.h: Likewise.
* graphite-sese-to-poly.c: Likewise.
* graphite.c: Likewise.
* godump.c: Likewise.
* haifa-sched.c: Likewise.
* hw-doloop.c: Likewise.
* hw-doloop.h: Likewise.
* ifcvt.c: Likewise.
* insn-addr.h: Likewise.
* ipa-cp.c: Likewise.
* ipa-inline-analysis.c: Likewise.
* ipa-inline-transform.c: Likewise.
* ipa-inline.c: Likewise.
* ipa-inline.h: Likewise.
* ipa-prop.c: Likewise.
* ipa-prop.h: Likewise.
* ipa-pure-const.c: Likewise.
* ipa-ref-inline.h: Likewise.
* ipa-ref.c: Likewise.
* ipa-ref.h: Likewise.
* ipa-reference.c: Likewise.
* ipa-split.c: Likewise.
* ipa-utils.c: Likewise.
* ipa-utils.h: Likewise.
* ipa.c: Likewise.
* ira-build.c: Likewise.
* ira-color.c: Likewise.
* ira-emit.c: Likewise.
* ira-int.h: Likewise.
* ira.c: Likewise.
* loop-invariant.c: Likewise.
* loop-unroll.c: Likewise.
* lower-subreg.c: Likewise.
* lra-lives.c: Likewise.
* lra.c: Likewise.
* lto-cgraph.c: Likewise.
* lto-section-out.c: Likewise.
* lto-streamer-in.c: Likewise.
* lto-streamer-out.c: Likewise.
* lto-streamer.h: Likewise.
* lto-symtab.c: Likewise.
* mcf.c: Likewise.
* modulo-sched.c: Likewise.
* omp-low.c: Likewise.
* opts-common.c: Likewise.
* opts-global.c: Likewise.
* opts.c: Likewise.
* opts.h: Likewise.
* passes.c: Likewise.
* predict.c: Likewise.
* print-tree.c: Likewise.
* profile.c: Likewise.
* profile.h: Likewise.
* read-rtl.c: Likewise.
* ree.c: Likewise.
* reg-stack.c: Likewise.
* regrename.c: Likewise.
* regrename.h: Likewise.
* reload.c: Likewise.
* reload.h: Likewise.
* reload1.c: Likewise.
* rtl.h: Likewise.
* sched-deps.c: Likewise.
* sched-int.h: Likewise.
* sdbout.c: Likewise.
* sel-sched-dump.c: Likewise.
* sel-sched-ir.c: Likewise.
* sel-sched-ir.h: Likewise.
* sel-sched.c: Likewise.
* sese.c: Likewise.
* sese.h: Likewise.
* statistics.h: Likewise.
* stmt.c: Likewise.
* stor-layout.c: Likewise.
* store-motion.c: Likewise.
* tlink.c: Likewise.
* toplev.c: Likewise.
* trans-mem.c: Likewise.
* tree-browser.c: Likewise.
* tree-call-cdce.c: Likewise.
* tree-cfg.c: Likewise.
* tree-cfgcleanup.c: Likewise.
* tree-chrec.c: Likewise.
* tree-chrec.h: Likewise.
* tree-complex.c: Likewise.
* tree-data-ref.c: Likewise.
* tree-data-ref.h: Likewise.
* tree-dfa.c: Likewise.
* tree-diagnostic.c: Likewise.
* tree-dump.c: Likewise.
* tree-eh.c: Likewise.
* tree-emutls.c: Likewise.
* tree-flow.h: Likewise.
* tree-if-conv.c: Likewise.
* tree-inline.c: Likewise.
* tree-inline.h: Likewise.
* tree-into-ssa.c: Likewise.
* tree-iterator.c: Likewise.
* tree-loop-distribution.c: Likewise.
* tree-mudflap.c: Likewise.
* tree-optimize.c: Likewise.
* tree-outof-ssa.c: Likewise.
* tree-parloops.c: Likewise.
* tree-phinodes.c: Likewise.
* tree-predcom.c: Likewise.
* tree-pretty-print.c: Likewise.
* tree-scalar-evolution.c: Likewise.
* tree-sra.c: Likewise.
* tree-ssa-address.c: Likewise.
* tree-ssa-alias.c: Likewise.
* tree-ssa-ccp.c: Likewise.
* tree-ssa-coalesce.c: Likewise.
* tree-ssa-dce.c: Likewise.
* tree-ssa-dom.c: Likewise.
* tree-ssa-forwprop.c: Likewise.
* tree-ssa-live.c: Likewise.
* tree-ssa-live.h: Likewise.
* tree-ssa-loop-im.c: Likewise.
* tree-ssa-loop-ivcanon.c: Likewise.
* tree-ssa-loop-ivopts.c: Likewise.
* tree-ssa-loop-manip.c: Likewise.
* tree-ssa-loop-niter.c: Likewise.
* tree-ssa-loop-prefetch.c: Likewise.
* tree-ssa-math-opts.c: Likewise.
* tree-ssa-operands.c: Likewise.
* tree-ssa-phiopt.c: Likewise.
* tree-ssa-phiprop.c: Likewise.
* tree-ssa-pre.c: Likewise.
* tree-ssa-propagate.c: Likewise.
* tree-ssa-reassoc.c: Likewise.
* tree-ssa-sccvn.c: Likewise.
* tree-ssa-sccvn.h: Likewise.
* tree-ssa-strlen.c: Likewise.
* tree-ssa-structalias.c: Likewise.
* tree-ssa-tail-merge.c: Likewise.
* tree-ssa-threadedge.c: Likewise.
* tree-ssa-threadupdate.c: Likewise.
* tree-ssa-uncprop.c: Likewise.
* tree-ssa-uninit.c: Likewise.
* tree-ssa.c: Likewise.
* tree-ssanames.c: Likewise.
* tree-stdarg.c: Likewise.
* tree-streamer-in.c: Likewise.
* tree-streamer-out.c: Likewise.
* tree-streamer.c: Likewise.
* tree-streamer.h: Likewise.
* tree-switch-conversion.c: Likewise.
* tree-vect-data-refs.c: Likewise.
* tree-vect-generic.c: Likewise.
* tree-vect-loop-manip.c: Likewise.
* tree-vect-loop.c: Likewise.
* tree-vect-patterns.c: Likewise.
* tree-vect-slp.c: Likewise.
* tree-vect-stmts.c: Likewise.
* tree-vectorizer.c: Likewise.
* tree-vectorizer.h: Likewise.
* tree-vrp.c: Likewise.
* tree.c: Likewise.
* tree.h: Likewise.
* value-prof.c: Likewise.
* value-prof.h: Likewise.
* var-tracking.c: Likewise.
* varasm.c: Likewise.
* varpool.c: Likewise.
* vmsdbgout.c: Likewise.
* config/bfin/bfin.c: Likewise.
* config/c6x/c6x.c: Likewise.
* config/darwin.c: Likewise.
* config/i386/i386.c: Likewise.
* config/ia64/ia64.c: Likewise.
* config/mep/mep.c: Likewise.
* config/mips/mips.c: Likewise.
* config/pa/pa.c: Likewise.
* config/rs6000/rs6000-c.c: Likewise.
* config/rs6000/rs6000.c: Likewise.
* config/rx/rx.c: Likewise.
* config/spu/spu-c.c: Likewise.
* config/vms/vms.c: Likewise.
* config/vxworks.c: Likewise.
* config/epiphany/resolve-sw-modes.c: Likewise.

From-SVN: r193595

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

From-SVN: r193594

11 years agore PR tree-optimization/55236 (gcc.c-torture/execute/pr22493-1.c FAILs with -fPIC)
Jakub Jelinek [Sat, 17 Nov 2012 22:00:32 +0000 (23:00 +0100)]
re PR tree-optimization/55236 (gcc.c-torture/execute/pr22493-1.c FAILs with -fPIC)

PR tree-optimization/55236
* fold-const.c (make_range_step) <case NEGATE_EXPR>: For -fwrapv
and signed ARG0_TYPE, force low and high to be non-NULL.

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

From-SVN: r193591

11 years agore PR testsuite/55188 (FAIL: gcc.dg/pr19105.c scan-tree-dump-times reassoc1 "Optimizi...
Jakub Jelinek [Sat, 17 Nov 2012 21:58:44 +0000 (22:58 +0100)]
re PR testsuite/55188 (FAIL: gcc.dg/pr19105.c scan-tree-dump-times reassoc1 "Optimizing range tests v_[0-9]*.D. -.2, 2. and -.3, 4.[\n\r]* into" 1)

PR testsuite/55188
* gcc.dg/pr19105.c: Accept also optimizing
-[2, 2] and -[3, 3] and -[4, 4] range tests together.

From-SVN: r193590

11 years agoAdd -static-libasan option to the GCC driver
H.J. Lu [Sat, 17 Nov 2012 20:31:06 +0000 (20:31 +0000)]
Add -static-libasan option to the GCC driver

* common.opt (static-libasan): New option.
* gcc.c (LIBASAN_SPEC): New macro.
(LINK_COMMAND_SPEC): Replace -lasan with LIBASAN_SPEC.
* doc/invoke.texi: Document -static-libasan.

From-SVN: r193589

11 years agore PR rtl-optimization/55342 ([LRA,x86] Non-optimal code for simple loop with LRA)
Vladimir Makarov [Sat, 17 Nov 2012 17:59:35 +0000 (17:59 +0000)]
re PR rtl-optimization/55342 ([LRA,x86] Non-optimal code for simple loop with LRA)

2012-11-17  Vladimir Makarov  <vmakarov@redhat.com>

PR rtl-optimization/55342
* lra-assigns.c (spill_for): Try to allocate other reload pseudos
before and after spilling.

From-SVN: r193588

11 years agosemantics.c (finish_id_expression): Tidy diagnostic message.
Gabriel Dos Reis [Sat, 17 Nov 2012 16:47:47 +0000 (16:47 +0000)]
semantics.c (finish_id_expression): Tidy diagnostic message.

* semantics.c (finish_id_expression): Tidy diagnostic message.

From-SVN: r193587

11 years agoasan-dg.exp (asan_symbolize): Prune BFD: prefixed error messages from addr2line_output.
Jakub Jelinek [Sat, 17 Nov 2012 13:03:39 +0000 (14:03 +0100)]
asan-dg.exp (asan_symbolize): Prune BFD: prefixed error messages from addr2line_output.

* lib/asan-dg.exp (asan_symbolize): Prune BFD: prefixed error messages
from addr2line_output.  Increment idx if asking for more than one address
in one object.

From-SVN: r193586

11 years agore PR fortran/55341 (address-sanitizer and Fortran)
Jakub Jelinek [Sat, 17 Nov 2012 13:02:56 +0000 (14:02 +0100)]
re PR fortran/55341 (address-sanitizer and Fortran)

PR fortran/55341
* trans-intrinsic.c (gfc_conv_intrinsic_transfer): Convert last
argument to memcpy to size_type_node type.
* trans-stmt.c (gfc_conv_elemental_dependencies): Likewise.
* trasn-array.c (duplicate_allocatable): Likewise.

From-SVN: r193585

11 years agore PR libstdc++/55363 (tuple_size is not a class template)
Paolo Carlini [Sat, 17 Nov 2012 12:09:58 +0000 (12:09 +0000)]
re PR libstdc++/55363 (tuple_size is not a class template)

2012-11-17  Paolo Carlini  <paolo.carlini@oracle.com>

PR libstdc++/55363
* include/std/array (tuple_size, tuple_element): Move out
NAMESPACE_CONTAINER.
* testsuite/23_containers/array/tuple_interface/get_neg.cc: Adjust
dg-error line numbers.
* testsuite/23_containers/array/tuple_interface/tuple_element_neg.cc:
Likewise.

From-SVN: r193584

11 years agoextend.texi: Various copy-edits to comply with GCC coding standards for spelling...
Sandra Loosemore [Sat, 17 Nov 2012 03:25:59 +0000 (22:25 -0500)]
extend.texi: Various copy-edits to comply with GCC coding standards for spelling...

2012-11-16  Sandra Loosemore  <sandra@codesourcery.com>

gcc/
* doc/extend.texi: Various copy-edits to comply with GCC coding
standards for spelling, terminology, and markup, including use of
American spelling, correct use of terms like "back end" and
"run time", use correct name for GCC, use "@:" markup.

From-SVN: r193583

11 years agoruntime: Fix use of __atomic_compare_exchange_n: not weak, consistent.
Ian Lance Taylor [Sat, 17 Nov 2012 00:52:22 +0000 (00:52 +0000)]
runtime: Fix use of __atomic_compare_exchange_n: not weak, consistent.

From-SVN: r193581

11 years agoDaily bump.
GCC Administrator [Sat, 17 Nov 2012 00:18:31 +0000 (00:18 +0000)]
Daily bump.

From-SVN: r193580

11 years agore PR tree-optimization/55329 (ICE: internal compiler error: in operator[], at vec...
Jakub Jelinek [Fri, 16 Nov 2012 22:05:32 +0000 (23:05 +0100)]
re PR tree-optimization/55329 (ICE: internal compiler error: in operator[], at vec.h:487 with -O -fno-guess-branch-probability -fnon-call-exceptions --param=early-inlining-insns=111)

PR tree-optimization/55329
* tree-ssa-dom.c (tree_ssa_dominator_optimize): Never clear
bits in needed_eh_cleanup while iterating over the bitmap.
Look through all forwarder blocks at once.

* g++.dg/opt/pr55329.C: New test.

From-SVN: r193577

11 years agohashtable_policy.h (_Prime_rehash_policy): Remove automatic shrink.
François Dumont [Fri, 16 Nov 2012 21:28:44 +0000 (21:28 +0000)]
hashtable_policy.h (_Prime_rehash_policy): Remove automatic shrink.

2012-11-16  François Dumont  <fdumont@gcc.gnu.org>

* include/bits/hashtable_policy.h (_Prime_rehash_policy): Remove
automatic shrink.
(_Prime_rehash_policy::_M_bkt_for_elements): Do not call
_M_next_bkt anymore.
(_Prime_rehash_policy::_M_next_bkt): Move usage of
_S_growth_factor ...
(_Prime_rehash_policy::_M_need_rehash): ... here.
* include/bits/hashtable.h (_Hashtable<>): Adapt.
* testsuite/performance/23_containers/insert_erase/41975.cc: Add
_USE_TR1 to force build using std::tr1 container.
* testsuite/performance/23_containers/insert/unordered_set.cc:
Likewise.
* testsuite/performance/23_containers/insert/54075.cc: New.

From-SVN: r193576

11 years ago2012-11-16 Matthias Klose <doko@ubuntu.com>
Matthias Klose [Fri, 16 Nov 2012 18:35:05 +0000 (18:35 +0000)]
2012-11-16  Matthias Klose  <doko@ubuntu.com>

        * Imported zlib 1.2.7; merged local changes.

From-SVN: r193574

11 years agowhatis.cc: New file.
Tom Tromey [Fri, 16 Nov 2012 18:17:25 +0000 (18:17 +0000)]
whatis.cc: New file.

* testsuite/libstdc++-prettyprinters/whatis.cc: New file.
* testsuite/lib/gdb-test.exp (whatis-test): New proc.
(gdb-test): Handle 'whatis' tests.
(gdb_batch_check): New proc.
(gdb_version_check): Rewrite to use gdb_batch_check.
* python/libstdcxx/v6/printers.py: Import gdb.types.
(FilteringTypePrinter): New class.
(add_one_type_printer, register_type_printers): New functions.
(register_libstdcxx_printers): Call register_type_printers.

From-SVN: r193573

11 years agoFix commit of testcase which got truncated somehow.
Ian Bolton [Fri, 16 Nov 2012 17:36:00 +0000 (17:36 +0000)]
Fix commit of testcase which got truncated somehow.

From-SVN: r193571

11 years ago* params.def (max-peeled-insns, max-completely-peeled-insns): Reduce to 100.
Jan Hubicka [Fri, 16 Nov 2012 17:27:30 +0000 (17:27 +0000)]
* params.def (max-peeled-insns, max-completely-peeled-insns): Reduce to 100.

From-SVN: r193570

11 years agocpplib.h (struct cpp_options): Add canonical_system_headers.
Simon Baldwin [Fri, 16 Nov 2012 17:14:05 +0000 (17:14 +0000)]
cpplib.h (struct cpp_options): Add canonical_system_headers.

    * include/cpplib.h (struct cpp_options): Add canonical_system_headers.
    * files.c (find_file_in_dir): Call maybe_shorter_path() only if
    canonical_system_headers is set.
    * init.c (cpp_create_reader): Initialize canonical_system_headers.
    * configure.ac: Add new --enable-canonical-system-headers.
    * configure: Regenerate.
    * config.in: Regenerate.

    * doc/cppopts.texi: Document -f[no-]canonical-system-headers.
    * doc/install.texi: Document --enable-canonical-system-headers.

    * c.opt: Add f[no-]canonical-system-headers.
    * c-opts.c (c_common_handle_option): Handle
    OPT_fcanonical_system_headers.

From-SVN: r193569

11 years agore PR fortran/55297 ([OOP] type-bound operator clashes with abstract interface)
Janus Weil [Fri, 16 Nov 2012 17:02:02 +0000 (18:02 +0100)]
re PR fortran/55297 ([OOP] type-bound operator clashes with abstract interface)

2012-11-16  Janus Weil  <janus@gcc.gnu.org>

PR fortran/55297
* resolve.c (resolve_typebound_intrinsic_op): Only add typebound
operators to the operator list in the namespace of the derived type.

2012-11-16  Janus Weil  <janus@gcc.gnu.org>

PR fortran/55297
* gfortran.dg/typebound_operator_18.f90: New.

From-SVN: r193568

11 years agore PR rtl-optimization/55330 (ICE: Maximum number of LRA constraint passes is achieve...
Vladimir Makarov [Fri, 16 Nov 2012 16:32:02 +0000 (16:32 +0000)]
re PR rtl-optimization/55330 (ICE: Maximum number of LRA constraint passes is achieved (15) on gfortran.dg/actual_array_constructor_1.f90)

2012-11-16  Vladimir Makarov  <vmakarov@redhat.com>

PR rtl-optimization/55330
* lra-constraints.c (MAX_INHERITANCE_PASSES): New macro.
(lra_inheritance, lra_undo_inheritance): Use it to limit number of
the passes.

2012-11-16  Vladimir Makarov  <vmakarov@redhat.com>

PR rtl-optimization/55330
* gfortran.dg/pr55330.f90: New test.

From-SVN: r193567

11 years agocompiler: don't remove floating point conversion of typed constant
Ian Lance Taylor [Fri, 16 Nov 2012 16:30:35 +0000 (16:30 +0000)]
compiler: don't remove floating point conversion of typed constant

From-SVN: r193565

11 years agoMake-lang.in (gccgo$(exeext)): Add + at start of command.
Ian Lance Taylor [Fri, 16 Nov 2012 16:27:54 +0000 (16:27 +0000)]
Make-lang.in (gccgo$(exeext)): Add + at start of command.

* Make-lang.in (gccgo$(exeext)): Add + at start of command.
(go1$(exeext)): Likewise.

From-SVN: r193564

11 years agogcc-dg.exp (cleanup-saved-temps): Add .mii to suffixes.
Uros Bizjak [Fri, 16 Nov 2012 15:50:05 +0000 (16:50 +0100)]
gcc-dg.exp (cleanup-saved-temps): Add .mii to suffixes.

* lib/gcc-dg.exp (cleanup-saved-temps): Add .mii to suffixes.
* gcc.dg/hoist-register-pressure-1.c: Cleanup hoist rtl dump.
* gcc.dg/hoist-register-pressure-2.c: Ditto.
* gcc.dg/hoist-register-pressure-3.c: Ditto.
* gcc.dg/tree-prof/peel-1.c: Cleanup loop2_unroll rtl dump.
* gcc.dg/tree-prof/unroll-1.c: Ditto.

From-SVN: r193563

11 years agoPR c++/54875 - Error with alias template that resolves to an enum
Dodji Seketeli [Fri, 16 Nov 2012 15:20:03 +0000 (15:20 +0000)]
PR c++/54875 -  Error with alias template that resolves to an enum

Consider this short example:

     1 template<typename T>
     2 using AddConst = T const;
     3
     4 enum FwdEnum : int;
     5
     6 int main() {
     7   AddConst<FwdEnum> *ptr = nullptr;
     8 }

At line 7, when we build the type for AddConst<FwdEnum> in
lookup_template_class_1, the resulting type is the enum FwdEnum.  This
confuses lookup_template_class_1 near the if below, wrongly making it
taking the branch and thus calling tsubst_enum while it shouldn't:

      if (TREE_CODE (t) == ENUMERAL_TYPE && !is_dependent_type)
/* Now that the type has been registered on the instantiations
   list, we set up the enumerators.  Because the enumeration
   constants may involve the enumeration type itself, we make
   sure to register the type first, and then create the
   constants.  That way, doing tsubst_expr for the enumeration
   constants won't result in recursive calls here; we'll find
   the instantiation and exit above.  */
tsubst_enum (template_type, t, arglist);

Before the alias template feature, the only reason why TREE_CODE (t)
== ENUMERAL_TYPE would be true is when lookup_template_class_1 is
called for an enum that is a member of a class template.  But that
condition can be also true for an alias template instantiation.

So I guess that condition should be changed to TREE_CODE
(template_type) == ENUMERAL_TYPE, to specifically detect the member
enum of a class template case.  Note that for the alias template
instantiation case above, template_type points to a TEMPLATE_TYPE_PARM
which name is AddConst.

This is what the patchlet below does.

Bootstrapped and tested on x86_64-unknown-linux-gnu against trunk.

gcc/cp/

* pt.c (lookup_template_class_1): Look at the type of the
potential member enum of class template to determine if we are
actually substituting into a member enum of class template.

gcc/testsuite/

* g++.dg/cpp0x/alias-decl-27.C: New test.

From-SVN: r193562

11 years agoconfigure.ac: Invoke AM_MAINTAINER_MODE.
Tom Tromey [Fri, 16 Nov 2012 15:19:15 +0000 (15:19 +0000)]
configure.ac: Invoke AM_MAINTAINER_MODE.

* configure.ac: Invoke AM_MAINTAINER_MODE.
* aclocal.m4, configure, Makefile.in, asan/Makefile.in,
interception/Makefile.in, sanitizer_common/Makefile.in: Rebuild.

From-SVN: r193561

11 years agot-linux: New file; define MULTIARCH_DIRNAME.
Matthias Klose [Fri, 16 Nov 2012 15:19:14 +0000 (15:19 +0000)]
t-linux: New file; define MULTIARCH_DIRNAME.

2012-11-16  Matthias Klose  <doko@ubuntu.com>

        * config/pa/t-linux: New file; define MULTIARCH_DIRNAME.
        * config.gcc <hppa*64*-*-linux*, hppa*-*-linux*> (tmake_file):
        Include pa/t-linux.

From-SVN: r193560

11 years ago* lib/target-supports.exp
Uros Bizjak [Fri, 16 Nov 2012 14:53:53 +0000 (15:53 +0100)]
* lib/target-supports.exp
(check_effective_target_has_w_floating_suffix): Use options for c++ only.
(check_effective_target_has_q_floating_suffix): Ditto.

From-SVN: r193559

11 years agore PR c++/55337 (ICE tree check: expected sizeof_expr, have alignof_expr in cp_tree_e...
Jakub Jelinek [Fri, 16 Nov 2012 14:33:44 +0000 (15:33 +0100)]
re PR c++/55337 (ICE tree check: expected sizeof_expr, have alignof_expr in cp_tree_equal, at cp/tree.c:2608)

PR c++/55337
* tree.c (cp_tree_equal) <case ALIGNOF_EXPR>: Use SIZEOF_EXPR_TYPE_P
only on SIZEOF_EXPR.

* g++.dg/template/alignof2.C: New test.

From-SVN: r193558

11 years agoDefine/use hardware pointer type for stack unwind
H.J. Lu [Fri, 16 Nov 2012 12:02:29 +0000 (12:02 +0000)]
Define/use hardware pointer type for stack unwind

PR other/55333
* include/sanitizer/common_interface_defs.h (uhwptr): New type
for hardware pointer.
* sanitizer_common/sanitizer_stacktrace.cc (StackTrace::FastUnwindStack):
Replace uptr with uhwptr for stack unwind.

From-SVN: r193557

11 years ago* ChangeLog: Add ChangeLog entry for my last commit.
Uros Bizjak [Fri, 16 Nov 2012 11:49:08 +0000 (12:49 +0100)]
* ChangeLog: Add ChangeLog entry for my last commit.

From-SVN: r193556

11 years agomv1.C (dg-options): Add -march=x86-64.
Uros Bizjak [Fri, 16 Nov 2012 11:45:15 +0000 (12:45 +0100)]
mv1.C (dg-options): Add -march=x86-64.

* g++.dg/mv1.C (dg-options): Add -march=x86-64.
* g++.dg/mv6.C (dg-options): Ditto.

From-SVN: r193555

11 years agore PR tree-optimization/54073 (SciMark Monte Carlo test performance has seriously...
Jakub Jelinek [Fri, 16 Nov 2012 11:40:39 +0000 (12:40 +0100)]
re PR tree-optimization/54073 (SciMark Monte Carlo test performance has seriously decreased in recent GCC releases)

PR target/54073
* config/i386/i386.md (mov<mode>cc): Use comparison_operator
instead of ordered_comparison_operator resp.
ix86_fp_comparison_operator predicates.
* config/i386/i386.c (ix86_expand_fp_movcc): Reject TImode
or for -m32 DImode comparisons.

From-SVN: r193554

11 years agore PR tree-optimization/54717 (Runtime regression: polyhedron test "rnflow" degraded)
Jan Hubicka [Fri, 16 Nov 2012 10:37:25 +0000 (11:37 +0100)]
re PR tree-optimization/54717 (Runtime regression: polyhedron test "rnflow" degraded)

PR tree-optimization/54717
* tree-ssa-pre.c (do_partial_partial_insertion): Consider also edges
with ANTIC_IN.

From-SVN: r193553

11 years agoEnable building of libsanitizer on sparc linux
Dodji Seketeli [Fri, 16 Nov 2012 08:11:03 +0000 (08:11 +0000)]
Enable building of libsanitizer on sparc linux

libsanitizer/ChangeLog:

* configure.tgt: Enable sparc linux.

From-SVN: r193552

11 years ago* lib/target_suports.exp
Uros Bizjak [Fri, 16 Nov 2012 07:51:43 +0000 (08:51 +0100)]
* lib/target_suports.exp
(check_effective_target_has_w_floating_suffix): New procedure.
(check_effective_target_has_q_floating_suffix): Ditto.
* g++.dg/cpp0x/gnu_fext-numeric-literals.C: Add dg-error directive
for unsupported non-standard suffix on floating constant.
* g++.dg/cpp0x/std_fext-numeric-literals.C: Ditto.

From-SVN: r193551

11 years agoi386-protos.h (ix86_emit_mode_set): Add third argument.
Uros Bizjak [Fri, 16 Nov 2012 07:42:19 +0000 (08:42 +0100)]
i386-protos.h (ix86_emit_mode_set): Add third argument.

* config/i386/i386-protos.h (ix86_emit_mode_set): Add third argument.
* config/i386/i386.h (EMIT_MODE_SET): Update.
* config/i386/i386.c (ix86_avx_emit_vzeroupper): New function.
(ix86_emit_mode_set) <AVX_U128>: Call ix86_avx_emit_vzeroupper.

From-SVN: r193550

11 years agoAMD bdver3 enablement
Ganesh Gopalasubramanian [Fri, 16 Nov 2012 07:18:37 +0000 (07:18 +0000)]
AMD bdver3 enablement

From-SVN: r193549