A recent patch increased GCC's memory consumption!
gcctest@suse.de
gcctest@suse.de
Wed Jun 8 11:49:00 GMT 2005
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 combine.c compilation at -O0 level:
Overall memory needed: 25308k
Peak memory use before GGC: 9665k
Peak memory use after GGC: 8978k
Maximum of released memory in single GGC run: 2790k
Garbage: 42282k
Leak: 6723k
Overhead: 5888k
GGC runs: 328
comparing combine.c compilation at -O1 level:
Overall memory needed: 27840k -> 27820k
Peak memory use before GGC: 9116k
Peak memory use after GGC: 8758k
Maximum of released memory in single GGC run: 2138k
Garbage: 63282k
Leak: 7111k
Overhead: 8035k
GGC runs: 525
comparing combine.c compilation at -O2 level:
Overall memory needed: 24868k -> 24872k
Peak memory use before GGC: 18290k
Peak memory use after GGC: 18109k
Maximum of released memory in single GGC run: 2524k
Garbage: 86557k -> 86495k
Leak: 7098k
Overhead: 11193k -> 11188k
GGC runs: 485
comparing combine.c compilation at -O3 level:
Amount of memory still referenced at the end of compilation increased from 7178k to 7194k, overall 0.22%
Overall memory needed: 25096k -> 25076k
Peak memory use before GGC: 18296k
Peak memory use after GGC: 18109k
Maximum of released memory in single GGC run: 3101k
Garbage: 115270k -> 115159k
Leak: 7178k -> 7194k
Overhead: 14847k -> 14838k
GGC runs: 538
comparing insn-attrtab.c compilation at -O0 level:
Overall memory needed: 85588k
Peak memory use before GGC: 73387k
Peak memory use after GGC: 45373k
Maximum of released memory in single GGC run: 37597k
Garbage: 153190k
Leak: 11550k
Overhead: 19638k
GGC runs: 268
comparing insn-attrtab.c compilation at -O1 level:
Overall memory needed: 101600k
Peak memory use before GGC: 76700k
Peak memory use after GGC: 65854k
Maximum of released memory in single GGC run: 37075k
Garbage: 304697k
Leak: 11612k
Overhead: 39365k
GGC runs: 382
comparing insn-attrtab.c compilation at -O2 level:
Overall memory needed: 158280k -> 158276k
Peak memory use before GGC: 121367k
Peak memory use after GGC: 92459k
Maximum of released memory in single GGC run: 32951k
Garbage: 402985k -> 402985k
Leak: 11452k
Overhead: 52241k -> 52241k
GGC runs: 306
comparing insn-attrtab.c compilation at -O3 level:
Overall memory needed: 158292k
Peak memory use before GGC: 121369k
Peak memory use after GGC: 92461k
Maximum of released memory in single GGC run: 32951k
Garbage: 403800k -> 403799k
Leak: 11475k
Overhead: 52370k -> 52370k
GGC runs: 311
comparing Gerald's testcase PR8361 compilation at -O0 level:
Overall memory needed: 127340k
Peak memory use before GGC: 103091k
Peak memory use after GGC: 102069k
Maximum of released memory in single GGC run: 21524k
Garbage: 247458k
Leak: 53769k
Overhead: 42886k
GGC runs: 346
comparing Gerald's testcase PR8361 compilation at -O1 level:
Overall memory needed: 121452k
Peak memory use before GGC: 112534k
Peak memory use after GGC: 100711k
Maximum of released memory in single GGC run: 20027k
Garbage: 662136k -> 662137k
Leak: 58743k
Overhead: 91321k -> 91321k
GGC runs: 514
comparing Gerald's testcase PR8361 compilation at -O2 level:
Overall memory needed: 121424k
Peak memory use before GGC: 112534k
Peak memory use after GGC: 100711k
Maximum of released memory in single GGC run: 20027k
Garbage: 758824k -> 758653k
Leak: 59626k -> 59618k
Overhead: 109579k -> 109568k
GGC runs: 595
comparing Gerald's testcase PR8361 compilation at -O3 level:
Overall memory needed: 124376k
Peak memory use before GGC: 115276k
Peak memory use after GGC: 102537k
Maximum of released memory in single GGC run: 21386k
Garbage: 815846k -> 815620k
Leak: 60868k -> 60868k
Overhead: 116743k -> 116728k
GGC runs: 601
Head of the ChangeLog is:
--- /usr/src/SpecTests/sandbox-britten-memory/x86_64/mem-result/ChangeLog 2005-06-08 07:48:42.000000000 +0000
+++ /usr/src/SpecTests/sandbox-britten-memory/gcc/gcc/ChangeLog 2005-06-08 10:45:50.000000000 +0000
@@ -1,3 +1,35 @@
+2005-06-08 Bernd Schmidt <bernd.schmidt@analog.com>
+
+ * config/bfin/bfin.c (bfin_return_in_memory): Simplify; return
+ everything larger than 8 bytes in memory.
+
+ * config/bfin/bfin.h (enum bfin_builtins): New.
+ * config/bfin/bfin.md (UNSPEC_VOLATILE_CSYNC, UNSPEC_VOLATILE_SSYNC):
+ New constants.
+ (csync, ssync): New insn patterns.
+ * config/bfin/bfin.c (bfin_init_builtins, bfin_expand_builtin):
+ New functions.
+ (def_builtin): New macro.
+ (TARGET_INIT_BUILTINS, TARGET_EXPAND_BUILTIN): Define.
+
+ From Jie Zhang <jie.zhang@analog.com>
+ * config/bfin/bfin.h (ASM_OUTPUT_ALIGN): Gas now emulates the
+ behavior of the native assembler in VDSP. So change accordingly.
+
+2005-06-08 Sebastian Pop <pop@cri.ensmp.fr>
+
+ * tree-data-ref.c (compute_estimated_nb_iterations,
+ analyze_array_indexes, compute_overlap_steps_for_affine_1_2,
+ analyze_subscript_affine_affine, find_data_references_in_loop):
+ Fixed to use chrec_contains_undetermined to test the values of
+ loop->estimated_nb_iterations.
+ * tree-ssa-loop-niter.c (estimate_numbers_of_iterations_loop):
+ Compute the estimation only when loop->estimated_nb_iterations
+ has not yet been initialized.
+ (convert_step_widening, scev_probably_wraps_p): Add a call to
+ estimate_numbers_of_iterations_loop.
+ * tree-vrp.c (execute_vrp): Don't call estimate_numbers_of_iterations.
+
2005-06-08 Eric Botcazou <ebotcazou@libertysurf.fr>
PR debug/21946
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