1. 07 Sep, 2012 7 commits
    • re PR tree-optimization/53986 (missing vrp on bit-mask test, LSHIFT_EXPR not handled) · 4d9df7c4
      2012-09-07  Tom de Vries  <tom@codesourcery.com>
      
      	PR tree-optimization/53986
      	* gcc.dg/tree-ssa/vrp80.c: New test.
      	* gcc.dg/tree-ssa/vrp80-2.c: Same.
      
      From-SVN: r191058
      Tom de Vries committed
    • re PR tree-optimization/53986 (missing vrp on bit-mask test, LSHIFT_EXPR not handled) · 25722436
      2012-09-07  Tom de Vries  <tom@codesourcery.com>
      
      	PR tree-optimization/53986
      	* tree-vrp.c (extract_range_from_multiplicative_op_1): Allow
      	LSHIFT_EXPR.
      	(extract_range_from_binary_expr_1): Handle LSHIFT with constant range as
      	shift amount.
      
      From-SVN: r191057
      Tom de Vries committed
    • aix43.h (RS6000_CALL_GLUE): Delete. · 7fb3b7a7
      2012-09-07  Segher Boessenkool  <segher@kernel.crashing.org>
      
      gcc/
      	* config/rs6000/aix43.h (RS6000_CALL_GLUE): Delete.
      	* config/rs6000/aix51.h (RS6000_CALL_GLUE): Delete.
      	* config/rs6000/aix52.h (RS6000_CALL_GLUE): Delete.
      	* config/rs6000/aix53.h (RS6000_CALL_GLUE): Delete.
      	* config/rs6000/aix61.h (RS6000_CALL_GLUE): Delete.
      	* config/rs6000/freebsd64.h (RS6000_CALL_GLUE): Delete.
      	* config/rs6000/linux64.h (RS6000_CALL_GLUE): Delete.
      	* config/rs6000/rs6000.c (print_operand) ['.']: Delete.
      	* config/rs6000/rs6000.h (RS6000_CALL_GLUE): Delete.
      	* config/rs6000/rs6000.md (tls_gd_aix<TLSmode:tls_abi_suffix>):
      	Replace %. with nop.
      	(tls_gd_call_aix<TLSmode:tls_abi_suffix>): Ditto.
      	(tls_ld_aix<TLSmode:tls_abi_suffix>): Ditto.
      	(tls_ld_call_aix<TLSmode:tls_abi_suffix>): Ditto.
      	(call_nonlocal_aix32): Ditto.
      	(call_nonlocal_aix64): Ditto.
      	(call_value_nonlocal_aix32): Ditto.
      	(call_value_nonlocal_aix64): Ditto.
      
      From-SVN: r191055
      Segher Boessenkool committed
    • invoke.texi (-ffat-lto-objects): Clarify that gcc-ar et.al. · 35d5c697
      2012-06-04  Andi Kleen <ak@linux.intel.com>
      
      	* doc/invoke.texi (-ffat-lto-objects): Clarify that gcc-ar
      	et.al. should be used.
      
      From-SVN: r191052
      Andi Kleen committed
    • Reduce memory usage for storing LTO decl resolutions · aed7d7cf
      With a LTO build of a large project (>11k subfiles incrementially linked)
      storing the LTO resolutions took over 0.5GB memory:
      
      lto/lto.c:1087 (lto_resolution_read)                      0: 0.0%  540398500           15903: 0.0%
      
      The reason is that the declaration indexes are quite sparse, but every subfile
      got a full continuous vector for them. Since there are so many of them the
      many vectors add up.
      
      This patch instead stores the resolutions initially in a compact (index, resolution)
      format. This is only expanded into a sparse vector for fast lookup when
      the subfile is actually read, but then immediately freed. This means only one
      vector is allocated at a time.
      
      This brings the overhead for this down to less than 3MB for the test case:
      
      lto/lto.c:1087 (lto_resolution_read)                      0: 0.0%    2821456           42186: 0.0%
      
      gcc/:
      
      2012-09-06  Andi Kleen  <ak@linux.intel.com>
      
      	* gcc/lto-streamer.h (res_pair): Add.
      	(lto_file_decl_data): Replace resolutions with respairs.
      	Add max_index.
      	* gcc/lto/lto.c (lto_resolution_read): Remove max_index.  Add rp.
      	Initialize respairs.
      	(lto_file_finalize): Set up resolutions vector lazily from respairs.
      
      From-SVN: r191051
      Andi Kleen committed
    • Daily bump. · 6e85a158
      From-SVN: r191050
      GCC Administrator committed
    • Modify gcc/*.[hc] double_int call sites to use the new interface. · 27bcd47c
      This change entailed adding a few new methods to double_int.
      
      The change results in a 0.163% time improvement with a 70% confidence.
      
      Tested on x86_64.
      
      
      Index: gcc/ChangeLog
      
      2012-09-06  Lawrence Crowl  <crowl@google.com>
      
      	* double-int.h (double_int::operator &=): New.
      	(double_int::operator ^=): New.
      	(double_int::operator |=): New.
      	(double_int::mul_with_sign): Modify overflow parameter to bool*.
      	(double_int::add_with_sign): New.
      	(double_int::ule): New.
      	(double_int::sle): New.
      	(binary double_int::operator *): Remove parameter name.
      	(binary double_int::operator +): Likewise.
      	(binary double_int::operator -): Likewise.
      	(binary double_int::operator &): Likewise.
      	(double_int::operator |): Likewise.
      	(double_int::operator ^): Likewise.
      	(double_int::and_not): Likewise.
      	(double_int::from_shwi): Tidy formatting.
      	(double_int::from_uhwi): Likewise.
      	(double_int::from_uhwi): Likewise.
      	* double-int.c (double_int::mul_with_sign): Modify overflow parameter
      	to bool*.
      	(double_int::add_with_sign): New.
      	(double_int::ule): New.
      	(double_int::sle): New.
      	* builtins.c: Modify to use the new double_int interface.
      	* cgraph.c: Likewise.
      	* combine.c: Likewise.
      	* dwarf2out.c: Likewise.
      	* emit-rtl.c: Likewise.
      	* expmed.c: Likewise.
      	* expr.c: Likewise.
      	* fixed-value.c: Likewise.
      	* fold-const.c: Likewise.
      	* gimple-fold.c: Likewise.
      	* gimple-ssa-strength-reduction.c: Likewise.
      	* gimplify-rtx.c: Likewise.
      	* ipa-prop.c: Likewise.
      	* loop-iv.c: Likewise.
      	* optabs.c: Likewise.
      	* stor-layout.c: Likewise.
      	* tree-affine.c: Likewise.
      	* tree-cfg.c: Likewise.
      	* tree-dfa.c: Likewise.
      	* tree-flow-inline.h: Likewise.
      	* tree-object-size.c: Likewise.
      	* tree-predcom.c: Likewise.
      	* tree-pretty-print.c: Likewise.
      	* tree-sra.c: Likewise.
      	* tree-ssa-address.c: Likewise.
      	* tree-ssa-alias.c: Likewise.
      	* tree-ssa-ccp.c: Likewise.
      	* tree-ssa-forwprop.c: Likewise.
      	* tree-ssa-loop-ivopts.c: Likewise.
      	* tree-ssa-loop-niter.c: Likewise.
      	* tree-ssa-phiopt.c: Likewise.
      	* tree-ssa-pre.c: Likewise.
      	* tree-ssa-sccvn: Likewise.
      	* tree-ssa-structalias.c: Likewise.
      	* tree-ssa.c: Likewise.
      	* tree-switch-conversion.c: Likewise.
      	* tree-vect-loop-manip.c: Likewise.
      	* tree-vrp.c: Likewise.
      	* tree.h: Likewise.
      	* tree.c: Likewise.
      	* varasm.c: Likewise.
      
      From-SVN: r191047
      Lawrence Crowl committed
  2. 06 Sep, 2012 16 commits
  3. 05 Sep, 2012 17 commits
    • ipa-inline.c (want_inline_small_function_p): Use INLINE_HINT_loop_iterations hint. · 7c99ab65
      
      	* ipa-inline.c (want_inline_small_function_p): Use INLINE_HINT_loop_iterations
      	hint.
      
      From-SVN: r190999
      Jan Hubicka committed
    • fpu-387.h (set_fpu): Prefix stmxcsr and ldmxcsr with %v. · 588dbb19
      	* config/fpu-387.h (set_fpu): Prefix stmxcsr and ldmxcsr with %v.
      
      From-SVN: r190997
      Uros Bizjak committed
    • optabs.c (emit_conditional_add): Correct comment about the arguments. · 5285c21c
      2012-09-05  Andrew Pinski  <apinski@cavium.com>
      
       	* optabs.c (emit_conditional_add): Correct comment about the arguments.
      	Remove code which might swap op2 and op3 since they cannot be swapped.
      	* doc/md.texi (add@var{mode}cc): Fix document about how the arguments
      	are used.
      
      From-SVN: r190994
      Andrew Pinski committed
    • * ChangeLog: Fix date of my last commit. · 933d309f
      From-SVN: r190993
      Uros Bizjak committed
    • fpu-387.h (set_fpu): Use __builtin_ia32_stmxcsr and __builtin_ia32_ldmxcsr intrinsics. · df36cec0
      	* config/fpu-387.h (set_fpu): Use __builtin_ia32_stmxcsr and
      	__builtin_ia32_ldmxcsr intrinsics.
      
      From-SVN: r190992
      Uros Bizjak committed
    • re PR libstdc++/54296 (using the object in the map to erase element from the map crashes) · 31578792
      2012-09-05  François Dumont  <fdumont@gcc.gnu.org>
      
      	PR libstdc++/54296
      	* include/bits/hashtable.h (_M_erase(size_type, __node_base*,
      	__node_type*)): New.
      	(erase(const_iterator)): Use latter.
      	(_M_erase(std::true_type, const key_type&)): New, likewise.
      	(_M_erase(std::false_type, const key_type&)): New. Find all nodes
      	matching the key before deallocating them so that the key doesn't
      	get invalidated.
      	(erase(const key_type&)): Use the new member functions.
      	* testsuite/23_containers/unordered_map/erase/54296.cc: New.
      	* testsuite/23_containers/unordered_multimap/erase/54296.cc: New.
      
      From-SVN: r190991
      François Dumont committed
    • hooks.c (hook_int_rtx_mode_as_bool_0): New function. · b413068c
      	* hooks.c (hook_int_rtx_mode_as_bool_0): New function.
      	* hooks.h (hook_int_rtx_mode_as_bool_0): Declare it.
      	* output.h (default_address_cost): Add machine_mode and address space
      	arguments.
      	* target.def (address_cost): Likewise.
      	* rtlanal.c (address_cost): Pass mode and address space to target hook.
      	(default_address_cost): Add unnamed machine_mode and address space
      	arguments.
      	* doc/tm.texi: Regenerate.
      	* config/alpha/alpha.c (TARGET_ADDRESS_COST): Use
      	hook_int_rtx_mode_as_bool_0 instead of hook_int_rtx_bool_0.
      	* config/arm/arm.c (arm_address_cost): Add machine_mode and address
      	space arguments.
      	* config/avr/avr.c (avr_address_cost): Likewise.
      	* config/bfin/bfin.c (bfin_address_cost): Likewise.
      	* config/cr16/cr16.c (cr16_address_cost): Likewise.
      	* config/cris/cris.c (cris_address_cost): Likewise.
      	* config/epiphany/epiphany.c (epiphany_address_cost): Likewise.
      	* config/i386/i386.c (ix86_address_cost): Likewise.
      	* config/ia64/ia64.c (TARGET_ADDRESS_COST): Use
      	hook_int_rtx_mode_as_bool_0 instead of hook_int_rtx_bool_0.
      	* config/iq2000/iq2000.c (iq2000_address_cost): Add machine_mode and
      	address space arguments.  Pass them on in recursive invocation.
      	* config/lm32/lm32.c (TARGET_ADDRESS_COST): Use
      	hook_int_rtx_mode_as_bool_0 instead of hook_int_rtx_bool_0.
      	* config/m32c/m32c.c (m32c_address_cost): Add machine_mode and address
      	space arguments.
      	* config/m32r/m32r.c (TARGET_ADDRESS_COST): Use
      	hook_int_rtx_mode_as_bool_0 instead of hook_int_rtx_bool_0.
      	* config/mcore/mcore.c (TARGET_ADDRESS_COST): Likewise.
      	* config/mep/mep.c (mep_address_cost): Add machine_mode and address
      	space arguments.
      	* config/microblaze/microblaze.c (microblaze_address_cost): Likewise.
      	* config/mips/mips.c (mips_address_cost): Likewise.
      	* config/mmix/mmix.c (TARGET_ADDRESS_COST): Use
      	hook_int_rtx_mode_as_bool_0 instead of hook_int_rtx_bool_0.
      	* config/mn10300/mn10300.c (mn10300_address_cost): Add machine_mode and
      	address space arguments.
      	(mn10300_rtx_costs): Pass GET_MODE (x) and MEM_ADDR_SPACE (x) to
      	mn10300_address_cost.
      	* config/pa/pa.c (hppa_address_cost): Add machine_mode and address
      	space arguments.
      	* config/rs6000/rs6000.c (rs6000_debug_address_cost): Likewise.
      	(TARGET_ADDRESS_COST): Use hook_int_rtx_mode_as_bool_0 instead of
      	hook_int_rtx_bool_0.
      	* config/rx/rx.c (rx_address_cost): Add machine_mode and address
      	space arguments.
      	* config/s390/s390.c (s390_address_cost): Likewise.
      	* config/score/score-protos.h (score_address_cost): Likewise.
      	* config/score/score.c (score_address_cost): Likewise.
      	* config/sh/sh.c (sh_address_cost): Likewise.
      	* config/sparc/sparc.c (TARGET_ADDRESS_COST): Use
      	hook_int_rtx_mode_as_bool_0 instead of hook_int_rtx_bool_0.
      	* config/spu/spu.c (TARGET_ADDRESS_COST): Likewise.
      	* config/stormy16/stormy16.c (xstormy16_address_cost): Add machine_mode
      	and address space arguments.
      	* config/v850/v850.c (TARGET_ADDRESS_COST): Use
      	hook_int_rtx_mode_as_bool_0 instead of hook_int_rtx_bool_0.
      	* config/vax/vax.c (vax_address_cost): Add machine_mode and address
      	space arguments.
      	* config/xtensa/xtensa (TARGET_ADDRESS_COST): Use
      	hook_int_rtx_mode_as_bool_0 instead of hook_int_rtx_bool_0.
      
      From-SVN: r190990
      Oleg Endo committed
    • re PR fortran/54462 (Another "segmentation fault" after an error in COMMON statement after r190853) · 04529aba
      2012-09-05  Tobias Burnus  <burnus@net-b.de>
      
              PR fortran/54462
              * symbol.c (gfc_undo_symbols): Avoid NULL pointer dereference.
      
      From-SVN: r190989
      Tobias Burnus committed
    • re PR bootstrap/54484 (r190927 breaks bootstrap with clang compiler) · 7e7d75c1
      	PR bootstrap/54484
      	* vec.h (vec_t::lower_bound): Fix spelling of LESSTHAN
      	argument.
      
      From-SVN: r190988
      Diego Novillo committed
    • re PR middle-end/54486 (Spurious printf format warning mentions nonexistent type 'sizetype') · 854f9272
      	PR middle-end/54486
      	* builtins.c (fold_builtin_strspn, fold_builtin_strcspn): Use
      	build_int_cst with size_type_node instead of size_int.
      
      	* c-c++-common/pr54486.c: New test.
      
      From-SVN: r190986
      Jakub Jelinek committed
    • sse.md (<sse4_1>_blendv<ssemodesuffix><avxsizesuffix>): Use register_operand… · 305b3c9b
      sse.md (<sse4_1>_blendv<ssemodesuffix><avxsizesuffix>): Use register_operand instead of reg_not_xmm0_operand{,_maybe_avx}.
      
      	* config/i386/sse.md (<sse4_1>_blendv<ssemodesuffix><avxsizesuffix>):
      	Use register_operand instead of reg_not_xmm0_operand{,_maybe_avx}.
      	Use nonimmediate_operand instead of
      	nonimm_not_xmm0_operand{,_maybe_avx}.
      	(<sse4_1_avx2>_pblendvb): Ditto.
      	(sse4_2_pcmpestr): Ditto.
      	(*sse4_2_pcmpestr_unaligned): Ditto.
      	(sse4_2_pcmpistr): Ditto.
      	(*sse4_2_pcmpistr_unaligned): Ditto.
      	* config/i386/predicates.md (reg_not_xmm0_operand): Remove predicate.
      	(nonimm_not_xmm0_operand): Ditto.
      	(nonimm_not_xmm0_operand_maybe_avx): Ditto.
      	(nonimm_not_xmm0_operand_maybe_avx): Ditto.
      	* config/i386/i386.md (rdpmc): Do not force operand 1 into ecx.
      
      From-SVN: r190985
      Uros Bizjak committed
    • random.cc (random_device::_M_init): Check whether cpuid instruction is available… · efc622f8
      random.cc (random_device::_M_init): Check whether cpuid instruction is available by using __get_cpuid_max.
      
      
      	* src/c++11/random.cc (random_device::_M_init): Check whether cpuid
      	instruction is available by using __get_cpuid_max.
      
      From-SVN: r190982
      Ulrich Drepper committed
    • bb-reorder.c: Clarify a few points in the head comment and fix long lines in other comments. · 4700dd70
      	* bb-reorder.c: Clarify a few points in the head comment and fix
      	long lines in other comments.
      	(find_traces): Fix long line.
      	(find_traces_1_round): Likewise.
      	(better_edge_p): Likewise.
      	(connect_traces): Likewise.
      	(duplicate_computed_gotos): Likewise.
      	(find_rarely_executed_basic_blocks_and_cr): Remove trailing spaces.
      	(fix_up_fall_thru_edges): Fix formatting.
      
      From-SVN: r190979
      Eric Botcazou committed
    • re PR tree-optimization/46590 (long compile time with -O2 and many loops) · 18eb76eb
      2012-09-05  Richard Guenther  <rguenther@suse.de>
      
      	PR tree-optimization/46590
      	* tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Do not
      	update SSA form here.
      	(canonicalize_induction_variables): Assert we do not need to
      	update SSA form.
      	(tree_unroll_loops_completely): Update SSA form here.
      	* tree-ssa-loop-manip.c (gimple_duplicate_loop_to_header_edge):
      	Do not verify loop-closed SSA form if SSA form is not up-to-date.
      
      From-SVN: r190978
      Richard Guenther committed
    • re PR fortran/54474 (gfortran.dg/coarray_poly_3.f90) · e124e65f
      2012-09-05  Dominique Dhumieres  <dominiq@lps.ens.fr>
      
      	PR fortran/54474
      	* gfortran.dg/coarray_poly_3.f90: Adjust error messages.
      
      From-SVN: r190977
      Dominique d'Humieres committed
    • * include/ext/random.tcc (__gnu_cxx:normal_mv_distribution<>) · ff99de98
      	(operator()): Use __generate() function of _M_nd.
      
      From-SVN: r190975
      Ulrich Drepper committed
    • re PR c++/54191 ([C++11] SFINAE does not handle conversion to inaccessible base) · 22854930
      /cp
      2012-09-05  Paolo Carlini  <paolo.carlini@oracle.com>
      
      	PR c++/54191
      	* search.c (lookup_base): Add tsubst_flags_t parameter.
      	(adjust_result_of_qualified_name_lookup, check_final_overrider):
      	Adjust.
      	* name-lookup.c (do_class_using_decl): Adjust.
      	* typeck2.c (binfo_or_else, build_scoped_ref, build_m_component_ref):
      	Likewise.
      	* cvt.c (cp_convert_to_pointer, convert_to_pointer_force,
      	build_up_reference): Likewise.
      	* rtti.c (build_dynamic_cast_1): Likewise.
      	* tree.c (maybe_dummy_object): Likewise.
      	* call.c (build_conditional_expr_1, build_over_call): Likewise.
      	* cp-tree.h (UNIQUELY_DERIVED_FROM_P, PUBLICLY_UNIQUELY_DERIVED_P):
      	Remove.
      	(enum base_access_flags, ba_quiet): Remove.
      	(uniquely_derived_from_p, publicly_uniquely_derived_p): Declare.
      	* except.c (can_convert_eh): Adjust.
      	* decl.c (grokdeclarator): Likewise.
      	* typeck.c (comp_except_types, build_class_member_access_expr,
      	finish_class_member_access_expr, get_member_function_from_ptrfunc,
      	build_static_cast_1, get_delta_difference_1): Likewise.
      	* class.c (build_base_path, convert_to_base, build_vtbl_ref_1,
      	warn_about_ambiguous_bases): Likewise.
      	(uniquely_derived_from_p, publicly_uniquely_derived_p): Define.
      
      /testsuite
      2012-09-05  Paolo Carlini  <paolo.carlini@oracle.com>
      
      	PR c++/54191
      	* g++.dg/cpp0x/sfinae39.C: New.
      
      From-SVN: r190969
      Paolo Carlini committed