Commit Graph

118907 Commits

Author SHA1 Message Date
Maciej W. Rozycki 05279bcd52 * config/rs6000/rs6000.md: Move a splitter next to its insn.
From-SVN: r191162
2012-09-10 21:09:03 +00:00
Oleg Endo aadb5b43ae re PR target/54089 ([SH] Refactor shift patterns)
PR target/54089
	* config/sh/sh.h (SH_DYNAMIC_SHIFT_COST): Set always to 1 if
	dynamic shifts are available.
	(SHIFT_COUNT_TRUNCATED): Always define to 0.  Correct comment.
	* config/sh/sh.c (ashl_lshr_seq, ext_ashl_lshr_seq): Add comments.
	* config/sh/predicates.md (shift_count_operand): Allow
	arith_reg_operand even if TARGET_DYNSHIFT is false.
	* config/sh/sh.md (ashlsi3, lshrsi3): Expand library call patterns
	if needed.
	(ashlsi3_d_call, lshrsi3_d_call): New insns.

	PR target/54089
	* config/sh/lib1funcs.S (ashlsi3): Reimplement as ashlsi3_r0.
	(lshrsi3): Reimplement as lshrsi3_r0.

	PR target/54089
	* gcc.target/sh/pr54089-3.c: New.

From-SVN: r191161
2012-09-10 20:35:25 +00:00
Andreas Schwab d5d66749a3 re PR target/46191 (Non-absolute names in libgcc_s.so)
PR target/46191
* config/t-slibgcc-libgcc (SHLIB_MAKE_SOLINK): Use -lgcc instead
of libgcc.a.

From-SVN: r191160
2012-09-10 20:14:47 +00:00
Richard Sandiford af2b97c462 ira.c (setup_pressure_classes): Handle synonymous classes.
gcc/
	* ira.c (setup_pressure_classes): Handle synonymous classes.

From-SVN: r191159
2012-09-10 19:40:43 +00:00
Marc Glisse 881a9dcdef tree-ssa-forwprop.c (simplify_bitfield_ref): New function.
2012-09-10  Marc Glisse  <marc.glisse@inria.fr>

gcc/
        * tree-ssa-forwprop.c (simplify_bitfield_ref): New function.
        (ssa_forward_propagate_and_combine): Call it.

gcc/testsuite/
        * gcc.dg/tree-ssa/forwprop-21.c: New testcase.

From-SVN: r191158
2012-09-10 18:48:34 +00:00
Steve Ellcey 965c17988d config.gcc: Add mips*-mti-linux* target Handle with_synci like other options.
2012-09-10  Steve Ellcey  <sellcey@mips.com>

	* config.gcc: Add mips*-mti-linux* target
	Handle with_synci like other options.
	* config/mips/gnu-user64.h (LINUX64_DRIVER_SELF_SPECS): New.
	(DRIVER_SELF_SPECS): Define in terms of LINUX64_DRIVER_SELF_SPECS.
	* config/mips/mips.h (MIPS_ISA_SYNCI_SPEC): New.
	* config/mips/mti-linux.h: New file.
	* config/mips/t-mti-linux: New file.

From-SVN: r191155
2012-09-10 17:28:20 +00:00
Aldy Hernandez 320e29d7e5 * gcc.dg/tm/reg-promotion.c: Modify dump message check.
From-SVN: r191154
2012-09-10 17:21:26 +00:00
Aldy Hernandez 55c195fa1f pr52558-2.c: Delete.
testsuite/
        * gcc.dg/pr52558-2.c: Delete.
        * gcc.dg/simulate-thread/speculative-store-3.c: New.

From-SVN: r191153
2012-09-10 17:21:17 +00:00
Marc Glisse 84c3c7ce88 tree-ssa-forwprop.c (simplify_permutation): Handle CONSTRUCTOR.
2012-09-10  Marc Glisse  <marc.glisse@inria.fr>

gcc/
        * tree-ssa-forwprop.c (simplify_permutation): Handle CONSTRUCTOR.

gcc/testsuite/
        * gcc.dg/tree-ssa/forwprop-20.c: New testcase.

From-SVN: r191151
2012-09-10 16:23:02 +00:00
Martin Jambor dfea20f1a4 params.def (PARAM_IPA_MAX_AGG_ITEMS): New parameter.
2012-09-10  Martin Jambor  <mjambor@suse.cz>

	* params.def (PARAM_IPA_MAX_AGG_ITEMS): New parameter.
	* ipa-prop.c: Include params.h.
	(IPA_MAX_AFF_JF_ITEMS): Removed.
	(determine_known_aggregate_parts): Use param value of
	PARAM_IPA_MAX_AGG_ITEMS instead of IPA_MAX_AFF_JF_ITEMS.
	* Makefile.in (ipa-prop.o): Add PARAMS_H dependency.

From-SVN: r191150
2012-09-10 17:58:57 +02:00
Richard Guenther 1779dc343a re PR middle-end/54520 (ice in merge_latch_edges with -O3)
2012-09-10  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/54520
	* tree-ssa-threadupdate.c (def_split_header_continue_p):
	Properly consider sub-loops.

	* gcc.dg/torture/pr54520.c: New testcase.

From-SVN: r191141
2012-09-10 14:10:09 +00:00
Jason Merrill 8f5a5a8ecd re PR c++/54506 (Defaulted move constructors and move assignment operators are erroneously defined as deleted)
PR c++/54506
	* decl.c (move_signature_fn_p): Split out from move_fn_p.
	* method.c (process_subob_fn): Use it.
	* cp-tree.h: Declare it.

From-SVN: r191140
2012-09-10 10:08:32 -04:00
Jason Merrill 091871eadd * semantics.c (sort_constexpr_mem_initializers): Tweak.
From-SVN: r191139
2012-09-10 10:08:24 -04:00
Richard Henderson d75171f35f * config/alpha/predicates.md (small_symbolic_operand): Disallow large offsets.
From-SVN: r191138
2012-09-10 06:08:18 -07:00
Georg-Johann Lay 30d32ae6b6 re PR target/54536 ([avr]: incorrect crt with -mmcu=at90usb1287)
PR target/54536
	* config/avr/avr-mcus.def (at90usb1287): Set LIBRARY_NAME to "usb1287".

From-SVN: r191132
2012-09-10 10:43:20 +00:00
Jan Hubicka 1cdbb3f92e lto-cgraph.c (compute_ltrans_boundary): Do not care about aliases.
* lto-cgraph.c (compute_ltrans_boundary): Do not care about aliases.
	* lto-partition.c (partition_symbol_p): Forward declare.
	(add_references_to_partition): Reimplement using partition_symbol_p.
	(add_aliases_to_partition): Break out from add_references_to_partition;
	reimplement using partition_symbol_p.
	(add_cgraph_node_to_partition_1): Handle callees using partition_symbol_p;
	add sanity checks.
	(add_varpool_node_to_partition): Use add_aliases_to_partition.
	(partition_varpool_node_p): Do not special case aliases.

From-SVN: r191129
2012-09-10 08:32:36 +00:00
GCC Administrator 6ca408fc44 Daily bump.
From-SVN: r191124
2012-09-10 00:17:31 +00:00
Sebastian Huber 5a86d36fcc re PR libstdc++/43852 (Embedded systems friendly libstdc++)
2012-09-10  Sebastian Huber  <sebastian.huber@embedded-brains.de>
	    Jonathan Wakely  <jwakely.gcc@gmail.com>

	PR libstdc++/43852
	* acinclude.m4 (GLIBCXX_ENABLE_VERBOSE): Define.
	* configure.ac (GLIBCXX_ENABLE_VERBOSE): Use it.
	* config.h.in: Regenerate.
	* configure: Likewise.
	* libsupc++/eh_term_handler.cc (_GLIBCXX_VERBOSE): Check new macro.
	* libsupc++/pure.cc (_GLIBCXX_VERBOSE): Likewise.
	* doc/xml/manual/configure.xml (--disable-libstdcxx-verbose): Document.
	* doc/html/manual/configure.html: Regenerate.

Co-Authored-By: Jonathan Wakely <jwakely.gcc@gmail.com>

From-SVN: r191121
2012-09-10 00:08:48 +01:00
Mark Kettenis 82a0aae0ff * config/openbsd-stdint.h (INTMAX_TYPE, UINTMAX_TYPE): Define.
From-SVN: r191120
2012-09-09 21:56:40 +00:00
Jonathan Wakely bc7e468e79 re PR bootstrap/54419 (Compiling libstdc++-v3/src/c++11/random.cc fails on platforms not knowing rdrand)
PR bootstrap/54419
	* acinclude.m4 (GLIBCXX_CHECK_X86_RDRAND): Remove stray character.
	* configure: Regenerated.

From-SVN: r191119
2012-09-09 20:46:41 +01:00
Jonathan Wakely a2e948ab51 Fix ChangeLog date.
From-SVN: r191115
2012-09-09 19:02:25 +01:00
Jonathan Wakely 885e812159 re PR libstdc++/54388 (std::array.at() const results in undefined behaviour)
PR libstdc++/54388
	* include/std/array (array::at() const): Ensure lvalue result.
	* testsuite/23_containers/array/element_access/54388.cc: New.
	* testsuite/23_containers/array/tuple_interface/get_neg.cc: Adjust
	dg-error line numbers.
	* testsuite/23_containers/array/tuple_interface/tuple_element_neg.cc:
	Likewise.

From-SVN: r191114
2012-09-09 18:56:51 +01:00
Jan Hubicka b4661bfe21 passes.c (ipa_write_summaries_1): Set state; do not call compute_ltrans_boundary.
* passes.c (ipa_write_summaries_1): Set state;
	do not call compute_ltrans_boundary.
	(ipa_write_optimization_summaries): Likewise.
	(ipa_write_summaries): compute_ltrans_boundary here.
	* lto-streamer.h (lto_symtab_encoder_d): NODES are allocated in heap.
	(compute_ltrans_boundary): Update prototype.

	* lto.c (lto_wpa_write_files): Do not delete partition encoder;
	it is deleted after streaming.
	* lto-partition.c (partition_symbol_p): New function.
	(promote_var, promote_fn): Remove.
	(promote_symbol): New function.
	(lto_promote_cross_file_statics): First compute boundaries; rewrite
	to lookup the actual boundaries instead of computing them ad-hoc.

From-SVN: r191113
2012-09-09 17:29:21 +00:00
Ulrich Drepper 3ca6351daa re PR bootstrap/54419 (Compiling libstdc++-v3/src/c++11/random.cc fails on platforms not knowing rdrand)
2012-09-09  Ulrich Drepper  <drepper@gmail.com>
	    Dominique d'Humieres  <dominiq@lps.ens.fr>
	    Jack Howarth  <howarth@bromo.med.uc.edu>

	PR bootstrap/54419
	* acinclude.m4: Define GLIBCXX_CHECK_X86_RDRAND.
	* configure.ac: Use GLIBCXX_CHECK_X86_RDRAND to test for rdrand
	support in assembler.
	* src/c++11/random.cc (__x86_rdrand): Depend on _GLIBCXX_X86_RDRAND.
	(random_device::_M_init): Likewise.
	(random_device::_M_getval): Likewise.
	* configure: Regenerated.
	* config.h.in: Regenerated.

Co-Authored-By: Dominique d'Humieres <dominiq@lps.ens.fr>
Co-Authored-By: Jack Howarth <howarth@bromo.med.uc.edu>

From-SVN: r191111
2012-09-09 18:20:42 +01:00
Ulrich Drepper ef64d158fb cpuid.h: Define signature_*_e[bcd]x macros for matching results of level 0 calls to...
gcc/
        * config/i386/cpuid.h: Define signature_*_e[bcd]x macros for
        matching results of level 0 calls to __cpuid to processor
        manufacturers.
        * config/i386/driver-i386.c (vendor_signatures): Removed.
        (processor_signatures): Removed.
        (host_detect_local_cpu): Replace uses of now-removed SIG_*
        constants with the new signature_*_ebx constants.

libstdc++-v3/
        * src/c++11/random.cc (random_device::_M_init): Use new macro
        signature_INTEL_ebx to check for Intel processors.

From-SVN: r191109
2012-09-09 14:22:10 +00:00
Jan Hubicka 7b99cca478 Replace cgraph_node_set and varpool_node_set by symtab_node_encoder in partitioning.
Replace cgraph_node_set and varpool_node_set by symtab_node_encoder
	in partitioning.
	* tree-pass.h (cgraph_node_set_def, varpool_node_set_def): Remove
	forward declaration.
	(lto_symtab_encoder_d): Forward declare.
	(ipa_write_optimization_summaries): Update.
	* lto-cgraph.c (lto_symtab_encoder_new): Do not initialize
	body, initializer and in_partition.
	(lto_symtab_encoder_delete): Update.
	(lto_symtab_encoder_encode): Update.
	(lto_symtab_encoder_lookup): Move inline.
	(lto_symtab_encoder_delete_node): New function.
	(lto_symtab_encoder_encode_body_p, lto_set_symtab_encoder_encode_body,
	lto_symtab_encoder_encode_initializer_p,
	lto_set_symtab_encoder_encode_initializer, lto_symtab_encoder_in_partition_p,
	lto_symtab_encoder_in_partition_p): Update.
	(compute_ltrans_boundary): Take encoder as an input.
	* passes.c (ipa_write_summaries_1): Update.
	(ipa_write_summaries_1): Update.
	(ipa_write_summaries): Update.
	(ipa_write_optimization_summaries): Update.
	* lto-streamer.c (print_lto_report): Report number of cgraph nodes.
	* lto-streamer.h (lto_stats_d): Replace num_output_cgraph_nodes by
	num_output_symtab_nodes.
	(lto_encoder_entry): New structure.
	(struct lto_symtab_encoder_d): Reorg.
	(lto_symtab_encoder_delete_node): Declare.
	(lto_symtab_encoder_lookup): Bring inline.
	(compute_ltrans_boundary): Update.
	(lto_symtab_encoder_size): Update.
	(lsei_node, lsei_cgraph_node, lsei_varpool_node): Update.
	(lto_symtab_encoder_deref): Update.

	Replace cgraph_node_set and varpool_node_set by symtab_node_encoder
	in partitioning.
	* lto-partition.h (ltrans_partition_def): Replace cgraph_set and varpool_set
	by encoder.
	* lto-partition.c (new_partition): Update.
	* lto.c (cmp_partitions_order): Update.
	(lto_wpa_write_files): Update.
	(free_ltrans_partitions): Update.
	(add_references_to_partition): Update.
	(add_cgraph_node_to_partition_1): Update.
	(add_cgraph_node_to_partition): Update.
	(add_varpool_node_to_partition): Update.
	(undo_partition): Update.
	(lto_balanced_map): Update.
	(set_referenced_from_other_partition_p, set_reachable_from_other_partition_p,
	set_referenced_from_this_partition_p): Update.
	(lto_promote_cross_file_statics): Update.

From-SVN: r191107
2012-09-09 12:31:32 +00:00
Mark Kettenis d5f8c6dc8c decl.c (reshape_init_class): Avoid dereferencing a past-the-end pointer.
* decl.c (reshape_init_class): Avoid dereferencing a
	past-the-end pointer.

From-SVN: r191106
2012-09-09 10:06:13 +00:00
GCC Administrator bc1b72c78f Daily bump.
From-SVN: r191105
2012-09-09 00:18:33 +00:00
John David Anglin 259febfe6c pa.c (hppa_rtx_costs): Update costs for large integer modes.
* config/pa/pa.c (hppa_rtx_costs): Update costs for large integer modes.

From-SVN: r191102
2012-09-08 22:35:54 +00:00
Andi Kleen 4e5315e5cf Fix broken patch
2012-09-08  Andi Kleen  <ak@linux.intel.com>

        * gcc/lto/lto.c (do_whole_program_analysis):
        Fix last broken patch

From-SVN: r191097
2012-09-08 19:08:37 +00:00
Andi Kleen b3e44629b8 Add -fmem-report-wpa
For parallel LTO builds setting -fmem-report does not work very well
because all the LTRANS phases dump it in parallel and typically interleave
it to unreadability.

Since usually the memory bottleneck is WPA add a flag to only dump
the memory report for that.

gcc/:
2012-09-08  Andi Kleen  <ak@linux.intel.com>

	* gcc/common.opt (-fmem-report-wpa): Add
	* gcc/doc/invoke.texi (-fmem-report-wpa): Document.
	* gcc/lto/lto.c (do_whole_program_analysis): Run mem_report
	when mem_report_wpa is set.

From-SVN: r191095
2012-09-08 17:26:07 +00:00
Andi Kleen 1a760de952 Fix wrong date in ChangeLog
From-SVN: r191094
2012-09-08 15:30:25 +00:00
Anthony Green 55a514601b Optimize moxie function prologues
From-SVN: r191088
2012-09-08 01:14:22 +00:00
GCC Administrator e4d8437d70 Daily bump.
From-SVN: r191087
2012-09-08 00:17:52 +00:00
Mikael Morin 0423b64acd re PR fortran/54208 (compilation error for ubound construct in PARAMETER statements)
fortran/
	PR fortran/54208
	* simplify.c (simplify_bound_dim): Resolve array spec before
	proceeding with simplification.

testsuite/
	PR fortran/54208
	* gfortran.dg/bound_simplification_3.f90: New test.

From-SVN: r191083
2012-09-07 20:37:41 +00:00
Paolo Carlini e4394af568 pt.c (num_template_headers_for_class): Rework per the code inline in cp_parser_check_declarator_template_parameters.
2012-09-07  Paolo Carlini  <paolo.carlini@oracle.com>

	* pt.c (num_template_headers_for_class): Rework per the code
	inline in cp_parser_check_declarator_template_parameters.
	* parser.c (cp_parser_check_declarator_template_parameters):
	Use num_template_headers_for_class.

From-SVN: r191082
2012-09-07 20:17:43 +00:00
Aldy Hernandez c294eb47b2 re PR testsuite/54184 (gcc.dg/pr52558-1.c failure)
PR testsuite/54184
	* gcc.dg/pr52558-1.c: Delete.
	* gcc.dg/simulate-thread/speculative-store-2.c: New.

From-SVN: r191079
2012-09-07 16:00:07 +00:00
Nick Clifton b12b5029cb v850.h (DBX_DEBUGGING_INFO): Define.
* config/v850/v850.h (DBX_DEBUGGING_INFO): Define.
	(ASM_GENERATE_INTERNAL_LABEL): Define if not already provided.
	* config/v850/v850.c (compute_register_save_size): Always include
	the link pointer.
	(increment_stack): New function - emits insns to increment or
	decrement the stack pointer.
	(expand_prologue, expand_epilogue): Use it.
	(expand_prologue): Set the function stack size, if requested.
	(v850_debug_unwind_info): New function.
	(TARGET_DEBUG_UNWIND_INFO): Define.

From-SVN: r191076
2012-09-07 14:17:34 +00:00
Teresa Johnson c6c36e7310 This fixes part of the issue described in PR gcov-profile/54487 where there...
This fixes part of the issue described in PR gcov-profile/54487 where
there were warnings about mismatches due to slight differences in the
merged histograms in different object files. This can happen due to
the truncating integer division in the merge routine, which could result
in slightly different histograms when summaries are merged in different
orders.

2012-09-07  Teresa Johnson  <tejohnson@google.com>

        PR gcov-profile/54487
	* libgcc/libgcov.c (gcov_exit): Avoid warning on histogram
        differences.

From-SVN: r191074
2012-09-07 13:49:47 +00:00
Eric Botcazou 48d3d75d39 trans.c (Loop_Statement_to_gnu): Revert to using size_type_node instead of sizetype.
* gcc-interface/trans.c (Loop_Statement_to_gnu): Revert to using
	size_type_node instead of sizetype.

From-SVN: r191069
2012-09-07 11:55:06 +00:00
Richard Earnshaw e919e5bffb re PR tree-optimization/54295 (Widening multiply-accumulate operation uses wrong value extension)
PR tree-ssa/54295
	* tree-ssa-math-opts.c (widening_mult_conversion_strippable_p):
	Sign-extension of a zero-extended value can be simplified to
	just zero-extension.

testsuite:
	* gcc.target/arm/pr50318-1.c: Scan for smlal.
	* gcc.target/arm/smlaltb-1.c: XFAIL test.
	* gcc.target/arm/smlaltt-1.c: Likewise.

From-SVN: r191066
2012-09-07 10:37:08 +00:00
Richard Guenther 81ab73121e re PR middle-end/53667 (Cray pointer: Wrong result with optimizations)
2012-09-07  Richard Guenther  <rguenther@suse.de>

	PR middle-end/53667
	* tree-ssa-structalias.c (handle_rhs_call): Properly clobber
	EAF_NOESCAPED arguments.  Transitively close non-EAF_DIRECT
	arguments separately.

From-SVN: r191064
2012-09-07 10:27:02 +00:00
Steven Bosscher d630245f9d bitmap.c (bitmap_last_set_bit): Rewrite to return the correct bit.
* bitmap.c (bitmap_last_set_bit): Rewrite to return the correct bit.

	* graphite.c (print_global_statistics): Use EDGE_COUNT instead
	of VEC_length.
	(print_graphite_scop_statistics): Likewise.
	* graphite-scop-detection.c (get_bb_type): Use single_succ_p.
	(print_graphite_scop_statistics): Use EDGE_COUNT, not VEC_length.
	(canonicalize_loop_closed_ssa): Use single_pred_p.

	* alias.c (reg_seen): Make this an sbitmap.
	(record_set, init_alias_analysis): Update.

	* tree-ssa-coalesce.c (ssa_conflicts_dump): Fix dumping.

From-SVN: r191063
2012-09-07 10:23:06 +00:00
Eric Botcazou 183c7727f2 * gcc.dg/pr44194-1.c: Skip on Alpha and adjust regexp for SPARC64.
From-SVN: r191061
2012-09-07 10:04:57 +00:00
Tom de Vries 4d9df7c441 re PR tree-optimization/53986 (missing vrp on bit-mask test, LSHIFT_EXPR not handled)
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
2012-09-07 09:21:21 +00:00
Tom de Vries 25722436a6 re PR tree-optimization/53986 (missing vrp on bit-mask test, LSHIFT_EXPR not handled)
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
2012-09-07 09:21:11 +00:00
Segher Boessenkool 7fb3b7a746 aix43.h (RS6000_CALL_GLUE): Delete.
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
2012-09-07 10:06:43 +02:00
Andi Kleen 35d5c69723 invoke.texi (-ffat-lto-objects): Clarify that gcc-ar et.al.
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
2012-09-07 05:04:15 +00:00
Andi Kleen aed7d7cfbb Reduce memory usage for storing LTO decl resolutions
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
2012-09-07 02:56:17 +00:00
GCC Administrator 6e85a1584e Daily bump.
From-SVN: r191050
2012-09-07 00:18:25 +00:00