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: 24797k
    Peak memory use before GGC: 9353k
    Peak memory use after GGC: 8667k
    Maximum of released memory in single GGC run: 2864k
    Garbage: 41717k -> 41717k
    Leak: 6386k
    Overhead: 5778k -> 5778k
    GGC runs: 328

comparing combine.c compilation at -O1 level:
    Overall memory needed: 25745k -> 25741k
    Peak memory use before GGC: 9242k
    Peak memory use after GGC: 8741k
    Maximum of released memory in single GGC run: 2026k
    Garbage: 66618k -> 66619k
    Leak: 6782k
    Overhead: 10526k -> 10526k
    GGC runs: 516

comparing combine.c compilation at -O2 level:
    Overall memory needed: 29233k -> 29237k
    Peak memory use before GGC: 12674k
    Peak memory use after GGC: 12548k
    Maximum of released memory in single GGC run: 2533k
    Garbage: 80568k -> 80569k
    Leak: 6607k
    Overhead: 14340k -> 14340k
    GGC runs: 518

comparing combine.c compilation at -O3 level:
    Overall memory needed: 31609k
    Peak memory use before GGC: 12925k
    Peak memory use after GGC: 12548k
    Maximum of released memory in single GGC run: 3346k
    Garbage: 109059k -> 109059k
    Leak: 7126k
    Overhead: 19205k -> 19205k
    GGC runs: 583

comparing insn-attrtab.c compilation at -O0 level:
    Overall memory needed: 117556k
    Peak memory use before GGC: 78070k
    Peak memory use after GGC: 45550k
    Maximum of released memory in single GGC run: 42606k
    Garbage: 159286k
    Leak: 10957k
    Overhead: 20804k
    GGC runs: 274

comparing insn-attrtab.c compilation at -O1 level:
    Overall memory needed: 128772k
    Peak memory use before GGC: 83587k
    Peak memory use after GGC: 69306k
    Maximum of released memory in single GGC run: 40616k
    Garbage: 441383k
    Leak: 11302k
    Overhead: 77391k
    GGC runs: 406

comparing insn-attrtab.c compilation at -O2 level:
  Overall memory allocated via mmap and sbrk increased from 153432k to 153700k, overall 0.17%
    Overall memory needed: 153432k -> 153700k
    Peak memory use before GGC: 99346k
    Peak memory use after GGC: 84467k
    Maximum of released memory in single GGC run: 41524k
    Garbage: 487926k
    Leak: 11226k
    Overhead: 85492k
    GGC runs: 342

comparing insn-attrtab.c compilation at -O3 level:
    Overall memory needed: 153412k -> 153552k
    Peak memory use before GGC: 99348k
    Peak memory use after GGC: 84468k
    Maximum of released memory in single GGC run: 41525k
    Garbage: 489108k
    Leak: 11268k
    Overhead: 85650k
    GGC runs: 349

comparing Gerald's testcase PR8361 compilation at -O0 level:
    Overall memory needed: 111100k
    Peak memory use before GGC: 86891k
    Peak memory use after GGC: 85940k
    Maximum of released memory in single GGC run: 19283k
    Garbage: 246357k -> 246356k
    Leak: 55500k -> 55500k
    Overhead: 43355k
    GGC runs: 368

comparing Gerald's testcase PR8361 compilation at -O1 level:
    Overall memory needed: 104037k
    Peak memory use before GGC: 85973k
    Peak memory use after GGC: 84937k
    Maximum of released memory in single GGC run: 18947k
    Garbage: 466130k
    Leak: 57247k
    Overhead: 67141k
    GGC runs: 550

comparing Gerald's testcase PR8361 compilation at -O2 level:
    Overall memory needed: 104093k -> 104097k
    Peak memory use before GGC: 85973k
    Peak memory use after GGC: 84937k
    Maximum of released memory in single GGC run: 18947k
    Garbage: 500440k -> 500444k
    Leak: 57825k
    Overhead: 76603k -> 76604k
    GGC runs: 592

comparing Gerald's testcase PR8361 compilation at -O3 level:
    Overall memory needed: 111857k -> 111849k
    Peak memory use before GGC: 92711k
    Peak memory use after GGC: 86231k
    Maximum of released memory in single GGC run: 19713k
    Garbage: 520391k -> 520391k
    Leak: 58143k
    Overhead: 78451k -> 78451k
    GGC runs: 578

Head of changelog is:

--- /usr/src/SpecTests/sandbox-britten-memory/x86_64/mem-result/ChangeLog	2005-01-11 05:14:40.000000000 +0000
+++ /usr/src/SpecTests/sandbox-britten-memory/gcc/gcc/ChangeLog	2005-01-11 10:59:16.000000000 +0000
@@ -1,3 +1,57 @@
+2005-01-11  Andreas Krebbel  <krebbel1@de.ibm.com>
+
+	* config/s390/s390.c (override_options): Return error if
+	-mbackchain, -mpacked-stack and -mhard-float are used together.
+	(s390_va_start): Remove the backchain && packed-stack special case.
+	(s390_gimplify_va_arg): Likewise.
+	* doc/invoke.texi: Remove the ABI incompatibility note.
+
+2005-01-11  Andreas Krebbel  <krebbel1@de.ibm.com>
+
+	* config/s390/s390.c (struct s390_frame_layout): Remove 
+	save_backchain_p.
+	(s390_frame_info, s390_emit_prologue): Replace occurrences of
+	save_backchain_p with TARGET_BACKCHAIN.
+
+2005-01-11  Alan Modra  <amodra@bigpond.net.au>
+
+	PR target/18916
+	* builtins.c (std_gimplify_va_arg_expr): Adjust alignment of *ap.
+	* expr.h (struct locate_and_pad_arg_data): Add "boundary".
+	* function.c (locate_and_pad_parm): Set new field.
+	(assign_parm_find_stack_rtl): Use it instead of FUNCTION_ARG_BOUNDARY.
+	Tweak where_pad test to include "none".  Always set mem align for
+	stack_parm.
+	(assign_parm_adjust_stack_rtl): Discard stack_parm if alignment
+	not sufficient for type.
+	(assign_parm_setup_block): If stack_parm is zero on entry, always
+	make a new stack local.  Block move old stack parm if necessary
+	to new aligned stack local.
+	(assign_parm_setup_stack): Use a block move to handle
+	potentially misaligned entry_parm.
+	(assign_parms_unsplit_complex): Specify required alignment when
+	creating stack local.
+	* calls.c (compute_argument_addresses): Override alignment of stack
+	arg calculated from its type with the alignment given by
+	FUNCTION_ARG_BOUNDARY.
+	(store_one_arg): Likewise.
+
+2005-01-11  Jan Beulich  <jbeulich@novell.com>
+
+	* config/ia64/ia64.md (zero_extendsidi2): Replace zxt4 by addp4.
+	Change respective itanium_class attribute to ialu.
+	(shladdp4_internal): New.
+	* config/ia64/predicates.md (shladd_log2_operand): New.
+
+2005-01-11  Richard Henderson  <rth@redhat.com>
+
+	* expr.c (store_constructor): Use rtvec_alloc instead of
+	alloca+gen_rtvec_v, and an incorrect number passed to alloca.
+
+2005-01-11  Kazu Hirata  <kazu@cs.umass.edu>
+
+	* config/alpha/alpha.c, config/i386/mmx.md: Fix comment typos.
+
 2005-01-11  Alan Modra  <amodra@bigpond.net.au>
 
 	* varasm.c (default_section_type_flags_1): Don't set SECTION_SMALL.

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]