This is the mail archive of the gcc-regression@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

A recent patch increased GCC's memory consumption!


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: 8151k
    Peak memory use before GGC: 1097k
    Peak memory use after GGC: 995k
    Maximum of released memory in single GGC run: 129k
    Garbage: 238k
    Leak: 952k
    Overhead: 80k
    GGC runs: 2
Testing has produced no results
Testing has produced no results

comparing empty function compilation at -O0 -g level:
    Overall memory needed: 8167k
    Peak memory use before GGC: 1125k
    Peak memory use after GGC: 1031k
    Maximum of released memory in single GGC run: 128k
    Garbage: 240k
    Leak: 985k
    Overhead: 84k
    GGC runs: 4
Testing has produced no results
Testing has produced no results

comparing empty function compilation at -O1 level:
    Overall memory needed: 8203k
    Peak memory use before GGC: 1097k
    Peak memory use after GGC: 995k
    Maximum of released memory in single GGC run: 131k
    Garbage: 240k
    Leak: 953k
    Overhead: 81k
    GGC runs: 2
    Pre-IPA-Garbage: 227k
    Pre-IPA-Leak: 955k
    Pre-IPA-Overhead: 79k
    Post-IPA-Garbage: 227k
    Post-IPA-Leak: 955k
    Post-IPA-Overhead: 79k

comparing empty function compilation at -O2 level:
    Overall memory needed: 8223k
    Peak memory use before GGC: 1098k
    Peak memory use after GGC: 995k
    Maximum of released memory in single GGC run: 134k
    Garbage: 243k
    Leak: 954k
    Overhead: 81k
    GGC runs: 2
    Pre-IPA-Garbage: 227k
    Pre-IPA-Leak: 956k
    Pre-IPA-Overhead: 79k
    Post-IPA-Garbage: 227k
    Post-IPA-Leak: 956k
    Post-IPA-Overhead: 79k

comparing empty function compilation at -O3 level:
    Overall memory needed: 8223k
    Peak memory use before GGC: 1098k
    Peak memory use after GGC: 995k
    Maximum of released memory in single GGC run: 134k
    Garbage: 243k
    Leak: 954k
    Overhead: 81k
    GGC runs: 2
    Pre-IPA-Garbage: 227k
    Pre-IPA-Leak: 956k
    Pre-IPA-Overhead: 79k
    Post-IPA-Garbage: 227k
    Post-IPA-Leak: 956k
    Post-IPA-Overhead: 79k

comparing combine.c compilation at -O0 level:
    Overall memory needed: 22699k
    Peak memory use before GGC: 7810k
    Peak memory use after GGC: 7187k
    Maximum of released memory in single GGC run: 1550k
    Garbage: 37932k
    Leak: 5515k
    Overhead: 4649k
    GGC runs: 372
Testing has produced no results
Testing has produced no results

comparing combine.c compilation at -O0 -g level:
    Overall memory needed: 24707k
    Peak memory use before GGC: 9648k
    Peak memory use after GGC: 8955k
    Maximum of released memory in single GGC run: 1838k
    Garbage: 38271k
    Leak: 8380k
    Overhead: 5276k
    GGC runs: 343
Testing has produced no results
Testing has produced no results

comparing combine.c compilation at -O1 level:
  Amount of produced GGC garbage increased from 51449k to 52138k, overall 1.34%
    Overall memory needed: 32935k -> 32939k
    Peak memory use before GGC: 16345k
    Peak memory use after GGC: 16161k
    Maximum of released memory in single GGC run: 1362k -> 1382k
    Garbage: 51449k -> 52138k
    Leak: 5660k
    Overhead: 5777k -> 5832k
    GGC runs: 444
    Pre-IPA-Garbage: 13922k
    Pre-IPA-Leak: 17182k
    Pre-IPA-Overhead: 2129k
    Post-IPA-Garbage: 13922k
    Post-IPA-Leak: 17182k
    Post-IPA-Overhead: 2129k

comparing combine.c compilation at -O2 level:
  Amount of produced GGC garbage increased from 71179k to 72059k, overall 1.24%
    Overall memory needed: 35731k
    Peak memory use before GGC: 16447k
    Peak memory use after GGC: 16280k
    Maximum of released memory in single GGC run: 1317k
    Garbage: 71179k -> 72059k
    Leak: 5986k
    Overhead: 8077k -> 8146k
    GGC runs: 511 -> 512
    Pre-IPA-Garbage: 14079k
    Pre-IPA-Leak: 17247k
    Pre-IPA-Overhead: 2144k
    Post-IPA-Garbage: 14079k
    Post-IPA-Leak: 17247k
    Post-IPA-Overhead: 2144k

comparing combine.c compilation at -O3 level:
  Amount of produced GGC garbage increased from 88677k to 89590k, overall 1.03%
    Overall memory needed: 38723k
    Peak memory use before GGC: 16616k
    Peak memory use after GGC: 16293k
    Maximum of released memory in single GGC run: 2041k -> 2069k
    Garbage: 88677k -> 89590k
    Leak: 6039k
    Overhead: 10002k -> 10073k
    GGC runs: 544 -> 546
    Pre-IPA-Garbage: 14085k
    Pre-IPA-Leak: 17258k
    Pre-IPA-Overhead: 2145k
    Post-IPA-Garbage: 14085k
    Post-IPA-Leak: 17258k
    Post-IPA-Overhead: 2145k

comparing insn-attrtab.c compilation at -O0 level:
    Overall memory needed: 137439k
    Peak memory use before GGC: 57000k
    Peak memory use after GGC: 31457k
    Maximum of released memory in single GGC run: 33256k
    Garbage: 128611k
    Leak: 8383k
    Overhead: 14368k
    GGC runs: 293
Testing has produced no results
Testing has produced no results

comparing insn-attrtab.c compilation at -O0 -g level:
    Overall memory needed: 138703k
    Peak memory use before GGC: 58142k
    Peak memory use after GGC: 32599k
    Maximum of released memory in single GGC run: 33256k
    Garbage: 128862k
    Leak: 10058k
    Overhead: 14724k
    GGC runs: 288
Testing has produced no results
Testing has produced no results

comparing insn-attrtab.c compilation at -O1 level:
    Overall memory needed: 142971k
    Peak memory use before GGC: 56212k
    Peak memory use after GGC: 49987k
    Maximum of released memory in single GGC run: 23977k
    Garbage: 206428k -> 206485k
    Leak: 9276k
    Overhead: 24742k -> 24747k
    GGC runs: 315
    Pre-IPA-Garbage: 50356k
    Pre-IPA-Leak: 49677k
    Pre-IPA-Overhead: 7543k
    Post-IPA-Garbage: 50356k
    Post-IPA-Leak: 49677k
    Post-IPA-Overhead: 7543k

comparing insn-attrtab.c compilation at -O2 level:
    Overall memory needed: 184527k -> 184563k
    Peak memory use before GGC: 56854k
    Peak memory use after GGC: 51574k
    Maximum of released memory in single GGC run: 22909k
    Garbage: 247266k -> 247345k
    Leak: 10363k
    Overhead: 30401k -> 30406k
    GGC runs: 346 -> 347
    Pre-IPA-Garbage: 50428k
    Pre-IPA-Leak: 49681k
    Pre-IPA-Overhead: 7550k
    Post-IPA-Garbage: 50428k
    Post-IPA-Leak: 49681k
    Post-IPA-Overhead: 7550k

comparing insn-attrtab.c compilation at -O3 level:
    Overall memory needed: 190651k -> 190263k
    Peak memory use before GGC: 68037k -> 68033k
    Peak memory use after GGC: 62281k
    Maximum of released memory in single GGC run: 23405k
    Garbage: 275121k -> 275217k
    Leak: 10400k
    Overhead: 32191k -> 32199k
    GGC runs: 348 -> 350
    Pre-IPA-Garbage: 50428k
    Pre-IPA-Leak: 49681k
    Pre-IPA-Overhead: 7550k
    Post-IPA-Garbage: 50428k
    Post-IPA-Leak: 49681k
    Post-IPA-Overhead: 7550k

comparing Gerald's testcase PR8361 compilation at -O0 level:
    Overall memory needed: 148408k -> 148416k
    Peak memory use before GGC: 84242k
    Peak memory use after GGC: 83407k
    Maximum of released memory in single GGC run: 16731k
    Garbage: 200926k
    Leak: 48024k
    Overhead: 23992k
    GGC runs: 417
    Pre-IPA-Garbage: 109791k
    Pre-IPA-Leak: 71152k
    Pre-IPA-Overhead: 12099k
    Post-IPA-Garbage: 109791k
    Post-IPA-Leak: 71152k
    Post-IPA-Overhead: 12099k

comparing Gerald's testcase PR8361 compilation at -O0 -g level:
    Overall memory needed: 169708k -> 169712k
    Peak memory use before GGC: 96213k
    Peak memory use after GGC: 95248k
    Maximum of released memory in single GGC run: 17546k
    Garbage: 206565k
    Leak: 69707k
    Overhead: 28969k
    GGC runs: 390
    Pre-IPA-Garbage: 110434k
    Pre-IPA-Leak: 84433k
    Pre-IPA-Overhead: 14675k
    Post-IPA-Garbage: 110434k
    Post-IPA-Leak: 84433k
    Post-IPA-Overhead: 14675k

comparing Gerald's testcase PR8361 compilation at -O1 level:
  Amount of produced GGC garbage increased from 290109k to 290923k, overall 0.28%
    Overall memory needed: 122812k -> 122808k
    Peak memory use before GGC: 84151k
    Peak memory use after GGC: 83317k
    Maximum of released memory in single GGC run: 16272k
    Garbage: 290109k -> 290923k
    Leak: 47431k -> 47432k
    Overhead: 29317k -> 29395k
    GGC runs: 513 -> 514
    Pre-IPA-Garbage: 155013k
    Pre-IPA-Leak: 87948k
    Pre-IPA-Overhead: 17503k
    Post-IPA-Garbage: 155013k
    Post-IPA-Leak: 87948k
    Post-IPA-Overhead: 17503k

comparing Gerald's testcase PR8361 compilation at -O2 level:
  Amount of produced GGC garbage increased from 355257k to 356275k, overall 0.29%
    Overall memory needed: 124564k
    Peak memory use before GGC: 84382k -> 84336k
    Peak memory use after GGC: 83500k
    Maximum of released memory in single GGC run: 16273k
    Garbage: 355257k -> 356275k
    Leak: 48431k -> 48430k
    Overhead: 36160k -> 36259k
    GGC runs: 591 -> 592
    Pre-IPA-Garbage: 157657k
    Pre-IPA-Leak: 88098k
    Pre-IPA-Overhead: 17796k
    Post-IPA-Garbage: 157657k
    Post-IPA-Leak: 88098k
    Post-IPA-Overhead: 17796k

comparing Gerald's testcase PR8361 compilation at -O3 level:
  Amount of produced GGC garbage increased from 381361k to 382399k, overall 0.27%
    Overall memory needed: 127260k -> 127256k
    Peak memory use before GGC: 85615k -> 85619k
    Peak memory use after GGC: 84751k
    Maximum of released memory in single GGC run: 16624k
    Garbage: 381361k -> 382399k
    Leak: 48886k
    Overhead: 38401k -> 38500k
    GGC runs: 612 -> 613
    Pre-IPA-Garbage: 160395k
    Pre-IPA-Leak: 88381k
    Pre-IPA-Overhead: 18046k
    Post-IPA-Garbage: 160395k
    Post-IPA-Leak: 88381k
    Post-IPA-Overhead: 18046k

comparing PR rtl-optimization/28071 testcase compilation at -O0 level:
    Overall memory needed: 380437k
    Peak memory use before GGC: 101210k
    Peak memory use after GGC: 56863k
    Maximum of released memory in single GGC run: 50583k
    Garbage: 178904k
    Leak: 6099k
    Overhead: 30782k
    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: 381241k
    Peak memory use before GGC: 101840k
    Peak memory use after GGC: 57494k
    Maximum of released memory in single GGC run: 50582k
    Garbage: 179019k
    Leak: 7829k
    Overhead: 31215k
    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: 437583k -> 437659k
    Peak memory use before GGC: 78686k
    Peak memory use after GGC: 70437k
    Maximum of released memory in single GGC run: 37594k
    Garbage: 234297k
    Leak: 15903k
    Overhead: 35589k
    GGC runs: 105
    Pre-IPA-Garbage: 52925k
    Pre-IPA-Leak: 49233k
    Pre-IPA-Overhead: 7120k
    Post-IPA-Garbage: 52925k
    Post-IPA-Leak: 49233k
    Post-IPA-Overhead: 7120k

comparing PR rtl-optimization/28071 testcase compilation at -O2 level:
    Overall memory needed: 357379k -> 357043k
    Peak memory use before GGC: 75424k
    Peak memory use after GGC: 70438k
    Maximum of released memory in single GGC run: 32243k
    Garbage: 245000k
    Leak: 16075k
    Overhead: 38757k
    GGC runs: 116
    Pre-IPA-Garbage: 91836k
    Pre-IPA-Leak: 77291k
    Pre-IPA-Overhead: 11793k
    Post-IPA-Garbage: 91836k
    Post-IPA-Leak: 77291k
    Post-IPA-Overhead: 11793k

comparing PR rtl-optimization/28071 testcase compilation at -O3 -fno-tree-pre -fno-tree-fre level:
    Overall memory needed: 1196107k -> 1197947k
    Peak memory use before GGC: 136585k
    Peak memory use after GGC: 127943k
    Maximum of released memory in single GGC run: 59911k
    Garbage: 371518k
    Leak: 24889k
    Overhead: 49888k
    GGC runs: 103
    Pre-IPA-Garbage: 91836k
    Pre-IPA-Leak: 77291k
    Pre-IPA-Overhead: 11793k
    Post-IPA-Garbage: 91836k
    Post-IPA-Leak: 77291k
    Post-IPA-Overhead: 11793k

Head of the ChangeLog is:

--- /usr/src/SpecTests/sandbox-britten-memory/x86_64/mem-result/ChangeLog	2008-02-29 03:51:37.000000000 +0000
+++ /usr/src/SpecTests/sandbox-britten-memory/gcc/gcc/ChangeLog	2008-02-29 19:50:47.000000000 +0000
@@ -1,3 +1,37 @@
+2008-02-29  Paul Brook  <paul@codesourcery.com>
+
+	* config/arm/arm.md (arm_addsi3): Add r/k/n alternative.
+
+2008-02-29  Paul Brook  <paul@codesourcery.com>
+
+	* config/arm/ieee754-df.S (muldf3): Use RET macros.
+
+2008-02-29  Richard Guenther  <rguenther@suse.de>
+
+	* tree-ssa-pre.c (get_sccvn_value): Create missing VNs via
+	vn_lookup_or_add.
+	* tree-ssa-sccnv.c (visit_reference_op_store): Use the rhs
+	value for comparing for a store match.
+	(simplify_unary_expression): Do nothing for SSA_NAMEs.
+	(try_to_simplify): Do not do a full-blown reference lookup.
+
+2008-02-29  Kaz Kojima  <kkojima@gcc.gnu.org>
+
+	* config/sh/sh.c (sh_scalar_mode_supported_p): New function.
+	(TARGET_SCALAR_MODE_SUPPORTED_P): Define.
+
+	* config/sh/sh.h (OVERRIDE_OPTIONS): Don't warn for profiling.
+
+2008-02-29  Sebastian Pop  <sebastian.pop@amd.com>
+
+	* tree-loop-linear.c (try_interchange_loops): Compare memory access
+	strides against cache sizes.
+
+2008-02-29  Kaz Kojima  <kkojima@gcc.gnu.org>
+
+	* config/sh/sh.c (sh_secondary_reload): Handle loading a float
+	constant to fpul.
+
 2008-02-28  Richard Sandiford  <rsandifo@nildram.co.uk>
 
 	* simplify-rtx.c (simplify_unary_operation_1): Extend the handling


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.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]