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: 25261k
    Peak memory use before GGC: 9310k
    Peak memory use after GGC: 8624k
    Maximum of released memory in single GGC run: 2912k
    Garbage: 42434k
    Leak: 6088k
    Overhead: 5717k
    GGC runs: 354

comparing combine.c compilation at -O1 level:
    Overall memory needed: 26157k -> 26165k
    Peak memory use before GGC: 9199k
    Peak memory use after GGC: 8723k
    Maximum of released memory in single GGC run: 2062k
    Garbage: 67984k
    Leak: 6484k
    Overhead: 10665k
    GGC runs: 546

comparing combine.c compilation at -O2 level:
    Overall memory needed: 29965k
    Peak memory use before GGC: 12705k
    Peak memory use after GGC: 12578k
    Maximum of released memory in single GGC run: 2574k
    Garbage: 82177k
    Leak: 6299k
    Overhead: 14822k
    GGC runs: 548

comparing combine.c compilation at -O3 level:
    Overall memory needed: 20804k
    Peak memory use before GGC: 12987k
    Peak memory use after GGC: 12578k
    Maximum of released memory in single GGC run: 3411k
    Garbage: 111098k
    Leak: 6832k
    Overhead: 19898k
    GGC runs: 616

comparing insn-attrtab.c compilation at -O0 level:
    Overall memory needed: 118468k
    Peak memory use before GGC: 79386k
    Peak memory use after GGC: 46137k
    Maximum of released memory in single GGC run: 43335k
    Garbage: 161983k
    Leak: 10609k
    Overhead: 21242k
    GGC runs: 295

comparing insn-attrtab.c compilation at -O1 level:
    Overall memory needed: 132256k
    Peak memory use before GGC: 85238k
    Peak memory use after GGC: 70037k
    Maximum of released memory in single GGC run: 41132k
    Garbage: 449302k
    Leak: 10955k
    Overhead: 79597k
    GGC runs: 429

comparing insn-attrtab.c compilation at -O2 level:
    Overall memory needed: 154180k
    Peak memory use before GGC: 101254k
    Peak memory use after GGC: 85454k
    Maximum of released memory in single GGC run: 42175k
    Garbage: 496306k
    Leak: 10883k
    Overhead: 87871k
    GGC runs: 363

comparing insn-attrtab.c compilation at -O3 level:
    Overall memory needed: 154196k
    Peak memory use before GGC: 101255k
    Peak memory use after GGC: 85456k
    Maximum of released memory in single GGC run: 42175k
    Garbage: 497584k
    Leak: 10928k
    Overhead: 88052k
    GGC runs: 371

comparing Gerald's testcase PR8361 compilation at -O0 level:
  Overall memory allocated via mmap and sbrk increased from 113252k to 113408k, overall 0.14%
  Peak amount of GGC memory allocated before garbage collecting increased from 89795k to 89927k, overall 0.15%
  Peak amount of GGC memory still allocated after garbage collectin increased from 88905k to 89033k, overall 0.14%
  Amount of memory still referenced at the end of compilation increased from 57666k to 57794k, overall 0.22%
    Overall memory needed: 113252k -> 113408k
    Peak memory use before GGC: 89795k -> 89927k
    Peak memory use after GGC: 88905k -> 89033k
    Maximum of released memory in single GGC run: 19901k
    Garbage: 248756k -> 248762k
    Leak: 57666k -> 57794k
    Overhead: 45379k -> 45380k
    GGC runs: 362

comparing Gerald's testcase PR8361 compilation at -O1 level:
  Overall memory allocated via mmap and sbrk increased from 95796k to 95924k, overall 0.13%
  Peak amount of GGC memory allocated before garbage collecting increased from 88796k to 88924k, overall 0.14%
  Peak amount of GGC memory still allocated after garbage collectin increased from 87822k to 87950k, overall 0.15%
  Amount of memory still referenced at the end of compilation increased from 59700k to 59829k, overall 0.22%
    Overall memory needed: 95796k -> 95924k
    Peak memory use before GGC: 88796k -> 88924k
    Peak memory use after GGC: 87822k -> 87950k
    Maximum of released memory in single GGC run: 19406k
    Garbage: 553002k -> 553036k
    Leak: 59700k -> 59829k
    Overhead: 115302k -> 115303k
    GGC runs: 611

comparing Gerald's testcase PR8361 compilation at -O2 level:
  Overall memory allocated via mmap and sbrk increased from 95796k to 95924k, overall 0.13%
  Peak amount of GGC memory allocated before garbage collecting increased from 88796k to 88924k, overall 0.14%
  Peak amount of GGC memory still allocated after garbage collectin increased from 87822k to 87951k, overall 0.15%
  Amount of memory still referenced at the end of compilation increased from 60282k to 60410k, overall 0.21%
    Overall memory needed: 95796k -> 95924k
    Peak memory use before GGC: 88796k -> 88924k
    Peak memory use after GGC: 87822k -> 87951k
    Maximum of released memory in single GGC run: 19405k
    Garbage: 601926k -> 601967k
    Leak: 60282k -> 60410k
    Overhead: 137344k -> 137344k
    GGC runs: 653

comparing Gerald's testcase PR8361 compilation at -O3 level:
  Peak amount of GGC memory allocated before garbage collecting increased from 90197k to 90321k, overall 0.14%
  Peak amount of GGC memory still allocated after garbage collectin increased from 88649k to 88783k, overall 0.15%
  Amount of memory still referenced at the end of compilation increased from 60622k to 60750k, overall 0.21%
    Overall memory needed: 98368k -> 98432k
    Peak memory use before GGC: 90197k -> 90321k
    Peak memory use after GGC: 88649k -> 88783k
    Maximum of released memory in single GGC run: 20099k -> 20095k
    Garbage: 642088k -> 642048k
    Leak: 60622k -> 60750k
    Overhead: 148781k -> 148777k
    GGC runs: 648 -> 647

Head of changelog is:

--- /usr/src/SpecTests/sandbox-britten-memory/x86_64/mem-result/ChangeLog	2004-12-08 07:21:28.000000000 +0000
+++ /usr/src/SpecTests/sandbox-britten-memory/gcc/gcc/ChangeLog	2004-12-08 11:30:47.000000000 +0000
@@ -1,3 +1,22 @@
+2004-12-08  Richard Sandiford  <rsandifo@redhat.com>
+
+	* config/frv/frv.c (frv_sort_insn_group): Always initialize
+	packet_group->nop.
+
+2004-12-08  Nathan Sidwell  <nathan@codesourcery.com>
+
+	PR c++/18672
+	* gimplify.c (canonicalize_addr_expr): Cope with array of
+	incomplete type.
+	(gimplify_conversion): Remove redundant checks.
+
+	* doc/trouble.texi (Non-bugs): Clarify empty loop removal.
+
+2004-12-08  Uros Bizjak  <uros@kss-loka.si>
+
+	* config/i386/i386.c (output_387_binary_op,
+	ix86_prepare_fp_compare_args): Fix is_sse condition.
+
 2004-12-07  Uros Bizjak  <uros@kss-loka.si>
 
 	* config/i386/i386-protos.h (ix86_split_fp_branch): New rtx
--- /usr/src/SpecTests/sandbox-britten-memory/x86_64/mem-result/ChangeLog.cp	2004-12-08 01:29:20.000000000 +0000
+++ /usr/src/SpecTests/sandbox-britten-memory/gcc/gcc/cp/ChangeLog	2004-12-08 11:30:59.000000000 +0000
@@ -1,3 +1,58 @@
+2004-12-08  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
+
+	PR c++/18100
+	* decl.c (lookup_and_check_tag): Diagnose nested class with 
+	the same name as enclosing class.
+
+2004-12-08  Nathan Sidwell  <nathan@codesourcery.com>
+
+	PR c++/18803
+	* cp-tree.h (REFERENCE_REF_P): New.
+	(CPTI_TYPE_INFO_TYPE): Rename to ...
+	(CPTI_CONST_TYPE_INFO_TYPE): ... here.
+	(CPTI_TYPE_INFO_REF_TYPE): Remove.
+	(type_info_type_node): Rename to ...
+	(const_type_info_type_node): ... here.
+	(type_info_ref_type): Remove.
+	* call.c (build_user_type_conversion): Reformat.
+	(resolve_args): Do not convert_from_reference.
+	(build_object_call): Call convert_from_reference.
+	(prep_operand): Do not convert_from_reference.
+	(build_new_method_call): Likewise.
+	* class.c (build_vfield_ref): Likewise.
+	* cvt.c (convert_to_reference): Likewise.
+	(convert_from_reference): Build INDIRECT_REF here, not with
+	build_indirect_ref.
+	(convert_force): Do not convert_from_reference.
+	(build_expr_type_conversion): Likewise.
+	* decl.c (grok_reference_init): Likewise.
+	* decl2.c (delete_sanity): Likewise.
+	* except.c (initialize_handler_parm): Use POINTER_TYPE_P.
+	* init.c (build_dtor_call): Do not convert_from_reference.
+	* parser.c (cp_parser_template_argument): Unwrap indirected
+	reference. Allow TEMPLATE_PARM_INDEX as an object parm.
+	* pt.c (tsubst_copy_and_build) <case INDIRECT_REF>: Use
+	convert_from_reference, if indicated.
+	<case CALL_EXPR>: Do not convert_from_reference.
+	<case PARM_DECL, VAR_DECL>: Convert_from_reference if needed.
+	(tsubst_initializer_list): Do not convert_from_reference.
+	* rtti.c (init_rtti_processing): Adjust node creation.
+	(throw_bad_typeid): Use const_type_info_type_node.
+	Do not convert_from_reference.
+	(typeid_ok_p): Use const_type_info_type_node.
+	(build_typeid, get_typeid): Always return type_info typed node.
+	(build_dynamic_cast_1): Dont convert_from_reference. Refactor.
+	* semantics.c (finish_stmt_expr_expr): Do not
+	convert_from_reference.
+	(finish_id_expression): Convert_from_reference as appropriate.
+	* typeck.c (decay_conversion): Do not convert_from_reference.
+	(finish_class_member_access_expr): Likewise.
+	(build_indirect_ref): Use POINTER_TYPE_P.
+	(convert_arguments): Do not convert_from_reference.
+	(build_modify_expr): Likewise.
+	(convert_for_initialization): Likewise.
+	* typeck2.c (build_x_arrow): Likewise.
+
 2004-12-07  Ziemowit Laski  <zlaski@apple.com>
 
 	* cp-tree.h (struct lang_type_class): Rename 'objc_protocols'

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]