1. 16 Nov, 2011 13 commits
  2. 15 Nov, 2011 17 commits
    • alpha: Convert to atomic optabs. · 2371d1a0
      From-SVN: r181395
      Richard Henderson committed
    • re PR libstdc++/51142 ([C++0x] map::erase(key) doesn't compile with -D_GLIBCXX_DEBUG.) · 6dc88283
      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
      Paolo Carlini committed
    • pr43864.c: Check for absence of 'Invalid sum' in pre tree-dump. · f01fe5f6
      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
      Tom de Vries committed
    • tree-ssa-tail-merge.c (replace_block_by): Add frequency of bb2 to bb1. · fa405d7b
      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
      Tom de Vries committed
    • re PR rtl-optimization/51051 (build fails on cris-elf building libstdc++-v3) · 1ff2fd21
      	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
      Alan Modra committed
    • sse2-cvt-vec.c: New test. · e35525e9
      	* 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
      Uros Bizjak committed
    • epiphany.md (mov<mode>cc): Fix code to get mode from CMP_OP1 if CMP_OP0 is VOIDmode. · f41fc8aa
              * config/epiphany/epiphany.md (mov<mode>cc): Fix code to
              get mode from CMP_OP1 if CMP_OP0 is VOIDmode.
      
      From-SVN: r181388
      Joern Rennecke committed
    • sse.md (vec_pack_trunc_v2df): Optimize sequence for AVX. · 76a2c904
      	* 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
      Uros Bizjak committed
    • gcc-simulate-thread.exp (simulate-thread): Do not run on powerpc*-*-darwin* targets. · 6bbb0093
      
      gcc/testsuite:
      
      	* lib/gcc-simulate-thread.exp (simulate-thread): Do not run on
      	powerpc*-*-darwin* targets.
      
      From-SVN: r181384
      Iain Sandoe committed
    • Require parentheses when parsing transaction expressions. · 69b76518
      	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
      Torvald Riegel committed
    • re PR libstdc++/51133 (Incorrect implementation of std::tr1::hermite()) · 402356d1
      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
      Jason Dick committed
    • incpath.c (get_added_cpp_dirs): New function. · 0ea06912
      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
      Tristan Gingold committed
    • c-pragma.h (pragma_extern_prefix): Declare. · e50e723e
      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
      Tristan Gingold committed
    • re PR target/49868 (Implement named address space to place/access data in flash memory) · 7c209481
      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
      Georg-Johann Lay committed
    • ipa-cp.c (ipa_value_from_jfunc): Make global. · d2d668fb
      	* 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
      Maxim Kuvyrkov committed
    • Daily bump. · e3790e8a
      From-SVN: r181376
      GCC Administrator committed
    • re PR tree-optimization/51005 (-ftree-tail-merge slows down compilation of 20001226-1.c) · 643400b8
      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
      Tom de Vries committed
  3. 14 Nov, 2011 10 commits
    • re PR rtl-optimization/51051 (build fails on cris-elf building libstdc++-v3) · 894a84b5
      	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
      Bernd Schmidt committed
    • 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