This is the mail archive of the
gcc-regression@gcc.gnu.org
mailing list for the GCC project.
A recent patch increased GCC's memory consumption in some cases!
- From: gcctest at suse dot de
- To: jh at suse dot cz, hubicka at ucw dot cz, gcc-regression at gcc dot gnu dot org
- Date: Thu, 21 May 2009 13:38:23 +0000
- Subject: 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.