1. 14 Nov, 2011 21 commits
    • rs6000: Rewrite sync patterns for atomic; expand early. · 2747a046
      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
      Richard Henderson committed
    • sse.md (round<mode>2): Use register_operand for operand 1 predicate. · 674a3581
      	* 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
      Uros Bizjak committed
    • runtime: Use some of 6g runtime.c for easier merging. · 5c262e94
      From-SVN: r181368
      Ian Lance Taylor committed
    • * gcov.c (canonicalize_name): Protect use of S_ISLNK. · 8c121ccb
      From-SVN: r181367
      Nathan Sidwell committed
    • Trivial: add cleanup-tree-dump in testcase, fix typo in comment. · 2f5623b2
      	gcc/testsuite:
      	* g++.dg/tm/template-1.C: Add cleanup-tree-dump. Fix typo in comment.
      
      From-SVN: r181366
      Torvald Riegel committed
    • i386.c (core cost model): Correct pasto. · de3c89d5
      
      gcc:
      
      2011-11-14  Jan Hubicka  <jh@suse.cz>
      
      	* config/i386/i386.c (core cost model): Correct pasto.
      
      From-SVN: r181365
      Jan Hubicka committed
    • avx-recip-vec.c: New test. · 865d6730
      	* 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
      Uros Bizjak committed
    • re PR c++/51107 ([C++11] Accepts invalid literal operator with void argument list.) · d2027d2a
      	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
      Ed Smith-Rowland committed
    • sse.md (round<mode>2_sfix): New expander. · eab880cf
      	* 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
      Uros Bizjak committed
    • Check ia32 instead of ilp32. · 2841f85e
      2011-11-14  H.J. Lu  <hongjiu.lu@intel.com>
      
      	* testsuite/lib/libitm.exp: Check ia32 instead of ilp32.
      
      From-SVN: r181360
      H.J. Lu committed
    • re PR c++/6936 (member "using" binds wrong) · 557831a9
      	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
      Fabien Chêne committed
    • re PR middle-end/50598 (Undefined symbols: "___emutls_v.*", ... on *-apple-darwin*) · ac99ebf5
      
      	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
      Jan Hubicka committed
    • sw-1.c: Force rep;movsb. · 38877e98
      	* 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
      Zolotukhin Michael committed
    • re PR bootstrap/51094 (Bootstrap failure at revision 181279 on non-ELF targets) · f8acdd3c
      	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
      Dimitrios Apostolou committed
    • gcov.c (generate_results): Add missing semicolon and correct indent. · fe860eb5
              * gcov.c (generate_results): Add missing semicolon and
              correct indent.
      
      From-SVN: r181353
      Kai Tietz committed
    • re PR testsuite/51059 (FAIL: gcc.misc-tests/gcov-14.c (test for excess errors) on *-apple-darwin*) · a163acfa
      
      gcc/testsuite:
      
      	PR testsuite/51059
      	* gcc.misc-tests/gcov-14.c (dg-options): Adjust to use
      	dg-additional-options.
      
      From-SVN: r181350
      Iain Sandoe committed
    • cmath (frexp, [...]): Do not mark constexpr, not viable anyway due to the pointer parameter. · 77addcb7
      2011-11-14  Paolo Carlini  <paolo.carlini@oracle.com>
      
      	* include/c_global/cmath (frexp, modf, remquo): Do not mark constexpr,
      	not viable anyway due to the pointer parameter.
      
      From-SVN: r181349
      Paolo Carlini committed
    • re PR fortran/51073 (_gfortran_caf_register incorrectly assumes malloc(0) returns non-NULL) · 107a9bc9
      2011-11-14  Tobias Burnus  <burnus@net-b.de>
      
              PR fortran/51073
              * trans-decl.c (generate_coarray_sym_init): Handle zero-sized
              * arrays.
      
      From-SVN: r181348
      Tobias Burnus committed
    • re PR bootstrap/51112 (LTO bootstrap failed with bootstrap-profiled) · df11cc78
      
              PR bootstrap/51112
              * tree-vect-stmts.c (vectorizable_condition): Initialize
              comp_vectype.
      
      From-SVN: r181347
      Ira Rosen committed
    • Fix a cross reference. · 51c02798
      From-SVN: r181346
      Mingjie Xing committed
    • Daily bump. · a56125be
      From-SVN: r181345
      GCC Administrator committed
  2. 13 Nov, 2011 9 commits
  3. 12 Nov, 2011 10 commits