A recent patch increased GCC's memory consumption!

gcctest@suse.de gcctest@suse.de
Fri Jan 4 03:16: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 allocated via mmap and sbrk increased from 6629k to 8151k, overall 22.96%
  Peak amount of GGC memory still allocated after garbage collecting increased from 993k to 994k, overall 0.10%
    Overall memory needed: 6629k -> 8151k
    Peak memory use before GGC: 1095k -> 1096k
    Peak memory use after GGC: 993k -> 994k
    Maximum of released memory in single GGC run: 129k
    Garbage: 237k -> 237k
    Leak: 951k -> 951k
    Overhead: 80k -> 80k
    GGC runs: 2
Testing has produced no results
Testing has produced no results

comparing empty function compilation at -O0 -g level:
  Overall memory allocated via mmap and sbrk increased from 6645k to 8167k, overall 22.90%
    Overall memory needed: 6645k -> 8167k
    Peak memory use before GGC: 1122k -> 1123k
    Peak memory use after GGC: 1020k -> 1021k
    Maximum of released memory in single GGC run: 131k
    Garbage: 239k -> 239k
    Leak: 983k -> 984k
    Overhead: 84k -> 84k
    GGC runs: 3
Testing has produced no results
Testing has produced no results

comparing empty function compilation at -O1 level:
  Overall memory allocated via mmap and sbrk increased from 6693k to 8211k, overall 22.68%
  Peak amount of GGC memory still allocated after garbage collecting increased from 993k to 994k, overall 0.10%
    Overall memory needed: 6693k -> 8211k
    Peak memory use before GGC: 1095k -> 1096k
    Peak memory use after GGC: 993k -> 994k
    Maximum of released memory in single GGC run: 131k
    Garbage: 239k -> 239k
    Leak: 951k -> 952k
    Overhead: 80k -> 80k
    GGC runs: 2
    Pre-IPA-Garbage: 226k -> 226k
    Pre-IPA-Leak: 954k -> 954k
    Pre-IPA-Overhead: 79k -> 79k
    Post-IPA-Garbage: 226k -> 226k
    Post-IPA-Leak: 954k -> 954k
    Post-IPA-Overhead: 79k -> 79k

comparing empty function compilation at -O2 level:
  Overall memory allocated via mmap and sbrk increased from 6709k to 8231k, overall 22.69%
    Overall memory needed: 6709k -> 8231k
    Peak memory use before GGC: 1095k -> 1096k
    Peak memory use after GGC: 994k
    Maximum of released memory in single GGC run: 134k
    Garbage: 242k -> 243k
    Leak: 952k -> 953k
    Overhead: 81k -> 81k
    GGC runs: 2
    Pre-IPA-Garbage: 226k -> 226k
    Pre-IPA-Leak: 954k -> 955k
    Pre-IPA-Overhead: 79k -> 79k
    Post-IPA-Garbage: 226k -> 226k
    Post-IPA-Leak: 954k -> 955k
    Post-IPA-Overhead: 79k -> 79k

comparing empty function compilation at -O3 level:
  Overall memory allocated via mmap and sbrk increased from 6709k to 8231k, overall 22.69%
    Overall memory needed: 6709k -> 8231k
    Peak memory use before GGC: 1095k -> 1096k
    Peak memory use after GGC: 994k
    Maximum of released memory in single GGC run: 134k
    Garbage: 242k -> 243k
    Leak: 952k -> 953k
    Overhead: 81k -> 81k
    GGC runs: 2
    Pre-IPA-Garbage: 226k -> 226k
    Pre-IPA-Leak: 954k -> 955k
    Pre-IPA-Overhead: 79k -> 79k
    Post-IPA-Garbage: 226k -> 226k
    Post-IPA-Leak: 954k -> 955k
    Post-IPA-Overhead: 79k -> 79k

comparing combine.c compilation at -O0 level:
  Overall memory allocated via mmap and sbrk increased from 21177k to 22695k, overall 7.17%
    Overall memory needed: 21177k -> 22695k
    Peak memory use before GGC: 7806k -> 7809k
    Peak memory use after GGC: 7185k -> 7186k
    Maximum of released memory in single GGC run: 1550k
    Garbage: 37869k -> 37885k
    Leak: 5512k -> 5504k
    Overhead: 4577k -> 4577k
    GGC runs: 371
Testing has produced no results
Testing has produced no results

comparing combine.c compilation at -O0 -g level:
  Overall memory allocated via mmap and sbrk increased from 23181k to 24699k, overall 6.55%
    Overall memory needed: 23181k -> 24699k
    Peak memory use before GGC: 9645k -> 9648k
    Peak memory use after GGC: 8953k -> 8954k
    Maximum of released memory in single GGC run: 1838k
    Garbage: 38229k -> 38228k
    Leak: 8317k -> 8318k
    Overhead: 5204k -> 5204k
    GGC runs: 342
Testing has produced no results
Testing has produced no results

comparing combine.c compilation at -O1 level:
  Overall memory allocated via mmap and sbrk increased from 31629k to 33143k, overall 4.79%
  Amount of memory still referenced at the end of compilation increased from 5659k to 5668k, overall 0.15%
    Overall memory needed: 31629k -> 33143k
    Peak memory use before GGC: 16344k -> 16345k
    Peak memory use after GGC: 16160k -> 16161k
    Maximum of released memory in single GGC run: 1367k -> 1368k
    Garbage: 51683k -> 51676k
    Leak: 5659k -> 5668k
    Overhead: 5720k -> 5721k
    GGC runs: 443
    Pre-IPA-Garbage: 13922k -> 13922k
    Pre-IPA-Leak: 17126k -> 17126k
    Pre-IPA-Overhead: 2069k -> 2069k
    Post-IPA-Garbage: 13922k -> 13922k
    Post-IPA-Leak: 17126k -> 17126k
    Post-IPA-Overhead: 2069k -> 2069k

comparing combine.c compilation at -O2 level:
  Overall memory allocated via mmap and sbrk increased from 34529k to 36047k, overall 4.40%
    Overall memory needed: 34529k -> 36047k
    Peak memory use before GGC: 16445k -> 16446k
    Peak memory use after GGC: 16279k -> 16280k
    Maximum of released memory in single GGC run: 1316k
    Garbage: 71700k -> 71727k
    Leak: 5985k -> 5990k
    Overhead: 8064k -> 8069k
    GGC runs: 512 -> 511
    Pre-IPA-Garbage: 14079k -> 14079k
    Pre-IPA-Leak: 17190k -> 17191k
    Pre-IPA-Overhead: 2082k -> 2082k
    Post-IPA-Garbage: 14079k -> 14079k
    Post-IPA-Leak: 17190k -> 17191k
    Post-IPA-Overhead: 2082k -> 2082k

comparing combine.c compilation at -O3 level:
  Overall memory allocated via mmap and sbrk increased from 37865k to 39399k, overall 4.05%
  Peak amount of GGC memory allocated before garbage collecting increased from 16580k to 16628k, overall 0.29%
    Overall memory needed: 37865k -> 39399k
    Peak memory use before GGC: 16580k -> 16628k
    Peak memory use after GGC: 16300k
    Maximum of released memory in single GGC run: 2120k -> 2119k
    Garbage: 93662k -> 93742k
    Leak: 6109k -> 6110k
    Overhead: 10663k -> 10676k
    GGC runs: 546 -> 547
    Pre-IPA-Garbage: 14085k -> 14085k
    Pre-IPA-Leak: 17210k -> 17211k
    Pre-IPA-Overhead: 2085k -> 2085k
    Post-IPA-Garbage: 14085k -> 14085k
    Post-IPA-Leak: 17210k -> 17211k
    Post-IPA-Overhead: 2085k -> 2085k

comparing insn-attrtab.c compilation at -O0 level:
    Overall memory needed: 135921k -> 137439k
    Peak memory use before GGC: 56998k -> 56999k
    Peak memory use after GGC: 31455k -> 31456k
    Maximum of released memory in single GGC run: 33256k
    Garbage: 128178k -> 128190k
    Leak: 8380k -> 8381k
    Overhead: 13927k -> 13927k
    GGC runs: 292 -> 293
Testing has produced no results
Testing has produced no results

comparing insn-attrtab.c compilation at -O0 -g level:
    Overall memory needed: 137177k -> 138695k
    Peak memory use before GGC: 58140k -> 58141k
    Peak memory use after GGC: 32597k -> 32598k
    Maximum of released memory in single GGC run: 33256k
    Garbage: 128409k -> 128406k
    Leak: 10040k -> 10041k
    Overhead: 14283k -> 14283k
    GGC runs: 289
Testing has produced no results
Testing has produced no results

comparing insn-attrtab.c compilation at -O1 level:
    Overall memory needed: 143185k -> 144703k
    Peak memory use before GGC: 56210k -> 56211k
    Peak memory use after GGC: 49982k -> 49983k
    Maximum of released memory in single GGC run: 23977k -> 23976k
    Garbage: 206550k -> 206550k
    Leak: 9274k -> 9275k
    Overhead: 23998k -> 23998k
    GGC runs: 315
    Pre-IPA-Garbage: 50355k -> 50355k
    Pre-IPA-Leak: 49319k -> 49320k
    Pre-IPA-Overhead: 7133k -> 7133k
    Post-IPA-Garbage: 50355k -> 50355k
    Post-IPA-Leak: 49319k -> 49320k
    Post-IPA-Overhead: 7133k -> 7133k

comparing insn-attrtab.c compilation at -O2 level:
    Overall memory needed: 186589k -> 188103k
    Peak memory use before GGC: 56852k -> 56851k
    Peak memory use after GGC: 51572k -> 51571k
    Maximum of released memory in single GGC run: 22735k -> 22734k
    Garbage: 248134k -> 248144k
    Leak: 10361k -> 10362k
    Overhead: 29756k -> 29757k
    GGC runs: 347
    Pre-IPA-Garbage: 50426k -> 50427k
    Pre-IPA-Leak: 49323k -> 49324k
    Pre-IPA-Overhead: 7140k -> 7140k
    Post-IPA-Garbage: 50426k -> 50427k
    Post-IPA-Leak: 49323k -> 49324k
    Post-IPA-Overhead: 7140k -> 7140k

comparing insn-attrtab.c compilation at -O3 level:
    Overall memory needed: 190945k -> 192499k
    Peak memory use before GGC: 68526k -> 68525k
    Peak memory use after GGC: 62279k -> 62278k
    Maximum of released memory in single GGC run: 23235k -> 23239k
    Garbage: 276085k -> 276085k
    Leak: 10399k -> 10399k
    Overhead: 31632k -> 31632k
    GGC runs: 349
    Pre-IPA-Garbage: 50426k -> 50427k
    Pre-IPA-Leak: 49323k -> 49324k
    Pre-IPA-Overhead: 7140k -> 7140k
    Post-IPA-Garbage: 50426k -> 50427k
    Post-IPA-Leak: 49323k -> 49324k
    Post-IPA-Overhead: 7140k -> 7140k

comparing Gerald's testcase PR8361 compilation at -O0 level:
  Peak amount of GGC memory allocated before garbage collecting increased from 84523k to 84849k, overall 0.39%
  Peak amount of GGC memory still allocated after garbage collecting increased from 83686k to 84008k, overall 0.38%
    Overall memory needed: 147471k -> 149537k
    Peak memory use before GGC: 84523k -> 84849k
    Peak memory use after GGC: 83686k -> 84008k
    Maximum of released memory in single GGC run: 16844k -> 17149k
    Garbage: 202407k -> 200953k
    Leak: 48152k -> 48173k
    Overhead: 23847k -> 23764k
    GGC runs: 420 -> 417
    Pre-IPA-Garbage: 111123k -> 109655k
    Pre-IPA-Leak: 71212k -> 71233k
    Pre-IPA-Overhead: 12089k -> 12007k
    Post-IPA-Garbage: 111123k -> 109655k
    Post-IPA-Leak: 71212k -> 71233k
    Post-IPA-Overhead: 12089k -> 12007k

comparing Gerald's testcase PR8361 compilation at -O0 -g level:
    Overall memory needed: 168259k -> 168857k
    Peak memory use before GGC: 96488k -> 96061k
    Peak memory use after GGC: 95531k -> 95110k
    Maximum of released memory in single GGC run: 17652k -> 17205k
    Garbage: 207935k -> 206451k
    Leak: 69765k -> 69786k
    Overhead: 28833k -> 28750k
    GGC runs: 392 -> 391
    Pre-IPA-Garbage: 111767k -> 110299k
    Pre-IPA-Leak: 84492k -> 84514k
    Pre-IPA-Overhead: 14665k -> 14583k
    Post-IPA-Garbage: 111767k -> 110299k
    Post-IPA-Leak: 84492k -> 84514k
    Post-IPA-Overhead: 14665k -> 14583k

comparing Gerald's testcase PR8361 compilation at -O1 level:
    Overall memory needed: 122032k -> 123587k
    Peak memory use before GGC: 84497k -> 84518k
    Peak memory use after GGC: 83659k -> 83680k
    Maximum of released memory in single GGC run: 16328k -> 16324k
    Garbage: 294285k -> 292798k
    Leak: 47403k -> 47432k
    Overhead: 29140k -> 29058k
    GGC runs: 521 -> 518
    Pre-IPA-Garbage: 156483k -> 155016k
    Pre-IPA-Leak: 88226k -> 88246k
    Pre-IPA-Overhead: 17299k -> 17217k
    Post-IPA-Garbage: 156483k -> 155016k
    Post-IPA-Leak: 88226k -> 88246k
    Post-IPA-Overhead: 17299k -> 17217k

comparing Gerald's testcase PR8361 compilation at -O2 level:
    Overall memory needed: 125016k -> 126571k
    Peak memory use before GGC: 84722k -> 84743k
    Peak memory use after GGC: 83877k -> 83898k
    Maximum of released memory in single GGC run: 16327k -> 16363k
    Garbage: 366262k -> 364558k
    Leak: 48339k -> 48359k
    Overhead: 36614k -> 36497k
    GGC runs: 599 -> 596
    Pre-IPA-Garbage: 159741k -> 158268k
    Pre-IPA-Leak: 88354k -> 88376k
    Pre-IPA-Overhead: 17629k -> 17546k
    Post-IPA-Garbage: 159741k -> 158268k
    Post-IPA-Leak: 88354k -> 88376k
    Post-IPA-Overhead: 17629k -> 17546k

comparing Gerald's testcase PR8361 compilation at -O3 level:
    Overall memory needed: 129848k -> 131735k
    Peak memory use before GGC: 85929k -> 85950k
    Peak memory use after GGC: 85071k -> 85091k
    Maximum of released memory in single GGC run: 16721k
    Garbage: 397017k -> 395778k
    Leak: 48866k -> 48887k
    Overhead: 39213k -> 39151k
    GGC runs: 626 -> 625
    Pre-IPA-Garbage: 162532k -> 161066k
    Pre-IPA-Leak: 88634k -> 88656k
    Pre-IPA-Overhead: 17876k -> 17794k
    Post-IPA-Garbage: 162532k -> 161066k
    Post-IPA-Leak: 88634k -> 88656k
    Post-IPA-Overhead: 17876k -> 17794k

comparing PR rtl-optimization/28071 testcase compilation at -O0 level:
    Overall memory needed: 378592k -> 380108k
    Peak memory use before GGC: 101208k -> 101209k
    Peak memory use after GGC: 56862k
    Maximum of released memory in single GGC run: 50582k -> 50583k
    Garbage: 178902k -> 178951k
    Leak: 6097k -> 6098k
    Overhead: 30781k -> 30781k
    GGC runs: 106
Testing has produced no results
Testing has produced no results

comparing PR rtl-optimization/28071 testcase compilation at -O0 -g level:
    Overall memory needed: 379388k -> 380908k
    Peak memory use before GGC: 101839k
    Peak memory use after GGC: 57492k -> 57493k
    Maximum of released memory in single GGC run: 50583k -> 50582k
    Garbage: 179007k -> 179055k
    Leak: 7799k -> 7800k
    Overhead: 31213k -> 31213k
    GGC runs: 111
Testing has produced no results
Testing has produced no results

comparing PR rtl-optimization/28071 testcase compilation at -O1 level:
    Overall memory needed: 437837k -> 439379k
    Peak memory use before GGC: 78857k
    Peak memory use after GGC: 70436k
    Maximum of released memory in single GGC run: 37753k
    Garbage: 235356k -> 235357k
    Leak: 16073k -> 16073k
    Overhead: 35563k -> 35563k
    GGC runs: 105
    Pre-IPA-Garbage: 52924k -> 52924k
    Pre-IPA-Leak: 49244k -> 49245k
    Pre-IPA-Overhead: 7011k -> 7011k
    Post-IPA-Garbage: 52924k -> 52924k
    Post-IPA-Leak: 49244k -> 49245k
    Post-IPA-Overhead: 7011k -> 7011k

comparing PR rtl-optimization/28071 testcase compilation at -O2 level:
    Overall memory needed: 358281k -> 358959k
    Peak memory use before GGC: 75422k -> 75423k
    Peak memory use after GGC: 70436k -> 70437k
    Maximum of released memory in single GGC run: 32245k
    Garbage: 246837k -> 246837k
    Leak: 16245k -> 16245k
    Overhead: 38881k -> 38881k
    GGC runs: 116
    Pre-IPA-Garbage: 91835k -> 91836k
    Pre-IPA-Leak: 77069k -> 77070k
    Pre-IPA-Overhead: 11353k -> 11353k
    Post-IPA-Garbage: 91835k -> 91836k
    Post-IPA-Leak: 77069k -> 77070k
    Post-IPA-Overhead: 11353k -> 11353k

comparing PR rtl-optimization/28071 testcase compilation at -O3 -fno-tree-pre -fno-tree-fre level:
    Overall memory needed: 1312341k -> 1313899k
    Peak memory use before GGC: 136584k
    Peak memory use after GGC: 127941k -> 127942k
    Maximum of released memory in single GGC run: 59911k
    Garbage: 371407k -> 371403k
    Leak: 24376k -> 24376k
    Overhead: 48461k -> 48461k
    GGC runs: 103
    Pre-IPA-Garbage: 91835k -> 91836k
    Pre-IPA-Leak: 77069k -> 77070k
    Pre-IPA-Overhead: 11353k -> 11353k
    Post-IPA-Garbage: 91835k -> 91836k
    Post-IPA-Leak: 77069k -> 77070k
    Post-IPA-Overhead: 11353k -> 11353k

Head of the ChangeLog is:

--- /usr/src/SpecTests/sandbox-britten-memory/x86_64/mem-result/ChangeLog	2007-12-17 18:04:39.000000000 +0000
+++ /usr/src/SpecTests/sandbox-britten-memory/gcc/gcc/ChangeLog	2008-01-03 22:35:41.000000000 +0000
@@ -1,3 +1,377 @@
+2008-01-03  Sebastian Pop  <sebastian.pop@amd.com>
+
+	PR tree-optimization/34458
+	* tree-data-ref.c (dd_int_cst_value): New.
+	(initialize_matrix_A, compute_overlap_steps_for_affine_1_2,
+	analyze_subscript_affine_affine, build_classic_dist_vector_1,
+	add_multivariate_self_dist, init_omega_eq_with_af): Use 
+	dd_int_cst_value instead of int_cst_value.
+
+2008-01-03  Jan Hubicka  <jh@suse.cz>
+
+	PR tree-optimization/31081
+	* tree-inline.c (remap_ssa_name): Initialize uninitialized SSA vars to
+	0 when inlining and not inlining to first basic block.
+	(remap_decl): When var is initialized to 0, don't set default_def.
+	(expand_call_inline): Set entry_bb.
+	* tree-inline.h (copy_body_data): Add entry_bb.
+
+2008-01-03  Jakub Jelinek  <jakub@redhat.com>
+
+	PR c++/34619
+	* cgraphunit.c (cgraph_build_static_cdtor): set_cfun back to NULL
+	before returning.
+
+	PR tree-optimization/29484
+	* tree-inline.c (inline_forbidden_p_2): New function.
+	(inline_forbidden_p): Disallow inlining if some static var
+	has an address of a local LABEL_DECL in its initializer.
+	* doc/extend.texi (Labels as Values): Document &&foo behaviour
+	vs. inlining.
+
+2008-01-03  Sebastian Pop  <sebastian.pop@amd.com>
+
+	PR tree-optimization/34635
+	* tree-data-ref.c (add_other_self_distances): Make sure that the
+	evolution step is constant.
+
+2008-01-03  Jakub Jelinek  <jakub@redhat.com>
+
+	PR middle-end/34608
+	* omp-low.c (expand_omp_parallel): Purge dead EH edges in the
+	child fn.
+
+2008-01-02  Richard Sandiford  <rsandifo@nildram.co.uk>
+
+	* tree-sra.c (scalarize_init): Insert the generate_element_init
+	statements after the generate_element_zero statements.
+
+2008-01-02  Richard Guenther  <rguenther@suse.de>
+
+	PR middle-end/34093
+	PR middle-end/31976
+	* tree-ssa-operands.c (ssa_operand_alloc): Also allocate a buffer
+	for very large number of operands instead of ICEing.
+
+2008-01-02  Arthur Norman <acn1@cam.ac.uk>
+
+	PR 34013
+	* gcc/config/i386/i386.c: (ix86_expand_prologue): Save red-zone
+	while stack probing.
+
+2008-01-01  Douglas Gregor  <doug.gregor@gmail.com>
+
+	* c-opts.c (sanitize_cpp_opts): Don't warn about "long long" when
+       in C++0x mode.
+
+2008-01-01  Volker Reichelt  <v.reichelt@netcologne.de>
+
+	PR libmudflap/26442
+	* tree-mudflap.c (mx_register_decls): Guard warning by
+	!DECL_ARTIFICIAL check.
+
+2008-01-01  Jakub Jelinek  <jakub@redhat.com>
+
+	* config/i386/sse.md (sse5_pperm, sse5_pperm_pack_v2di_v4si,
+	sse5_pperm_pack_v4si_v8hi, sse5_pperm_pack_v8hi_v16qi,
+	sse5_perm<mode>): Fix constraints.
+
+2007-12-31  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
+
+	PR driver/33772
+	* collect2.c (SHLIB_SUFFIX): Define if not defined.
+	(write_c_file_stat): Use SHLIB_SUFFIX.
+	* som.h (SHLIB_SUFFIX): Define.
+	* doc/tm.texi (SHLIB_SUFFIX): Document.
+
+2007-12-29  Uros Bizjak  <ubizjak@gmail.com>
+
+	* config/i386/sse.md ("*divv4sf3"): Rename to "sse_divv4sf3".
+	("*sse_rsqrtv4sf2"): Export.
+	("*sse_sqrtv4sf2"): Ditto.
+	* config/i386/i386.c (enum ix86_builtins) [IX86_BUILTIN_RSQRTPS_NR,
+	IX86_BUILTIN_SQRTPS_NR]: New constants.
+	(struct builtin_description) [IX86_BUILTIN_DIVPS]: Use
+	CODE_FOR_sse_divv4sf3.
+	[IX86_BUILTIN_SQRTPS]: Use CODE_FOR_sse_sqrtv4sf2.
+	[IX86_BUILTIN_SQRTPS_NR]: New.
+	[IX86_BUILTIN_RSQRTPS_NR]: Ditto.
+	(ix86_init_mmx_sse_builtins): Initialize __builtin_ia32_rsqrtps_nr and
+	__builtin_ia32_sqrtps_nr.
+	(ix86_builtin_vectorized_function): Convert BUILT_IN_SQRTF to
+	IX86_BUILTIN_SQRTPS_NR.
+	(ix86_builtin_reciprocal): Convert IX86_BUILTIN_SQRTPS_NR to
+	IX86_BUILTIN_RSQRTPS_NR.
+
+2007-12-27  Brian Dessent  <brian@dessent.net>
+
+	* doc/invoke.texi (Optimize Options): Add missing opindex for
+	-fno-toplevel-reorder.
+
+2007-12-27  Dorit Nuzman  <dorit@il.ibm.com>
+
+	PR tree-optimization/34591
+	* tree-vect-trasnform.c (vect_estimate_min_profitable_iters): Skip
+	stmts (including reduction stmts) that are not live.
+
+2007-12-27  Jakub Jelinek  <jakub@redhat.com>
+
+	PR target/34281
+	* config/arm/arm.c (arm_setup_incoming_varargs): If last named
+	argument needs double word alignment and cum->nregs is odd, account
+	for the inserted padding.
+
+	PR debug/34535
+	* tree-mudflap.c (mf_make_builtin): Make decl artificial
+	and don't emit debug info for it.
+
+2007-12-26  Anatoly Sokolov <aesok@post.ru>
+
+	* config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): Move AT90USB82 
+	and AT90USB162 devices from 'avr5' to 'avr35' architecture.
+	(ASM_SPEC): Add 'avr35' architecture.
+	* config/avr/avr.c (avr_mcu_types): Move AT90USB82 and AT90USB162 
+	devices from 'avr5' to 'avr35' architecture.
+	(avr_arch_types): Add "avr23" entries.
+	(avr_arch): Add 'ARCH_AVR35'.
+	* config/avr/t-avr (MULTILIB_OPTIONS, MULTILIB_DIRNAMES): Add 'avr35'.
+	(MULTILIB_MATCHES): Move AT90USB82 and AT90USB162 devices from 'avr5'
+	to 'avr35' architecture.
+
+2007-12-22  David Daney  <ddaney@avtrex.com>
+
+	* doc/install.texi (disable-libgcj-bc): Document new option.
+
+2007-12-21  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
+
+	* config/pa/pa.c (hppa_legitimize_address): Use INT14_OK_STRICT in
+	mask selection.
+
+	PR target/34525
+	* pa.c (legitimize_pic_address): Emit insn to load function label
+	forced to memory.
+
+2007-12-21  Andrew Pinski  <pinskia@gmail.com>
+	Rask Ingemann Lambertsen  <rask@sygehus.dk>
+
+	PR target/8835
+	* config/mcore/mcore.c (mcore_function_value): Call promote_mode
+	instead of PROMOTE_MODE.
+
+2007-12-21  Sebastian Pop  <sebastian.pop@amd.com>
+
+	* lambda-code.c (lambda_loopnest_to_gcc_loopnest): Fix typo.
+
+2007-12-21  Sebastian Pop  <sebastian.pop@amd.com>
+
+	* tree-data-ref.c (signed_type_for_types): New.
+	(affine_fn_op): Use signed_type_for_types and signed_type_for instead
+	of long_integer_type_node.
+	(analyze_ziv_subscript): Same.
+	(analyze_siv_subscript_cst_affine): Same.
+	(analyze_miv_subscript): Same.
+	(omega_setup_subscript): Same.
+
+2007-12-21  Richard Sandiford  <rsandifo@nildram.co.uk>
+
+	* config/mips/mips.c (mips_emit_loadgp): Replace gen_* calls with
+	separate gen_*_si and gen_*_di calls.  Pass pic_offset_table_rtx
+	as the first argument.
+	* config/mips/mips.md (loadgp_newabi, loadgp_absolute)
+	(loadgp_rtp): Rename to...
+	(loadgp_newabi_<mode>, loadgp_absolute<mode>, loadgp_rtp<mode>):
+	...these.  Add modes to all operands.  Add the target register
+	as an operand.  Combine loadgp_rtp<mode> with its splitter.
+
+2007-12-20  Bob Wilson  <bob.wilson@acm.org>
+
+	* config/xtensa/xtensa.md (fix_return_addr): Remove.
+	* config/xtensa/xtensa-protos.h (xtensa_initialize_trampoline): New.
+	(xtensa_trampoline_template): New.
+	* config/xtensa/xtensa.c (MIN_FRAME_SIZE): Moved here from xtensa.h.
+	(xtensa_return_addr): Expand to standard Xtensa insns instead of
+	fix_return_addr.  Get high bits from a local label.
+	(xtensa_trampoline_template): New function with code moved from
+	TRAMPOLINE_TEMPLATE in xtensa.h.  Use L32R instead of CALL0 except
+	when using CONST16 or absolute-mode literals.
+	(xtensa_initialize_trampoline): New function with code moved from
+	INITIALIZE_TRAMPOLINE in xtensa.h.  Use different offsets depending
+	on which trampoline version is used.
+	* config/xtensa/lib2funcs.S (TRAMPOLINE_SIZE): Add comment.
+	* config/xtensa/xtensa.h (TARGET_ABSOLUTE_LITERALS): Define.
+	(MIN_FRAME_SIZE): Moved to xtensa.c.
+	(TRAMPOLINE_TEMPLATE): Use xtensa_trampoline_template.
+	(TRAMPOLINE_SIZE): Two versions of the trampoline have different sizes.
+	(INITIALIZE_TRAMPOLINE): Use xtensa_initialize_trampoline.
+	* config/xtensa/ieee754-df.S (XCHAL_NO_MUL): Define.
+	(__muldf3): Use CALL12 instead of CALL0 to invoke .Lmul_mulsi3
+	helper when not using the CALL0 ABI.  Change .Lmul_mulsi3 to match.
+	* config/xtensa/lib1funcs.asm (__umulsidi3): Likewise.
+	* config/xtensa/ieee754-sf.S (__mulsf3): Likewise.
+	
+2007-12-20  Jakub Jelinek  <jakub@redhat.com>
+
+	PR c++/34459
+	* tree-ssa-dse.c (dse_optimize_stmt): Don't eliminate store if
+	USE_STMT not only stores into the same object as STMT, but might
+	read it too.
+
+2007-12-19  Sebastian Pop  <sebastian.pop@amd.com>
+
+	PR tree-optimization/34413
+	* tree-data-ref.c (affine_fn_op, analyze_ziv_subscript,
+	analyze_siv_subscript_cst_affine, analyze_miv_subscript,
+	omega_setup_subscript): Use long_integer_type_node instead of
+	integer_type_node.
+
+2007-12-19  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
+
+	PR target/34525
+	* pa.c (legitimize_pic_address): Force function labels into memory.
+
+2007-12-19  Zdenek Dvorak  <ook@ucw.cz>
+
+	* omp-low.c (build_omp_regions_1): Recognition of combined parallels
+	moved ...
+	(expand_omp): ... here.
+
+2007-12-19  Zdenek Dvorak  <ook@ucw.cz>
+
+	PR tree-optimization/34355
+	* tree-parloops.c (take_address_of): Handle expresions
+	instead of just variables.
+	(eliminate_local_variables_1): Force whole invariant
+	address to ssa name.
+
+2007-12-19  Alexander Monakov  <amonakov@ispras.ru>
+	    Revital Eres  <eres@il.ibm.com>
+
+	* modulo-sched.c (generate_reg_moves): Insert the reg-moves
+	right before the notes which precedes the insn, if they exists.
+	(loop_canon_p): Add dump info.
+	(sms_schedule): Likewise.
+
+2007-12-19  Richard Sandiford  <rsandifo@nildram.co.uk>
+
+	* tree.h (set_decl_incoming_rtl): Add a by_reference_p parameter.
+	* emit-rtl.c (set_decl_incoming_rtl): Likewise.  Don't set the
+	rtl's register attributes when the parameter is true.
+	* function.c (assign_parms_unsplit_complex, assign_parms)
+	(expand_function_start): Update calls to set_decl_incoming_rtl.
+
+2007-12-19  Richard Sandiford  <rsandifo@nildram.co.uk>
+
+	* rtl.def (SUBREG): Update comments.
+	* rtl.h (reg_attrs): Be explicit about the type of offset used.
+	(set_reg_attrs_from_mem): Rename to...
+	(set_reg_attrs_from_value): ...this.
+	(adjust_reg_mode, byte_lowpart_offset): Declare.
+	* emit-rtl.c (byte_lowpart_offset): New function.
+	(update_reg_offset): Remove special offset handling for big-endian
+	targets.
+	(gen_rtx_REG_offset, gen_reg_rtx_offset): Explicitly say that the
+	offset parameter is added to REG_OFFSET.
+	(adjust_reg_mode): New function.
+	(set_reg_attrs_for_mem): Rename to...
+	(set_reg_attrs_for_value): ...this and generalize to all values.
+	If the register is a lowpart of the value, adjust the offset
+	accordingly.
+	(set_reg_attrs_for_parm): Update after the above renaming.
+	(set_reg_attrs_for_decl_rtl): New function, split out from
+	set_decl_incoming_rtl.  Set the offset of plain REGs to the
+	offset of the REG's mode from the decl's.  Assert that all
+	subregs are lowparts and handle their inner registers in the
+	same way as plain REGs.
+	(set_decl_rtl, set_incoming_decl_rtl): Use reg_attrs_for_decl_rtl.
+	(subreg_lowpart_offset): Explicitly say that the returned offset
+	is a SUBREG_BYTE.
+	* combine.c (do_SUBST_MODE, try_combine, undo_all): Use adjust_reg_mode
+	instead of PUT_MODE.
+	* final.c (alter_subreg): Fix/update argument to gen_rtx_REG_offset.
+	* config/ia64/ia64.c (ia64_expand_load_address): Likewise.
+	* regclass.c (reg_scan_mark_refs): Use set_reg_attrs_from_value.
+	* reload.c (find_reloads_subreg_address): Call set_mem_offset
+	when offseting a MEM.
+	* var-tracking.c (offset_valid_for_tracked_p): Delete.
+	(mode_for_reg_attrs): Replace with...
+	(track_loc_p): ...this new function.  Return the mode and offset
+	to the caller, checking that the latter is valid.  If the rtx is
+	a paradoxical lowpart of the decl, use the decl's mode instead.
+	Do the same when storing to a register that contains the entire decl.
+	(var_lowpart): Use byte_lowpart_offset rather than
+	subreg_lowpart_offset when adjusting the offset attribute.
+	(count_uses, add_uses, add_stores): Use track_reg_p instead of
+	REG_EXPR, MEM_EXPR, REG_OFFSET, INT_MEM_OFFSET, track_expr_p,
+	offset_valid_for_tracked_p and mode_for_reg_attrs.  Generate
+	lowparts for MEMs as well as REGs.
+	(vt_add_function_parameters): When obtaining the information from
+	the decl_rtl, adjust the offset to match incoming.  Use track_loc_p
+	and var_lowpart.
+
+2007-12-18  Sebastian Pop  <sebastian.pop@amd.com>
+
+	PR tree-optimization/34123
+	* lambda-code.c (can_duplicate_iv): New.
+	(cannot_convert_modify_to_perfect_nest): New.
+	(cannot_convert_bb_to_perfect_nest): New.
+	(can_convert_to_perfect_nest): Split up.
+
+2007-12-18  David Daney  <ddaney@avtrex.com>
+
+	* config/mips/mips.md (clear_hazard): Use PRINT_OPERAND punctuation
+	instead of .set push and .set pop.
+
+2007-12-18  Rask Ingemann Lambertsen  <rask@sygehus.dk>
+
+	PR target/33474
+	* config/bfin/bfin.c (bfin_adjust_cost): Dig into PARALLELs to find
+	the SET.
+
+2007-12-18  Razya Ladelsky <razya@il.ibm.com>
+
+	* tree-parloops.c (reduiction_info): Change documentation of
+	reduction_initial field.
+	(initialize_reductions): Remove creation of reduction_initial variable.
+	(create_loads_for_reductions): don't join reduction_initial to
+	the loaded value.
+
+2007-12-18  Kaz Kylheku  <kaz@zeugmasystems.com>
+
+	PR rtl-optimization/34456
+	* resource.c (mark_set_resources): Use regs_invalidated_by_call
+	rather than call_used_regs and global_regs.
+
+2007-12-18  Jakub Jelinek  <jakub@redhat.com>
+
+	PR rtl-optimization/34490
+	* simplify-rtx.c (simplify_const_relational_operation): If !sign,
+	don't reduce mmin/mmax using num_sign_bit_copies.
+
+2007-12-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
+
+	* doc/install.texi: Change recommended MPFR from 2.2.1 > 2.3.0.
+
+2007-12-17  Andreas Schwab  <schwab@suse.de>
+
+	* doc/invoke.texi (Warning Options): Use @itemx.
+
+2007-12-17  Dorit Nuzman  <dorit@il.ibm.com>
+
+	* tree-vectorizer.h (verbosity_levels): Add new verbosity level
+	REPORT_COST.
+	* tree-vect-transform.c (vect_estimate_min_profitable_iters): Change
+	verbosity level to REPORT_COST.
+	(vect_model_reduction_cost): Likewise.
+	(vect_model_induction_cost): Likewise.
+	(vect_model_simple_cost): likewise.
+	(vect_model_store_cost): likewise.
+	(vect_model_load_cost): likewise.
+	(conservative_cost_threshold): Likewise. Remove print.
+
+2007-12-17  Rask Ingemann Lambertsen  <rask@sygehus.dk>
+
+	* doc/tm.texi (TARGET_SECONDARY_RELOAD): Fix typos.
+
 2007-12-17  Jakub Jelinek  <jakub@redhat.com>
 
 	PR c/34506
@@ -6906,6 +7280,28 @@
 	* config/s390/s390.c (s390_dump_pool): Create copy of constant
 	pool entries since they might hold values that must not be shared.
 
+2007-09-10 Robert Kidd <rkidd@crhc.uiuc.edu>
+
+	* bb-reorder.c (rest_of_handler_reorder_blocks): Removed call to
+	RTL level tracer pass.
+	* passes.c (init_optimization_passes): Move pass_tracer from
+	after pass_rtl_ifcvt to after pass_dce.
+	* tracer.c: Update copyright.
+	(layout_superblocks): Remove function.
+	(mark_bb_seen): New.
+	(bb_seen_p): New.
+	(count_insns): Change to estimate instructions in a Tree-SSA
+	statement.
+	(find_trace): Use bb_seen_p.
+	(tail_duplicate): Use bb_seen_p.  Call add_phi_args_after_copy
+	after duplicate_block.
+	(tracer): Change prototype to match that of a pass execute
+	callback.
+	(gate_tracer): Rename from gate_handle_tracer.
+	(rest_of_handle_tracer): Remove function.
+	* rtl.h: Remove prototype for tracer.
+	* testsuite/gcc.dg/tree-prof/tracer-1.c: New.
+
 2007-09-10  Uros Bizjak  <ubizjak@gmail.com>
 
 	PR target/33369
--- /usr/src/SpecTests/sandbox-britten-memory/x86_64/mem-result/ChangeLog.cp	2007-12-17 18:04:39.000000000 +0000
+++ /usr/src/SpecTests/sandbox-britten-memory/gcc/gcc/cp/ChangeLog	2008-01-02 05:02:42.000000000 +0000
@@ -1,3 +1,50 @@
+2008-01-01  Douglas Gregor  <doug.gregor@gmail.com>
+
+       * parser.c (cp_parser_check_decl_spec): Don't warn about "long
+       long" in C++0x mode; change the warning to note that "long long"
+       is only unsupported in C++98 mode.
+
+2007-12-20  Jason Merrill  <jason@redhat.com>
+
+	PR c++/34111
+	* call.c (standard_conversion): Derived-to-base is considered a
+	standard conversion.
+
+2007-12-19  Jakub Jelinek  <jakub@redhat.com>
+
+	PR c++/34513
+	* parser.c (cp_parser_omp_parallel): For non-combined parallel
+	call cp_parser_statement rather than
+	cp_parser_already_scoped_statement.
+
+2007-12-18  Jason Merrill  <jason@redhat.com>
+
+	PR c++/34206
+	* pt.c (tsubst_aggr_type): Do nothing if the type already doesn't 
+	use template parms.
+	(dependent_type_p_r): Handle the domain of an array.
+
+2007-12-18  Douglas Gregor  <doug.gregor@gmail.com>
+            Jakub Jelinek  <jakub@redhat.com>
+	
+	PR c++/32565
+	PR c++/33943
+	PR c++/33965
+	* pt.c (template_template_parm_bindings_ok_p): New; verifies
+	bindings of template template parameters after all template
+	arguments have been deduced.
+	(coerce_template_parms): Don't complain when COMPLAIN doesn't
+	include tf_error.
+	(fn_type_unification): Use template_template_parm_bindings_ok_p. 
+	(unify): Deal with variadic, bound template template parameters. 
+	(get_class_bindings): Use template_template_parm_bindings_ok_p. 
+
+2007-12-18  Jakub Jelinek  <jakub@redhat.com>
+
+	PR c++/34488
+	* decl.c (grokdeclarator): Reject friend sfk_constructor
+	FUNCTION_TYPE.
+
 2007-12-17  Jakub Jelinek  <jakub@redhat.com>
 
 	PR c/34506


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