A recent patch increased GCC's memory consumption in some cases!

gcctest@suse.de gcctest@suse.de
Fri Sep 12 05:46:00 GMT 2008


Hi,

I am a friendly script caring about memory consumption in GCC.  Please
contact jh@suse.cz if something is going wrong.

Comparing memory consumption on compilation of combine.i, insn-attrtab.i,
and generate-3.4.ii I got:


comparing empty function compilation at -O0 level:
    Overall memory needed: 8184k
    Peak memory use before GGC: 1291k
    Peak memory use after GGC: 1217k
    Maximum of released memory in single GGC run: 134k
    Garbage: 218k -> 218k
    Leak: 1222k -> 1221k
    Overhead: 136k -> 136k
    GGC runs: 4
    Pre-IPA-Garbage: 207k -> 207k
    Pre-IPA-Leak: 1224k -> 1224k
    Pre-IPA-Overhead: 135k -> 135k
    Post-IPA-Garbage: 207k -> 207k
    Post-IPA-Leak: 1224k -> 1224k
    Post-IPA-Overhead: 135k -> 135k

comparing empty function compilation at -O0 -g level:
    Overall memory needed: 8428k
    Peak memory use before GGC: 1319k
    Peak memory use after GGC: 1245k
    Maximum of released memory in single GGC run: 133k
    Garbage: 220k -> 220k
    Leak: 1254k -> 1254k
    Overhead: 141k -> 141k
    GGC runs: 4
    Pre-IPA-Garbage: 207k -> 207k
    Pre-IPA-Leak: 1224k -> 1224k
    Pre-IPA-Overhead: 135k -> 135k
    Post-IPA-Garbage: 207k -> 207k
    Post-IPA-Leak: 1224k -> 1224k
    Post-IPA-Overhead: 135k -> 135k

comparing empty function compilation at -O1 level:
    Overall memory needed: 8236k
    Peak memory use before GGC: 1291k
    Peak memory use after GGC: 1217k
    Maximum of released memory in single GGC run: 134k
    Garbage: 221k -> 221k
    Leak: 1222k -> 1221k
    Overhead: 137k -> 137k
    GGC runs: 4
    Pre-IPA-Garbage: 207k -> 207k
    Pre-IPA-Leak: 1224k -> 1224k
    Pre-IPA-Overhead: 135k -> 135k
    Post-IPA-Garbage: 207k -> 207k
    Post-IPA-Leak: 1224k -> 1224k
    Post-IPA-Overhead: 135k -> 135k

comparing empty function compilation at -O2 level:
    Overall memory needed: 8456k
    Peak memory use before GGC: 1291k
    Peak memory use after GGC: 1218k
    Maximum of released memory in single GGC run: 135k
    Garbage: 226k -> 226k
    Leak: 1222k -> 1222k
    Overhead: 138k -> 138k
    GGC runs: 4
    Pre-IPA-Garbage: 207k -> 207k
    Pre-IPA-Leak: 1225k -> 1225k
    Pre-IPA-Overhead: 135k -> 135k
    Post-IPA-Garbage: 207k -> 207k
    Post-IPA-Leak: 1225k -> 1225k
    Post-IPA-Overhead: 135k -> 135k

comparing empty function compilation at -O3 level:
    Overall memory needed: 8460k
    Peak memory use before GGC: 1291k
    Peak memory use after GGC: 1218k
    Maximum of released memory in single GGC run: 135k
    Garbage: 226k -> 226k
    Leak: 1222k -> 1222k
    Overhead: 138k -> 138k
    GGC runs: 4
    Pre-IPA-Garbage: 207k -> 207k
    Pre-IPA-Leak: 1225k -> 1225k
    Pre-IPA-Overhead: 135k -> 135k
    Post-IPA-Garbage: 207k -> 207k
    Post-IPA-Leak: 1225k -> 1225k
    Post-IPA-Overhead: 135k -> 135k

comparing combine.c compilation at -O0 level:
    Overall memory needed: 32048k -> 32028k
    Peak memory use before GGC: 18040k -> 18038k
    Peak memory use after GGC: 17774k
    Maximum of released memory in single GGC run: 1866k -> 1864k
    Garbage: 39946k -> 39872k
    Leak: 5639k -> 5638k
    Overhead: 5266k -> 5267k
    GGC runs: 339
    Pre-IPA-Garbage: 12580k -> 12567k
    Pre-IPA-Leak: 19385k -> 19386k
    Pre-IPA-Overhead: 2623k -> 2624k
    Post-IPA-Garbage: 12580k -> 12567k
    Post-IPA-Leak: 19385k -> 19386k
    Post-IPA-Overhead: 2623k -> 2624k

comparing combine.c compilation at -O0 -g level:
    Overall memory needed: 34060k -> 34044k
    Peak memory use before GGC: 19957k -> 19955k
    Peak memory use after GGC: 19630k
    Maximum of released memory in single GGC run: 1876k -> 1874k
    Garbage: 40222k -> 40147k
    Leak: 8920k -> 8919k
    Overhead: 6083k -> 6084k
    GGC runs: 321
    Pre-IPA-Garbage: 12679k -> 12666k
    Pre-IPA-Leak: 21659k -> 21659k
    Pre-IPA-Overhead: 3113k -> 3114k
    Post-IPA-Garbage: 12679k -> 12666k
    Post-IPA-Leak: 21659k -> 21659k
    Post-IPA-Overhead: 3113k -> 3114k

comparing combine.c compilation at -O1 level:
  Amount of memory still referenced at the end of compilation increased from 5624k to 5631k, overall 0.11%
    Overall memory needed: 31012k -> 30956k
    Peak memory use before GGC: 15669k -> 15667k
    Peak memory use after GGC: 15488k -> 15487k
    Maximum of released memory in single GGC run: 1366k -> 1394k
    Garbage: 47249k -> 47119k
    Leak: 5624k -> 5631k
    Overhead: 6103k -> 6103k
    GGC runs: 404
    Pre-IPA-Garbage: 13456k -> 13442k
    Pre-IPA-Leak: 16877k -> 16877k
    Pre-IPA-Overhead: 2532k -> 2533k
    Post-IPA-Garbage: 13456k -> 13442k
    Post-IPA-Leak: 16877k -> 16877k
    Post-IPA-Overhead: 2532k -> 2533k

comparing combine.c compilation at -O2 level:
    Overall memory needed: 31876k -> 31772k
    Peak memory use before GGC: 15775k
    Peak memory use after GGC: 15608k
    Maximum of released memory in single GGC run: 1325k -> 1356k
    Garbage: 61236k -> 61183k
    Leak: 5798k -> 5797k
    Overhead: 8186k -> 8197k
    GGC runs: 475
    Pre-IPA-Garbage: 13631k -> 13610k
    Pre-IPA-Leak: 16953k -> 16954k
    Pre-IPA-Overhead: 2554k -> 2555k
    Post-IPA-Garbage: 13631k -> 13610k
    Post-IPA-Leak: 16953k -> 16954k
    Post-IPA-Overhead: 2554k -> 2555k

comparing combine.c compilation at -O3 level:
    Overall memory needed: 33060k -> 32200k
    Peak memory use before GGC: 15809k -> 15807k
    Peak memory use after GGC: 15651k -> 15650k
    Maximum of released memory in single GGC run: 1813k -> 1814k
    Garbage: 76733k -> 76673k
    Leak: 5683k -> 5669k
    Overhead: 10029k -> 10031k
    GGC runs: 508
    Pre-IPA-Garbage: 13632k -> 13611k
    Pre-IPA-Leak: 16964k -> 16965k
    Pre-IPA-Overhead: 2555k -> 2556k
    Post-IPA-Garbage: 13632k -> 13611k
    Post-IPA-Leak: 16964k -> 16965k
    Post-IPA-Overhead: 2555k -> 2556k

comparing insn-attrtab.c compilation at -O0 level:
    Overall memory needed: 158228k -> 158148k
    Peak memory use before GGC: 65873k -> 65872k
    Peak memory use after GGC: 53242k
    Maximum of released memory in single GGC run: 28569k -> 28568k
    Garbage: 134335k -> 134295k
    Leak: 7489k -> 7488k
    Overhead: 16157k -> 16158k
    GGC runs: 265 -> 264
    Pre-IPA-Garbage: 39228k -> 39223k
    Pre-IPA-Leak: 55907k -> 55908k
    Pre-IPA-Overhead: 8653k -> 8653k
    Post-IPA-Garbage: 39228k -> 39223k
    Post-IPA-Leak: 55907k -> 55908k
    Post-IPA-Overhead: 8653k -> 8653k

comparing insn-attrtab.c compilation at -O0 -g level:
    Overall memory needed: 159532k -> 159452k
    Peak memory use before GGC: 67147k -> 67146k
    Peak memory use after GGC: 54514k
    Maximum of released memory in single GGC run: 28569k -> 28568k
    Garbage: 134814k -> 134774k
    Leak: 9140k -> 9139k
    Overhead: 16613k -> 16613k
    GGC runs: 258 -> 257
    Pre-IPA-Garbage: 39285k -> 39280k
    Pre-IPA-Leak: 57449k -> 57449k
    Pre-IPA-Overhead: 8988k -> 8989k
    Post-IPA-Garbage: 39285k -> 39280k
    Post-IPA-Leak: 57449k -> 57449k
    Post-IPA-Overhead: 8988k -> 8989k

comparing insn-attrtab.c compilation at -O1 level:
    Overall memory needed: 134892k -> 134836k
    Peak memory use before GGC: 50247k
    Peak memory use after GGC: 43080k
    Maximum of released memory in single GGC run: 23393k
    Garbage: 184506k -> 184466k
    Leak: 6871k -> 6868k
    Overhead: 25327k -> 25328k
    GGC runs: 305
    Pre-IPA-Garbage: 45205k -> 45200k
    Pre-IPA-Leak: 43436k -> 43436k
    Pre-IPA-Overhead: 8052k -> 8052k
    Post-IPA-Garbage: 45205k -> 45200k
    Post-IPA-Leak: 43436k -> 43436k
    Post-IPA-Overhead: 8052k -> 8052k

comparing insn-attrtab.c compilation at -O2 level:
  Peak amount of GGC memory still allocated after garbage collecting increased from 43994k to 44095k, overall 0.23%
    Overall memory needed: 150260k -> 150008k
    Peak memory use before GGC: 50279k -> 50268k
    Peak memory use after GGC: 43994k -> 44095k
    Maximum of released memory in single GGC run: 22010k -> 22007k
    Garbage: 216414k -> 216398k
    Leak: 6879k -> 6875k
    Overhead: 31033k -> 31012k
    GGC runs: 340
    Pre-IPA-Garbage: 45283k -> 45273k
    Pre-IPA-Leak: 43441k -> 43442k
    Pre-IPA-Overhead: 8061k -> 8062k
    Post-IPA-Garbage: 45283k -> 45273k
    Post-IPA-Leak: 43441k -> 43442k
    Post-IPA-Overhead: 8061k -> 8062k

comparing insn-attrtab.c compilation at -O3 level:
  Peak amount of GGC memory still allocated after garbage collecting increased from 58454k to 58536k, overall 0.14%
    Overall memory needed: 164668k -> 163936k
    Peak memory use before GGC: 61578k -> 61637k
    Peak memory use after GGC: 58454k -> 58536k
    Maximum of released memory in single GGC run: 24309k -> 24303k
    Garbage: 246756k -> 246673k
    Leak: 6886k -> 6883k
    Overhead: 34484k -> 34457k
    GGC runs: 343
    Pre-IPA-Garbage: 45283k -> 45273k
    Pre-IPA-Leak: 43441k -> 43442k
    Pre-IPA-Overhead: 8061k -> 8062k
    Post-IPA-Garbage: 45283k -> 45273k
    Post-IPA-Leak: 43441k -> 43442k
    Post-IPA-Overhead: 8061k -> 8062k

comparing Gerald's testcase PR8361 compilation at -O0 level:
Testing has produced no results
    Pre-IPA-Garbage: 114063k -> 113380k
    Pre-IPA-Leak: 87272k -> 87309k
    Pre-IPA-Overhead: 14907k -> 14978k
    Post-IPA-Garbage: 114063k -> 113380k
    Post-IPA-Leak: 87272k -> 87309k
    Post-IPA-Overhead: 14907k -> 14978k

comparing Gerald's testcase PR8361 compilation at -O0 -g level:
    Overall memory needed: 168003k -> 167953k
    Peak memory use before GGC: 95772k
    Peak memory use after GGC: 94820k
    Maximum of released memory in single GGC run: 16877k -> 16212k
    Garbage: 218255k -> 215173k
    Leak: 76354k -> 76369k
    Overhead: 33854k -> 33924k
    GGC runs: 394 -> 391
    Pre-IPA-Garbage: 114685k -> 114002k
    Pre-IPA-Leak: 103786k -> 103823k
    Pre-IPA-Overhead: 18410k -> 18481k
    Post-IPA-Garbage: 114685k -> 114002k
    Post-IPA-Leak: 103786k -> 103823k
    Post-IPA-Overhead: 18410k -> 18481k

comparing Gerald's testcase PR8361 compilation at -O1 level:
    Overall memory needed: 112095k -> 111208k
    Peak memory use before GGC: 82329k -> 82153k
    Peak memory use after GGC: 81503k -> 81337k
    Maximum of released memory in single GGC run: 16685k -> 16093k
    Garbage: 291411k -> 289336k
    Leak: 46585k -> 46454k
    Overhead: 32515k -> 32585k
    GGC runs: 516 -> 513
    Pre-IPA-Garbage: 167245k -> 165572k
    Pre-IPA-Leak: 86056k -> 86076k
    Pre-IPA-Overhead: 20408k -> 20480k
    Post-IPA-Garbage: 167245k -> 165572k
    Post-IPA-Leak: 86056k -> 86076k
    Post-IPA-Overhead: 20408k -> 20480k

comparing Gerald's testcase PR8361 compilation at -O2 level:
    Overall memory needed: 115375k -> 114268k
    Peak memory use before GGC: 83778k -> 83627k
    Peak memory use after GGC: 82799k
    Maximum of released memory in single GGC run: 16656k -> 16079k
    Garbage: 345503k -> 343365k
    Leak: 46506k -> 46498k
    Overhead: 39162k -> 39240k
    GGC runs: 580
    Pre-IPA-Garbage: 171448k -> 169625k
    Pre-IPA-Leak: 86362k -> 86381k
    Pre-IPA-Overhead: 20902k -> 20974k
    Post-IPA-Garbage: 171448k -> 169625k
    Post-IPA-Leak: 86362k -> 86381k
    Post-IPA-Overhead: 20902k -> 20974k

comparing Gerald's testcase PR8361 compilation at -O3 level:
    Overall memory needed: 116995k -> 115072k
    Peak memory use before GGC: 84478k -> 84259k
    Peak memory use after GGC: 83419k
    Maximum of released memory in single GGC run: 16656k -> 16079k
    Garbage: 376977k -> 375321k
    Leak: 46498k -> 46484k
    Overhead: 42457k -> 42532k
    GGC runs: 614 -> 615
    Pre-IPA-Garbage: 171534k -> 169710k
    Pre-IPA-Leak: 87044k -> 87064k
    Pre-IPA-Overhead: 20957k -> 21029k
    Post-IPA-Garbage: 171534k -> 169710k
    Post-IPA-Leak: 87044k -> 87064k
    Post-IPA-Overhead: 20957k -> 21029k

comparing PR rtl-optimization/28071 testcase compilation at -O0 level:
  Amount of produced GGC garbage increased from 147530k to 147983k, overall 0.31%
  Amount of memory still referenced at the end of compilation decreased from 6511k to 6041k, overall -7.77%
    Overall memory needed: 368859k -> 368845k
    Peak memory use before GGC: 78451k
    Peak memory use after GGC: 49385k
    Maximum of released memory in single GGC run: 38763k -> 39187k
    Garbage: 147530k -> 147983k
    Leak: 6511k -> 6041k
    Overhead: 24890k -> 24890k
    GGC runs: 87
    Pre-IPA-Garbage: 13630k -> 13629k
    Pre-IPA-Leak: 20190k -> 20190k
    Pre-IPA-Overhead: 2241k -> 2242k
    Post-IPA-Garbage: 13630k -> 13629k
    Post-IPA-Leak: 20190k -> 20190k
    Post-IPA-Overhead: 2241k -> 2242k

comparing PR rtl-optimization/28071 testcase compilation at -O0 -g level:
  Amount of produced GGC garbage increased from 147631k to 148084k, overall 0.31%
  Amount of memory still referenced at the end of compilation decreased from 8553k to 8084k, overall -5.81%
    Overall memory needed: 369635k -> 369629k
    Peak memory use before GGC: 79148k
    Peak memory use after GGC: 50082k
    Maximum of released memory in single GGC run: 38748k -> 39172k
    Garbage: 147631k -> 148084k
    Leak: 8553k -> 8084k
    Overhead: 25474k -> 25474k
    GGC runs: 93
    Pre-IPA-Garbage: 13637k -> 13637k
    Pre-IPA-Leak: 20439k -> 20439k
    Pre-IPA-Overhead: 2296k -> 2296k
    Post-IPA-Garbage: 13637k -> 13637k
    Post-IPA-Leak: 20439k -> 20439k
    Post-IPA-Overhead: 2296k -> 2296k

comparing PR rtl-optimization/28071 testcase compilation at -O1 level:
  Amount of produced GGC garbage increased from 226744k to 228351k, overall 0.71%
  Amount of memory still referenced at the end of compilation decreased from 7088k to 5426k, overall -30.63%
    Overall memory needed: 227888k -> 227748k
    Peak memory use before GGC: 71433k
    Peak memory use after GGC: 63951k
    Maximum of released memory in single GGC run: 35392k -> 35356k
    Garbage: 226744k -> 228351k
    Leak: 7088k -> 5426k
    Overhead: 30781k -> 30781k
    GGC runs: 98
    Pre-IPA-Garbage: 51799k -> 51798k
    Pre-IPA-Leak: 62150k -> 62151k
    Pre-IPA-Overhead: 8965k -> 8965k
    Post-IPA-Garbage: 51799k -> 51798k
    Post-IPA-Leak: 62150k -> 62151k
    Post-IPA-Overhead: 8965k -> 8965k

comparing PR rtl-optimization/28071 testcase compilation at -O2 level:
  Ovarall memory allocated via mmap and sbrk decreased from 369660k to 358524k, overall -3.11%
  Amount of produced GGC garbage increased from 255087k to 256418k, overall 0.52%
  Amount of memory still referenced at the end of compilation decreased from 6910k to 5520k, overall -25.17%
    Overall memory needed: 369660k -> 358524k
    Peak memory use before GGC: 71433k
    Peak memory use after GGC: 63952k
    Maximum of released memory in single GGC run: 36706k -> 36674k
    Garbage: 255087k -> 256418k
    Leak: 6910k -> 5520k
    Overhead: 36877k -> 36877k
    GGC runs: 109
    Pre-IPA-Garbage: 111829k -> 111829k
    Pre-IPA-Leak: 73071k -> 73071k
    Pre-IPA-Overhead: 15408k -> 15408k
    Post-IPA-Garbage: 111829k -> 111829k
    Post-IPA-Leak: 73071k -> 73071k
    Post-IPA-Overhead: 15408k -> 15408k

comparing PR rtl-optimization/28071 testcase compilation at -O3 -fno-tree-pre -fno-tree-fre level:
  Amount of produced GGC garbage increased from 366227k to 369371k, overall 0.86%
  Amount of memory still referenced at the end of compilation decreased from 9422k to 5686k, overall -65.71%
    Overall memory needed: 1024508k -> 1022864k
    Peak memory use before GGC: 138535k
    Peak memory use after GGC: 125812k
    Maximum of released memory in single GGC run: 62503k -> 62493k
    Garbage: 366227k -> 369371k
    Leak: 9422k -> 5686k
    Overhead: 45446k -> 45401k
    GGC runs: 106
    Pre-IPA-Garbage: 111829k -> 111829k
    Pre-IPA-Leak: 73071k -> 73071k
    Pre-IPA-Overhead: 15408k -> 15408k
    Post-IPA-Garbage: 111829k -> 111829k
    Post-IPA-Leak: 73071k -> 73071k
    Post-IPA-Overhead: 15408k -> 15408k

Head of the ChangeLog is:

--- /usr/src/SpecTests/sandbox-britten-memory/x86_64/mem-result/ChangeLog	2008-09-11 09:35:20.000000000 +0000
+++ /usr/src/SpecTests/sandbox-britten-memory/gcc/gcc/ChangeLog	2008-09-12 02:14:32.000000000 +0000
@@ -1,3 +1,196 @@
+2008-09-11  Janis Johnson  <janis187@us.ibm.com>
+
+	* ginclude/float.h (DEC_EVAL_METHOD): Correct the macro name.
+
+2008-09-11  Richard Guenther  <rguenther@suse.de>
+
+	* tree-ssa-uncprop.c (associate_equivalences_with_edges): Avoid
+	entering the weaker equivalence recording.
+
+	* tree-ssa-phiprop.c (propagate_with_phi): Fix tuplification.
+
+2008-09-11  Jeff Law <law@redhat.com>
+
+	* reload1.c (alter_reg): Undo the BYTE_BIG_ENDIAN correction performed
+	by assign_stack_local on the IRA path for stack slot sharing
+	as well as the non-IRA path.
+
+2008-09-11  Uros Bizjak  <ubizjak@gmail.com>
+
+	* config/i386/i386.h: Fix whitespace issues.
+
+2008-09-11  Martin Jambor  <mjambor@suse.cz>
+
+	* ipa-prop.h (struct ipa_param_flags): Removed.
+	(struct ipa_param_descriptor): New structure.
+	(struct ipa_node_params): ipcp_lattices, param_decls and
+	param_flags moved to ipa_param_description.
+	(ipa_get_ith_param): Renamed to ipa_get_param, changed to access
+	descriptors.  Renamed all users.
+	(ipa_is_ith_param_modified): Renamed to ipa_is_param_modified,
+	changed to access descriptors.  Renamed all users.
+	(ipa_is_ith_param_called): Renamed to ipa_is_param_called, changed
+	to access descriptors. Renamed all users.
+	* ipa-cp.c (ipcp_init_cloned_node): Call
+	ipa_initialize_node_params instead of ipa_count_formal_params and
+	ipa_create_param_decls_array.
+	(ipcp_analyze_node): Likewise.
+	(ipcp_get_ith_lattice): Renamed to ipcp_get_lattice, changed to access
+	descriptors.  Renamed all users.
+	(ipcp_initialize_node_lattices): Remove allocation.
+	* ipa-inline.c (inline_indirect_intraprocedural_analysis): Call
+	ipa_initialize_node_params instead of ipa_count_formal_params and
+	ipa_create_param_decls_array.
+	* ipa-prop.c (ipa_create_param_decls_array): Renamed to
+	ipa_populate_param_decls, made static, added parameter info,
+	renamed mt to node, removed allocation, changed to use
+	descriptors.
+	(ipa_count_formal_params): Made static, added parameter info,
+	renamed mt to node.
+	(ipa_initialize_node_params): New function.
+	(ipa_check_stmt_modifications): Changed to use descriptors.
+	(ipa_detect_param_modifications): Removed allocation, changed to
+	use descriptors.
+	(ipa_note_param_call): Changed to use descriptors.
+	(ipa_analyze_params_uses): Removed allocation.
+	(ipa_free_node_params_substructures): Changed to use descriptors.
+	(ipa_edge_duplication_hook): Use the unused attribute.
+	(ipa_node_duplication_hook): Use the unused attribute, changed to
+	use descriptors, changed to duplicate descriptors.
+
+	* ipa-inline.c (cgraph_mark_inline_edge): New parameter new_edges,
+	changed all callers.  Call ipa_propagate_indirect_call_infos if doing
+	indirect inlining.  Made static.
+	(cgraph_decide_inlining): Freeing ipa-prop structures after inlining
+	functions called only once.
+	(cgraph_decide_recursive_inlining): Don't call
+	ipa_propagate_indirect_call_infos, pass new_edges to
+	cgraph_mark_inline_edge instead.
+	(cgraph_decide_inlining_of_small_functions): Don't call
+	ipa_propagate_indirect_call_infos, pass new_edges to
+	cgraph_mark_inline_edge instead.
+	(cgraph_decide_inlining): Don't call
+	ipa_propagate_indirect_call_infos.
+	* ipa-prop.c: Check that vectors are allocated.
+
+	* ipa-inline.c (cgraph_mark_inline_edge): Returns boolean, true
+	iff a new cgraph edges have been created.
+	(cgraph_decide_inlining): New variable redo_always_inline.
+	Flattening and always_inlining loop until callgraph stabilizes.
+	* ipa-prop.c (update_call_notes_after_inlining): Returns boolean,
+	true iff new cgraph edges have been created.
+	(propagate_info_to_inlined_callees): Likewise.
+	(ipa_propagate_indirect_call_infos): Likewise.
+
+2008-09-11  Richard Guenther  <rguenther@suse.de>
+
+	* tree-vectorizer.c (slpeel_add_loop_guard): Fix types.
+	(set_prologue_iterations): Likewise.
+	* tree-vect-transform.c (vect_create_addr_base_for_vector_ref):
+	Likewise.
+	(vect_update_init_of_dr): Likewise.
+	* tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Fix
+	type verification.
+	* fold-const.c (fold_unary): Do not generate calculations
+	in sub-types.
+
+2008-09-11  Paolo Bonzini  <bonzini@gnu.org>
+
+	* dojump.c (do_jump) [BIT_AND_EXPR]: Move below.  Fall through to
+	TRUTH_AND_EXPR for boolean (1-bit precision) expressions.
+	(do_jump) [BIT_IOR_EXPR]: Compile as TRUTH_OR_EXPR.
+
+	* tree-flow.h (simplify_stmt_using_ranges): Accept a GSI, return a bool.
+	* tree-ssa-propagate.c (substitute_and_fold): Pass a GSI to
+	VRP's simplify_stmt_using_ranges.  Do simplify_stmt_using_ranges
+	before finalizing the changes.
+	* tree-vrp.c (extract_range_from_binary_expr): Add limited support
+	for BIT_IOR_EXPR.
+	(simplify_truth_ops_using_ranges): New.
+	(simplify_div_or_mod_using_ranges, simplify_abs_using_ranges,
+	simplify_cond_using_ranges, simplify_switch_using_ranges): Return
+	whether a simplification was made.
+	(simplify_stmt_using_ranges): Ditto, and accept a GSI.  For GS_ASSIGN,
+	use a switch statement and also call simplify_truth_ops_using_ranges.
+
+2008-09-11  Jan Hubicka  <jh@suse.cz>
+
+	* ggc-common.c (loc_array): Make static.
+	* dce.c (rest_of_handle_ud_dce): Free worklist.
+
+2008-09-11  Jan Hubicka  <jh@suse.cz>
+
+	* cgraph.c (cgraph_release_function_body): Plug memory leak on
+	ipa_transforms_to_apply and CFG; ggc_free gimple df and struct function
+	so we are sure we do not dangle it forever.
+	* function.c (outer_function_chain, find_function_data): Remove.
+	(function_context_stack): New.
+	(push_function_context, pop_function_context): Update.
+	* function.h (struct function): Remove pointer outer.
+	(outer_function_chain, find_function_data): Remove.
+	* stmt.c (force_label_rtx): Remove dead call of find_function_data.
+
+2008-09-11  Jan Hubicka  <jh@suse.cz>
+
+	PR middle-end/37448
+	* cgraph.c (cgraph_create_edge): Use !cgraph_edge for sanity check.
+
+2008-09-11  Jan Hubicka  <jh@suse.cz>
+
+	* tree-ssa-pre.c (phi_translate_1): Fix memory leak
+
+2008-09-11  Jan Hubicka  <jh@suse.cz>
+
+	* tree-ssa.c (redirect_edge_var_map_clear): Fix formatting.
+	(free_var_map_entry): New function.
+	(redirect_edge_var_map_destroy): Use it.
+
+2008-09-11  Jan Hubicka  <jh@suse.cz>
+
+	PR middle-end/37448
+	* tree-inline.c (add_lexical_block): Replace with ...
+	(prepend_lexical_block): ... prepend at begginig.
+	(remap_blocks): Use it and reverse later.
+	(expand_call_inline): Use prepend_lexical_block.
+
+2008-09-11  Jan Hubicka  <jh@suse.cz>
+
+	* gimplify.c (pop_gimplify_context): Free bind_expr_stack.
+
+2008-09-11  Jan Hubicka  <jh@suse.cz>
+
+	* function.c (free_after_compilation): Call insn_locators_free.
+	* cfglayout.c (insn_locators_free): New function.
+	* rtl.h (insn_locators_free): Declare.
+
+2008-09-11  Jan Hubicka  <jh@suse.cz>
+
+	* ifcvt.c (check_cond_move_block): Make regs argument pointer to
+	vector pointer.
+	(cond_move_process_if_block): Update call.
+
+2008-09-11  Jan Hubicka  <jh@suse.cz>
+
+	* toplev.c (dump_memory_report): Call dump_vec_loc_statistics.
+	* vec.c: Include hashtab.h
+	(vec_descriptor, ptr_hash_entry): New structures.
+	(vec_desc_hash, vec_ptr_map): New static variables.
+	(hash_descriptor, eq_descriptor, hash_ptr, eq_ptr, vec_descriptor,
+	register_overhead, free_overhead, vec_heap_free): New functions.
+	(vec_gc_o_reserve_1): ggc_free when resizing to 0.
+	(vec_heap_o_reserve_1): free when resizing to 0; add statistics.
+	(cmp_statistic, add_statistics, dump_vec_loc_statistics): New functions.
+
+2008-09-11  Ira Rosen  <irar@il.ibm.com>
+
+	PR tree-optimization/37474
+	* tree-vect-analyze.c (vect_supported_load_permutation_p): Check the
+	length of load permutation.
+
+2008-09-11  Andreas Schwab  <schwab@suse.de>
+
+	* config/m68k/m68k.h (IRA_COVER_CLASSES): Define.
+
 2008-09-11  Jakub Jelinek  <jakub@redhat.com>
 
 	PR target/37382
@@ -62,8 +255,8 @@
 2008-09-10  Jan Hubicka  <jh@suse.cz>
 
 	* value-prof.c (gimple_ic): Fix tuplification bug.
-	* sched-deps.c (sched_insns_conditions_mutex_p): Silence unitialized var
-	warning.
+	* sched-deps.c (sched_insns_conditions_mutex_p): Silence unitialized
+	var warning.
 
 2008-09-10  Jakub Jelinek  <jakub@redhat.com>
 
@@ -156,8 +349,8 @@
 	set_instantiated_value): Pass instantiated_below.
 	(analyze_scalar_evolution_1, analyze_scalar_evolution): Update calls to
 	above functions.
-	(instantiate_scev_1, instantiate_scev): Pass a basic block above which the
-	definitions are not instantiated.
+	(instantiate_scev_1, instantiate_scev): Pass a basic block above which
+	the definitions are not instantiated.
 
 	* tree-scalar-evolution.h (instantiate_scev): Update declaration.
 	(block_before_loop): New.
@@ -206,8 +399,8 @@
 
 2008-09-09  Jan Hubicka  <jh@suse.cz>
 
-	* profile.c (is_edge_inconsistent): Add debug output; ignore negative count
-	on fake edges.
+	* profile.c (is_edge_inconsistent): Add debug output; ignore
+	negative count on fake edges.
 	(is_inconsistent): Add debug output.
 
 2008-09-09  Andrey Belevantsev  <abel@ispras.ru>
@@ -387,7 +580,8 @@
 2008-09-06  Jan Hubicka  <jh@suse.cz>
 
 	PR tree-optimization/14703
-	* tree-ssa-live.c (remove_unused_scope_block_p): Remove ignored declarations.
+	* tree-ssa-live.c (remove_unused_scope_block_p): Remove ignored
+	declarations.
 	* passes.c (init_optimization_passes): Recompute inline parameters.
 
 2008-09-06  Richard Sandiford  <rdsandiford@googlemail.com>
@@ -446,9 +640,8 @@
 
 2008-09-05  Vladimir Makarov  <vmakarov@redhat.com>
 
-	* ira-color.c (ira_fast_allocation): Permit global allocno
-	allocation.
-	
+	* ira-color.c (ira_fast_allocation): Permit global allocno allocation.
+
 2008-09-05  Trevor Smigiel <Trevor_Smigiel@playstation.sony.com>
 
 	Improved branch hints, safe hints, and scheduling.
@@ -719,8 +912,7 @@
 
 2008-09-04  Nick Clifton  <nickc@redhat.com>
 
-	* configure.ac (HAVE_GAS_LCOMM_WITH_ALIGNMENT): New assembler
-	check.
+	* configure.ac (HAVE_GAS_LCOMM_WITH_ALIGNMENT): New assembler check.
 	* configure: Regenerate.
 	* config.in: Regenerate.
 	* config/i386/bsd.h (ASM_OUTPUT_ALIGNED_LOCAL): Use .lcomm with an
@@ -880,11 +1072,9 @@
 
 2008-09-03 Danny Smith  <dannysmith@usrs.sourceforge.net>
 
-	* gthr-win32.h (CONST_CAST2): Really make sure CONST_CAST2 is
-	defined.
+	* gthr-win32.h (CONST_CAST2): Really make sure CONST_CAST2 is defined.
 	(__gthread_setspecific): Revert 2008-08-31 change to
-	__GTHREAD_HIDE_W32API case.  Apply it to !__GTHREAD_HIDE_W32API
-	case.
+	__GTHREAD_HIDE_W32API case.  Apply it to !__GTHREAD_HIDE_W32API case.
 
 2008-09-02  Aldy Hernandez  <aldyh@redhat.com>
 
@@ -951,7 +1141,8 @@
 2008-09-02  Jan Hubicka  <jh@suse.cz>
 
 	* predict.c (pass_strip_predict_hints): Avoid bugs dump file.
-	* expmed.c (expand_divmod): Fix test of smod_pow2_cheap and sdiv_pow2_cheap
+	* expmed.c (expand_divmod): Fix test of smod_pow2_cheap and
+	sdiv_pow2_cheap
 
 2008-09-02  H.J. Lu  <hongjiu.lu@intel.com>
 
@@ -1146,8 +1337,7 @@
 	error.
 	* c-omp.c (c_finish_omp_atomic): Pass location when calling
 	build_indirect_ref.
-	* c-common.c (finish_label_address_expr): Handle new location
-	argument.
+	* c-common.c (finish_label_address_expr): Handle new location argument.
 	* c-common.h (build_indirect_ref): Add argument.
 	(finish_label_address_expr): Same.
 	* c-parser.c (c_parser_unary_expression): Pass location to build
@@ -1165,8 +1355,7 @@
 	* config/arm/vfp.md: Document fcpys, ffariths, ffarithd, fadds, faddd,
 	fconsts, fconstd, fcmps and fcmpd.  Use them in insn patterns.
 	* config/arm/arm.c (arm_issue_rate): Add cortexr4f.
-	* config/arm/arm1020e.md (v10_ffarith, v10_farith): Use new insn
-	types.
+	* config/arm/arm1020e.md (v10_ffarith, v10_farith): Use new insn types.
 	* config/arm/cortex-a8-neon.md (cortex_a8_vfp_add_sub,
 	cortex_a8_vfp_farith: Ditto.
 	* config/arm/vfp11.md (vfp_ffarith, vfp_farith): Ditto.
@@ -1203,7 +1392,8 @@
 
 	* config/spu/spu.c (spu_expand_block_move) Update call of MOVE_RATIO.
 
-	* expr.c (MOVE_BY_PIECES_P, CLEAR_BY_PIECES_P, SET_BY_PIECES_P): Pass speed operand.
+	* expr.c (MOVE_BY_PIECES_P, CLEAR_BY_PIECES_P, SET_BY_PIECES_P):
+	Pass speed operand.
 	* expr.h (MOVE_RATIO, CLEAR_RATIO, SET_RATIO): Update.
 	* gimplify.c (gimplify_init_constructor): Add speed operand.
 	* tree-sra.c (decide_block_copy): Likewise.
@@ -1219,16 +1409,17 @@
 	* config/arm/arm.h (MOVE_RATIO): Update.
 	* config/pa/pa.md: Update uses of MOVE_RATIO
 	* config/pa/pa.h (MOVE_RATIO): Update.
-	* config/mips/mips.h (MOVE_RATIO, MOVE_BY_PIECES, CLEAR_RATIO, SET_RATIO): Update.
+	* config/mips/mips.h (MOVE_RATIO, MOVE_BY_PIECES,
+	CLEAR_RATIO, SET_RATIO): Update.
 	* config/h8300/h8300.h (MOVE_RATIO): Update.
 	* config/v850/v850.h (MOVE_RATIO): Update.
 	* config/bfin/bfin.h (MOVE_RATIO): Update.
 
 2008-08-31  Andrey Belevantsev  <abel@ispras.ru>
-	Dmitry Melnik  <dm@ispras.ru>
-	Dmitry Zhurikhin  <zhur@ispras.ru>
-	Alexander Monakov  <amonakov@ispras.ru>
-	Maxim Kuvyrkov  <maxim@codesourcery.com>
+	    Dmitry Melnik  <dm@ispras.ru>
+	    Dmitry Zhurikhin  <zhur@ispras.ru>
+	    Alexander Monakov  <amonakov@ispras.ru>
+	    Maxim Kuvyrkov  <maxim@codesourcery.com>
 
 	* sel-sched.h, sel-sched-dump.h, sel-sched-ir.h, sel-sched.c,
 	sel-sched-dump.c, sel-sched-ir.c: New files.
@@ -1251,13 +1442,15 @@
 	* common.opt (fsel-sched-bookkeeping, fsel-sched-pipelining,
 	fsel-sched-pipelining-outer-loops, fsel-sched-renaming,
 	fsel-sched-substitution, fselective-scheduling): New flags.
-    	* cse.c (hash_rtx_cb): New.
+	* cse.c (hash_rtx_cb): New.
 	(hash_rtx): Use it.
 	* dbgcnt.def (sel_sched_cnt, sel_sched_region_cnt,
 	sel_sched_insn_cnt): New counters.
-	* final.c (compute_alignments): Export.  Free dominance info after loop_optimizer_finalize.
+	* final.c (compute_alignments): Export.  Free dominance
+	info after loop_optimizer_finalize.
 	* genattr.c (main): Output maximal_insn_latency prototype.
-	* genautomata.c (output_default_latencies): New. Factor its code from ...
+	* genautomata.c (output_default_latencies): New.
+	Factor its code from ...
 	(output_internal_insn_latency_func): ... here.
 	(output_internal_maximal_insn_latency_func): New.
 	(output_maximal_insn_latency_func): New.
@@ -1268,8 +1461,9 @@
 	(EXECUTE_IF_SET_IN_HARD_REG_SET): New macro.
 	* lists.c (remove_free_INSN_LIST_node,
 	remove_free_EXPR_LIST_node): New functions.
-	* loop-init.c (loop_optimizer_init): When LOOPS_HAVE_FALLTHRU_PREHEADERS,
-	set CP_FALLTHRU_PREHEADERS when calling create_preheaders.
+	* loop-init.c (loop_optimizer_init): When
+	LOOPS_HAVE_FALLTHRU_PREHEADERS, set CP_FALLTHRU_PREHEADERS when
+	calling create_preheaders.
 	(loop_optimizer_finalize): Do not verify flow info after reload.
 	* recog.c (validate_replace_rtx_1): New parameter simplify.
 	Default it to true.  Update all uses.  Factor out simplifying
@@ -1497,7 +1691,8 @@
 	(deps_t): New.
 	(struct sched_info): Rename to haifa_sched_info.  Use const_rtx for
 	print_insn field.  Move add_block and fix_recovery_cfg to
-	common_sched_info_def.  Move compute_jump_reg_dependencies, use_cselib  ...
+	common_sched_info_def.  Move compute_jump_reg_dependencies,
+	use_cselib  ...
 	(struct sched_deps_info_def): ... this new structure.
 	(sched_deps_info): Declare.
 	(struct spec_info_def): Remove weakness_cutoff, add
@@ -1561,7 +1756,8 @@
 	(find_single_block_region): Add new argument to indicate that EBB
 	regions should be constructed.
 	(debug_live): Delete declaration.
-	(current_nr_blocks, current_blocks, target_bb): Remove static qualifiers.
+	(current_nr_blocks, current_blocks, target_bb):
+	Remove static qualifiers.
 	(compute_dom_prob_ps, check_live, update_live, set_spec_fed): Delete
 	declaration.
 	(init_regions): Delete declaration.
@@ -1580,7 +1776,8 @@
 	(debug_rgn_dependencies): Delete static qualifier.
 	(new_ready): Use sched_deps_info.  Simplify.
 	(rgn_common_sched_info, rgn_const_sched_deps_info,
-	rgn_const_sel_sched_deps_info, rgn_sched_deps_info, rgn_sched_info): New.
+	rgn_const_sel_sched_deps_info, rgn_sched_deps_info, rgn_sched_info):
+	New.
 	(region_sched_info): Rename to rgn_const_sched_info.
 	(deps_join): New, extracted from ...
 	(propagate_deps): ... here.
@@ -1618,7 +1815,8 @@
 	requested from command line.
 	* doc/invoke.texi: Document new flags and parameters.
 	* doc/tm.texi: Document new target hooks.
-	* config/ia64/ia64.c (TARGET_SCHED_GEN_SPEC_CHECK): Define to ia64_gen_check.
+	* config/ia64/ia64.c (TARGET_SCHED_GEN_SPEC_CHECK): Define to
+	ia64_gen_check.
 	(dfa_state_size): Do not declare locally.
 	* config/ia64/ia64.opt (msched-ar-data-spec): Default to 0.
 	* config/rs6000/rs6000.c (rs6000_init_sched_context,
@@ -1697,7 +1895,8 @@
 
 2008-08-31  Jan Hubicka  <jh@suse.cz>
 
-	* postreload-gcse.c (eliminate_partially_redundant_loads): Use optimize_bb_for_size_p.
+	* postreload-gcse.c (eliminate_partially_redundant_loads):
+	Use optimize_bb_for_size_p.
 	* predict.c (maybe_hot_frequency_p): Make inline.
 	(maybe_hot_count_p): Break out from ...
 	(maybe_hot_bb_p): ... this one.
@@ -1856,8 +2055,10 @@
 	* config/m68hc11/m68hc11.c
 	(m68hc11_address_cost, m68hc11_rtx_costs): Update.
 	* config/cris/cris.c (cris_rtx_costs, cris_address_cost): Update.
-	* config/iq2000/iq2000.c (iq2000_rtx_costs, iq2000_address_cost): Update.
-	* config/mn10300/mn10300.c (mn10300_address_cost, mn10300_rtx_costs): Update
+	* config/iq2000/iq2000.c (iq2000_rtx_costs, iq2000_address_cost):
+	Update.
+	* config/mn10300/mn10300.c (mn10300_address_cost, mn10300_rtx_costs):
+	Update
 	* config/ia64/ia64.c (ia64_rtx_costs): Update.
 	* config/m68k/m68k.c (m68k_rtx_costs): Update.
 	* config/rs6000/rs6000.c (rs6000_rtx_costs): Update.
@@ -2062,10 +2263,10 @@
 	* dojump.c (do_jump): Likewise.
 	* ifcvt.c (MAX_CONDITIONAL_EXECUTE): Likewise.
 	(note-if_info): Add BRANCH_COST.
-	(noce_try_store_flag_constants, noce_try_addcc, noce_try_store_flag_mask,
-	noce_try_cmove_arith, noce_try_cmove_arith, noce_try_cmove_arith,
-	noce_find_if_block, find_if_case_1, find_if_case_2): Use compuated
-	branch cost.
+	(noce_try_store_flag_constants, noce_try_addcc,
+	noce_try_store_flag_mask, noce_try_cmove_arith, noce_try_cmove_arith,
+	noce_try_cmove_arith, noce_find_if_block, find_if_case_1,
+	find_if_case_2): Use computed branch cost.
 	* expr.h (BRANCH_COST): Update default.
 	* predict.c (predictable_edge_p): New function.
 	* expmed.c (expand_smod_pow2, expand_sdiv_pow2, emit_store_flag):
@@ -2273,7 +2474,6 @@
 2008-08-29  Vladimir Makarov  <vmakarov@redhat.com>
 
 	PR rtl-opt/37251
-
 	* ira-color.c (push_allocnos_to_stack): Truncate
 	removed_splay_allocno_vec.
 
@@ -2375,9 +2575,11 @@
 2008-08-29  Jan Hubicka  <jh@suse.cz>
 
 	* loop-unswitch.c (unswitch_single_loop): Use optimize_loop_for_speed_p.
-	* tree-ssa-threadupdate.c (mark_threaded_blocks): Use optimize_function_for_size_p.
+	* tree-ssa-threadupdate.c (mark_threaded_blocks):
+	Use optimize_function_for_size_p.
 	* tracer.c (ignore_bb_p): Use optimize_bb_for_size_p.
-	* postreload-gcse.c (eliminate_partially_redundant_load): Use optimize_bb_for_size_p.
+	* postreload-gcse.c (eliminate_partially_redundant_load):
+	Use optimize_bb_for_size_p.
 	* value-prof.c (gimple_divmod_fixed_value_transform,
 	gimple_mod_pow2_value_transform, gimple_mod_subtract_transform,
 	gimple_stringops_transform): Use optimize_bb_for_size_p.
@@ -2388,16 +2590,18 @@
 	optimize_function_for_size_p.
 	* fold-const.c (tree_swap_operands_p): Use optimize_function_for_size_p.
 	* recog.c (relax_delay_slots): Likewise.
-	* tree-ssa-math-opts.c (replace_reciprocal): Use optimize_bb_for_speed_p.
+	* tree-ssa-math-opts.c (replace_reciprocal):
+	Use optimize_bb_for_speed_p.
 	(execute_cse_reciprocals): Use optimize_bb_for_size_p.
 	* ipa-inline.c (cgraph_decide_recursive_inlining): Use
 	optimize_function_for_size_p.
 	(cgraph_decide_inlining_of_small_function): Use
 	optimize_function_for_size_p.
 	* global.c (find_reg): Use optimize_function_for_size_p.
-	* opts.c (decode_options): Do not clear flag_tree_ch, flag_inline_functions,
-	flag_unswitch_loops, flag_unroll_loops, flag_unroll_all_loops and
-	flag_prefetch_loop_arrays. Those can work it out from profile.
+	* opts.c (decode_options): Do not clear flag_tree_ch,
+	flag_inline_functions, flag_unswitch_loops, flag_unroll_loops,
+	flag_unroll_all_loops and flag_prefetch_loop_arrays. Those can
+	work it out from profile.
 	* tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely): Use
 	optimize_loop_for_speed_p.
 	* predict.c (optimize_bb_for_size_p, optimize_bb_for_speed_p): Constify
@@ -2408,13 +2612,15 @@
 	* local-alloc.c (block_alloc): Pass BB pointer.
 	(find_free_reg): Add BB pointer, use optimize_bb_for_size_p.
 	* gcse.c (gcse_main): Use optimize_function_for_size_p.
-	* loop-unroll.c (decide_unrolling_and_peeling): Use optimize_loop_for_size_p.
+	* loop-unroll.c (decide_unrolling_and_peeling):
+	Use optimize_loop_for_size_p.
 	(decide_peel_completely): Likewise.
 	* tree-vect-analyze.c (vect_mark_for_runtime_alias_test): Use
 	optimize_loop_for_size_p.
 	(vect_enhance_data_refs_alignment): Likewise.
 	* tree-ssa-coalesce.c (coalesce_cost): Add optimize_for_size argument.
-	(coalesce_cost_bb, coalesce_cost_edge, create_outofssa_var_map): Update call.
+	(coalesce_cost_bb, coalesce_cost_edge, create_outofssa_var_map):
+	Update call.
 	* cfgcleanup.c (outgoing_edges_match): Use optimize_bb_for_speed_p.
 	(try_crossjump_bb): Use optimize_bb_for_size_p.
 	* tree-ssa-loop-prefetch.c (loop_prefetch_arrays): Use
@@ -2449,8 +2655,8 @@
 	(tree_bb_level_predictions): Do not remove GIMPLE_PREDICT.
 	(tree_estimate_probability): Do not strip builtin_expect.
 	(pass_strip_predict_hints): New pass.
-	* tree-inline.c (expand_call_inline): When inlining cold function, predict
-	it as unlikely.
+	* tree-inline.c (expand_call_inline): When inlining cold function,
+	predict it as unlikely.
 	* passes.c (init_optimization_passes): Add pass_strip_predict_hints.
 
 2008-08-29  Richard Guenther  <rguenther@suse.de>
@@ -2500,8 +2706,7 @@
 	* config/mips/mips.h (ISA_HAS_DMUL3): New macro.
 	* config/mips/mips.md (D): New mode attribute.
 	(mulsi3, muldi3): Merge it into ...
-	(mul<mode>3): ... new template.  Use _mul3 ending for 3-op
-	patterns.
+	(mul<mode>3): ... new template.  Use _mul3 ending for 3-op patterns.
 	(muldi3_mul3): New pattern.
 	(mulsi3_mult3): Rename to mulsi3_mul3.
 
@@ -3406,7 +3611,7 @@
 	* config/arm/arm1020e.md: Remove out of date duplicate comment.
 	(v10_cvt): Use new fmul types.
 
-2008-08-26  Paul Brook   <paul@codesourcery.com>
+2008-08-26  Paul Brook  <paul@codesourcery.com>
 
 	* config/arm/vfp.md: Move pipeline description for VFP11 to...
 	* config/arm/vfp11.md: ...here.  New.
@@ -3794,7 +3999,8 @@
 	(ipcp_create_replace_map): Reformat.
 	(ipcp_need_redirect_p): Simplify.
 	(ipcp_insert_stage): Check that argument is used before clonning.
-	* ipa-prop.c (ipa_print_node_jump_functions): Do not handle IPA_CONST_REF.
+	* ipa-prop.c (ipa_print_node_jump_functions): Do not handle
+	IPA_CONST_REF.
 	(compute_scalar_jump_functions): Simplify using is_gimple_ip_invariat.
 	(determine_cst_member_ptr): Keep wrapping ADDR_EXPR of members.
 	(update_call_notes_after_inlining): Expect ADDR_EXPR in operand.
@@ -3912,8 +4118,7 @@
 
 	* c-tree.h (grokfield): New argument.
 	* c-decl.c (grokfield): Handle new location argument.
-	* c-parser.c (c_parser_struct_declaration): Pass location to
-	grokfield.
+	* c-parser.c (c_parser_struct_declaration): Pass location to grokfield.
 
 2008-08-21  Richard Guenther  <rguenther@suse.de>
 
@@ -4498,13 +4703,12 @@
 	("type" attribute): Removed itof and added ftrunctf,ftruncdf,
 	ftruncsd, ftruncdd, itoftf, itofdf, itofsf, itofdd, itoftd,
 	fdivdd, fdivtd, floaddd, floadsd, fmuldd, fmultd, fsimpdd,
-	fsimpsd, fsimptd, fstoredd, fstoresd, ftoidfp as possible
-	values.
+	fsimpsd, fsimptd, fstoredd, fstoresd, ftoidfp as possible values.
 	("bfp" mode attribute): Removed.  Every occurence replaced
 	with <mode>.
 	* config/s390/s390.c (struct "z10_cost"): Updated entries.
 	* config/s390/2084.md (insn_reservation "x_itof"): Updated
-	  type attribute.
+	type attribute.
 
 2008-08-14  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
 
@@ -4599,8 +4803,7 @@
 	handled. -pedantic also enables Wmain.
 	(c_common_post_options): Handle all logic for Wmain here.
 	* c-common.c (warn_main): Delete.
-	(check_main_parameter_types): Make pedwarns conditional on
-	OPT_Wmain.
+	(check_main_parameter_types): Make pedwarns conditional on OPT_Wmain.
 	* c-common.h (warn_main): Delete.
 
 2008-08-13  H.J. Lu  <hongjiu.lu@intel.com>
@@ -5093,8 +5296,7 @@
 	* c-typeck.c (digest_init): Call verify_sequence_points from here.
 	(c_finish_return): Likewise.
 	(c_start_case): Likewise.
-	* c-common.c (warn_for_collisions_1): Use explicit location in
-	warning.
+	* c-common.c (warn_for_collisions_1): Use explicit location in warning.
 	* c-parser.c (c_parser_condition): New. Call
 	verify_sequence_points.
 	(c_parser_paren_condition): Call c_parser_condition.
@@ -5268,8 +5470,7 @@
 2008-08-07  H.J. Lu  <hongjiu.lu@intel.com>
 
 	PR target/36992
-	* config/i386/emmintrin.h (_mm_move_epi64): Use
-	__builtin_ia32_movq128.
+	* config/i386/emmintrin.h (_mm_move_epi64): Use __builtin_ia32_movq128.
 
 	* config/i386/i386.c (ix86_builtins): Add IX86_BUILTIN_MOVQ128.
 	(bdesc_args): Add IX86_BUILTIN_MOVQ128.
@@ -5413,8 +5614,7 @@
 	* config/sh/sh.c (prepare_move_operands, output_far_jump,
 	output_branchy_insn, add_constant, gen_block_redirect,
 	sh_insn_length_adjustment, sh_cannot_change_mode_class,
-	sh_output_mi_thunk, replace_n_hard_rtx, sh_secondary_reload):
-	Likewise.
+	sh_output_mi_thunk, replace_n_hard_rtx, sh_secondary_reload): Likewise.
 	* config/sparc/sparc.c (sparc_output_mi_thunk): Likewise.
 	* config/stormy16/stormy16.c (xstormy16_output_cbranch_hi,
 	xstormy16_output_cbranch_si, xstormy16_secondary_reload_class,


The results can be reproduced by building a compiler with

--enable-gather-detailed-mem-stats targetting x86-64

and compiling preprocessed combine.c or testcase from PR8632 with:

-fmem-report --param=ggc-min-heapsize=1024 --param=ggc-min-expand=1 -Ox -Q

The memory consumption summary appears in the dump after detailed listing
of the places they are allocated in.  Peak memory consumption is actually
computed by looking for maximal value in {GC XXXX -> YYYY} report.

Your testing script.



More information about the Gcc-regression mailing list