platform/upstream/gcc.git
12 years agore PR target/50493 (ICE in neon_disambiguate_copy, at config/arm/arm.c:20388)
Richard Earnshaw [Sat, 19 Nov 2011 13:47:35 +0000 (13:47 +0000)]
re PR target/50493 (ICE in neon_disambiguate_copy, at config/arm/arm.c:20388)

PR target/50493
* arm.c (neon_disambiguate_copy): Correctly handle partial overlap
of src and dest operands.

From-SVN: r181508

12 years agodarwin.h (ASM_DEBUG_SPEC): New.
Iain Sandoe [Sat, 19 Nov 2011 12:21:08 +0000 (12:21 +0000)]
darwin.h (ASM_DEBUG_SPEC): New.

gcc:

* config/darwin.h (ASM_DEBUG_SPEC): New.
* config/darwin9.h (ASM_DEBUG_SPEC): New.

From-SVN: r181507

12 years agobitset (operator[](size_t) const): Declare constexpr.
Paolo Carlini [Sat, 19 Nov 2011 11:50:44 +0000 (11:50 +0000)]
bitset (operator[](size_t) const): Declare constexpr.

2011-11-19  Paolo Carlini  <paolo.carlini@oracle.com>

* include/debug/bitset (operator[](size_t) const): Declare constexpr.
* include/profile/bitset: Likewise.
* testsuite/23_containers/bitset/operations/constexpr.cc: Split out
non portable bits to...
* testsuite/23_containers/bitset/operations/constexpr-2.cc: ... here.

From-SVN: r181506

12 years agore PR fortran/51207 ([OOP] Mark __def_init_... as FL_PARAMETER)
Tobias Burnus [Sat, 19 Nov 2011 09:26:33 +0000 (10:26 +0100)]
re PR fortran/51207 ([OOP] Mark __def_init_... as FL_PARAMETER)

2011-11-19  Tobias Burnus  <burnus@net-b.de>

        PR fortran/51207
        * class.c (gfc_find_derived_vtab): Mark __def_init as PARAMETER
        and hence as TREE_READONLY; add subroutine attribute to
        __copy_ procedure.

        PR fortran/50640
        * trans.h (GFC_DECL_PUSH_TOPLEVEL): New DECL_LANG_FLAG_7.
        * trans-decl.c (gfc_get_symbol_decl): Mark __def_init and vtab
        as GFC_DECL_PUSH_TOPLEVEL.
        (gfc_generate_function_code): If GFC_DECL_PUSH_TOPLEVEL, push it there.
        (build_function_decl): Push __copy_ procedure to the toplevel.

From-SVN: r181505

12 years agoi386.c (atom_cost): Disable SSE loop until alignment issues are fixed.
Jan Hubicka [Sat, 19 Nov 2011 01:34:55 +0000 (02:34 +0100)]
i386.c (atom_cost): Disable SSE loop until alignment issues are fixed.

* config/i386/i386.c (atom_cost): Disable SSE loop until alignment
issues are fixed.

From-SVN: r181503

12 years agoDaily bump.
GCC Administrator [Sat, 19 Nov 2011 00:18:48 +0000 (00:18 +0000)]
Daily bump.

From-SVN: r181501

12 years ago* gcc.dg/cpp/assert4.c: Test __linux__, not __gnu_linux__.
Joseph Myers [Fri, 18 Nov 2011 22:26:47 +0000 (22:26 +0000)]
* gcc.dg/cpp/assert4.c: Test __linux__, not __gnu_linux__.

From-SVN: r181496

12 years agoMakefile.in (c_flags): Set to -fno-exceptions to build libunwind.
Steve Ellcey [Fri, 18 Nov 2011 22:26:44 +0000 (22:26 +0000)]
Makefile.in (c_flags): Set to -fno-exceptions to build libunwind.

2011-11-18  Steve Ellcey  <sje@cup.hp.com>

* Makefile.in (c_flags): Set to -fno-exceptions to build libunwind.

From-SVN: r181495

12 years agocris.c (cris_function_value_regno_p): Make static.
Anatoly Sokolov [Fri, 18 Nov 2011 21:23:08 +0000 (01:23 +0400)]
cris.c (cris_function_value_regno_p): Make static.

* config/cris/cris.c (cris_function_value_regno_p): Make static.
(TARGET_FUNCTION_VALUE_REGNO_P): Define.
* config/cris/cris.h (FUNCTION_VALUE_REGNO_P): Remove.
* config/cris/cris-protos.h (cris_function_value_regno_p): Remove.

From-SVN: r181493

12 years agore PR c++/51188 (invalid static_cast from type 'XBase' to type 'int')
Fabien Chêne [Fri, 18 Nov 2011 20:32:04 +0000 (21:32 +0100)]
re PR c++/51188 (invalid static_cast from type 'XBase' to type 'int')

gcc/testsuite/ChangeLog

2011-11-18  Fabien Chene  <fabien@gcc.gnu.org>

PR c++/51188
* g++.dg/lookup/using46.C: New.
* g++.dg/lookup/using47.C: New.
* g++.dg/lookup/using48.C: New.
* g++.dg/lookup/using49.C: New.
* g++.dg/lookup/using50.C: New.

gcc/cp/ChangeLog

2011-11-18  Fabien Chene  <fabien@gcc.gnu.org>

PR c++/51188
* search.c (lookup_field_1): Handle USING_DECLs for the storted
case.

From-SVN: r181492

12 years agoAdd _mm_stream_si64.
H.J. Lu [Fri, 18 Nov 2011 19:02:45 +0000 (19:02 +0000)]
Add _mm_stream_si64.

2011-11-18  H.J. Lu  <hongjiu.lu@intel.com>

PR target/33944
* doc/extend.texi: Document __builtin_ia32_movnti64.

* config/i386/emmintrin.h (_mm_stream_si64): New.

* config/i386/i386-builtin-types.def: Add VOID_FTYPE_PLONGLONG_LONGLONG.

* config/i386/i386.c (ix86_builtins): Add IX86_BUILTIN_MOVNTI64.
(bdesc_special_args): Update __builtin_ia32_movnti.  Add
__builtin_ia32_movnti64.
(ix86_expand_special_args_builtin): Handle
VOID_FTYPE_PLONGLONG_LONGLONG.

* config/i386/i386.md (UNSPEC_MOVNTI): New.

* config/i386/sse.md (sse2_movntsi): Renamed to ...
(sse2_movnti<mode>): This.

From-SVN: r181491

12 years agore PR c++/51141 (rev181359 causes Chromium build failure)
Fabien Chêne [Fri, 18 Nov 2011 18:44:23 +0000 (19:44 +0100)]
re PR c++/51141 (rev181359 causes Chromium build failure)

gcc/testsuite/ChangeLog

2011-11-18  Fabien Chene  <fabien@gcc.gnu.org>

PR c++/51141
* g++.dg/lookup/using46.C: New.
* g++.dg/lookup/using47.C: New.
* g++.dg/lookup/using48.C: New.
* g++.dg/lookup/using49.C: New.
* g++.dg/lookup/using50.C: New.

gcc/cp/ChangeLog

2011-11-18  Fabien Chene  <fabien@gcc.gnu.org>

PR c++/51141
* search.c (lookup_field_1): Handle USING_DECLs for the storted
case.

From-SVN: r181490

12 years agopr44707.c: Do not assume assembler supports /* ...
Ulrich Weigand [Fri, 18 Nov 2011 18:17:05 +0000 (18:17 +0000)]
pr44707.c: Do not assume assembler supports /* ...

* gcc.c-torture/compile/pr44707.c: Do not assume assembler
supports /* ... */ comments.

From-SVN: r181489

12 years agore PR target/49868 (Implement named address space to place/access data in flash memory)
Georg-Johann Lay [Fri, 18 Nov 2011 16:44:00 +0000 (16:44 +0000)]
re PR target/49868 (Implement named address space to place/access data in flash memory)

gcc/
PR target/49868
* config/avr/avr.h (base_arch_s): Add field n_segments.
(ADDR_SPACE_PGM1, ADDR_SPACE_PGM2, ADDR_SPACE_PGM3,
ADDR_SPACE_PGM4, ADDR_SPACE_PGM5, ADDR_SPACE_PGMX): New address spaces.
(AVR_HAVE_ELPM, AVR_HAVE_ELPMX): New defines.
(INIT_EXPANDERS): New define.
* config/avr/avr-protos.h (avr_mem_pgmx_p): New.
(avr_init_expanders): New.
(avr_emit_movmemhi, avr_out_movmem): New.
(avr_xload_libgcc_p): New.
* config/avr/avr-c.c (avr_register_target_pragmas): Register
address spaces __pgm1, __pgm2,  __pgm3,  __pgm4  __pgm5,  __pgmx.
(avr_cpu_cpp_builtins): Add built-in defines __PGM1,
__PGM2, __PGM3, __PGM4, __PGM5, __PGMX.
* config/avr/avr-devices.c (avr_arch_types): Set field n_segments.

* config/avr/avr.c (AVR_SECTION_PROGMEM): Change define to cover
3 bits instead of just 1.
(xstring_empty, xstring_e, rampz_rtx): New static GTYed variables.
(progmem_section): Change from section to array of sections.
(progmem_section_prefix): New static variable.
(avr_file_start): Print set for __RAMPZ__
(avr_option_override): Move initialization of RTXes from here...
(avr_init_expanders): ...to this new function.
(avr_pgm_segment): New static function.
(avr_decl_pgm_p): Handle error_mark_node.
(avr_mem_pgmx_p, avr_decl_pgmx_p): New static functions.
(avr_out_xload, avr_find_unused_d_reg): New static functions.
(expand_prologue, expand_epilogue): Use rampz_rtx.
(print_operand): Hande CONST_STRING.
(avr_xload_libgcc_p): New static function.
(avr_out_lpm_no_lpmx, avr_out_lpm): Handle ELPM.
(avr_progmem_p): Return 2 for 24-bit flash address space.
(avr_out_sbxx_branch): Clean-up code from ASn macros.
(out_movqi_r_mr, out_movqi_mr_r): Ditto. And recognize RAMPZ's
address and print symbolically.
(avr_asm_named_section, avr_section_type_flags,
avr_encode_section_info, avr_asm_select_section,
avr_addr_space_address_mode, avr_addr_space_pointer_mode,
avr_addr_space_legitimate_address_p, avr_addr_space_convert,
avr_addr_space_legitimize_address): Handle new address spaces.
(avr_output_progmem_section_asm_op): New static function.
(avr_asm_init_sections): Initialize progmem_section[].
(adjust_insn_length): Handle ADJUST_LEN_XLOAD, ADJUST_LEN_MOVMEM.
(avr_const_address_lo16): New static function.
(avr_assemble_integer): Use it to handle 3-byte integers.
(avr_emit_movmemhi, avr_out_movmem): New functions.

* config/avr/predicates.md (nox_general_operand): Handle new
address spaces.
* config/avr/avr.md (unspec): Add UNSPEC_MOVMEM.
(adjust_len): Add xload, movmem.
(SP_ADDR): New define_constants.
(isa): Add "lpm", "lpmx", "elpm", "elpmx".
(enabled): Handle them.
(load<mode>_libgcc): New expander.
(*load.<mode>.libgcc): Rename to load_<mode>_libgcc.
(xload8_A, xload<mode>_A): New insn-and-splits.
(xload_8, xload_<mode>_libgcc, xload_<mode>, loadmem_elpm): New insns.
(mov<mode>): Handle new address spaces.
(movmemhi): Rewrite using avr_emit_movmemhi.
(MOVMEM_r_d): New mode attribute.
(movmem_<mode>, movmem_qi_elpm): New insns.
(setmemhi, *clrmemqi, *clrmemhi, strlenhi, *strlenhi): Unquote
C-code.  Use label instead of hard-coded instrunction lengths.

libgcc/
PR target/49868
* config/avr/t-avr (LIB1ASMFUNCS): Add _xload_2 _xload_3 _xload_4.
* config/avr/lib1funcs.S (__xload_2, __xload_3, __xload_4):
New functions.

From-SVN: r181482

12 years agoSupport libitm on Solaris 8 and 9/x86 with Sun as
Rainer Orth [Fri, 18 Nov 2011 16:15:59 +0000 (16:15 +0000)]
Support libitm on Solaris 8 and 9/x86 with Sun as

* config/generic/asmcfi.h: Fix comment.
* config/x86/sjlj.S (_ITM_beginTransaction): Provide ELF PIC code
sequence without .hidden support, error for non-ELF targets.
(GTM_longjmp) [__ELF__]: Only use .hidden if
HAVE_ATTRIBUTE_VISIBILITY.

From-SVN: r181481

12 years agore PR libstdc++/51209 (The template _M_find_node in hashtable.h has a bad return...
Harti Brandt [Fri, 18 Nov 2011 16:09:29 +0000 (16:09 +0000)]
re PR libstdc++/51209 (The template _M_find_node in hashtable.h has a bad return value)

2011-11-18  Harti Brandt  <hartmut.brandt@dlr.de>

PR libstdc++/51209
* include/bits/hashtable.h (_Hashtable<>::_M_find_node): Return
nullptr when no node is found.
* include/tr1/hashtable.h (_Hashtable<>::_M_find_node): Return
zero when no node is found.

From-SVN: r181480

12 years agore PR c++/51150 ([C++11][4.6/4.7 Regression] ICE when result of -> initializes const...
Paolo Carlini [Fri, 18 Nov 2011 15:31:38 +0000 (15:31 +0000)]
re PR c++/51150 ([C++11][4.6/4.7 Regression] ICE when result of -> initializes const variable of different type)

/cp
2011-11-18  Paolo Carlini  <paolo.carlini@oracle.com>

PR c++/51150
* pt.c (tsubst_copy_and_build): Handle FIX_TRUNC_EXPR.

/testsuite
2011-11-18  Paolo Carlini  <paolo.carlini@oracle.com>

PR c++/51150
* g++.dg/cpp0x/pr51150.C: New.

From-SVN: r181478

12 years agore PR tree-optimization/50605 (ice in ipa_get_jf_pass_through_result with -O3)
Martin Jambor [Fri, 18 Nov 2011 15:13:54 +0000 (16:13 +0100)]
re PR tree-optimization/50605 (ice in ipa_get_jf_pass_through_result with -O3)

2011-11-18  Martin Jambor  <mjambor@suse.cz>

PR tree-optimization/50605
* gimple.c (is_gimple_ip_invariant_address): Also handle MEM_REFs
of IPA invariant decls.

* testsuite/g++.dg/ipa/pr50605.C: New test.

From-SVN: r181477

12 years agotree-outof-ssa.c (insert_back_edge_copies): Add call to mark_dfs_back_edges.
Bill Schmidt [Fri, 18 Nov 2011 14:15:38 +0000 (14:15 +0000)]
tree-outof-ssa.c (insert_back_edge_copies): Add call to mark_dfs_back_edges.

2011-11-18  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

* tree-outof-ssa.c (insert_back_edge_copies):  Add call to
mark_dfs_back_edges.

From-SVN: r181476

12 years agoPR c++/51191 - ICE on alias of alias template instantiation
Dodji Seketeli [Fri, 18 Nov 2011 14:07:41 +0000 (14:07 +0000)]
PR c++/51191 - ICE on alias of alias template instantiation

gcc/cp/

PR c++/51191
* pt.c (primary_template_instantiation_p): Don't forget to
consider alias declarations.

gcc/testsuite/

PR c++/51191
* g++.dg/cpp0x/alias-decl-13.C: New test.

From-SVN: r181475

12 years agore PR target/50678 (FAIL: c52104y on x86_64-apple-darwin10)
Iain Sandoe [Fri, 18 Nov 2011 13:19:25 +0000 (13:19 +0000)]
re PR target/50678 (FAIL: c52104y on x86_64-apple-darwin10)

gcc/ada:

PR target/50678
* init.c (__gnat_error_handler) [Darwin]: Move work-around to the
bug filed as radar #10302855 from __gnat_error_handler ...
... to (__gnat_adjust_context_for_raise) [Darwin]: New.
(HAVE_GNAT_ADJUST_CONTEXT_FOR_RAISE) [Darwin]: Define.
(__gnat_error_handler) [Darwin]: Use __gnat_adjust_context_for_raise.

From-SVN: r181474

12 years agohash-long-double-aux.cc: Rename to...
Paolo Carlini [Fri, 18 Nov 2011 12:37:06 +0000 (12:37 +0000)]
hash-long-double-aux.cc: Rename to...

2011-11-18  Paolo Carlini  <paolo.carlini@oracle.com>

* src/hash-long-double-aux.cc: Rename to...
* src/hash-long-double-tr1-aux.cc: ... this.
* src/compatibility-ldbl.cc: Adjust.
* src/hash_tr1.cc: Likewise.
* src/hash_c++0x.cc: Don't use src/hash-long-double-aux.cc.
* include/bits/functional_hash.h (hash<_Tp*>::operator(), specs
for integer types, hash<float>::operator(), hash<double>::operator(),
hash<long double>::operator()): Declare noexcept.
* include/debug/bitset (hash<__debug::bitset>::operator()): Likewise.
* include/debug/vector (hash<__debug::vector>::operator()): Likewise.
* include/std/system_error (hash<error_code>::operator()): Likewise.
* include/std/thread (hash<thread::id>::operator()): Likewise.
* include/std/bitset (hash<bitset>::operator()): Likewise.
* include/std/typeindex (hash<type_index>::operator()): Likewise.
* include/profile/bitset (hash<__profile::vector>::operator()):
Likewise.
* include/profile/vector (hash<__profile::vector>::operator()):
Likewise.
* include/ext/vstring.h (hash<__vstring>::operator(),
hash<__wvstring>::operator(), hash<__u16vstring>::operator(),
hash<__u32vstring>::operator()): Likewise.
* include/bits/shared_ptr.h (hash<shared_ptr>::operator()): Likewise.
* include/bits/shared_ptr_base.h (hash<__shared_ptr>::operator()):
Likewise.
* include/bits/unique_ptr.h (hash<unique_ptr>::operator()): Likewise.
* include/bits/basic_string.h (hash<string>::operator(),
hash<wstring>::operator(), hash<u16string>::operator(),
hash<u32string>::operator()): Likewise.
* include/bits/vector.tcc (hash<vector>::operator()): Likewise.
* include/bits/stl_bvector.h (hash<vector>::operator()): Likewise.
* libsupc++/typeinfo (type_info::hash_code): Use noexcept instead of
throw().

From-SVN: r181473

12 years agore PR target/49992 (lto-bootstrap reveals duplicate symbols on x86_64-apple-darwin11)
Tristan Gingold [Fri, 18 Nov 2011 10:54:21 +0000 (10:54 +0000)]
re PR target/49992 (lto-bootstrap reveals duplicate symbols on x86_64-apple-darwin11)

gcc/ada:

2011-11-18  Tristan Gingold  <gingold@adacore.com>
    Iain Sandoe  <iains@gcc.gnu.org>

PR target/49992
* mlib-tgt-specific-darwin.adb (Archive_Indexer_Options): Remove.
* gcc-interface/Makefile.in (darwin): Remove ranlib special-casing
for Darwin.

Co-Authored-By: Iain Sandoe <iains@gcc.gnu.org>
From-SVN: r181470

12 years agore PR target/49992 (lto-bootstrap reveals duplicate symbols on x86_64-apple-darwin11)
Iain Sandoe [Fri, 18 Nov 2011 10:52:32 +0000 (10:52 +0000)]
re PR target/49992 (lto-bootstrap reveals duplicate symbols on x86_64-apple-darwin11)

toplevel:

PR target/49992
* configure.ac: Remove ranlib special-casing for Darwin.
* configure: Regenerate.

gcc:

PR target/49992
* configure.ac: Remove ranlib special-casing for Darwin.
* configure: Regenerate.

From-SVN: r181469

12 years agore PR tree-optimization/51118 (ICE: tree check: expected tree that contains ‘typed...
Uros Bizjak [Fri, 18 Nov 2011 09:54:02 +0000 (10:54 +0100)]
re PR tree-optimization/51118 (ICE: tree check: expected tree that contains ‘typed’ structure, have ‘block’ in fold_checksum_tree, at fold-const.c:14160)

PR tree-optimization/51118
* fold-const.c (fold_checksum_tree): Check for TS_TYPED structure
before using TREE_TYPE accessor on expr.

From-SVN: r181468

12 years ago* MAINTAINERS (Write After Approval): Add myself.
Jiangning Liu [Fri, 18 Nov 2011 07:44:19 +0000 (07:44 +0000)]
* MAINTAINERS (Write After Approval): Add myself.

From-SVN: r181467

12 years agore PR target/51134 (x86 memset/memcpy expansion is broken)
Jan Hubicka [Fri, 18 Nov 2011 02:18:28 +0000 (03:18 +0100)]
re PR target/51134 (x86 memset/memcpy expansion is broken)

PR bootstrap/51134
* i386.c (atom_cost): Fix 32bit memset description.
(expand_set_or_movmem_via_loop_with_iter): Output proper bounds check for epilogue loops.
(expand_movmem_epilogue): Handle epilogues up to size 15 w/o producing byte loop.
(decide_alg): sse_loop is not useable wthen SSE2 is disabled; when not optimizing always
use rep movsb or lincall; do not produce word sized loops when optimizing memset for
size (to avoid need for large constants).
(ix86_expand_movmem): Get into sync with ix86_expand_setmem; choose unroll factors
better; always do 128bit moves when producing SSE loops; do not produce loopy epilogue
when size is too small.
(promote_duplicated_reg_to_size): Do not look into desired alignments when
doing vector expansion.
(ix86_expand_setmem): Track better when promoted value is available; choose unroll factors
more sanely.; output loopy epilogue only when needed.

From-SVN: r181466

12 years agore PR libstdc++/51181 (libstdc++.so __sync_sub_and_fetch_4 linkage error causing...
Richard Henderson [Fri, 18 Nov 2011 01:38:48 +0000 (17:38 -0800)]
re PR libstdc++/51181 (libstdc++.so __sync_sub_and_fetch_4 linkage error causing many test suite failures on m68k-linux)

PR libstdc++/51181
        * libsupc++/eh_tm.cc (free_any_cxa_exception): Protect the use
        of __sync_sub_and_fetch with _GLIBCXX_ATOMIC_BUILTINS_4.

From-SVN: r181465

12 years agoDaily bump.
GCC Administrator [Fri, 18 Nov 2011 00:18:46 +0000 (00:18 +0000)]
Daily bump.

From-SVN: r181464

12 years agotypesizes.cc: Do not run on darwin.
Jonathan Wakely [Fri, 18 Nov 2011 00:15:55 +0000 (00:15 +0000)]
typesizes.cc: Do not run on darwin.

* testsuite/30_threads/thread/native_handle/typesizes.cc: Do not run
on darwin.

From-SVN: r181460

12 years agoMerge branch 'rth/atomic/ppc'
Richard Henderson [Thu, 17 Nov 2011 22:12:31 +0000 (14:12 -0800)]
Merge branch 'rth/atomic/ppc'

From-SVN: r181459

12 years agoRemove accidentally committed duplicate ChangeLog entry.
Jonathan Wakely [Thu, 17 Nov 2011 22:10:09 +0000 (22:10 +0000)]
Remove accidentally committed duplicate ChangeLog entry.

From-SVN: r181458

12 years agore PR middle-end/51144 (r181279 possibly miscompilation of genmddeps)
Steve Ellcey [Thu, 17 Nov 2011 21:22:11 +0000 (21:22 +0000)]
re PR middle-end/51144 (r181279 possibly miscompilation of genmddeps)

2011-11-17  Steve Ellcey  <sje@cup.hp.com>

PR middle-end/51144
* output.h (fprint_w): Remove.
* final.c (fprint_w): Remove.
(output_addr_const): Change fprint_w back to fprintf.

From-SVN: r181457

12 years agohost-linux.c (TRY_EMPTY_VM_SPACE): Define for MIPS.
Andrew Pinski [Thu, 17 Nov 2011 21:01:08 +0000 (21:01 +0000)]
host-linux.c (TRY_EMPTY_VM_SPACE): Define for MIPS.

2011-11-17  Andrew Pinski  <apinski@cavium.com>

* config/host-linux.c (TRY_EMPTY_VM_SPACE): Define for MIPS.

From-SVN: r181456

12 years agore PR c++/51186 (declaring main() with auto but without --std=c++11 gives inconsisten...
Jason Merrill [Thu, 17 Nov 2011 21:00:30 +0000 (16:00 -0500)]
re PR c++/51186 (declaring main() with auto but without --std=c++11 gives inconsistent error messages)

PR c++/51186
* decl.c (grokdeclarator): Improve C++98 trailing return diagnostic.

From-SVN: r181455

12 years ago* lib/gcc-simulate-thread.exp (simulate-thread): Improve error message.
Uros Bizjak [Thu, 17 Nov 2011 21:00:16 +0000 (22:00 +0100)]
* lib/gcc-simulate-thread.exp (simulate-thread): Improve error message.

From-SVN: r181454

12 years agobuiltins.c (expand_builtin): Remove 4th parameter representing weak/strong mode when...
Andrew MacLeod [Thu, 17 Nov 2011 20:51:51 +0000 (20:51 +0000)]
builtins.c (expand_builtin): Remove 4th parameter representing weak/strong mode when...

2011-11-17  Andrew MacLeod  <amacleod@redhat.com>

* builtins.c (expand_builtin): Remove 4th parameter representing
weak/strong mode when __atomic_compare_exchange becomes a library call.

* gcc.dg/atomic-generic-aux.c (__atomic_compare_exchange): Fail if
memory model parameters don't match expected values.
* gcc.dg/atomic-generic.c: Pass specific memory model parameters to
__atomic_compare_exchange.
* gcc.dg/atomic-noinline.c: Pass specific memory model parameters to
__atomic_compare_exchange_n.
* gcc.dg/atomic-noinline-aux.c (__atomic_compare_exchange_2): Remove
weak/strong parameter and fail if memory models aren't correct.

From-SVN: r181453

12 years agogcc-simulate-thread.exp (simulate-thread): Run on all targets.
Uros Bizjak [Thu, 17 Nov 2011 19:56:39 +0000 (20:56 +0100)]
gcc-simulate-thread.exp (simulate-thread): Run on all targets.

* lib/gcc-simulate-thread.exp (simulate-thread): Run on all targets.
Look for simulate_thread_done to determine working gdb.  Reduce timeout
to 10 seconds and fail when timeout occurs.  Improve error messages.

From-SVN: r181452

12 years agoUnify implementations of __builtin_mem_*_fence and __sync_synchronize.
Richard Henderson [Thu, 17 Nov 2011 19:29:04 +0000 (11:29 -0800)]
Unify implementations of __builtin_mem_*_fence and __sync_synchronize.

* builtins.c (expand_builtin_mem_thread_fence): Remove.
(expand_builtin_mem_signal_fence): Remove.
(expand_builtin_atomic_thread_fence): Use expand_mem_thread_fence.
(expand_builtin_sync_synchronize): Likewise.
(expand_builtin_atomic_signal_fence): Use expand_mem_signal_fence.
* optabs.c (expand_asm_memory_barrier): Split out from
expand_builtin_mem_signal_fence.
(expand_mem_thread_fence): New, a combination of code from
expand_builtin_mem_thread_fence and expand_builtin_sync_synchronize.
(expand_mem_signal_fence): Moved and renamed from
expand_builtin_mem_signal_fence.
(expand_atomic_exchange): Use expand_mem_thread_fence.
(expand_atomic_load, expand_atomic_store): Likewise.
* expr.h, optabs.h: Update decls.

From-SVN: r181451

12 years agore PR rtl-optimization/50663 (conditional propagation missed in cprop.c pass)
Bin Cheng [Thu, 17 Nov 2011 17:11:16 +0000 (17:11 +0000)]
re PR rtl-optimization/50663 (conditional propagation missed in cprop.c pass)

PR rtl-optimization/50663
* cprop.c (implicit_set_indexes): New global variable.
(insert_set_in_table): Add additional parameter and record implicit
set information.
(hash_scan_set): Add additional parameter and pass it to above.
(hash_scan_insn): Pass false to hash_scan_set.
(compute_hash_table_work): Pass true to hash_scan_set.
(compute_cprop_data): Add implicit set to AVIN of block which the
implicit set is recorded for.
(one_cprop_pass): Handle implicit_set_indexes array.

From-SVN: r181446

12 years agoclass.c (add_implicitly_declared_members): Update move conditions.
Jason Merrill [Thu, 17 Nov 2011 16:35:11 +0000 (11:35 -0500)]
class.c (add_implicitly_declared_members): Update move conditions.

N3203
* class.c (add_implicitly_declared_members): Update move
conditions.

From-SVN: r181445

12 years agore PR c++/51137 ([C++0x] [4.7 Regression] ICE with -std=c++0x and virtual inheritance)
Jason Merrill [Thu, 17 Nov 2011 16:34:59 +0000 (11:34 -0500)]
re PR c++/51137 ([C++0x] [4.7 Regression] ICE with -std=c++0x and virtual inheritance)

PR c++/51137
* class.c (build_base_path): Don't do calculation in templates.

From-SVN: r181444

12 years agore PR tree-optimization/50644 (ICE in set_is_used added today)
Michael Matz [Thu, 17 Nov 2011 16:03:56 +0000 (16:03 +0000)]
re PR tree-optimization/50644 (ICE in set_is_used added today)

PR middle-end/50644
PR middle-end/50741

* tree-ssa-live.c (mark_all_vars_used_1): Recurse only for decls of
current function.
(remove_unused_locals): Ditto.

testsuite/

* g++.dg/tree-ssa/pr50741.C: New.

From-SVN: r181443

12 years agoProvide all dummy functions in alloc_cpp.cc, eh_cpp.cc
Rainer Orth [Thu, 17 Nov 2011 11:34:33 +0000 (11:34 +0000)]
Provide all dummy functions in alloc_cpp.cc, eh_cpp.cc

* alloc_cpp.cc [__osf__] (_ZnwX, _ZdlPv, _ZnaX, _ZdaPv,
_ZnwXRKSt9nothrow_t, _ZdlPvRKSt9nothrow_t, _ZdaPvRKSt9nothrow_t):
Dummy functions.
* eh_cpp.cc [__osf__] (__cxa_allocate_exception, __cxa_throw,
__cxa_begin_catch, __cxa_end_catch, __cxa_tm_cleanup): Likewise.

From-SVN: r181442

12 years agoSkip simulate-thread tests on all alpha targets
Rainer Orth [Thu, 17 Nov 2011 11:25:10 +0000 (11:25 +0000)]
Skip simulate-thread tests on all alpha targets

* lib/gcc-simulate-thread.exp (simulate-thread): Skip on
alpha*-*-*.

From-SVN: r181441

12 years agostatus_cxx2011.xml: Status of piecewise construction and ios_base::failure.
Jonathan Wakely [Thu, 17 Nov 2011 10:14:11 +0000 (10:14 +0000)]
status_cxx2011.xml: Status of piecewise construction and ios_base::failure.

* doc/xml/manual/status_cxx2011.xml: Status of piecewise construction
and ios_base::failure.
* doc/xml/manual/backwards_compatibility.xml: List headers in
alphabetical order.

From-SVN: r181438

12 years agoCopy ALIAS_SET_MEMORY_BARRIER when creating a new MEM for atomic ops.
Richard Henderson [Thu, 17 Nov 2011 04:44:27 +0000 (20:44 -0800)]
Copy ALIAS_SET_MEMORY_BARRIER when creating a new MEM for atomic ops.

* config/alpha/alpha.c (alpha_split_compare_and_swap_12): Copy
ALIAS_SET_MEMORY_BARRIER when creating a new memory.
(alpha_split_atomic_exchange_12): Likewise.
* config/rs6000/rs6000.c (rs6000_adjust_atomic_subword): Likewise.

From-SVN: r181436

12 years agoinclhack.def (aix_once_init_[12]): New fixes.
David Edelsohn [Thu, 17 Nov 2011 02:28:07 +0000 (02:28 +0000)]
inclhack.def (aix_once_init_[12]): New fixes.

        * inclhack.def (aix_once_init_[12]): New fixes.
        * fixincl.x: Regenerate.
        * tests/base/pthread.h: Update.

From-SVN: r181434

12 years agoDaily bump.
GCC Administrator [Thu, 17 Nov 2011 00:18:35 +0000 (00:18 +0000)]
Daily bump.

From-SVN: r181431

12 years agomemopt-6.c: Cleanup tmedge tree dump.
Uros Bizjak [Wed, 16 Nov 2011 23:09:17 +0000 (00:09 +0100)]
memopt-6.c: Cleanup tmedge tree dump.

* gcc.dg/tm/memopt-6.c: Cleanup tmedge tree dump.
* gcc.dg/tm/memopt-13.c: Cleanup tmmark tree dump.
* g++.dg/eh/array1.C: Cleanup gimple tree dump.

From-SVN: r181426

12 years agore PR fortran/39427 (F2003: Procedures with same name as types/type constructors)
Tobias Burnus [Wed, 16 Nov 2011 21:37:43 +0000 (22:37 +0100)]
re PR fortran/39427 (F2003: Procedures with same name as types/type constructors)

gcc/fortran
2011-11-16  Tobias Burnus  <burnus@net-b.de>

        PR fortran/39427
        PR fortran/37829
        * decl.c (match_data_constant, match_data_constant,
        * variable_decl,
        gfc_match_decl_type_spec, access_attr_decl,
        check_extended_derived_type, gfc_match_derived_decl,
        gfc_match_derived_decl, gfc_match_derived_decl) Modified to deal
        with DT constructors.
        * gfortran.h (gfc_find_dt_in_generic,
        gfc_convert_to_structure_constructor): New function prototypes.
        * interface.c (check_interface0, check_interface1,
        gfc_search_interface): Ignore DT constructors in generic list.
        * match.h (gfc_match_structure_constructor): Update prototype.
        * match.c (match_derived_type_spec): Ensure that one uses the DT
        not the generic function.
        * module.c (MOD_VERSION): Bump.
        (dt_lower_string, dt_upper_string): New functions.
        (find_use_name_n, find_use_operator, compare_true_names,
        find_true_name, add_true_name, fix_mio_expr, load_needed,
        read_module, write_dt_extensions, write_symbol): Changes to deal with
        different symtree vs. sym names.
        (create_derived_type): Create also generic procedure.
        * parse.c (gfc_fixup_sibling_symbols): Don't regard DT and
        * generic
        function as the same.
        * primary.c (gfc_convert_to_structure_constructor): New
        * function.
        (gfc_match_structure_constructor): Restructured; calls
        gfc_convert_to_structure_constructor.
        (build_actual_constructor, gfc_match_rvalue): Update for DT generic
        functions.
        * resolve.c (resolve_formal_arglist, resolve_structure_cons,
        is_illegal_recursion, resolve_generic_f, resolve_variable,
        resolve_fl_variable_derived, resolve_fl_derived0,
        resolve_symbol): Handle DT and DT generic constructors.
        * symbol.c (gfc_use_derived, gfc_undo_symbols,
        gen_special_c_interop_ptr, gen_cptr_param,
        generate_isocbinding_symbol, gfc_get_derived_super_type): Handle
        derived-types, which are hidden in the generic type.
        (gfc_find_dt_in_generic): New function
        * trans-array.c (gfc_conv_array_initializer): Replace
        * FL_PARAMETER
        expr by actual value.
        * trans-decl.c (gfc_get_module_backend_decl,
        * gfc_trans_use_stmts):
        Ensure that we use the DT and not the generic function.
        * trans-types.c (gfc_get_derived_type): Ensure that we use the
        * DT
        and not the generic procedure.

gcc/testsuite/
2011-11-16  Tobias Burnus  <burnus@net-b.de>

        PR fortran/39427
        PR fortran/37829
        * gfortran.dg/constructor_1.f90: New.
        * gfortran.dg/constructor_2.f90: New.
        * gfortran.dg/constructor_3.f90: New.
        * gfortran.dg/constructor_4.f90: New.
        * gfortran.dg/constructor_5.f90: New.
        * gfortran.dg/constructor_6.f90: New.
        * gfortran.dg/use_only_5.f90: New.
        * gfortran.dg/c_ptr_tests_17.f90: New.
        * gfortran.dg/c_ptr_tests_18.f90: New.
        * gfortran.dg/used_types_25.f90: New.
        * gfortran.dg/used_types_26.f90: New
        * gfortran.dg/type_decl_3.f90: New.
        * gfortran.dg/function_types_3.f90: Update dg-error.
        * gfortran.dg/result_1.f90: Ditto.
        * gfortran.dg/structure_constructor_3.f03: Ditto.
        * gfortran.dg/structure_constructor_4.f03: Ditto.

From-SVN: r181425

12 years ago* config/i386/i386elf.h (PREFERRED_DEBUGGING_TYPE): Remove.
Joseph Myers [Wed, 16 Nov 2011 20:35:27 +0000 (20:35 +0000)]
* config/i386/i386elf.h (PREFERRED_DEBUGGING_TYPE): Remove.

From-SVN: r181423

12 years agors6000.c (rs6000_xcoff_section_type_flags): Default to minimum alignment if decl...
David Edelsohn [Wed, 16 Nov 2011 18:33:52 +0000 (18:33 +0000)]
rs6000.c (rs6000_xcoff_section_type_flags): Default to minimum alignment if decl is NULL.

        * config/rs6000/rs6000.c (rs6000_xcoff_section_type_flags):
        Default to minimum alignment if decl is NULL.

From-SVN: r181422

12 years agosse.md (round<mode>2_vec_pack_sfix): Optimize V2DFmode sequence for AVX.
Uros Bizjak [Wed, 16 Nov 2011 18:28:08 +0000 (19:28 +0100)]
sse.md (round<mode>2_vec_pack_sfix): Optimize V2DFmode sequence for AVX.

* config/i386/sse.md (round<mode>2_vec_pack_sfix): Optimize V2DFmode
sequence for AVX.
(<sse4_1>_round<ssemodesuffix>_vec_pack_sfix<avxsizesuffix>): Ditto.

From-SVN: r181421

12 years agopr30858.c: Update expected output for architectures with multiple vector sizes.
Matthew Gretton-Dann [Wed, 16 Nov 2011 18:19:37 +0000 (18:19 +0000)]
pr30858.c: Update expected output for architectures with multiple vector sizes.

2011-10-16  Matthew Gretton-Dann  <matthew.gretton-dann@arm.com>

* gcc.dg/vect/pr30858.c: Update expected output for
architectures with multiple vector sizes.

From-SVN: r181420

12 years agolib1funcs.asm (udivsi3): Add support for divide functions.
Matthew Gretton-Dann [Wed, 16 Nov 2011 18:02:12 +0000 (18:02 +0000)]
lib1funcs.asm (udivsi3): Add support for divide functions.

2011-11-16  Matthew Gretton-Dann  <matthew.gretton-dann@arm.com>

* config/arm/lib1funcs.asm (udivsi3): Add support for divide
functions.
(aeabi_uidivmod): Likewise.
(umodsi3): Likewise.
(divsi3): Likewise.
(aeabi_idivmod): Likewise.
(modsi3): Likewise.

From-SVN: r181419

12 years ago* doc/invoke.texi: Document AMD bdver1 and btver1.
Venkataramanan Kumar [Wed, 16 Nov 2011 17:31:38 +0000 (17:31 +0000)]
* doc/invoke.texi: Document AMD bdver1 and btver1.

From-SVN: r181417

12 years agore PR target/49641 (Wrong code for ARMv4T and stmia)
Richard Earnshaw [Wed, 16 Nov 2011 17:02:44 +0000 (17:02 +0000)]
re PR target/49641 (Wrong code for ARMv4T and stmia)

2011-11-16  Richard Earnshaw  <rearnsha@arm.com>
    Bernd Schmidt <bernds@coudesourcery.com>
    Sebastian Huber <sebastian.huber@embedded-brains.de>

PR target/49641
* config/arm/arm.c (store_multiple_sequence): Avoid cases where
the base reg is stored iff compiling for Thumb1.

* gcc.target/arm/pr49641.c: New test.

Co-Authored-By: Bernd Schmidt <bernds@codesourcery.com>
Co-Authored-By: Sebastian Huber <sebastian.huber@embedded-brains.de>
From-SVN: r181416

12 years agore PR libstdc++/51102 (missing macros in <atomic>)
Andrew MacLeod [Wed, 16 Nov 2011 15:43:15 +0000 (15:43 +0000)]
re PR libstdc++/51102 (missing macros in <atomic>)

2011-11-16  Andrew MacLeod  <amacleod@redhat.com>

PR libstdc++/51102
* include/bits/atomic_base.h (ATOMIC_BOOL_LOCK_FREE,
ATOMIC_POINTER_LOCK_FREE): New. Add missing macros.

From-SVN: r181414

12 years agore PR tree-optimization/49960 (inconsistent outputs when enabling autopar for a self...
Razya Ladelsky [Wed, 16 Nov 2011 15:01:47 +0000 (15:01 +0000)]
re PR tree-optimization/49960 (inconsistent outputs when enabling autopar for a self -dependence testcase)

PR tree-optimization/49960

* tree-data-ref.c (initialize_data_dependence_relation): Add initializations.
Remove call to compute_self_dependence.
(compute_affine_dependence): Remove the !DDR_SELF_REFERENCE condition.
(compute_self_dependence): Remove old code. Add call to compute_affine_dependence.
(compute_all_dependences): Remove call to compute_self_dependence.
Add call to compute_affine_dependence.

From-SVN: r181411

12 years agore PR tree-optimization/49960 (inconsistent outputs when enabling autopar for a self...
Razya Ladelsky [Wed, 16 Nov 2011 14:59:14 +0000 (14:59 +0000)]
re PR tree-optimization/49960 (inconsistent outputs when enabling autopar for a self -dependence testcase)

PR tree-optimization/49960

* gcc.dg/autopar/pr49960.c: New test.
* gcc.dg/autopar/pr49960-1.c: New test.

From-SVN: r181410

12 years agore PR tree-optimization/49960 (inconsistent outputs when enabling autopar for a self...
Razya Ladelsky [Wed, 16 Nov 2011 14:58:04 +0000 (14:58 +0000)]
re PR tree-optimization/49960 (inconsistent outputs when enabling autopar for a self -dependence testcase)

PR tree-optimization/49960

* gcc.dg/autopar/pr49960.c: New test.
* gcc.dg/autopar/pr49960-1.c: New test.

From-SVN: r181409

12 years agore PR bootstrap/51098 (bootstrap failed on avx i686, svn revision 181259 to 181267)
Uros Bizjak [Wed, 16 Nov 2011 14:51:13 +0000 (15:51 +0100)]
re PR bootstrap/51098 (bootstrap failed on avx i686, svn revision 181259 to 181267)

PR bootstrap/51098
* acinclude.m4 (LIBITM_CHECK_AS_AVX): Fix target selector.
* configure: Regenerate.

From-SVN: r181408

12 years ago2011-11-16 Paolo Carlini <paolo.carlini@oracle.com>
Paolo Carlini [Wed, 16 Nov 2011 10:23:59 +0000 (10:23 +0000)]
2011-11-16  Paolo Carlini  <paolo.carlini@oracle.com>

* Fix name in ChangeLog entry.

From-SVN: r181407

12 years agore PR middle-end/50325 (76 new fails with rev. 177691)
Andreas Krebbel [Wed, 16 Nov 2011 09:27:56 +0000 (09:27 +0000)]
re PR middle-end/50325 (76 new fails with rev. 177691)

2011-11-16  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>

PR middle-end/50325
* expmed.c (store_bit_field_1): Use extract_bit_field on big
endian targets if the source cannot be exactly covered by word
mode chunks.

From-SVN: r181405

12 years agoqrnnd.S: Use specific pseudos for VMS.
Tristan Gingold [Wed, 16 Nov 2011 08:36:46 +0000 (08:36 +0000)]
qrnnd.S: Use specific pseudos for VMS.

2011-11-16  Tristan Gingold  <gingold@adacore.com>

* config/alpha/qrnnd.S: Use specific pseudos for VMS.

From-SVN: r181403

12 years agoi386elf.h (ASM_OUTPUT_ASCII): Change STRING_LIMIT to ELF_STRING_LIMIT.
Joseph Myers [Wed, 16 Nov 2011 00:21:56 +0000 (00:21 +0000)]
i386elf.h (ASM_OUTPUT_ASCII): Change STRING_LIMIT to ELF_STRING_LIMIT.

* config/i386/i386elf.h (ASM_OUTPUT_ASCII): Change STRING_LIMIT to
ELF_STRING_LIMIT.

From-SVN: r181400

12 years agoDaily bump.
GCC Administrator [Wed, 16 Nov 2011 00:18:50 +0000 (00:18 +0000)]
Daily bump.

From-SVN: r181399

12 years agoalpha: Convert to atomic optabs.
Richard Henderson [Tue, 15 Nov 2011 23:43:08 +0000 (15:43 -0800)]
alpha: Convert to atomic optabs.

From-SVN: r181395

12 years agore PR libstdc++/51142 ([C++0x] map::erase(key) doesn't compile with -D_GLIBCXX_DEBUG.)
Paolo Carlini [Tue, 15 Nov 2011 23:28:49 +0000 (23:28 +0000)]
re PR libstdc++/51142 ([C++0x] map::erase(key) doesn't compile with -D_GLIBCXX_DEBUG.)

2011-11-15  Paolo Carlini  <paolo.carlini@oracle.com>

PR libstdc++/51142
* include/debug/unordered_map (unordered_map<>::erase(iterator),
unordered_multimap<>::erase(iterator)): Add, consistently with
LWG 2059.
* include/debug/unordered_set (unordered_set<>::erase(iterator),
unordered_multiset<>::erase(iterator)): Likewise.
* include/debug/map.h (map<>::erase(iterator)): Likewise.
* include/debug/multimap.h (multimap<>::erase(iterator)): Likewise.
* include/profile/map.h (map<>::erase(iterator)): Likewise.
* include/profile/multimap.h (multimap<>::erase(iterator)): Likewise.
* include/bits/hashtable.h (_Hashtable<>::erase(iterator)): Likewise.
* include/bits/stl_map.h (map<>::erase(iterator)): Likewise.
* include/bits/stl_multimap.h (multimap<>::erase(iterator)): Likewise.
* include/bits/stl_tree.h (_Rb_tree<>::erase(iterator)): Likewise.
* testsuite/23_containers/unordered_map/erase/51142.cc: New.
* testsuite/23_containers/multimap/modifiers/erase/51142.cc: Likewise.
* testsuite/23_containers/set/modifiers/erase/51142.cc: Likewise.
* testsuite/23_containers/unordered_multimap/erase/51142.cc: Likewise.
* testsuite/23_containers/unordered_set/erase/51142.cc: Likewise.
* testsuite/23_containers/multiset/modifiers/erase/51142.cc: Likewise.
* testsuite/23_containers/unordered_multiset/erase/51142.cc: Likewise.
* testsuite/23_containers/map/modifiers/erase/51142.cc: Likewise.

From-SVN: r181394

12 years agopr43864.c: Check for absence of 'Invalid sum' in pre tree-dump.
Tom de Vries [Tue, 15 Nov 2011 23:04:46 +0000 (23:04 +0000)]
pr43864.c: Check for absence of 'Invalid sum' in pre tree-dump.

2011-11-16  Tom de Vries  <tom@codesourcery.com>

* gcc.dg/pr43864.c: Check for absence of 'Invalid sum' in pre tree-dump.
* gcc.dg/pr43864-2.c: Same.
* gcc.dg/pr43864-3.c: Same.
* gcc.dg/pr43864-4.c: Same.

From-SVN: r181393

12 years agotree-ssa-tail-merge.c (replace_block_by): Add frequency of bb2 to bb1.
Tom de Vries [Tue, 15 Nov 2011 23:04:39 +0000 (23:04 +0000)]
tree-ssa-tail-merge.c (replace_block_by): Add frequency of bb2 to bb1.

2011-11-16  Tom de Vries  <tom@codesourcery.com>

* tree-ssa-tail-merge.c (replace_block_by): Add frequency of bb2 to bb1.

From-SVN: r181392

12 years agore PR rtl-optimization/51051 (build fails on cris-elf building libstdc++-v3)
Alan Modra [Tue, 15 Nov 2011 22:10:46 +0000 (08:40 +1030)]
re PR rtl-optimization/51051 (build fails on cris-elf building libstdc++-v3)

PR rtl-optimization/51051
PR bootstrap/51086
* function.c (thread_prologue_and_epilogue_insns): Guard
emitting return with single_succ_p test.

From-SVN: r181391

12 years agosse2-cvt-vec.c: New test.
Uros Bizjak [Tue, 15 Nov 2011 19:40:04 +0000 (20:40 +0100)]
sse2-cvt-vec.c: New test.

* gcc.target/i386/sse2-cvt-vec.c: New test.
* gcc.target/i386/avx-cvt-vec.c: Ditto.
* gcc.target/i386/avx-cvt-2-vec.c: Ditto.

From-SVN: r181390

12 years agoepiphany.md (mov<mode>cc): Fix code to get mode from CMP_OP1 if CMP_OP0 is VOIDmode.
Joern Rennecke [Tue, 15 Nov 2011 19:06:32 +0000 (19:06 +0000)]
epiphany.md (mov<mode>cc): Fix code to get mode from CMP_OP1 if CMP_OP0 is VOIDmode.

        * config/epiphany/epiphany.md (mov<mode>cc): Fix code to
        get mode from CMP_OP1 if CMP_OP0 is VOIDmode.

From-SVN: r181388

12 years agosse.md (vec_pack_trunc_v2df): Optimize sequence for AVX.
Uros Bizjak [Tue, 15 Nov 2011 18:45:20 +0000 (19:45 +0100)]
sse.md (vec_pack_trunc_v2df): Optimize sequence for AVX.

* config/i386/sse.md (vec_pack_trunc_v2df): Optimize sequence for AVX.
(vec_pack_sfix_trunc_v2df): Ditto.
(vec_pack_sfix_v2df): Ditto.
(vec_pack_sfix_trunc_v4df): Generate fix_truncv4dfv4si2 and
avx_vec_concatv8si patterns.
(vec_pack_sfix_v4df): Generate avx_cvtpd2dq256 and
avx_vec_concatv8si patterns.

testsuite/ChangeLog:

* gcc.target/i386/avx-floor-sfix-2-vec.c: New test.
* gcc.target/i386/avx-ceil-sfix-2-vec.c: Ditto.
* gcc.target/i386/avx-rint-sfix-2-vec.c: Ditto.
* gcc.target/i386/avx-round-sfix-2-vec.c: Ditto.

From-SVN: r181387

12 years agogcc-simulate-thread.exp (simulate-thread): Do not run on powerpc*-*-darwin* targets.
Iain Sandoe [Tue, 15 Nov 2011 13:16:17 +0000 (13:16 +0000)]
gcc-simulate-thread.exp (simulate-thread): Do not run on powerpc*-*-darwin* targets.

gcc/testsuite:

* lib/gcc-simulate-thread.exp (simulate-thread): Do not run on
powerpc*-*-darwin* targets.

From-SVN: r181384

12 years agoRequire parentheses when parsing transaction expressions.
Torvald Riegel [Tue, 15 Nov 2011 12:16:13 +0000 (12:16 +0000)]
Require parentheses when parsing transaction expressions.

gcc/
* c-parser.c (c_parser_transaction_expression): Require parentheses
when parsing transaction expressions.

gcc/cp/
* parser.c (cp_parser_transaction_expression): Require parentheses
when parsing transaction expressions.

gcc/testsuite/
* c-c++-common/tm/trxn-expr-3.c: New test.

From-SVN: r181383

12 years agore PR libstdc++/51133 (Incorrect implementation of std::tr1::hermite())
Jason Dick [Tue, 15 Nov 2011 10:49:00 +0000 (10:49 +0000)]
re PR libstdc++/51133 (Incorrect implementation of std::tr1::hermite())

2011-11-15  Jason Dick  <dickphd@gmail.com>

PR libstdc++/51133
* include/tr1/poly_hermite.tcc (__poly_hermite_recursion): Fix
wrong sign in recursion relation.

From-SVN: r181381

12 years agoincpath.c (get_added_cpp_dirs): New function.
Tristan Gingold [Tue, 15 Nov 2011 10:25:36 +0000 (10:25 +0000)]
incpath.c (get_added_cpp_dirs): New function.

2011-11-15  Tristan Gingold  <gingold@adacore.com>

* incpath.c (get_added_cpp_dirs): New function.
* incpath.h (get_added_cpp_dirs): Declare.
* config/vms/vms-c.c (vms_c_register_includes): New function.
(vms_std_modules): New variable.
* config/vms/vms.h (TARGET_EXTRA_INCLUDES): Define.
(vms_c_register_includes): Declare.

From-SVN: r181380

12 years agoc-pragma.h (pragma_extern_prefix): Declare.
Tristan Gingold [Tue, 15 Nov 2011 10:22:55 +0000 (10:22 +0000)]
c-pragma.h (pragma_extern_prefix): Declare.

2011-11-15  Tristan Gingold  <gingold@adacore.com>

* c-family/c-pragma.h (pragma_extern_prefix): Declare.
* c-family/c-pragma.c (pragma_extern_prefix): Make it public.
* config/vms/vms-c.c (saved_extern_prefix): New variable.
(vms_pragma_extern_prefix): New function.
(vms_c_register_pragma): Register vms_pragma_extern_prefix.

From-SVN: r181379

12 years agore PR target/49868 (Implement named address space to place/access data in flash memory)
Georg-Johann Lay [Tue, 15 Nov 2011 09:01:46 +0000 (09:01 +0000)]
re PR target/49868 (Implement named address space to place/access data in flash memory)

gcc/
PR target/49868
* config/avr/avr.h (ADDR_SPACE_PGM): New address spaces.
(REGISTER_TARGET_PRAGMAS): New define.
* config/avr/avr-protos.h (avr_mem_pgm_p): New.
(avr_load_libgcc_p): New.
(asm_output_external_libcall): Remove.
(avr_register_target_pragmas): New.
(avr_log_t): Add field "progmem".  Order alphabetically.
* config/avr/avr-log.c (avr_log_set_avr_log): Set avr_log.progmem.
* config/avr/avr-c.c (langhooks.h): New include.
(avr_register_target_pragmas): New function. Register address
space __pgm.
(avr_cpu_cpp_builtins): Add built-in define __PGM.
* config/avr/avr.c: Include "c-family/c-common.h".
(TARGET_LEGITIMATE_ADDRESS_P): Remove define.
(TARGET_LEGITIMIZE_ADDRESS): Remove define.
(TARGET_ADDR_SPACE_SUBSET_P): Define to...
(avr_addr_space_subset_p): ...this new static function.
(TARGET_ADDR_SPACE_CONVERT): Define to...
(avr_addr_space_convert): ...this new static function.
(TARGET_ADDR_SPACE_ADDRESS_MODE): Define to...
(avr_addr_space_address_mode): ...this new static function.
(TARGET_ADDR_SPACE_POINTER_MODE): Define to...
(avr_addr_space_pointer_mode): ...this new static function.
(TARGET_ADDR_SPACE_LEGITIMATE_ADDRESS_P): Define to...
(avr_addr_space_legitimate_address_p): ...this new static function.
(TARGET_ADDR_SPACE_LEGITIMIZE_ADDRESS): Define to...
(avr_addr_space_legitimize_address): ...this new static function.
(avr_mode_code_base_reg_class): Handle address spaces.
(avr_regno_mode_code_ok_for_base_p): Ditto.
(lpm_addr_reg_rtx, lpm_reg_rtx, all_regs_rtx): New static variables.
(avr_option_override): Initialize them.
(output_reload_in_const): Use all_regs_rtx. Fix signedness of loop
variables.
(avr_pgm_segment): New static function.
(avr_decl_pgm_p, avr_mem_pgm_p): New static functions.
(avr_out_lpm, avr_out_lpm_no_lpmx): New static functions.
(output_movqi, output_movhi, output_movsisf, avr_out_movpsi): Call
avr_out_lpm to handle loads from progmem.
(avr_load_libgcc_p): New static function.
(avr_progmem_p): Test if decl is in flash.
(avr_pgm_pointer_const_p): New static function.
(avr_nonconst_pointer_addrspace): New static function.
(avr_pgm_check_var_decl): New static function.
(avr_insert_attributes): Use it.  Change error message to report
cause (progmem or address space) when code wants to write to flash.
(avr_section_type_flags): Unset section flag SECTION_BSS for
data in progmem.
* config/avr/predicates.md (nop_general_operand): New predicate.
(nox_general_operand): New predicate.
* config/avr/avr.md (LPM_REGNO): New define_constant.
(load<mode>_libgcc): New expander.
(*load.<mode>.libgcc): New insn.
(mov<mode>): Handle loads from non-generic AS.
(movmemhi): Ditto.  Propagate address space information to newly
created MEM.
(movqi_insn, *movhi, *movpsi, *movsi, *movsf): Change predicate #1
to nox_general_operand.
(ashrqi3, ashrhi3, ashrsi3): Change predicate #1 to nop_general_operand.
(ashlqi3, *ashlqi3, ashlhi3, ashlsi3): Ditto.
(lshrqi3, *lshrqi3, lshrhi3, lshrsi3): Ditto.
(split-lpmx): New split.
(*ashlhi3_const, *ashlsi3_const, *ashrhi3_const, *ashrsi3_const,
*lshrhi3_const, *lshrsi3_const): Indent, unquote C.

libgcc/
PR target/49868
* config/avr/t-avr (LIB1ASMFUNCS): Add _load_3,  _load_4.
* config/avr/lib1funcs.S (__load_3, __load_4, __xload_2): New functions.

From-SVN: r181378

12 years agoipa-cp.c (ipa_value_from_jfunc): Make global.
Maxim Kuvyrkov [Tue, 15 Nov 2011 03:46:08 +0000 (03:46 +0000)]
ipa-cp.c (ipa_value_from_jfunc): Make global.

* ipa-cp.c (ipa_value_from_jfunc): Make global.
(ipa_cst_from_jfunc): Remove, use ipa_value_from_jfunc instead.
(get_indirect_edge_target): Rename, make global.
(devirtualization_time_bonus, estimate_local_effects,)
(ipcp_discover_new_direct_edges): Update.
* ipa-inline-analysis.c (evaluate_conditions_for_edge):
Generalize to also handle types.  Rename to ...
(evaluate_properties_for_edge): Use instead of
evaluate_conditions_for_edge.
(estimate_edge_devirt_benefit): New function.
(estimate_calls_size_and_time): Use it.
(estimate_node_size_and_time, estimate_ipcp_clone_size_and_time,)
(inline_merge_summary): Update.
(do_estimate_edge_time, do_estimate_edge_growth): Update.  Calculate
parameter information at the call site and pass it on to subroutines.
* tree-inline.c (estimate_num_insns): Distinguish between direct and
indirect calls.
(init_inline_once): Set size and time costs or indirect calls.
* tree-inline.h (eni_weights): Add indirect_call_cost.

From-SVN: r181377

12 years agoDaily bump.
GCC Administrator [Tue, 15 Nov 2011 00:18:38 +0000 (00:18 +0000)]
Daily bump.

From-SVN: r181376

12 years agore PR tree-optimization/51005 (-ftree-tail-merge slows down compilation of 20001226...
Tom de Vries [Tue, 15 Nov 2011 00:12:45 +0000 (00:12 +0000)]
re PR tree-optimization/51005 (-ftree-tail-merge slows down compilation of 20001226-1.c)

2011-11-15  Tom de Vries  <tom@codesourcery.com>

PR tree-optimization/51005
* tree-ssa-tail-merge.c (delete_basic_block_same_succ): Rename to
mark_basic_block_deleted.
(update_worklist): Inline purge_bbs.
(purge_bbs, unlink_virtual_phi, update_vuses, vop_at_entry)
(delete_block_update_dominator_info): Remove.
(replace_block_by): Remove update_vops parameter.  Partially evaluate
for update_vops == false.
(apply_clusters): Remove update_vops parameter.  Remove update_vops
argument in replace_block_by call.
(update_debug_stmts): Remove MAY_HAVE_DEBUG_STMTS test.
(tail_merge_optimize): Remove update_vops argument to apply_clusters.
Remove call to purge_bbs.  Add calls to calculate_dominance_info and
free_dominance_info.  Add MAY_HAVE_DEBUG_STMTS before calling
update_debug_stmts.  Mark vop var for renaming, if necessary.

From-SVN: r181372

12 years agore PR rtl-optimization/51051 (build fails on cris-elf building libstdc++-v3)
Bernd Schmidt [Mon, 14 Nov 2011 23:31:13 +0000 (23:31 +0000)]
re PR rtl-optimization/51051 (build fails on cris-elf building libstdc++-v3)

PR rtl-optimization/51051
* cfgrtl.c (cfg_layout_can_merge_blocks_p): Return FALSE if the
move would cause fallthrough into the exit block.

From-SVN: r181371

12 years agors6000: Rewrite sync patterns for atomic; expand early.
Richard Henderson [Mon, 14 Nov 2011 22:59:02 +0000 (14:59 -0800)]
rs6000: Rewrite sync patterns for atomic; expand early.

The conversion of the __sync post-reload splitters was half
complete.  Since there are nearly no restrictions on what may
appear between LL and SC, expand all the patterns immediatly.
This allows significantly easier code generation for subword
atomic operations.

From-SVN: r181370

12 years agosse.md (round<mode>2): Use register_operand for operand 1 predicate.
Uros Bizjak [Mon, 14 Nov 2011 22:27:13 +0000 (23:27 +0100)]
sse.md (round<mode>2): Use register_operand for operand 1 predicate.

* config/i386/sse.md (round<mode>2): Use register_operand for
operand 1 predicate.
(round<mode>2_sfix): Ditto.
(round<mode>2_vec_pack_sfix): Ditto for operand 1 and operand 2.

From-SVN: r181369

12 years agoruntime: Use some of 6g runtime.c for easier merging.
Ian Lance Taylor [Mon, 14 Nov 2011 22:26:45 +0000 (22:26 +0000)]
runtime: Use some of 6g runtime.c for easier merging.

From-SVN: r181368

12 years ago* gcov.c (canonicalize_name): Protect use of S_ISLNK.
Nathan Sidwell [Mon, 14 Nov 2011 21:44:01 +0000 (21:44 +0000)]
* gcov.c (canonicalize_name): Protect use of S_ISLNK.

From-SVN: r181367

12 years agoTrivial: add cleanup-tree-dump in testcase, fix typo in comment.
Torvald Riegel [Mon, 14 Nov 2011 21:06:15 +0000 (21:06 +0000)]
Trivial: add cleanup-tree-dump in testcase, fix typo in comment.

gcc/testsuite:
* g++.dg/tm/template-1.C: Add cleanup-tree-dump. Fix typo in comment.

From-SVN: r181366

12 years agoi386.c (core cost model): Correct pasto.
Jan Hubicka [Mon, 14 Nov 2011 21:05:12 +0000 (22:05 +0100)]
i386.c (core cost model): Correct pasto.

gcc:

2011-11-14  Jan Hubicka  <jh@suse.cz>

* config/i386/i386.c (core cost model): Correct pasto.

From-SVN: r181365

12 years agoavx-recip-vec.c: New test.
Uros Bizjak [Mon, 14 Nov 2011 20:25:14 +0000 (21:25 +0100)]
avx-recip-vec.c: New test.

* gcc.target/i386/avx-recip-vec.c: New test.
* gcc.target/i386/avx-lrintf-vec.c: Ditto.
* gcc.target/i386/avx-lrint-vec.c: Ditto.
* gcc.target/i386/avx-ceilf-vec.c: Include sse4_1-ceilf-vec.c.
* gcc.target/i386/avx-ceil-vec.c: Include sse4_1-ceil-vec.c.
* gcc.target/i386/avx-floorf-vec.c: Include sse4_1-floorf-vec.c.
* gcc.target/i386/avx-floor-vec.c: Include sse4_1-floor-vec.c.
* gcc.target/i386/avx-rintf-vec.c: Include sse4_1-rintf-vec.c.
* gcc.target/i386/avx-rint-vec.c: Include sse4_1-rint-vec.c.
* gcc.target/i386/avx-roundf-vec.c: Include sse4_1-roundf-vec.c.
* gcc.target/i386/avx-round-vec.c: Include sse4_1-round-vec.c.
* gcc.target/i386/avx-truncf-vec.c: Include sse4_1-truncf-vec.c.
* gcc.target/i386/avx-trunc-vec.c: Include sse4_1-trunc-vec.c.
* gcc.target/i386/avx-copysignf-vec.c: Include sse-copysignf-vec.c.
* gcc.target/i386/avx-copysign-vec.c: Include sse2-copysign-vec.c.

From-SVN: r181364

12 years agore PR c++/51107 ([C++11] Accepts invalid literal operator with void argument list.)
Ed Smith-Rowland [Mon, 14 Nov 2011 20:05:12 +0000 (20:05 +0000)]
re PR c++/51107 ([C++11] Accepts invalid literal operator with void argument list.)

PR c++/51107
* typeck.c (check_literal_operator_args): Add processing_specialization
to check for void template fn. Test for exact arity for non-template fn.

From-SVN: r181363

12 years agosse.md (round<mode>2_sfix): New expander.
Uros Bizjak [Mon, 14 Nov 2011 19:36:33 +0000 (20:36 +0100)]
sse.md (round<mode>2_sfix): New expander.

* config/i386/sse.md (round<mode>2_sfix): New expander.
(round<mode>2_vec_pack_sfix): Ditto.
(<sse4_1>_round<ssemodesuffix>_sfix<avxsizesuffix>): Ditto.
(<sse4_1>_round<ssemodesuffix>_vec_pack_sfix<avxsizesuffix>): Ditto.
* config/i386/builtin-types.def (V4SI_FTYPE_V4SF_ROUND,
V8SI_FTYPE_V8SF_ROUND, V4SI_FTYPE_V2DF_V2DF_ROUND,
V8SI_FTYPE_V4DF_V4DF_ROUND): New builtin types.
* config/i386/i386.c (ix86_builtins): Add
IX86_BUILTIN_{FLOORPD,CEILPD,ROUNDPD_AZ}_VEC_PACK_SFIX{,256} and
IX86_BUILTIN_{FLOORPS,CEILPS,ROUNDPS_AZ}_SFIX{,256} defines.
(bdesc_args): Add __builtin_ia32_{floorpd,ceilpd}_vec_pack_sfix{,256},
__builtin_ia32_roundpd_az_vec_pack_sfix{,256},
__builtin_ia32_{floorps,ceilps}_sfix{,256}and
__builtin_ia32_roundps_az_sfix{,256} descriptions.
(ix86_expand_sse_round_vec_pack_sfix): New.
(ix86_expand_args_builtin): Handle V4SI_FTYPE_V4SF_ROUND,
V8SI_FTYPE_V8SF_ROUND, V4SI_FTYPE_V2DF_V2DF_ROUND and
V8SI_FTYPE_V4DF_V4DF_ROUND types.  Check last argument of
CODE_FOR_sse4_1_roundpd_vec_pack_sfix, CODE_FOR_sse4_1_roundps_sfix,
CODE_FOR_avx_roundpd_vec_pack_sfix256 and CODE_FOR_avx_roundps_sfix256.
(ix86_builtin_vectorized_function): Handle
BUILT_IN_{I,L,LL}FLOOR{,F}, BUILT_IN_{I,L,LL}CEIL{,F} and
BUILT_IN_{I,L,LL}ROUND{,F}

testsuite/ChangeLog:

* gcc.target/i386/sse4_1-floor-sfix-vec.c: New test.
* gcc.target/i386/sse4_1-floorf-sfix-vec.c: Ditto.
* gcc.target/i386/avx-floor-sfix-vec.c: Ditto.
* gcc.target/i386/avx-floorf-sfix-vec.c: Ditto.
* gcc.target/i386/sse4_1-ceil-sfix-vec.c: Ditto.
* gcc.target/i386/sse4_1-ceilf-sfix-vec.c: Ditto.
* gcc.target/i386/avx-ceil-sfix-vec.c: Ditto.
* gcc.target/i386/avx-ceilf-sfix-vec.c: Ditto.
* gcc.target/i386/sse4_1-round-sfix-vec.c: Ditto.
* gcc.target/i386/sse4_1-roundf-sfix-vec.c: Ditto.
* gcc.target/i386/avx-round-sfix-vec.c: Ditto.
* gcc.target/i386/avx-roundf-sfix-vec.c: Ditto.

From-SVN: r181361

12 years agoCheck ia32 instead of ilp32.
H.J. Lu [Mon, 14 Nov 2011 18:12:24 +0000 (18:12 +0000)]
Check  ia32 instead of ilp32.

2011-11-14  H.J. Lu  <hongjiu.lu@intel.com>

* testsuite/lib/libitm.exp: Check ia32 instead of ilp32.

From-SVN: r181360

12 years agore PR c++/6936 (member "using" binds wrong)
Fabien Chêne [Mon, 14 Nov 2011 17:55:57 +0000 (18:55 +0100)]
re PR c++/6936 (member "using" binds wrong)

PR c++/6936
PR c++/25994
PR c++/26256
PR c++/30195
* search.c (lookup_field_1): Look through USING_DECL.
(lookup_field_r): Call lookup_fnfields_slot instead of
lookup_fnfields_1.
* semantics.c (finish_member_declaration): Remove the check that
prevents USING_DECLs from being verified by
pushdecl_class_level. Call add_method for using declarations that
designates functions if the using declaration is in a template
class. Set DECL_IGNORED_P on class-scope using declarations.
* typeck.c (build_class_member_access_expr): Handle USING_DECLs.
* class.c (check_field_decls): Keep using declarations.
(add_method): Remove two diagnostics about conflicting using
declarations.
* parser.c (cp_parser_nonclass_name): Handle USING_DECLs.
* decl.c (start_enum): Call xref_tag whenever possible.
* cp-tree.h (strip_using_decl): Declare, and reident the previous
function.
* name-lookup.c (strip_using_decl): New function.
(supplement_binding_1): Call strip_using_decl on decl and
bval. Perform most of the checks with USING_DECLs stripped.  Also
check that the target decl and the target bval does not refer to
the same declaration. Allow pushing an enum multiple times in a
template class. Adjustment to diagnose using redeclarations. Call
diagnose_name_conflict.
(push_class_level_binding): Call strip_using_decl on decl and
bval. Perform most of the checks with USING_DECLs stripped. Return
true if both decl and bval refer to USING_DECLs and are dependent.
(diagnose_name_conflict): New function.

From-SVN: r181359

12 years agore PR middle-end/50598 (Undefined symbols: "___emutls_v.*", ... on *-apple-darwin*)
Jan Hubicka [Mon, 14 Nov 2011 17:32:47 +0000 (17:32 +0000)]
re PR middle-end/50598 (Undefined symbols: "___emutls_v.*", ... on *-apple-darwin*)

PR middle-end/50598
* cgraph.h (varpool_externally_visible_p): Declare.
(varpool_add_new_variable): Declare.
* tree-emultls.c (get_emutls_init_templ_addr,
new_emutls_decl): Use varpool_add_new_variable.
* ipa.c (varpool_externally_visible_p): Export.
* varpool.c (varpool_add_new_variable): New function.

From-SVN: r181358

12 years agosw-1.c: Force rep;movsb.
Zolotukhin Michael [Mon, 14 Nov 2011 17:28:11 +0000 (17:28 +0000)]
sw-1.c: Force rep;movsb.

* gcc.target/i386/sw-1.c: Force rep;movsb.

        * config/i386/i386.h (processor_costs): Add second dimension to
        stringop_algs array.
        * config/i386/i386.c (cost models): Initialize second dimension of
        stringop_algs arrays.
(core_cost): New costs based on generic64 costs with updated stringop
values.
        (promote_duplicated_reg): Add support for vector modes, add
        declaration.
        (promote_duplicated_reg_to_size): Likewise.
(processor_target): Set core costs for core variants.
        (expand_set_or_movmem_via_loop_with_iter): New function.
        (expand_set_or_movmem_via_loop): Enable reuse of the same iters in
        different loops, produced by this function.
        (emit_strset): New function.
        (expand_movmem_epilogue): Add epilogue generation for bigger sizes,
        use SSE-moves where possible.
        (expand_setmem_epilogue): Likewise.
        (expand_movmem_prologue): Likewise for prologue.
        (expand_setmem_prologue): Likewise.
        (expand_constant_movmem_prologue): Likewise.
        (expand_constant_setmem_prologue): Likewise.
        (decide_alg): Add new argument align_unknown.  Fix algorithm of
        strategy selection if TARGET_INLINE_ALL_STRINGOPS is set; Skip sse_loop
        (decide_alignment): Update desired alignment according to chosen move
        mode.
        (ix86_expand_movmem): Change unrolled_loop strategy to use SSE-moves.
        (ix86_expand_setmem): Likewise.
        (ix86_slow_unaligned_access): Implementation of new hook
        slow_unaligned_access.
        * config/i386/i386.md (strset): Enable half-SSE moves.
        * config/i386/sse.md (vec_dupv4si): Add expand for vec_dupv4si.
        (vec_dupv2di): Add expand for vec_dupv2di.

Co-Authored-By: Jan Hubicka <jh@suse.cz>
From-SVN: r181357

12 years agore PR bootstrap/51094 (Bootstrap failure at revision 181279 on non-ELF targets)
Dimitrios Apostolou [Mon, 14 Nov 2011 16:55:56 +0000 (16:55 +0000)]
re PR bootstrap/51094 (Bootstrap failure at revision 181279 on non-ELF targets)

PR bootstrap/51094
PR middle-end/51116
* config/elfos.h (TARGET_ASM_INTERNAL_LABEL): Remove.
* varasm.c (default_elf_internal_label): Remove.

From-SVN: r181355