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: 17824k
    Peak memory use before GGC: 9295k
    Peak memory use after GGC: 8606k
    Maximum of released memory in single GGC run: 2870k
    Garbage: 42610k
    Leak: 6105k
    Overhead: 5587k
    GGC runs: 364

comparing combine.c compilation at -O1 level:
    Overall memory needed: 18444k -> 18448k
    Peak memory use before GGC: 9631k
    Peak memory use after GGC: 8800k
    Maximum of released memory in single GGC run: 2033k -> 2032k
    Garbage: 72328k -> 72023k
    Leak: 6671k
    Overhead: 12180k -> 12134k
    GGC runs: 588 -> 587

comparing combine.c compilation at -O2 level:
  Overall memory allocated via mmap and sbrk increased from 21800k to 22152k, overall 1.61%
    Overall memory needed: 21800k -> 22152k
    Peak memory use before GGC: 12771k
    Peak memory use after GGC: 12612k
    Maximum of released memory in single GGC run: 2521k
    Garbage: 87537k -> 87215k
    Leak: 6425k
    Overhead: 16671k -> 16623k
    GGC runs: 578 -> 577

comparing combine.c compilation at -O3 level:
  Overall memory allocated via mmap and sbrk increased from 22724k to 22780k, overall 0.25%
  Amount of memory still referenced at the end of compilation increased from 6927k to 6943k, overall 0.23%
    Overall memory needed: 22724k -> 22780k
    Peak memory use before GGC: 13049k
    Peak memory use after GGC: 12693k
    Maximum of released memory in single GGC run: 3360k
    Garbage: 115838k -> 115342k
    Leak: 6927k -> 6943k
    Overhead: 21801k -> 21730k
    GGC runs: 646 -> 645

comparing insn-attrtab.c compilation at -O0 level:
    Overall memory needed: 132860k
    Peak memory use before GGC: 77100k
    Peak memory use after GGC: 45185k
    Maximum of released memory in single GGC run: 42129k
    Garbage: 159513k
    Leak: 10643k
    Overhead: 19805k
    GGC runs: 310

comparing insn-attrtab.c compilation at -O1 level:
    Overall memory needed: 149640k -> 149536k
    Peak memory use before GGC: 97256k
    Peak memory use after GGC: 71527k
    Maximum of released memory in single GGC run: 41234k
    Garbage: 489798k -> 489861k
    Leak: 11076k
    Overhead: 85510k -> 85521k
    GGC runs: 466

comparing insn-attrtab.c compilation at -O2 level:
    Overall memory needed: 224488k -> 224476k
    Peak memory use before GGC: 112816k
    Peak memory use after GGC: 87087k
    Maximum of released memory in single GGC run: 35978k -> 35979k
    Garbage: 542374k -> 542435k
    Leak: 11209k
    Overhead: 95623k -> 95634k
    GGC runs: 388

comparing insn-attrtab.c compilation at -O3 level:
    Overall memory needed: 224484k -> 224464k
    Peak memory use before GGC: 112821k
    Peak memory use after GGC: 87092k
    Maximum of released memory in single GGC run: 35979k
    Garbage: 543485k -> 543545k
    Leak: 11255k
    Overhead: 96025k -> 96036k
    GGC runs: 395

comparing Gerald's testcase PR8361 compilation at -O0 level:
    Overall memory needed: 115372k
    Peak memory use before GGC: 92254k
    Peak memory use after GGC: 90048k
    Maximum of released memory in single GGC run: 20148k
    Garbage: 273435k
    Leak: 60277k
    Overhead: 35270k
    GGC runs: 556

comparing Gerald's testcase PR8361 compilation at -O1 level:
    Overall memory needed: 125580k -> 125592k
    Peak memory use before GGC: 95711k
    Peak memory use after GGC: 88914k
    Maximum of released memory in single GGC run: 19544k
    Garbage: 630886k -> 630112k
    Leak: 62405k -> 62423k
    Overhead: 130424k -> 130315k
    GGC runs: 802

comparing Gerald's testcase PR8361 compilation at -O2 level:
    Overall memory needed: 126632k -> 126644k
    Peak memory use before GGC: 95711k
    Peak memory use after GGC: 88915k
    Maximum of released memory in single GGC run: 19544k
    Garbage: 691870k -> 691340k
    Leak: 62974k -> 62986k
    Overhead: 156533k -> 156462k
    GGC runs: 836 -> 834

comparing Gerald's testcase PR8361 compilation at -O3 level:
    Overall memory needed: 124928k -> 125048k
    Peak memory use before GGC: 92217k -> 92211k
    Peak memory use after GGC: 90398k
    Maximum of released memory in single GGC run: 20259k
    Garbage: 731277k -> 730435k
    Leak: 63366k -> 63377k
    Overhead: 167615k -> 167521k
    GGC runs: 827 -> 825

Head of changelog is:

--- /usr/src/SpecTests/sandbox-britten-memory/x86_64/mem-result/ChangeLog	2004-09-19 09:26:28.000000000 +0000
+++ /usr/src/SpecTests/sandbox-britten-memory/gcc/gcc/ChangeLog	2004-09-20 18:48:46.000000000 +0000
@@ -1,3 +1,98 @@
+2004-09-20  Jan Hubicka  <jh@suse.cz>
+
+	* predict.c (return_prediction): New function.
+	(apply_return_prediction): Likewise.
+	(tree_bb_level_predictions): Likewise.
+	(tree_estimate_probability): Add noreturn exit edges; call
+	bb_level_predictions; fix logic of return heuristics.
+	(predict_paths_leading_to):  Rescuesce from old CVS version of
+	process_note_prediction function.
+	* predict.def (PRED_TREE_EARLY_RETURN): New predictor.
+
+2004-09-20  Andreas Krebbel  <krebbel1@de.ibm.com>
+
+	* config/s390/s390.c (s390_frame_info): Added alignment statement for
+	floating point register area on stack.
+
+2004-09-20  Jakub Jelinek  <jakub@redhat.com>
+
+	* predict.c (expr_expected_value): Use *_CLASS_P macros.
+
+2004-09-20  Daniel Berlin  <dberlin@dberlin.org>
+
+	* tree-ssa-pre.c (compute_antic_aux): Use malloc'd worklist, to avoid 
+	generating useless garbage.
+
+2004-09-20  Paolo Bonzini  <bonzini@gnu.org>
+
+	* builtins.c (fold_builtin): Call the new omonymous
+	target hook for machine-dependent built-ins.
+	* target-def.h (TARGET_FOLD_BUILTIN): New.
+	* target.h (struct gcc_target): Add the fold_builtin hook.
+	* targhooks.c (default_fold_builtin): New.
+	* targhooks.h (default_fold_builtin): Declare it.
+
+2004-09-20  Kazu Hirata  <kazu@cs.umass.edu>
+
+	* cfg.c, tree-ssa-threadupdate.c, tree-vectorizer.c: Fix
+	comment typos.
+
+2004-09-20  Richard Sandiford  <rsandifo@redhat.com>
+
+	PR target/17565
+	* config/mips/mips.md (define_asm_attributes): Set can_delay to no.
+
+2004-09-20  Jan Hubicka  <jh@suse.cz>
+
+	* predict.c (estimate_probability): Remove unnecesary code.
+
+2004-09-19  Ira Rosen  <irar@il.ibm.com>
+
+	* tree-vectorizer.h (stmt_vec_info): Add vect_dr_base field.
+	(STMT_VINFO_VECT_DR_BASE): Declare.
+	(VECT_SMODULO): Declare.
+	* tree-vectorizer.c (vect_compute_array_ref_alignment): New function.
+	(vect_compute_array_base_alignment): New function.
+	(vect_analyze_data_ref_access): Check array indices. Remove one
+	dimensional arrays restriction.
+	(vect_get_ptr_offset): New function.
+	(vect_get_symbl_and_dr): New function.
+	(vect_get_base_and_bit_offset): Support additional data refs. Renamed
+	(former name vect_get_base_decl_and_bit_offset).
+	(vect_create_index_for_array_ref): Removed.
+	(vect_create_index_for_vector_ref): New function.
+	(vect_create_addr_base_for_vector_ref): New function.
+	(vect_create_data_ref): Handle additional data refs. Call
+	vect_create_index_for_vector_ref and vect_create_addr_base_for_vector_ref.
+	(vect_compute_data_ref_alignment): Support the changes. Call
+	vect_get_base_and_bit_offset.
+	(vect_analyze_data_refs): Call vect_get_symbl_and_dr. Support additional
+	data refs. Store vect_dr_base.
+	(vect_analyze_data_ref_accesses): Support nonconstant init.
+	(new_stmt_vec_info): Initialize vect_dr_base field.
+	(vect_is_simple_iv_evolution): Call initial_condition_in_loop_num.
+	(get_vectype_for_scalar_type): Check for BLKmode.
+	* tree-chrec.h (initial_condition_in_loop_num): Declare.
+	* tree-chrec.c (initial_condition_in_loop_num): New function.
+	(chrec_component_in_loop_num): New function.
+	(evolution_part_in_loop_num): Call chrec_component_in_loop_num.
+	* tree-data-ref.c (analyze_array_indexes): Change parameter (access_fns)
+	to be pointer to varray_type.
+
+2004-09-19  Jan Hubicka  <jh@suse.cz>
+
+	* basic-block.h (update_bb_profile_after_threading): Declare.
+	* cfg.c (update_bb_profile_after_threading): Break out from ...
+	* cfgcleanup.c (try_forward_edges): ... here; use it.
+	* tree-ssa-dom.c (thread_across_edge): Use it.
+	* tree-ssa-threadupdate.c (create_block_for_threading): Zero out
+	profile of the new BB.
+
+2004-09-19  Daniel Berlin  <dberlin@dberlin.org>
+
+	* tree-ssa-pre.c (insert_into_set): Don't put
+	is_gimple_min_invariant values into the set.
+
 2004-09-19  Andreas Jaeger  <aj@suse.de>
 
 	* tree-ssa-dom.c (restore_nonzero_vars_to_original_value): Fix
--- /usr/src/SpecTests/sandbox-britten-memory/x86_64/mem-result/ChangeLog.cp	2004-09-18 20:25:11.000000000 +0000
+++ /usr/src/SpecTests/sandbox-britten-memory/gcc/gcc/cp/ChangeLog	2004-09-20 05:07:22.000000000 +0000
@@ -1,3 +1,8 @@
+2004-09-19  Mark Mitchell  <mark@codesourcery.com>
+
+	* decl2.c (determine_visibility): Allow class visibility
+	directives to override targetm.cxx.export_class_data.
+
 2004-09-18  Kazu Hirata  <kazu@cs.umass.edu>
 
 	* call.c, semantics.c: Follow spelling conventions.

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]