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!
- From: gcctest at suse dot de
- To: jh at suse dot cz, gcc-regression at gcc dot gnu dot org
- Date: Thu, 23 Aug 2007 15:57:54 +0000
- Subject: A recent patch increased GCC's memory consumption!
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: 8330k
Peak memory use before GGC: 3394k -> 3396k
Peak memory use after GGC: 3042k -> 3043k
Maximum of released memory in single GGC run: 352k -> 353k
Garbage: 525k
Leak: 3797k -> 3798k
Overhead: 915k -> 915k
GGC runs: 3
comparing empty function compilation at -O0 -g level:
Overall memory needed: 8346k
Peak memory use before GGC: 3422k -> 3423k
Peak memory use after GGC: 3069k -> 3071k
Maximum of released memory in single GGC run: 353k -> 352k
Garbage: 527k
Leak: 3829k -> 3831k
Overhead: 919k -> 919k
GGC runs: 3
comparing empty function compilation at -O1 level:
Overall memory needed: 8386k
Peak memory use before GGC: 3394k -> 3396k
Peak memory use after GGC: 3042k -> 3043k
Maximum of released memory in single GGC run: 352k -> 353k
Garbage: 527k
Leak: 3797k -> 3799k
Overhead: 915k -> 915k
GGC runs: 3
comparing empty function compilation at -O2 level:
Overall memory needed: 8390k
Peak memory use before GGC: 3395k -> 3396k
Peak memory use after GGC: 3042k -> 3044k
Maximum of released memory in single GGC run: 353k -> 352k
Garbage: 531k
Leak: 3798k -> 3800k
Overhead: 916k -> 916k
GGC runs: 3
comparing empty function compilation at -O3 level:
Overall memory needed: 8390k
Peak memory use before GGC: 3395k -> 3396k
Peak memory use after GGC: 3042k -> 3044k
Maximum of released memory in single GGC run: 353k -> 352k
Garbage: 531k
Leak: 3798k -> 3800k
Overhead: 916k -> 916k
GGC runs: 3
comparing combine.c compilation at -O0 level:
Amount of memory still referenced at the end of compilation increased from 8847k to 8856k, overall 0.11%
Overall memory needed: 23750k -> 23754k
Peak memory use before GGC: 10321k -> 10323k
Peak memory use after GGC: 9565k -> 9567k
Maximum of released memory in single GGC run: 1902k -> 1903k
Garbage: 39098k -> 39069k
Leak: 8847k -> 8856k
Overhead: 5786k -> 5786k
GGC runs: 254
comparing combine.c compilation at -O0 -g level:
Overall memory needed: 25622k
Peak memory use before GGC: 11982k -> 11984k
Peak memory use after GGC: 11357k -> 11358k
Maximum of released memory in single GGC run: 1516k
Garbage: 39442k -> 39438k
Leak: 11748k -> 11749k
Overhead: 6491k -> 6492k
GGC runs: 250
comparing combine.c compilation at -O1 level:
Overall memory needed: 35742k -> 35738k
Peak memory use before GGC: 18983k -> 18984k
Peak memory use after GGC: 18793k -> 18794k
Maximum of released memory in single GGC run: 1375k
Garbage: 52592k -> 52590k
Leak: 8993k -> 8994k
Overhead: 6749k -> 6749k
GGC runs: 321
comparing combine.c compilation at -O2 level:
Overall memory needed: 37742k -> 37750k
Peak memory use before GGC: 19037k -> 19038k
Peak memory use after GGC: 18847k -> 18848k
Maximum of released memory in single GGC run: 1409k -> 1410k
Garbage: 70982k -> 70992k
Leak: 9320k -> 9322k
Overhead: 8864k -> 8864k
GGC runs: 383
comparing combine.c compilation at -O3 level:
Overall memory needed: 40594k -> 40566k
Peak memory use before GGC: 19311k -> 19313k
Peak memory use after GGC: 18964k -> 18965k
Maximum of released memory in single GGC run: 2262k -> 2261k
Garbage: 92935k -> 92923k
Leak: 9441k -> 9434k
Overhead: 11492k -> 11492k
GGC runs: 412
comparing insn-attrtab.c compilation at -O0 level:
Overall memory needed: 140098k
Peak memory use before GGC: 60579k -> 60580k
Peak memory use after GGC: 34072k -> 34074k
Maximum of released memory in single GGC run: 34144k -> 34143k
Garbage: 132014k -> 132016k
Leak: 11585k -> 11586k
Overhead: 15588k -> 15589k
GGC runs: 197
comparing insn-attrtab.c compilation at -O0 -g level:
Amount of produced GGC garbage increased from 132242k to 132500k, overall 0.20%
Overall memory needed: 141354k -> 141358k
Peak memory use before GGC: 61741k -> 61742k
Peak memory use after GGC: 35233k -> 35235k
Maximum of released memory in single GGC run: 34145k -> 34144k
Garbage: 132242k -> 132500k
Leak: 13293k -> 13040k
Overhead: 15986k -> 15986k
GGC runs: 199
comparing insn-attrtab.c compilation at -O1 level:
Overall memory needed: 150234k -> 150218k
Peak memory use before GGC: 59100k -> 59101k
Peak memory use after GGC: 52849k -> 52850k
Maximum of released memory in single GGC run: 24232k
Garbage: 212964k -> 212962k
Leak: 12479k -> 12480k
Overhead: 25582k -> 25582k
GGC runs: 222
comparing insn-attrtab.c compilation at -O2 level:
Overall memory needed: 188918k -> 188902k
Peak memory use before GGC: 59722k -> 59723k
Peak memory use after GGC: 54428k -> 54429k
Maximum of released memory in single GGC run: 22887k
Garbage: 254073k
Leak: 13560k -> 13562k
Overhead: 31305k -> 31305k
GGC runs: 249
comparing insn-attrtab.c compilation at -O3 level:
Overall memory needed: 195878k -> 195882k
Peak memory use before GGC: 71706k -> 71708k
Peak memory use after GGC: 65139k -> 65141k
Maximum of released memory in single GGC run: 23329k -> 23330k
Garbage: 281239k -> 281238k
Leak: 13571k -> 13573k
Overhead: 33104k -> 33104k
GGC runs: 252
comparing Gerald's testcase PR8361 compilation at -O0 level:
Overall memory needed: 156546k -> 156609k
Peak memory use before GGC: 91627k -> 91628k
Peak memory use after GGC: 90710k -> 90711k
Maximum of released memory in single GGC run: 17988k
Garbage: 210867k -> 210869k
Leak: 55683k -> 55684k
Overhead: 27053k -> 27053k
GGC runs: 397
comparing Gerald's testcase PR8361 compilation at -O0 -g level:
Overall memory needed: 177690k -> 177757k
Peak memory use before GGC: 104561k -> 104596k
Peak memory use after GGC: 103523k -> 103552k
Maximum of released memory in single GGC run: 18669k -> 18703k
Garbage: 216714k -> 216721k
Leak: 79111k -> 79113k
Overhead: 33021k -> 33021k
GGC runs: 373
comparing Gerald's testcase PR8361 compilation at -O1 level:
Overall memory needed: 135292k -> 135255k
Peak memory use before GGC: 96156k -> 96157k
Peak memory use after GGC: 95202k -> 95203k
Maximum of released memory in single GGC run: 17368k
Garbage: 319654k -> 319652k
Leak: 55781k -> 55783k
Overhead: 33223k -> 33223k
GGC runs: 498 -> 497
comparing Gerald's testcase PR8361 compilation at -O2 level:
Overall memory needed: 145040k -> 145011k
Peak memory use before GGC: 96089k -> 96091k
Peak memory use after GGC: 95137k -> 95139k
Maximum of released memory in single GGC run: 17372k -> 17371k
Garbage: 379111k -> 379133k
Leak: 57027k -> 57027k
Overhead: 39586k -> 39586k
GGC runs: 561
comparing Gerald's testcase PR8361 compilation at -O3 level:
Overall memory needed: 148672k -> 148695k
Peak memory use before GGC: 97699k -> 97701k
Peak memory use after GGC: 96614k -> 96616k
Maximum of released memory in single GGC run: 17787k
Garbage: 417870k -> 417863k
Leak: 57337k -> 57338k
Overhead: 42927k -> 42927k
GGC runs: 584
comparing PR rtl-optimization/28071 testcase compilation at -O0 level:
Overall memory needed: 381009k -> 381016k
Peak memory use before GGC: 103475k -> 103476k
Peak memory use after GGC: 59129k -> 59130k
Maximum of released memory in single GGC run: 50582k
Garbage: 179674k -> 179674k
Leak: 9009k -> 9010k
Overhead: 31654k -> 31654k
GGC runs: 65
comparing PR rtl-optimization/28071 testcase compilation at -O0 -g level:
Overall memory needed: 381829k -> 381836k
Peak memory use before GGC: 104121k -> 104123k
Peak memory use after GGC: 59775k -> 59776k
Maximum of released memory in single GGC run: 50582k -> 50583k
Garbage: 179835k -> 179827k
Leak: 10777k -> 10778k
Overhead: 32150k -> 32150k
GGC runs: 72
comparing PR rtl-optimization/28071 testcase compilation at -O1 level:
Overall memory needed: 290234k -> 289898k
Peak memory use before GGC: 82783k -> 82784k
Peak memory use after GGC: 75171k -> 75172k
Maximum of released memory in single GGC run: 40018k -> 40017k
Garbage: 236071k
Leak: 18347k -> 18348k
Overhead: 32719k -> 32719k
GGC runs: 69
comparing PR rtl-optimization/28071 testcase compilation at -O2 level:
Overall memory needed: 279554k -> 279366k
Peak memory use before GGC: 80157k -> 80159k
Peak memory use after GGC: 75171k -> 75173k
Maximum of released memory in single GGC run: 33751k -> 33750k
Garbage: 246134k
Leak: 18436k -> 18437k
Overhead: 34945k -> 34945k
GGC runs: 82
comparing PR rtl-optimization/28071 testcase compilation at -O3 -fno-tree-pre -fno-tree-fre level:
Overall memory needed: 1012346k -> 1012670k
Peak memory use before GGC: 168799k -> 168800k
Peak memory use after GGC: 158363k -> 158364k
Maximum of released memory in single GGC run: 83495k
Garbage: 356480k
Leak: 28510k -> 28512k
Overhead: 46899k -> 46899k
GGC runs: 65
Head of the ChangeLog is:
--- /usr/src/SpecTests/sandbox-britten-memory/x86_64/mem-result/ChangeLog 2007-08-22 22:33:48.000000000 +0000
+++ /usr/src/SpecTests/sandbox-britten-memory/gcc/gcc/ChangeLog 2007-08-23 14:08:15.000000000 +0000
@@ -1,3 +1,144 @@
+2007-08-23 Richard Guenther <rguenther@suse.de>
+
+ * tree-pretty-print.c (dump_generic_node): Annotate
+ GIMPLE_MODIFY_STMTs with volatile ops with "{v}".
+
+2007-08-23 Richard Guenther <rguenther@suse.de>
+
+ * builtins.c (expand_builtin_mathfn): Wrap argument in
+ save_expr directly instead of re-building the call.
+ (expand_builtin_mathfn_2): Likewise.
+ (expand_builtin_mathfn_3): Likewise.
+ (expand_builtin_interclass_mathfn): Likewise.
+ (expand_builtin_int_roundingfn): Set arg.
+ (expand_builtin_int_roundingfn_2): Likewise.
+
+2007-08-23 Paolo Bonzini <bonzini@gnu.org>
+
+ * config/i386/sse.md (*sse_and<mode>3, *sse_ior<mode>3,
+ *sse_nand<mode>3, *sse_xor<mode>3): New.
+
+2007-08-23 Uros Bizjak <ubizjak@gmail.com>
+
+ * config/i386/i386.h (PRINT_OPERAND_PUNCT_VALID_P): Add ';' code.
+ * config/i386/i386.c (print_operand): Handle ';' code. Output
+ semicolon for TARGET_MACHO.
+ * config/i386/sync.md (*sync_compare_and_swap<mode>): Use '%;' to
+ emit semicolon after 'lock' prefix.
+ (sync_double_compare_and_swap<mode>): Ditto.
+ (*sync_double_compare_and_swapdi_pic): Ditto.
+ (*sync_compare_and_swap_cc<mode>): Ditto.
+ (sync_double_compare_and_swap_cc<mode>): Ditto.
+ (*sync_double_compare_and_swap_ccdi_pic): Ditto.
+ (sync_old_add<mode>): Ditto.
+ (sync_add<mode>): Ditto.
+ (sync_sub<mode>): Ditto.
+ (sync_ior<mode>): Ditto.
+ (sync_and<mode>): Ditto.
+ (sync_xor<mode>): Ditto.
+
+2007-08-22 Chao-ying Fu <fu@mips.com>
+
+ * rtl.c (rtx_code_size): Check CONST_FIXED to calcualte correct sizes
+ in DEF_RTL_EXPR.
+ (copy_rtx): Handle CONST_FIXED.
+ (rtx_equal_p): Likewise.
+ * rtl.h (fixed_value.h): New include.
+ (rtx_def): Add a new field of fixed_value to u.
+ (XCNMPFV): Define for accessing fixed_value.
+ (CONST_FIXED_VALUE, CONST_FIXED_VALUE_HIGH, CONST_FIXED_VALUE_LOW):
+ Define.
+ * rtl.def (CONST_FIXED): New constant.
+ (SS_MULT, US_MULT, SS_DIV, US_DIV, FRACT_CONVERT,
+ UNSIGNED_FRACT_CONVERT, SAT_FRACT, UNSIGNED_SAT_FRACT, US_NEG,
+ US_ASHIFT): New codes.
+ * doc/rtl.texi (Expressions): Document const_fixed, us_neg, ss_mult,
+ us_mult, ss_div, us_div, us_ashift, fract_convert, sat_fract,
+ unsigned_fract_convert, unsigned_sat_fract): Document them.
+ * varasm.c (assemble_integer): Extend to support fixed-point constants
+ by using different machine classes.
+ (decode_addr_const): Handle FIXED_CST.
+ (const_hash_1): Likewise.
+ (compare_constant): Likewise.
+ (copy_constant): Likewise.
+ (const_rtx_hash_1): Handle CONST_FIXED.
+ (output_constant_pool_2): Handle MODE_FRACT, MODE_UFRACT, MODE_ACCUM,
+ MODE_UACCUM, MODE_VECTOR_FRACT, MODE_VECTOR_UFRACT, MODE_VECTOR_ACCUM,
+ MODE_VECTOR_UACCUM.
+ (initializer_constant_valid_p): Handle FIXED_CST.
+ (output_constant): Support FIXED_POINT_TYPE.
+ * gengenrtl.c (excluded_rtx): Check CONST_FIXED to exclude.
+ * cse.c (hash_rtx): Support CONST_FIXED.
+ (exp_equiv_p): Likewise.
+ (cannon_reg): Likewise.
+ (fold_rtx): Likewise.
+ (equiv_constant): Likewise.
+ (cse_process_notes_1): Likewise.
+ (count_reg_usage): Likewise.
+ * cselib.c (entry_and_rtx_equal_p): Check CONST_FIXED.
+ (rtx_equal_for_cselib_p): Handle CONST_FIXED.
+ (wrap_constant): Check CONST_FIXED.
+ (cselib_hash_rtx): Support CONST_FIXED.
+ (cselib_subst_to_values): Likewise.
+ * df-scan.c (df_uses_record): Likewise.
+ * gcse.c (want_to_gcse_p): Likewise.
+ (oprs_unchanged_p): Likewise.
+ (oprs_not_set_p): Likewise.
+ (compute_transp): Likewise.
+ (extract_mentioned_regs_helper): Likewise.
+ * genemit.c (gen_exp): Likewise.
+ * local-alloc.c (equiv_init_varies_p): Likewise.
+ (contains_replace_regs): Likewise.
+ (memref_referenced_p): Likewise.
+ * loop-invariant.c (check_maybe_invariant): Likewise.
+ (hash_invariant_expr_1): Likewise.
+ (invariant_expr_equal_p): Likewise.
+ * postreload-gcse.c (oprs_unchanged_p): Likewise.
+ * regclass.c (reg_scan_mark_refs): Likewise.
+ * regrename.c (scan_rtx): Likewise.
+ * resource.c (mark_referenced_resources): Likewise.
+ (mark_set_resources): Likewise.
+ * rtlanal.c (rtx_unstable_p): Likewise.
+ (rtx_varies_p): Likewise.
+ (count_occurrences): Likewise.
+ (reg_mentioned_p): Likewise.
+ (modified_between_p): Likewise.
+ (modified_in_p): Likewise.
+ (volatile_insn_p): Likewise.
+ (volatile_refs_p): Likewise.
+ (side_effects_p): Likewise.
+ (may_trap_p_1): Likewise.
+ (inequality_comparisons_p): Likewise.
+ (computed_jump_p_1): Likewise.
+ (commutative_operand_precedence): Likewise.
+ * sched-deps.c (sched_analyze_2): Likewise.
+ * sched-vis.c (print_value): Likewise.
+ * reload.c (operands_match_p): Likewise.
+ (subst_reg_equivs): Likewise.
+ * reload1.c (eliminate_regs_1): Likewise.
+ (elimination_effects): Likewise.
+ (scan_paradoxical_subregs): Likewise.
+ * alias.c (rtx_equal_for_memref_p): Likewise.
+ * Makefile.in (RTL_BASE_H): Add fixed-value.h.
+ * emit-rtl.c (const_fixed_htab): New hash table.
+ (const_fixed_htab_hash, const_fixed_htab_eq, lookup_const_fixed):
+ Declare.
+ (const_fixed_htab_hash, const_fixed_htab_eq, lookup_const_fixed,
+ const_fixed_from_fixed_value): New functions.
+ (verify_rtx_sharing): Handle CONST_FIXED.
+ (copy_rtx_if_shared_1): Likewise.
+ (reset_used_flags): Likewise.
+ (set_used_flags): Likewise.
+ (copy_insn_1): Likewise.
+ (init_emit_once): Create const_fixed_htab.
+ Store fixed-point scalar and vector zero and one to const_tiny_rtx.
+
+2007-08-22 Zdenek Dvorak <ook@ucw.cz>
+
+ PR tree-optimization/32949
+ * tree-ssa-loop-niter.c (scev_probably_wraps_p): Test nowrap_type_p
+ before failing for ivs with non-constant step.
+
2007-08-22 Hans-Peter Nilsson <hp@axis.com>
* doc/md.texi (Iterators): Renamed from Macros. All contents
@@ -185,8 +326,8 @@
* c-tree.h (enum c_typespec_keyword): Add cts_fract and cts_accum.
(c_declspecs): Add saturating_p.
* c-decl.c (build_null_declspecs): Initialize saturating_p.
- (declspecs_add_type): Avoid using complex with _Fract, _Accum, or _Sat.
- Handle RID_SAT.
+ (declspecs_add_type): Avoid using complex with _Fract, _Accum, or
+ _Sat. Handle RID_SAT.
Avoid using void, bool, char, int, float, double, _Decimal32,
_Decimal64, _Decimal128, and complex with _Sat.
Handle RID_FRACT and RID_ACCUM.
@@ -482,14 +623,14 @@
'nested_in_vect_loop' case. Change verbosity level.
(vect_analyze_data_ref_access): Handle the 'nested_in_vect_loop' case.
Don't fail on zero step in the outer-loop for loads.
- (vect_analyze_data_refs): Call split_constant_offset to calculate base,
- offset and init relative to the outer-loop.
+ (vect_analyze_data_refs): Call split_constant_offset to calculate
+ base, offset and init relative to the outer-loop.
* tree-vect-transform.c (vect_create_data_ref_ptr): Replace the unused
BSI function argument with a new function argument - at_loop.
Simplify the condition that determines STEP. Takes additional argument
- INV_P. Support outer-loop vectorization (handle the nested_in_vect_loop
- case), including zero step in the outer-loop. Call
+ INV_P. Support outer-loop vectorization (handle the
+ nested_in_vect_loop case), including zero step in the outer-loop. Call
vect_create_addr_base_for_vector_ref with additional argument.
(vect_create_addr_base_for_vector_ref): Takes additional argument LOOP.
Updated function documentation. Handle the 'nested_in_vect_loop' case.
@@ -499,12 +640,12 @@
additional argument. Fix typos. Handle the 'nested_in_vect_loop' case.
(vect_setup_realignment): Takes additional arguments INIT_ADDR and
DR_ALIGNMENT_SUPPORT. Returns another value AT_LOOP. Handle the case
- when the realignment setup needs to take place inside the loop. Support
- the dr_explicit_realign scheme. Allow generating the optimized
+ when the realignment setup needs to take place inside the loop.
+ Support the dr_explicit_realign scheme. Allow generating the optimized
realignment scheme for outer-loop vectorization. Added documentation.
- (vectorizable_load): Support the dr_explicit_realign scheme. Handle the
- 'nested_in_vect_loop' case, including loads that are invariant in the
- outer-loop and the realignment schemes. Handle the case when the
+ (vectorizable_load): Support the dr_explicit_realign scheme. Handle
+ the 'nested_in_vect_loop' case, including loads that are invariant in
+ the outer-loop and the realignment schemes. Handle the case when the
realignment setup needs to take place inside the loop. Call
vect_setup_realignment with additional arguments. Call
vect_create_data_ref_ptr with additional argument and with loop instead
@@ -542,9 +683,9 @@
(new_stmt_vec_info): When setting def_type for phis differentiate
loop-header phis from other phis.
(bb_in_loop_p): New function.
- (new_loop_vec_info): Inner-loop phis already have a stmt_vinfo, so just
- update their loop_vinfo. Order of BB traversal now matters - call
- dfs_enumerate_from with bb_in_loop_p.
+ (new_loop_vec_info): Inner-loop phis already have a stmt_vinfo, so
+ just update their loop_vinfo. Order of BB traversal now matters -
+ call dfs_enumerate_from with bb_in_loop_p.
(destroy_loop_vec_info): Takes additional argument to control whether
stmt_vinfo of the loop stmts should be destroyed as well.
(vect_is_simple_reduction): Allow the "non-reduction" use of a
@@ -1003,8 +1144,8 @@
(add_back_forw_dep, delete_back_forw_dep): Ditto.
(debug_ds, sched_insn_is_legitimate_for_speculation_p): Declare
functions.
- (SD_LIST_NONE, SD_LIST_HARD_BACK, SD_LIST_SPEC_BACK, SD_LIST_FORW): New
- constants.
+ (SD_LIST_NONE, SD_LIST_HARD_BACK, SD_LIST_SPEC_BACK, SD_LIST_FORW):
+ New constants.
(SD_LIST_RES_BACK, SD_LIST_RES_FORW, SD_LIST_BACK): Ditto.
(sd_list_types_def): New typedef.
(sd_next_list): Declare function.
@@ -1145,8 +1286,8 @@
Free dependencies at the end of scheduling the ebb.
* ddg.c (create_ddg_dependence): Update to use new interfaces.
- (build_intra_loop_deps): Ditto. Remove separate computation of forward
- dependencies. Free sched-deps dependencies.
+ (build_intra_loop_deps): Ditto. Remove separate computation of
+ forward dependencies. Free sched-deps dependencies.
* config/ia64/ia64.c (ia64_dependencies_evaluation_hook): Update
to use new interfaces.
@@ -2220,13 +2361,14 @@
2007-08-04 Andrew Pinski <andrew_pinski@playstation.sony.com>
PR middle-end/32780
- * fold-const.c (fold_binary <case MINUS_EXPR>): Fix the type of operands
- for the folding of "A - (A & B)" into "~B & A"; cast them to type.
+ * fold-const.c (fold_binary <case MINUS_EXPR>): Fix the type of
+ operands for the folding of "A - (A & B)" into "~B & A"; cast them
+ to type.
2007-08-03 Zdenek Dvorak <ook@ucw.cz>
- * tree-ssa-threadupdate.c (thread_through_all_blocks): Use loops' state
- accessor functions.
+ * tree-ssa-threadupdate.c (thread_through_all_blocks): Use loops'
+ state accessor functions.
* cfgloopmanip.c (remove_path, create_preheaders,
force_single_succ_latches, fix_loop_structure): Ditto.
* tree-ssa-loop-manip.c (rewrite_into_loop_closed_ssa,
@@ -3109,8 +3251,8 @@
2007-07-27 Jan Hubicka <jh@suse.cz>
- * config/i386/i386.c (register_move_cost): Remove accidentally comitted
- #if 0 block.
+ * config/i386/i386.c (register_move_cost): Remove accidentally
+ comitted #if 0 block.
* attribs.c: Include hashtab.h
(attribute_hash): New.
@@ -4039,7 +4181,8 @@
Jakub Jelinek <jakub@redhat.com>
PR middle-end/PR28690
- * optabs.c (expand_binop): (emit_cmp_and_jump_insns): Allow EQ compares.
+ * optabs.c (expand_binop): (emit_cmp_and_jump_insns): Allow
+ EQ compares.
* rtlanal.c (commutative_operand_precedence): Prefer both REG_POINTER
and MEM_POINTER operands over REG and MEM operands.
(swap_commutative_operands_p): Change return value to bool.
@@ -4085,8 +4228,8 @@
(expand_copysign_absneg): If back end provides signbit insn, use it
instead of bit operations on floating point argument.
* builtins.c (enum insn_code signbit_optab[]): Remove array.
- (expand_builtin_signbit): Check signbit_optab->handlers[].insn_code for
- availability of signbit insn.
+ (expand_builtin_signbit): Check signbit_optab->handlers[].insn_code
+ for availability of signbit insn.
* config/i386/i386.md (signbit<mode>2): New insn pattern to implement
signbitf, signbit and signbitl built-ins as inline x87 intrinsics when
@@ -4371,8 +4514,8 @@
* pa-protos.h (pa_eh_return_handler_rtx): Declare.
* pa.c (pa_extra_live_on_entry, rp_saved): Declare.
(TARGET_EXTRA_LIVE_ON_ENTRY): Define.
- (pa_output_function_prologue): Use rp_saved and current_function_is_leaf
- to generate .CALLINFO statement.
+ (pa_output_function_prologue): Use rp_saved and
+ current_function_is_leaf to generate .CALLINFO statement.
(hppa_expand_prologue): Set rp_saved.
(hppa_expand_epilogue): Use rp_saved.
(pa_extra_live_on_entry, pa_eh_return_handler_rtx): New functions.
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.