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]

A recent patch increased GCC's memory consumption in some cases!


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 empty function compilation at -O0 level:
    Overall memory needed: 8801k
    Peak memory use before GGC: 1488k
    Peak memory use after GGC: 1437k
    Maximum of released memory in single GGC run: 85k
    Garbage: 218k
    Leak: 1537k
    Overhead: 187k
    GGC runs: 4
    Pre-IPA-Garbage: 210k
    Pre-IPA-Leak: 1539k
    Pre-IPA-Overhead: 186k
    Post-IPA-Garbage: 210k
    Post-IPA-Leak: 1539k
    Post-IPA-Overhead: 186k

comparing empty function compilation at -O0 -g level:
    Overall memory needed: 8825k
    Peak memory use before GGC: 1516k
    Peak memory use after GGC: 1464k
    Maximum of released memory in single GGC run: 87k
    Garbage: 219k
    Leak: 1570k
    Overhead: 192k
    GGC runs: 4
    Pre-IPA-Garbage: 210k
    Pre-IPA-Leak: 1539k
    Pre-IPA-Overhead: 186k
    Post-IPA-Garbage: 210k
    Post-IPA-Leak: 1539k
    Post-IPA-Overhead: 186k

comparing empty function compilation at -O1 level:
    Overall memory needed: 8929k -> 8909k
    Peak memory use before GGC: 1488k
    Peak memory use after GGC: 1437k
    Maximum of released memory in single GGC run: 87k
    Garbage: 220k
    Leak: 1537k
    Overhead: 188k
    GGC runs: 4
    Pre-IPA-Garbage: 210k
    Pre-IPA-Leak: 1540k
    Pre-IPA-Overhead: 186k
    Post-IPA-Garbage: 210k
    Post-IPA-Leak: 1540k
    Post-IPA-Overhead: 186k

comparing empty function compilation at -O2 level:
    Overall memory needed: 8929k -> 8925k
    Peak memory use before GGC: 1488k
    Peak memory use after GGC: 1437k
    Maximum of released memory in single GGC run: 92k
    Garbage: 226k
    Leak: 1537k
    Overhead: 189k
    GGC runs: 4
    Pre-IPA-Garbage: 210k
    Pre-IPA-Leak: 1540k
    Pre-IPA-Overhead: 186k
    Post-IPA-Garbage: 210k
    Post-IPA-Leak: 1540k
    Post-IPA-Overhead: 186k

comparing empty function compilation at -O3 level:
    Overall memory needed: 8933k
    Peak memory use before GGC: 1488k
    Peak memory use after GGC: 1437k
    Maximum of released memory in single GGC run: 92k
    Garbage: 226k
    Leak: 1537k
    Overhead: 189k
    GGC runs: 4
    Pre-IPA-Garbage: 210k
    Pre-IPA-Leak: 1540k
    Pre-IPA-Overhead: 186k
    Post-IPA-Garbage: 210k
    Post-IPA-Leak: 1540k
    Post-IPA-Overhead: 186k

comparing combine.c compilation at -O0 level:
  Amount of memory still referenced at the end of compilation increased from 7155k to 7171k, overall 0.22%
    Overall memory needed: 31445k
    Peak memory use before GGC: 17469k
    Peak memory use after GGC: 17020k
    Maximum of released memory in single GGC run: 1910k
    Garbage: 37902k -> 37904k
    Leak: 7155k -> 7171k
    Overhead: 5492k -> 5490k
    GGC runs: 330 -> 331
    Pre-IPA-Garbage: 12539k -> 12540k
    Pre-IPA-Leak: 18401k
    Pre-IPA-Overhead: 2507k -> 2504k
    Post-IPA-Garbage: 12539k -> 12540k
    Post-IPA-Leak: 18401k
    Post-IPA-Overhead: 2507k -> 2504k

comparing combine.c compilation at -O0 -g level:
    Overall memory needed: 33369k -> 33401k
    Peak memory use before GGC: 19377k
    Peak memory use after GGC: 18859k
    Maximum of released memory in single GGC run: 1920k
    Garbage: 38118k -> 38119k
    Leak: 10441k
    Overhead: 6305k -> 6303k
    GGC runs: 315
    Pre-IPA-Garbage: 12558k -> 12559k
    Pre-IPA-Leak: 20650k
    Pre-IPA-Overhead: 2989k -> 2986k
    Post-IPA-Garbage: 12558k -> 12559k
    Post-IPA-Leak: 20650k
    Post-IPA-Overhead: 2989k -> 2986k

comparing combine.c compilation at -O1 level:
    Overall memory needed: 31857k -> 31953k
    Peak memory use before GGC: 16476k
    Peak memory use after GGC: 16310k
    Maximum of released memory in single GGC run: 1378k
    Garbage: 45344k -> 45345k
    Leak: 7156k
    Overhead: 6390k -> 6389k
    GGC runs: 387
    Pre-IPA-Garbage: 12959k -> 12959k
    Pre-IPA-Leak: 17620k
    Pre-IPA-Overhead: 2503k -> 2500k
    Post-IPA-Garbage: 12959k -> 12959k
    Post-IPA-Leak: 17620k
    Post-IPA-Overhead: 2503k -> 2500k

comparing combine.c compilation at -O2 level:
    Overall memory needed: 32817k -> 32877k
    Peak memory use before GGC: 16540k
    Peak memory use after GGC: 16375k
    Maximum of released memory in single GGC run: 1488k
    Garbage: 56233k -> 56234k
    Leak: 7188k
    Overhead: 8012k -> 8011k
    GGC runs: 441
    Pre-IPA-Garbage: 13011k -> 13012k
    Pre-IPA-Leak: 17643k
    Pre-IPA-Overhead: 2509k -> 2506k
    Post-IPA-Garbage: 13011k -> 13012k
    Post-IPA-Leak: 17643k
    Post-IPA-Overhead: 2509k -> 2506k

comparing combine.c compilation at -O3 level:
    Overall memory needed: 33349k -> 33185k
    Peak memory use before GGC: 16507k
    Peak memory use after GGC: 16341k
    Maximum of released memory in single GGC run: 1671k
    Garbage: 65047k -> 65048k
    Leak: 7211k
    Overhead: 9285k -> 9284k
    GGC runs: 471
    Pre-IPA-Garbage: 13011k -> 13012k
    Pre-IPA-Leak: 17643k
    Pre-IPA-Overhead: 2509k -> 2506k
    Post-IPA-Garbage: 13011k -> 13012k
    Post-IPA-Leak: 17643k
    Post-IPA-Overhead: 2509k -> 2506k

comparing insn-attrtab.c compilation at -O0 level:
    Overall memory needed: 152505k -> 152521k
    Peak memory use before GGC: 65254k
    Peak memory use after GGC: 52818k
    Maximum of released memory in single GGC run: 26250k
    Garbage: 128573k -> 128569k
    Leak: 9587k -> 9587k
    Overhead: 16691k -> 16691k
    GGC runs: 259 -> 258
    Pre-IPA-Garbage: 40782k -> 40782k
    Pre-IPA-Leak: 51014k
    Pre-IPA-Overhead: 7761k -> 7761k
    Post-IPA-Garbage: 40782k -> 40782k
    Post-IPA-Leak: 51014k
    Post-IPA-Overhead: 7761k -> 7761k

comparing insn-attrtab.c compilation at -O0 -g level:
    Overall memory needed: 153817k
    Peak memory use before GGC: 66520k
    Peak memory use after GGC: 54081k
    Maximum of released memory in single GGC run: 26251k
    Garbage: 128911k -> 128907k
    Leak: 11219k
    Overhead: 17144k -> 17144k
    GGC runs: 253 -> 252
    Pre-IPA-Garbage: 40791k -> 40791k
    Pre-IPA-Leak: 52539k
    Pre-IPA-Overhead: 8091k -> 8091k
    Post-IPA-Garbage: 40791k -> 40791k
    Post-IPA-Leak: 52539k
    Post-IPA-Overhead: 8091k -> 8091k

comparing insn-attrtab.c compilation at -O1 level:
    Overall memory needed: 154685k
    Peak memory use before GGC: 54960k
    Peak memory use after GGC: 44890k
    Maximum of released memory in single GGC run: 17233k
    Garbage: 180932k -> 180928k
    Leak: 9178k -> 9178k
    Overhead: 23406k -> 23406k
    GGC runs: 298 -> 297
    Pre-IPA-Garbage: 45067k -> 45067k
    Pre-IPA-Leak: 45085k
    Pre-IPA-Overhead: 7586k -> 7586k
    Post-IPA-Garbage: 45067k -> 45067k
    Post-IPA-Leak: 45085k
    Post-IPA-Overhead: 7586k -> 7586k

comparing insn-attrtab.c compilation at -O2 level:
    Overall memory needed: 202001k -> 202221k
    Peak memory use before GGC: 54409k
    Peak memory use after GGC: 44641k
    Maximum of released memory in single GGC run: 18696k
    Garbage: 211482k -> 211478k
    Leak: 9192k -> 9192k
    Overhead: 29278k -> 29279k
    GGC runs: 331 -> 330
    Pre-IPA-Garbage: 45129k -> 45129k
    Pre-IPA-Leak: 45092k
    Pre-IPA-Overhead: 7591k -> 7591k
    Post-IPA-Garbage: 45129k -> 45129k
    Post-IPA-Leak: 45092k
    Post-IPA-Overhead: 7591k -> 7591k

comparing insn-attrtab.c compilation at -O3 level:
    Overall memory needed: 202237k -> 202233k
    Peak memory use before GGC: 54409k
    Peak memory use after GGC: 44641k -> 44637k
    Maximum of released memory in single GGC run: 18695k
    Garbage: 212704k -> 212700k
    Leak: 9199k -> 9199k
    Overhead: 29669k -> 29670k
    GGC runs: 339 -> 338
    Pre-IPA-Garbage: 45129k -> 45129k
    Pre-IPA-Leak: 45092k
    Pre-IPA-Overhead: 7591k -> 7591k
    Post-IPA-Garbage: 45129k -> 45129k
    Post-IPA-Leak: 45092k
    Post-IPA-Overhead: 7591k -> 7591k

comparing Gerald's testcase PR8361 compilation at -O0 level:
  Peak amount of GGC memory allocated before garbage collecting increased from 81679k to 81786k, overall 0.13%
  Peak amount of GGC memory still allocated after garbage collecting increased from 80870k to 80976k, overall 0.13%
    Overall memory needed: 146249k -> 146225k
    Peak memory use before GGC: 81679k -> 81786k
    Peak memory use after GGC: 80870k -> 80976k
    Maximum of released memory in single GGC run: 13632k -> 13629k
    Garbage: 197869k -> 193642k
    Leak: 55413k -> 55413k
    Overhead: 28228k -> 28735k
    GGC runs: 446 -> 439
  Amount of produced pre-ipa-GGC garbage decreased from 110139k to 105771k, overall -4.13%
    Pre-IPA-Garbage: 110139k -> 105771k
    Pre-IPA-Leak: 84472k -> 84526k
    Pre-IPA-Overhead: 14999k -> 15486k
  Amount of produced post-ipa-GGC garbage decreased from 110139k to 105771k, overall -4.13%
    Post-IPA-Garbage: 110139k -> 105771k
    Post-IPA-Leak: 84472k -> 84526k
    Post-IPA-Overhead: 14999k -> 15486k

comparing Gerald's testcase PR8361 compilation at -O0 -g level:
    Overall memory needed: 163985k -> 164065k
    Peak memory use before GGC: 95820k -> 95912k
    Peak memory use after GGC: 94870k -> 94960k
    Maximum of released memory in single GGC run: 13895k -> 13880k
    Garbage: 203198k -> 198964k
    Leak: 82504k -> 82504k
    Overhead: 34791k -> 35297k
    GGC runs: 418 -> 410
  Amount of produced pre-ipa-GGC garbage decreased from 110724k to 106356k, overall -4.11%
    Pre-IPA-Garbage: 110724k -> 106356k
    Pre-IPA-Leak: 100993k -> 101047k
    Pre-IPA-Overhead: 18504k -> 18992k
  Amount of produced post-ipa-GGC garbage decreased from 110724k to 106356k, overall -4.11%
    Post-IPA-Garbage: 110724k -> 106356k
    Post-IPA-Leak: 100993k -> 101047k
    Post-IPA-Overhead: 18504k -> 18992k

comparing Gerald's testcase PR8361 compilation at -O1 level:
    Overall memory needed: 107197k -> 107465k
    Peak memory use before GGC: 81696k -> 81741k
    Peak memory use after GGC: 80883k -> 80929k
    Maximum of released memory in single GGC run: 13475k -> 13498k
    Garbage: 259168k -> 255385k
    Leak: 52212k -> 52212k
    Overhead: 29637k -> 30189k
    GGC runs: 516 -> 510
    Pre-IPA-Garbage: 149533k -> 145188k
    Pre-IPA-Leak: 85868k -> 85917k
    Pre-IPA-Overhead: 17969k -> 18458k
    Post-IPA-Garbage: 149533k -> 145188k
    Post-IPA-Leak: 85868k -> 85917k
    Post-IPA-Overhead: 17969k -> 18458k

comparing Gerald's testcase PR8361 compilation at -O2 level:
    Overall memory needed: 106841k -> 106793k
    Peak memory use before GGC: 81627k -> 81673k
    Peak memory use after GGC: 80162k -> 80089k
    Maximum of released memory in single GGC run: 13479k -> 13525k
    Garbage: 298209k -> 294522k
    Leak: 52278k -> 52286k
    Overhead: 34716k -> 35261k
    GGC runs: 563 -> 557
    Pre-IPA-Garbage: 152702k -> 148374k
    Pre-IPA-Leak: 84974k -> 85022k
    Pre-IPA-Overhead: 18182k -> 18672k
    Post-IPA-Garbage: 152702k -> 148374k
    Post-IPA-Leak: 84974k -> 85022k
    Post-IPA-Overhead: 18182k -> 18672k

comparing Gerald's testcase PR8361 compilation at -O3 level:
    Overall memory needed: 107333k -> 107581k
    Peak memory use before GGC: 82087k -> 82132k
    Peak memory use after GGC: 80167k -> 80213k
    Maximum of released memory in single GGC run: 13479k -> 13525k
    Garbage: 315533k -> 313441k
    Leak: 52296k -> 52296k
    Overhead: 37031k -> 37722k
    GGC runs: 584 -> 580
    Pre-IPA-Garbage: 152702k -> 148374k
    Pre-IPA-Leak: 84978k -> 85026k
    Pre-IPA-Overhead: 18182k -> 18672k
    Post-IPA-Garbage: 152702k -> 148374k
    Post-IPA-Leak: 84978k -> 85026k
    Post-IPA-Overhead: 18182k -> 18672k

comparing PR rtl-optimization/28071 testcase compilation at -O0 level:
    Overall memory needed: 358593k -> 358701k
    Peak memory use before GGC: 78173k
    Peak memory use after GGC: 49107k
    Maximum of released memory in single GGC run: 37057k
    Garbage: 140058k -> 140190k
    Leak: 7711k
    Overhead: 25004k -> 24960k
    GGC runs: 86
  Amount of produced pre-ipa-GGC garbage increased from 12038k to 12171k, overall 1.10%
    Pre-IPA-Garbage: 12038k -> 12171k
    Pre-IPA-Leak: 18626k
    Pre-IPA-Overhead: 2447k -> 2403k
  Amount of produced post-ipa-GGC garbage increased from 12038k to 12171k, overall 1.10%
    Post-IPA-Garbage: 12038k -> 12171k
    Post-IPA-Leak: 18626k
    Post-IPA-Overhead: 2447k -> 2403k

comparing PR rtl-optimization/28071 testcase compilation at -O0 -g level:
    Overall memory needed: 359513k -> 359521k
    Peak memory use before GGC: 78856k
    Peak memory use after GGC: 49791k
    Maximum of released memory in single GGC run: 37041k
    Garbage: 140124k -> 140255k
    Leak: 9707k
    Overhead: 25573k -> 25529k
    GGC runs: 94
  Amount of produced pre-ipa-GGC garbage increased from 12040k to 12173k, overall 1.10%
    Pre-IPA-Garbage: 12040k -> 12173k
    Pre-IPA-Leak: 18873k
    Pre-IPA-Overhead: 2500k -> 2456k
  Amount of produced post-ipa-GGC garbage increased from 12040k to 12173k, overall 1.10%
    Post-IPA-Garbage: 12040k -> 12173k
    Post-IPA-Leak: 18873k
    Post-IPA-Overhead: 2500k -> 2456k

comparing PR rtl-optimization/28071 testcase compilation at -O1 level:
    Overall memory needed: 208649k -> 208757k
    Peak memory use before GGC: 74131k
    Peak memory use after GGC: 69415k
    Maximum of released memory in single GGC run: 35390k
    Garbage: 215892k -> 216024k
    Leak: 9258k
    Overhead: 32795k -> 32752k
    GGC runs: 95
  Amount of produced pre-ipa-GGC garbage increased from 39202k to 39335k, overall 0.34%
    Pre-IPA-Garbage: 39202k -> 39335k
    Pre-IPA-Leak: 63682k
    Pre-IPA-Overhead: 6995k -> 6952k
  Amount of produced post-ipa-GGC garbage increased from 39202k to 39335k, overall 0.34%
    Post-IPA-Garbage: 39202k -> 39335k
    Post-IPA-Leak: 63682k
    Post-IPA-Overhead: 6995k -> 6952k

comparing PR rtl-optimization/28071 testcase compilation at -O2 level:
    Overall memory needed: 530149k -> 533573k
    Peak memory use before GGC: 74132k
    Peak memory use after GGC: 69415k
    Maximum of released memory in single GGC run: 37541k
    Garbage: 255641k -> 255773k
    Leak: 9008k
    Overhead: 38354k -> 38310k
    GGC runs: 106
  Amount of produced pre-ipa-GGC garbage increased from 89544k to 89677k, overall 0.15%
    Pre-IPA-Garbage: 89544k -> 89677k
    Pre-IPA-Leak: 80238k
    Pre-IPA-Overhead: 11099k -> 11055k
  Amount of produced post-ipa-GGC garbage increased from 89544k to 89677k, overall 0.15%
    Post-IPA-Garbage: 89544k -> 89677k
    Post-IPA-Leak: 80238k
    Post-IPA-Overhead: 11099k -> 11055k

comparing PR rtl-optimization/28071 testcase compilation at -O3 -fno-tree-pre -fno-tree-fre level:
    Overall memory needed: 1233797k -> 1234841k
    Peak memory use before GGC: 134702k
    Peak memory use after GGC: 126430k
    Maximum of released memory in single GGC run: 54316k
    Garbage: 340034k -> 340166k
    Leak: 10282k
    Overhead: 43411k -> 43367k
    GGC runs: 106
  Amount of produced pre-ipa-GGC garbage increased from 89544k to 89677k, overall 0.15%
    Pre-IPA-Garbage: 89544k -> 89677k
    Pre-IPA-Leak: 80238k
    Pre-IPA-Overhead: 11099k -> 11055k
  Amount of produced post-ipa-GGC garbage increased from 89544k to 89677k, overall 0.15%
    Post-IPA-Garbage: 89544k -> 89677k
    Post-IPA-Leak: 80238k
    Post-IPA-Overhead: 11099k -> 11055k

Head of the ChangeLog is:

--- /usr/src/SpecTests/sandbox-haydn-memory/x86_64/mem-result/ChangeLog	2009-05-21 02:09:47.000000000 +0000
+++ /usr/src/SpecTests/sandbox-haydn-memory/gcc/gcc/ChangeLog	2009-05-21 11:31:16.000000000 +0000
@@ -1,3 +1,57 @@
+2009-05-21  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
+
+	* config/arm/thumb2.md (orsi_notsi_si): Fix typo in pattern.
+
+2009-05-20  Ian Lance Taylor  <iant@google.com>
+
+	* tree.c (build_tree_list_vec_stat): New function.
+	(ctor_to_vec): New function.
+	(build_nt_call_vec): New function.
+	(build_call_array): Change args to be a const pointer.
+	(build_call_vec): New function.
+	* tree.h (build_nt_call_vec): Declare.
+	(build_tree_list_vec_stat): Declare.
+	(build_tree_list_vec): Define.
+	(build_call_array): Update declaration.
+	(build_call_vec): Declare.
+	(ctor_to_vec): Declare.
+	* c-common.c (tree_vector_cache): New static variable.
+	(make_tree_vector): New function.
+	(release_tree_vector): New function.
+	(make_tree_vector_single): New function.
+	(make_tree_vector_copy): New function.
+	* c-common.h (tree_vector_cache, make_tree_vector): Declare.
+	(make_tree_vector_single, make_tree_vector_copy): Declare.
+	* c-parser.c (cached_expr_list_1, cached_expr_list_2): Remove.
+	(c_parser_expr_list): Don't manage cache here, instead call
+	make_tree_vector.
+	(c_parser_release_expr_list): Remove static function.
+	(c_parser_vec_to_tree_list): Remove static function.
+	(c_parser_attributes): Call build_tree_list_vec instead of
+	c_parser_vec_to_tree_list.  Call release_tree_vector instead of
+	c_parser_release_expr_list.
+	(c_parser_postfix_expression_after_primary): Likewise.
+	(c_parser_objc_keywordexpr): Likewise.
+
+2009-05-20  Sandra Loosemore  <sandra@codesourcery.com>
+
+	* doc/tm.texi (Misc): Document TARGET_INVALID_PARAMETER_TYPE,
+	TARGET_INVALID_RETURN_TYPE, TARGET_PROMOTED_TYPE, and
+	TARGET_CONVERT_TO_TYPE.
+	* hooks.c (hook_tree_const_tree_null): Define.
+	* hooks.h (hook_tree_const_tree_null): Declare.
+	* target.h (struct gcc_target):  Add invalid_parameter_type,
+	invalid_return_type, promoted_type, and convert_to_type fields.
+	* target-def.h: (TARGET_INVALID_PARAMETER_TYPE): Define.
+	(TARGET_INVALID_RETURN_TYPE): Define.
+	(TARGET_PROMOTED_TYPE): Define.
+	(TARGET_CONVERT_TO_TYPE): Define.
+	(TARGET_INITIALIZER): Update for new fields.
+	* c-decl.c (grokdeclarator): Check targetm.invalid_return_type.
+	(grokparms): Check targetm.invalid_parameter_type.
+	* c-typeck.c (default_conversion): Check targetm.promoted_type.
+	* c-convert.c (convert): Check targetm.convert_to_type.
+
 2009-05-20  Adam Nemet  <anemet@caviumnetworks.com>
 
 	* config/mips/mips.md (*extenddi_truncate<mode>,
--- /usr/src/SpecTests/sandbox-haydn-memory/x86_64/mem-result/ChangeLog.cp	2009-05-20 00:34:04.000000000 +0000
+++ /usr/src/SpecTests/sandbox-haydn-memory/gcc/gcc/cp/ChangeLog	2009-05-21 11:31:16.000000000 +0000
@@ -1,3 +1,107 @@
+2009-05-20  Ian Lance Taylor  <iant@google.com>
+
+	* parser.c (cp_parser_postfix_expression): Change args to a vec.
+	Release it when done.
+	(tree_vector): Define typedef.  Define VEC functions.
+	(cp_parser_parenthesized_expression_list): Change return type to
+	vec.  Change all callers.
+	(cp_parser_new_expression): Change placement and initializer to
+	vecs.  Release them when done.
+	(cp_parser_new_placement): Change return type to vec.  Change all
+	callers.
+	(cp_parser_new_initializer): Likewise.
+	* typeck.c (build_function_call_vec): Just call
+	cp_build_function_call_vec.
+	(cp_build_function_call): Just build a vec and call
+	cp_build_function_call_vec.
+	(cp_build_function_call_vec): New function based on old
+	cp_build_function_call.
+	(convert_arguments): Remove nargs and argarray parameters.  Change
+	values to a vec.  Change caller.
+	(build_x_compound_expr_from_vec): New function.
+	(cp_build_modify_expr): Build vec to pass to
+	build_special_member_call.
+	* call.c (struct z_candidate): Add first_arg field.  Change args
+	field to vec.
+	(convert_class_to_reference): Handle first argument separately.
+	(add_candidate): Add first_arg parameter.  Change args parameter
+	to vec.  Change all callers.
+	(add_function_candidate, add_conv_candidate): Likewise.
+	(add_template_candidate_real, add_template_candidate): Likewise.
+	(add_template_conv_candidate): Likewise.
+	(build_user_type_conversion_1): Handle first argument separately.
+	(resolve_args): Change return type and parameter type to vecs.
+	Change all callers.
+	(perform_overload_resolution): Change args parameter to vec.
+	Change all callers.
+	(build_new_function_call, build_operator_new_call): Likewise.
+	(add_candidates): Likewise.
+	(build_op_call): New globally visible function, built from and
+	replacing static function build_object_call.
+	(build_new_op): Don't handle CALL_EXPR.  Build vec, not tree_list,
+	of arguments.
+	(build_op_delete_call): Build vec to pass to
+	cp_build_function_call_vec.
+	(build_temp): Build vec to pass to build_special_member_call.
+	(convert_like_real): Likewise.
+	(perform_direct_initialization_if_possible): Likewise.
+	(build_over_call): Handle first_arg field.  Use build_call_array
+	rather than build_call_list.
+	(build_special_member_call): Change args parameter to vec.  Change
+	all callers.
+	(build_new_method_call): Likewise.
+	* init.c (expand_default_init): Change parms to vec.
+	(build_raw_new_expr): Change placement and init to vecs.  Change
+	all callers.
+	(build_new_1, build_new): Likewise.
+	* class.c (resolve_address_of_overloaded_function): Build array to
+	pass to fn_type_unification.
+	* pt.c (tsubst_copy_and_build): For NEW_EXPR build vecs to pass to
+	build_new.  For CALL_EXPR create a vec rather than a tree_list;
+	expand a pack if necessary.
+	(fn_type_unification): Change args parameter to const tree *.  Add
+	nargs parameter.  Change all callers.
+	(type_unification_real): Likewise.
+	(unify): Build array to pass to type_unification_real.
+	(get_bindings): Build array to pass to fn_type_unification.
+	(any_type_dependent_arguments_p): Change args parameter to a vec.
+	Change all callers.
+	(make_args_non_dependent): Renamed from build_non_dependent_args.
+	Change return type to void.  Change parameter type to vec.  Change
+	all callers.
+	(do_auto_deduction): Pass an array to type_unification_real.
+	* semantics.c (perform_koenig_lookup): Change args to vec.  Change
+	all callers.
+	(finish_call_expr): Change args to vec.  Change all callers.  Call
+	build_op_call instead of passing CALL_EXPR to build_new_op.
+	(cxx_omp_create_clause_info): Allocate vec to pass to
+	build_special_member_call.
+	* decl2.c (build_offset_ref_call_from_tree): Change args parameter
+	to vec.  Change all callers.
+	* name-lookup.c (lookup_function_nonclass): Likewise.
+	(struct arg_lookup): Change args to vec.
+	(arg_assoc_namespace): Handle args as a vec.
+	(arg_assoc_args_vec): New static function.
+	(lookup_arg_dependent): Change args parameter to vec.  Change all
+	callers.
+	* method.c (do_build_assign_ref): Allocate vec to pass to
+	build_special_member_call.
+	* except.c (build_throw): Likewise.
+	* typeck2.c (build_functional_cast): Likewise.
+	* cvt.c (ocp_convert): Likewise.
+	* tree.c (build_min_non_dep_call_vec): Change last parameter to
+	vec.  Change all callers.
+	* cp-tree.h: Update declarations.
+	* name-lookup.h: Update declarations.
+
+2009-05-20  Sandra Loosemore  <sandra@codesourcery.com>
+
+	* typeck.c (default_conversion): Check targetm.promoted_type.
+	* decl.c (grokdeclarator): Check targetm.invalid_return_type.
+	(grokparms): Check targetm.invalid_parameter_type.
+	* cvt.c (ocp_convert): Check targetm.convert_to_type.
+	(build_expr_type_conversion): Check targetm.promoted_type.
+
 2009-05-19  Andrew Pinski  <andrew_pinski@playstation.sony.com>
 
 	* typeck.c (build_binary_op): Allow % on integal vectors.


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.


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