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]

GCC memory consumption increased by recent patch!


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


comparing combine.c compilation at -O0 level:
    Overall memory needed: 24777k
    Peak memory use before GGC: 9345k
    Peak memory use after GGC: 8659k
    Maximum of released memory in single GGC run: 2864k
    Garbage: 41727k
    Leak: 6379k
    Overhead: 5777k
    GGC runs: 329

comparing combine.c compilation at -O1 level:
    Overall memory needed: 26213k
    Peak memory use before GGC: 9233k
    Peak memory use after GGC: 8732k
    Maximum of released memory in single GGC run: 2026k
    Garbage: 66612k
    Leak: 6774k
    Overhead: 10525k
    GGC runs: 518

comparing combine.c compilation at -O2 level:
    Overall memory needed: 29529k
    Peak memory use before GGC: 12665k
    Peak memory use after GGC: 12540k
    Maximum of released memory in single GGC run: 2533k
    Garbage: 80588k
    Leak: 6600k
    Overhead: 14342k
    GGC runs: 520

comparing combine.c compilation at -O3 level:
    Overall memory needed: 20196k
    Peak memory use before GGC: 12919k
    Peak memory use after GGC: 12540k
    Maximum of released memory in single GGC run: 3347k
    Garbage: 109074k
    Leak: 7135k
    Overhead: 19205k
    GGC runs: 585

comparing insn-attrtab.c compilation at -O0 level:
    Overall memory needed: 117548k
    Peak memory use before GGC: 78061k
    Peak memory use after GGC: 45541k
    Maximum of released memory in single GGC run: 42606k
    Garbage: 159286k
    Leak: 10949k
    Overhead: 20803k
    GGC runs: 274

comparing insn-attrtab.c compilation at -O1 level:
  Overall memory allocated via mmap and sbrk increased from 128292k to 128704k, overall 0.32%
    Overall memory needed: 128292k -> 128704k
    Peak memory use before GGC: 83579k
    Peak memory use after GGC: 69298k
    Maximum of released memory in single GGC run: 40617k
    Garbage: 441383k
    Leak: 11295k
    Overhead: 77391k
    GGC runs: 406

comparing insn-attrtab.c compilation at -O2 level:
    Overall memory needed: 153544k -> 153408k
    Peak memory use before GGC: 99340k
    Peak memory use after GGC: 84460k
    Maximum of released memory in single GGC run: 41525k
    Garbage: 487922k
    Leak: 11219k
    Overhead: 85491k
    GGC runs: 342

comparing insn-attrtab.c compilation at -O3 level:
    Overall memory needed: 153672k -> 150552k
    Peak memory use before GGC: 99341k
    Peak memory use after GGC: 84462k
    Maximum of released memory in single GGC run: 41525k
    Garbage: 489113k
    Leak: 11261k
    Overhead: 85649k
    GGC runs: 349

comparing Gerald's testcase PR8361 compilation at -O0 level:
    Overall memory needed: 111088k
    Peak memory use before GGC: 86883k
    Peak memory use after GGC: 85932k
    Maximum of released memory in single GGC run: 19284k
    Garbage: 246367k
    Leak: 55491k
    Overhead: 43354k
    GGC runs: 367

comparing Gerald's testcase PR8361 compilation at -O1 level:
    Overall memory needed: 104733k
    Peak memory use before GGC: 85965k
    Peak memory use after GGC: 84929k
    Maximum of released memory in single GGC run: 18947k
    Garbage: 466109k
    Leak: 57238k
    Overhead: 67141k
    GGC runs: 550

comparing Gerald's testcase PR8361 compilation at -O2 level:
    Overall memory needed: 104805k
    Peak memory use before GGC: 85965k
    Peak memory use after GGC: 84929k
    Maximum of released memory in single GGC run: 18947k
    Garbage: 500465k
    Leak: 57818k
    Overhead: 76609k
    GGC runs: 594

comparing Gerald's testcase PR8361 compilation at -O3 level:
    Overall memory needed: 101356k
    Peak memory use before GGC: 92703k
    Peak memory use after GGC: 86223k
    Maximum of released memory in single GGC run: 19713k
    Garbage: 520396k
    Leak: 58142k
    Overhead: 78452k
    GGC runs: 578

Head of changelog is:

--- /usr/src/SpecTests/sandbox-britten-memory/x86_64/mem-result/ChangeLog	2005-01-15 08:21:31.000000000 +0000
+++ /usr/src/SpecTests/sandbox-britten-memory/gcc/gcc/ChangeLog	2005-01-15 17:52:44.000000000 +0000
@@ -1,3 +1,69 @@
+2005-01-15  David Edelsohn  <edelsohn@gnu.org>
+
+	* config/rs6000/aix52.h (CPLUSPLUS_CPP_SPEC): Revert previous change.
+
+2005-01-15  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
+
+	PR ada/19388
+	* pa.c (pa_asm_output_aligned_common): Warn if specified alignment
+	exceeds maximum alignment for global common data.
+	* pa64-hpux.h (MAX_OFILE_ALIGNMENT): Define to 32768.
+	* som.h (MAX_OFILE_ALIGNMENT): Likewise.
+
+2004-01-15  Roger Sayle  <roger@eyesopen.com>
+
+	* tree-ssa-dom.c (extract_range_from_cond): Correct condition.
+
+2004-01-15  Roger Sayle  <roger@eyesopen.com>
+
+	* harg-reg-set.h (reg_class_names): Prototype global array.
+	* regclass.c (reg_class_names): Declare here and initialize to
+	REG_CLASS_NAMES.
+	(dump_regclass): Remove local declaration of reg_class_names.
+	(regclass): Likewise.
+	* cfg.c (dump_flow_info): Likewise.
+	* ra-debug.c (reg_class_names): Likewise.
+	* regrename.c (reg_class_names): Likewise.
+	* reload.c (reg_class_names): Likewise.
+	* reload1.c (spill_failure): Likewise.
+	* config/m68hc11/m68hc11.c (reg_class_names): Likewise.
+
+2005-01-15  Ulrich Weigand  <uweigand@de.ibm.com>
+
+	* config/s390/s390.md ("reload_outti"): Remove predicate for
+	output operand.  Abort if operand is not a MEM.
+	("reload_outdi", "reload_outdf"): Likewise.
+
+2005-01-15  Marc Espie  <espie@openbsd.org>
+
+	* config.gcc (*-*-openbsd*): Set HAS_LIBC_R for OpenBSD <= 3.2.
+	(i[34567]86-*-openbsd*): Switch to ELF for OpenBSD >= 3.4.
+	* config/openbsd.h:  Fix C++ includes for native configurations.
+	Add proper OS_CPP_BUILTINS.  Fix libspec for recent OpenBSD.
+	Add trampoline support.
+	* config/i386/openbsdelf.h: New.
+
+2005-01-15  Marc Espie  <espie@openbsd.org>
+
+	* collect2.c (main): Explicitly parse -dynamic-linker option.
+
+2005-01-15  Jakub Jelinek  <jakub@redhat.com>
+
+	PR tree-optimization/19060
+	* tree-ssa-dom.c (extract_range_from_cond) <case LT_EXPR, GT_EXPR>:
+	Return 0 if op1 <= TYPE_MIN_VALUE () resp. op1 >= TYPE_MAX_VALUE ().
+	(simplify_cond_and_lookup_avail_expr): Add assert for dummy == 0
+	and handle extract_range_from_cond returning false.
+	* fold-const.c (fold): Optimize comparisons with min/max even for
+	width > HOST_BITS_PER_WIDE_INT.
+
+2005-01-15  Ralf Corsepius  <ralf.corsepius@rtems.org>
+
+	* config/mips/rtems.h (MIPS_DEFAULT_GVALUE): Set to 0.
+	* config/mips/t-rtems (MULTILIBS_DIRNAMES,MULTILIB_OPTIONS): 
+	Remove little endian multilib variants.
+	Add mips32 multilib variant.
+
 2005-01-15  Kazu Hirata  <kazu@cs.umass.edu>
 
 	* explow.c (copy_all_reg, stabilize): Remove.

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

The results can be reproduced by building 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.

Yours testing script.


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