A recent patch increased GCC's memory consumption!
gcctest@suse.de
gcctest@suse.de
Thu Dec 14 04:17:00 GMT 2006
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:
Peak amount of GGC memory still allocated after garbage collectin increased from 1940k to 1942k, overall 0.10%
Overall memory needed: 18273k -> 18277k
Peak memory use before GGC: 2233k -> 2235k
Peak memory use after GGC: 1940k -> 1942k
Maximum of released memory in single GGC run: 293k
Garbage: 422k -> 423k
Leak: 2271k -> 2273k
Overhead: 446k -> 446k
GGC runs: 3
comparing empty function compilation at -O0 -g level:
Peak amount of GGC memory allocated before garbage collecting increased from 2260k to 2263k, overall 0.13%
Peak amount of GGC memory still allocated after garbage collectin increased from 1967k to 1970k, overall 0.15%
Amount of memory still referenced at the end of compilation increased from 2303k to 2305k, overall 0.10%
Overall memory needed: 18289k -> 18293k
Peak memory use before GGC: 2260k -> 2263k
Peak memory use after GGC: 1967k -> 1970k
Maximum of released memory in single GGC run: 293k
Garbage: 425k -> 425k
Leak: 2303k -> 2305k
Overhead: 450k -> 450k
GGC runs: 3
comparing empty function compilation at -O1 level:
Peak amount of GGC memory still allocated after garbage collectin increased from 1940k to 1942k, overall 0.10%
Overall memory needed: 18373k -> 18377k
Peak memory use before GGC: 2233k -> 2235k
Peak memory use after GGC: 1940k -> 1942k
Maximum of released memory in single GGC run: 293k
Garbage: 426k -> 427k
Leak: 2273k -> 2275k
Overhead: 446k -> 446k
GGC runs: 4
comparing empty function compilation at -O2 level:
Peak amount of GGC memory allocated before garbage collecting increased from 2233k to 2236k, overall 0.13%
Peak amount of GGC memory still allocated after garbage collectin increased from 1940k to 1942k, overall 0.10%
Overall memory needed: 18385k -> 18389k
Peak memory use before GGC: 2233k -> 2236k
Peak memory use after GGC: 1940k -> 1942k
Maximum of released memory in single GGC run: 293k -> 294k
Garbage: 429k -> 430k
Leak: 2273k -> 2275k
Overhead: 447k -> 447k
GGC runs: 4
comparing empty function compilation at -O3 level:
Peak amount of GGC memory allocated before garbage collecting increased from 2233k to 2236k, overall 0.13%
Peak amount of GGC memory still allocated after garbage collectin increased from 1940k to 1942k, overall 0.10%
Overall memory needed: 18385k -> 18389k
Peak memory use before GGC: 2233k -> 2236k
Peak memory use after GGC: 1940k -> 1942k
Maximum of released memory in single GGC run: 293k -> 294k
Garbage: 429k -> 430k
Leak: 2273k -> 2275k
Overhead: 447k -> 447k
GGC runs: 4
comparing combine.c compilation at -O0 level:
Amount of memory still referenced at the end of compilation increased from 6447k to 6455k, overall 0.12%
Overall memory needed: 28429k -> 28437k
Peak memory use before GGC: 9285k -> 9287k
Peak memory use after GGC: 8800k -> 8804k
Maximum of released memory in single GGC run: 2643k -> 2641k
Garbage: 37513k -> 37502k
Leak: 6447k -> 6455k
Overhead: 4666k -> 4869k
GGC runs: 280
comparing combine.c compilation at -O0 -g level:
Peak amount of GGC memory allocated before garbage collecting increased from 10811k to 10834k, overall 0.21%
Peak amount of GGC memory still allocated after garbage collectin increased from 10440k to 10464k, overall 0.23%
Amount of memory still referenced at the end of compilation increased from 9257k to 9331k, overall 0.79%
Overall memory needed: 30513k -> 30521k
Peak memory use before GGC: 10811k -> 10834k
Peak memory use after GGC: 10440k -> 10464k
Maximum of released memory in single GGC run: 2360k
Garbage: 38085k -> 38077k
Leak: 9257k -> 9331k
Overhead: 5333k -> 5570k
GGC runs: 272
comparing combine.c compilation at -O1 level:
Peak amount of GGC memory allocated before garbage collecting increased from 16958k to 16979k, overall 0.12%
Amount of produced GGC garbage increased from 55524k to 55685k, overall 0.29%
Amount of memory still referenced at the end of compilation increased from 6479k to 6489k, overall 0.16%
Overall memory needed: 29470k -> 29474k
Peak memory use before GGC: 16958k -> 16979k
Peak memory use after GGC: 16787k -> 16792k
Maximum of released memory in single GGC run: 2255k -> 2254k
Garbage: 55524k -> 55685k
Leak: 6479k -> 6489k
Overhead: 9642k -> 10562k
GGC runs: 363 -> 360
comparing combine.c compilation at -O2 level:
Peak amount of GGC memory allocated before garbage collecting increased from 16956k to 16988k, overall 0.19%
Amount of produced GGC garbage increased from 71476k to 71699k, overall 0.31%
Overall memory needed: 29470k -> 29474k
Peak memory use before GGC: 16956k -> 16988k
Peak memory use after GGC: 16787k -> 16792k
Maximum of released memory in single GGC run: 2647k -> 2611k
Garbage: 71476k -> 71699k
Leak: 6610k -> 6611k
Overhead: 11468k -> 12536k
GGC runs: 417 -> 413
comparing combine.c compilation at -O3 level:
Peak amount of GGC memory allocated before garbage collecting increased from 18182k to 18226k, overall 0.24%
Peak amount of GGC memory still allocated after garbage collectin increased from 17676k to 17749k, overall 0.41%
Amount of produced GGC garbage increased from 105939k to 106169k, overall 0.22%
Overall memory needed: 29598k -> 29602k
Peak memory use before GGC: 18182k -> 18226k
Peak memory use after GGC: 17676k -> 17749k
Maximum of released memory in single GGC run: 4116k -> 4564k
Garbage: 105939k -> 106169k
Leak: 6682k -> 6688k
Overhead: 16395k -> 17998k
GGC runs: 471 -> 463
comparing insn-attrtab.c compilation at -O0 level:
Amount of produced GGC garbage increased from 131968k to 132105k, overall 0.10%
Overall memory needed: 89646k -> 89650k
Peak memory use before GGC: 71190k -> 71193k
Peak memory use after GGC: 44696k -> 44699k
Maximum of released memory in single GGC run: 37868k
Garbage: 131968k -> 132105k
Leak: 9513k -> 9518k
Overhead: 15975k -> 16952k
GGC runs: 211
comparing insn-attrtab.c compilation at -O0 -g level:
Amount of produced GGC garbage increased from 133122k to 133512k, overall 0.29%
Overall memory needed: 90830k -> 90826k
Peak memory use before GGC: 72339k -> 72354k
Peak memory use after GGC: 45952k -> 45967k
Maximum of released memory in single GGC run: 37868k
Garbage: 133122k -> 133512k
Leak: 11184k -> 10982k
Overhead: 16354k -> 17347k
GGC runs: 209
comparing insn-attrtab.c compilation at -O1 level:
Peak amount of GGC memory allocated before garbage collecting increased from 72446k to 73119k, overall 0.93%
Peak amount of GGC memory still allocated after garbage collectin increased from 70077k to 70764k, overall 0.98%
Amount of produced GGC garbage increased from 229261k to 229861k, overall 0.26%
Overall memory needed: 94330k -> 96050k
Peak memory use before GGC: 72446k -> 73119k
Peak memory use after GGC: 70077k -> 70764k
Maximum of released memory in single GGC run: 31671k
Garbage: 229261k -> 229861k
Leak: 9340k -> 9343k
Overhead: 28172k -> 31154k
GGC runs: 224 -> 226
comparing insn-attrtab.c compilation at -O2 level:
Overall memory allocated via mmap and sbrk increased from 123310k to 128386k, overall 4.12%
Peak amount of GGC memory allocated before garbage collecting increased from 78010k to 78731k, overall 0.92%
Peak amount of GGC memory still allocated after garbage collectin increased from 75480k to 76200k, overall 0.95%
Amount of produced GGC garbage increased from 282035k to 282674k, overall 0.23%
Overall memory needed: 123310k -> 128386k
Peak memory use before GGC: 78010k -> 78731k
Peak memory use after GGC: 75480k -> 76200k
Maximum of released memory in single GGC run: 30215k -> 30216k
Garbage: 282035k -> 282674k
Leak: 9343k -> 9345k
Overhead: 34348k -> 37707k
GGC runs: 248 -> 247
comparing insn-attrtab.c compilation at -O3 level:
Overall memory allocated via mmap and sbrk increased from 113698k to 128162k, overall 12.72%
Peak amount of GGC memory allocated before garbage collecting increased from 78036k to 78756k, overall 0.92%
Peak amount of GGC memory still allocated after garbage collectin increased from 75505k to 76226k, overall 0.95%
Amount of produced GGC garbage increased from 282863k to 283518k, overall 0.23%
Overall memory needed: 113698k -> 128162k
Peak memory use before GGC: 78036k -> 78756k
Peak memory use after GGC: 75505k -> 76226k
Maximum of released memory in single GGC run: 30409k -> 30410k
Garbage: 282863k -> 283518k
Leak: 9348k -> 9350k
Overhead: 34576k -> 37940k
GGC runs: 252 -> 253
comparing Gerald's testcase PR8361 compilation at -O0 level:
Peak amount of GGC memory allocated before garbage collecting increased from 92191k to 92331k, overall 0.15%
Peak amount of GGC memory still allocated after garbage collectin increased from 91269k to 91417k, overall 0.16%
Amount of produced GGC garbage increased from 209930k to 210224k, overall 0.14%
Amount of memory still referenced at the end of compilation increased from 48078k to 48133k, overall 0.11%
Overall memory needed: 119062k -> 119066k
Peak memory use before GGC: 92191k -> 92331k
Peak memory use after GGC: 91269k -> 91417k
Maximum of released memory in single GGC run: 19185k -> 19252k
Garbage: 209930k -> 210224k
Leak: 48078k -> 48133k
Overhead: 20539k -> 20979k
GGC runs: 412 -> 413
comparing Gerald's testcase PR8361 compilation at -O0 -g level:
Peak amount of GGC memory allocated before garbage collecting increased from 104385k to 104696k, overall 0.30%
Peak amount of GGC memory still allocated after garbage collectin increased from 103349k to 103652k, overall 0.29%
Amount of produced GGC garbage increased from 216527k to 216791k, overall 0.12%
Amount of memory still referenced at the end of compilation increased from 70950k to 71564k, overall 0.87%
Overall memory needed: 131642k
Peak memory use before GGC: 104385k -> 104696k
Peak memory use after GGC: 103349k -> 103652k
Maximum of released memory in single GGC run: 18862k -> 18947k
Garbage: 216527k -> 216791k
Leak: 70950k -> 71564k
Overhead: 26156k -> 26883k
GGC runs: 384
comparing Gerald's testcase PR8361 compilation at -O1 level:
Amount of produced GGC garbage increased from 439924k to 442053k, overall 0.48%
Amount of memory still referenced at the end of compilation increased from 50143k to 50198k, overall 0.11%
Overall memory needed: 120098k -> 120074k
Peak memory use before GGC: 96659k -> 96747k
Peak memory use after GGC: 94406k -> 94461k
Maximum of released memory in single GGC run: 18009k -> 17941k
Garbage: 439924k -> 442053k
Leak: 50143k -> 50198k
Overhead: 101046k -> 107726k
GGC runs: 565
comparing Gerald's testcase PR8361 compilation at -O2 level:
Amount of produced GGC garbage increased from 494683k to 497118k, overall 0.49%
Amount of memory still referenced at the end of compilation increased from 51112k to 51167k, overall 0.11%
Overall memory needed: 120142k -> 120134k
Peak memory use before GGC: 96686k -> 96775k
Peak memory use after GGC: 94433k -> 94489k
Maximum of released memory in single GGC run: 18009k -> 18082k
Garbage: 494683k -> 497118k
Leak: 51112k -> 51167k
Overhead: 55999k -> 63569k
GGC runs: 619 -> 621
comparing Gerald's testcase PR8361 compilation at -O3 level:
Amount of produced GGC garbage increased from 514724k to 517485k, overall 0.54%
Amount of memory still referenced at the end of compilation increased from 51087k to 51140k, overall 0.10%
Overall memory needed: 121938k -> 121934k
Peak memory use before GGC: 97680k -> 97763k
Peak memory use after GGC: 96087k -> 96142k
Maximum of released memory in single GGC run: 18403k -> 18476k
Garbage: 514724k -> 517485k
Leak: 51087k -> 51140k
Overhead: 55482k -> 63491k
GGC runs: 626 -> 625
comparing PR rtl-optimization/28071 testcase compilation at -O0 level:
Overall memory needed: 137638k -> 137646k
Peak memory use before GGC: 81585k -> 81587k
Peak memory use after GGC: 58465k -> 58467k
Maximum of released memory in single GGC run: 45166k -> 45167k
Garbage: 148443k -> 148513k
Leak: 7539k -> 7542k
Overhead: 25101k -> 25327k
GGC runs: 82
comparing PR rtl-optimization/28071 testcase compilation at -O0 -g level:
Amount of memory still referenced at the end of compilation increased from 9247k to 9309k, overall 0.67%
Overall memory needed: 138182k -> 138014k
Peak memory use before GGC: 82218k -> 82233k
Peak memory use after GGC: 59098k -> 59113k
Maximum of released memory in single GGC run: 45232k
Garbage: 148662k -> 148724k
Leak: 9247k -> 9309k
Overhead: 25566k -> 25823k
GGC runs: 88
comparing PR rtl-optimization/28071 testcase compilation at -O1 level:
Peak amount of GGC memory allocated before garbage collecting increased from 202462k to 205546k, overall 1.52%
Peak amount of GGC memory still allocated after garbage collectin increased from 196531k to 199777k, overall 1.65%
Amount of produced GGC garbage increased from 281969k to 283522k, overall 0.55%
Overall memory needed: 423542k -> 426618k
Peak memory use before GGC: 202462k -> 205546k
Peak memory use after GGC: 196531k -> 199777k
Maximum of released memory in single GGC run: 94103k -> 99746k
Garbage: 281969k -> 283522k
Leak: 29776k -> 29778k
Overhead: 29673k -> 36217k
GGC runs: 99 -> 97
comparing PR rtl-optimization/28071 testcase compilation at -O2 level:
Peak amount of GGC memory allocated before garbage collecting increased from 202459k to 205539k, overall 1.52%
Peak amount of GGC memory still allocated after garbage collectin increased from 196528k to 199770k, overall 1.65%
Amount of produced GGC garbage increased from 362205k to 364129k, overall 0.53%
Overall memory needed: 353098k -> 355578k
Peak memory use before GGC: 202459k -> 205539k
Peak memory use after GGC: 196528k -> 199770k
Maximum of released memory in single GGC run: 96113k -> 96117k
Garbage: 362205k -> 364129k
Leak: 30359k -> 30361k
Overhead: 45422k -> 51967k
GGC runs: 106 -> 105
comparing PR rtl-optimization/28071 testcase compilation at -O3 -fno-tree-pre -fno-tree-fre level:
Peak amount of GGC memory allocated before garbage collecting increased from 321489k to 326891k, overall 1.68%
Peak amount of GGC memory still allocated after garbage collectin increased from 299831k to 304533k, overall 1.57%
Amount of produced GGC garbage increased from 498586k to 504162k, overall 1.12%
Overall memory needed: 769610k -> 769722k
Peak memory use before GGC: 321489k -> 326891k
Peak memory use after GGC: 299831k -> 304533k
Maximum of released memory in single GGC run: 166488k -> 168269k
Garbage: 498586k -> 504162k
Leak: 45411k -> 45414k
Overhead: 55694k -> 66989k
GGC runs: 98 -> 97
Head of the ChangeLog is:
--- /usr/src/SpecTests/sandbox-britten-memory/x86_64/mem-result/ChangeLog 2006-12-12 11:12:21.000000000 +0000
+++ /usr/src/SpecTests/sandbox-britten-memory/gcc/gcc/ChangeLog 2006-12-14 02:18:19.000000000 +0000
@@ -1,3 +1,338 @@
+2006-12-13 Zdenek Dvorak <dvorakz@suse.cz>
+
+ * tree-ssa-loop-ivopts.c: Include tree-affine.h.
+ (divide): Removed.
+ (constant_multiple_of): Fix order of operators for division.
+ (aff_combination_const, aff_combination_elt, aff_combination_scale,
+ aff_combination_add_elt, aff_combination_add, aff_combination_convert,
+ tree_to_aff_combination, add_elt_to_tree, unshare_aff_combination,
+ aff_combination_to_tree): Moved to tree-affine.c and made to work with
+ double_int coefficients.
+ (get_computation_aff, get_computation_at): Work with double_int
+ coefficients.
+ (get_computation_cost_at): Do not use divide.
+ (rewrite_use_nonlinear_expr, rewrite_use_address, rewrite_use_compare):
+ Assert that expressing the computation did not fail.
+ * tree-ssa-address.c: Include tree-affine.h.
+ (add_to_parts, most_expensive_mult_to_index, addr_to_parts,
+ create_mem_ref): Work with double_int coefficients.
+ * tree-affine.c: New file.
+ * tree-affine.h: New file.
+ * tree-flow.h (struct affine_tree_combination): Removed.
+ * Makefile.in (tree-affine.o): Add.
+ (tree-ssa-address.o, tree-ssa-loop-ivopts.o): Add tree-affine.h
+ dependency.
+
+2006-12-13 Peter Bergner <bergner@vnet.ibm.com>
+
+ PR middle-end/30191
+ Revert:
+ * reload1.c (eliminate_regs_in_insn): Merge the plus_src "else" and
+ the offset == 0 "then" clauses.
+ * config/rs6000/predicates.md (gpc_reg_operand): Check for
+ reload_in_progress.
+
+2006-12-13 Uros Bizjak <ubizjak@gmail.com>
+
+ * config/i386/i386.h (FIRST_PSEUDO_REGISTER): Define to 53.
+ (FIXED_REGISTERS, CALL_USED_REGISTERS): Remove dir register.
+ (REG_ALLOC_ORDER): Remove one element due to removal of dir register.
+ (FRAME_POINTER_REGNUM): Update register number to 20.
+ (REG_CLASS_CONTENTS): Update contents due to removed dir register.
+ (HI_REGISTER_NAMES): Remove "dirflag".
+
+ * config/i386/i386.c (regclass_map): Remove dirflag entry.
+ (dbx_register_map, dbx64_register_map, svr4_dbx_register_map):
+ Remove "dir" entry.
+ (ix86_md_asm_clobbers): Remove "dirflag" default asm clobber.
+
+ * config/i386/i386.md (R10_REG, R11_REG): Renumber.
+ (sse_prologue_save, *sse_prologue_save_insn): Renumber
+ hardcoded SSE register numbers.
+
+ * config/i386/mmx.md (mmx_emms, mmx_femms): Renumber
+ hardcoded MMX register numbers.
+
+
+2006-12-13 Mark Shinwell <shinwell@codesourcery.com>
+
+ * config/arm/arm.c (arm_output_fldmx): Output FLDMD instead of
+ FLDMX. Rename function to...
+ (vfp_output_fldmd): ...this.
+ (vfp_output_fstmx): Output FSTMD instead of FSTMX. Rename
+ function to...
+ (vfp_output_fstmd): ...this.
+ (vfp_emit_fstmx): Don't leave space in the frame layout for the
+ FSTMX format word. Rename function to...
+ (vfp_emit_fstmd): ...this.
+ (arm_get_vfp_saved_size): Don't add in space for the FSTMX format
+ word.
+ (arm_output_epilogue): Adjust comment to reflect use of FSTMD.
+ (arm_unwind_emit_sequence): Don't compensate for the FSTMX format
+ word. Also emit "vsave" assembler directives in such cases rather
+ than "save".
+ * config/arm/libunwind.S (gnu_Unwind_Restore_VFP,
+ gnu_Unwind_Save_VFP): Adjust comments.
+ (gnu_Unwind_Restore_VFP_D, gnu_Unwind_Save_VFP_D): New functions
+ for saving and restoring using FSTMD and FLDMD rather than
+ FSTMX and FLDMX.
+ (gnu_Unwind_Restore_VFP_D_16_to_31, gnu_Unwind_Restore_VFP_D_16_to_31):
+ New functions for saving and restoring the VFPv3 registers 16 .. 31.
+ * config/arm/pr-support.c (gnu_unwind_execute): Add conditional
+ compilation case to correctly handle unwind opcode 0xc8 when using
+ VFP.
+ * config/arm/unwind-arm.c (struct vfpv3_regs): New.
+ (DEMAND_SAVE_VFP_D, DEMAND_SAVE_VFP_V3): New flags.
+ (__gnu_Unwind_Save_VFP_D, __gnu_Unwind_Restore_VFP_D,
+ __gnu_Unwind_Save_VFP_D_16_to_31, __gnu_Unwind_Restore_VFP_D_16_to_31):
+ Declare.
+ (restore_non_core_regs): Restore registers using FLDMD rather than
+ FLDMX if required. Also handle restoration of VFPv3 registers.
+ (_Unwind_VRS_Pop): Handle saving and restoring of registers using
+ FSTMD and FLDMD if required; also handle VFPv3 registers 16 .. 31,
+ including cases where the caller specifies a range of registers
+ that overlaps the d15/d16 boundary.
+
+2006-12-13 Diego Novillo <dnovillo@redhat.com>
+
+ PR 30089
+ * tree-ssa-operands.h (SSA_OPERAND_MEMORY_SIZE): Add space to
+ accomodate 511 operands.
+
+2006-12-13 Richard Guenther <rguenther@suse.de>
+
+ * builtins.c (expand_builtin_cexpi): Fix typo.
+
+2006-12-13 Jan Hubicka <jh@suse.cz>
+
+ * Makefile.in: Add dependencies.
+ * tree-pretty-print.c: Include value-prof.h
+ (dump_generic_bb_buff): Dump histograms
+ * value-prof.c: Include pointer-set.h
+ (gimple_alloc_histogram_value, histogram_hash, histogram_eq,
+ set_histogram_value, gimple_histogram_value,
+ gimple_add_histogram_value, gimple_remove_histogram_value,
+ gimple_histogram_value_of_type, dump_histogram_value,
+ dump_histograms_for_stmt, gimple_remove_stmt_histograms,
+ gimple_duplicate_stmt_histograms, visit_hist,
+ verify_histograms): New functions.
+ (tree_value_profile_transformations): Update for new histogram API.
+ (tree_divmod_fixed_value): Update for new histogram API.
+ (tree_divmod_fixed_value_transform): Update for new histogram API.
+ (tree_mod_pow2): Update for new histogram API.
+ (tree_mod_pow2_value_transform): Update for new histogram API.
+ (tree_mod_subtract): Update for new histogram API.
+ (tree_mod_subtract_transform): Update for new histogram API.
+ (tree_stringops_transform): Update for new histogram API.
+ (tree_divmod_values_to_profile): Update for new histogram API.
+ (tree_stringops_values_to_profile): Update for new histogram API.
+ (tree_find_values_to_profile): Update for new histogram API.
+ * value-prof.h (gimple_histogram_value): Declare.
+ (gimple_histogram_value_of_type): Declare.
+ (gimple_add_histogram_value): Declare.
+ (gimple_remove_histogram_value): Declare.
+ (dump_histograms_for_stmt): Declare.
+ (gimple_remove_histogram_value): Declare.
+ (gimple_remove_stmt_histograms): Declare.
+ (gimple_duplicate_stmt_histograms): Declare.
+ (verify_histograms): Declare.
+ * function.h
+ (struct funrction): Add value_histograms hash.
+ (VALUE_HISTOGRAMS): New macro.
+ * profile.c (compute_value_histograms): update for new API.
+ * tree-inline.c: Include value-prof.h
+ (copy_bb): Update histograms.
+ * tree-flow.h (struct stmt_ann_d): Do not contain pointer to histograms;
+ reorder to get smaller memory layout.
+ * tree-cfg.c: Include value-prof.h
+ (bsi_remove): Update histograms.
+ (bsi_replace): Update histograms.
+ (verify_stmts): Call histogram verifier.
+ (tree_duplicate_bb): Update histograms.
+ (move_block_to_fn): Update histograms.
+
+2006-12-13 Richard Guenther <rguenther@suse.de>
+
+ * ipa-inline.c (cgraph_flatten_node): Replace leafify with
+ flatten.
+ (cgraph_decide_inlining): Likewise.
+
+2006-12-13 Richard Guenther <rguenther@suse.de>
+
+ PR tree-optimization/17687
+ * builtins.def (BUILT_IN_CEXPI, BUILT_IN_CEXPIF, BUILT_IN_CEXPIL):
+ New builtins for imaginary argument cexp.
+ * builtin-types.def (BT_FN_COMPLEX_FLOAT_FLOAT,
+ BT_FN_COMPLEX_DOUBLE_DOUBLE, BT_FN_COMPLEX_LONGDOUBLE_LONGDOUBLE):
+ New required builtin types.
+ * builtins.c (expand_builtin_cexpi): Declare.
+ (mathfn_built_in): Handle BUILT_IN_CEXPI.
+ (expand_builtin_cexpi): New static helper.
+ (expand_builtin): Call it.
+ (do_mpfr_sincos): Adjust for CEXPI evaluation.
+ (fold_builtin_sincos): New function to fold sincos to cepxi.
+
+2006-12-13 Richard Guenther <rguenther@suse.de>
+
+ * ipa-reference.c (scan_for_static_refs): Also scan
+ tcc_comparison class trees.
+
+2006-12-12 David Daney <ddaney@avtrex.com>
+
+ * config/mips/mips.h (ASM_OUTPUT_EXTERNAL): Undefine it before
+ define.
+
+2006-12-12 Andrew Pinski <pinskia@gmail.com>
+
+ * tree-vect-transform.c (vect_permute_load_chain):
+ Set DECL_GIMPLE_REG_P to true for the vect_perm_*
+ temp variables.
+
+2006-12-13 Sa Liu <saliu@de.ibm.com>
+ Ben Elliston <bje@au.ibm.com>
+
+ * config/spu/spu.h (C_COMMON_OVERRIDE_OPTIONS): Define.
+ (REGISTER_TARGET_PRAGMAS): Don't zero warn_main flag.
+ * config/spu/spu-protos.h (spu_c_common_override_options):
+ Declare.
+ * config/spu/spu-c.c (spu_c_common_override_options): New.
+ * config/spu/spu.c (spu_override_options): Whitespace fix.
+
+2006-12-12 Trevor Smigiel <trevor_smigiel@playstation.sony.com>
+
+ * config/spu/spu.c (cpat_info): Fix an incorrectly identified case.
+
+2006-12-12 Geoffrey Keating <geoffk@apple.com>
+
+ * mips-tdump.c: Replace CROSS_COMPILE with
+ CROSS_DIRECTORY_STRUCTURE.
+ * mips-tfile.c: Likewise.
+ * gcc.c: Likewise.
+ * configure.ac: Likewise.
+ * cppdefault.c: Likewise.
+ * Makefile.in: Likewise.
+ * config/alpha/osf.h: Likewise.
+ * config/i386/cygwin.h: Likewise.
+ * config/i386/beos-elf.h: Likewise.
+ * config/i386/nto.h: Likewise.
+ * config/fr30/fr30.h: Likewise.
+ * config/svr4.h: Likewise.
+ * config/rs6000/aix.h: Likewise.
+ * config/rs6000/sysv4.h: Likewise.
+ * config/pa/pa64-hpux.h: Likewise.
+ * config/pa/pa-hpux10.h: Likewise.
+ * config/pa/pa-hpux11.h: Likewise.
+ * collect2.c: Likewise.
+ * configure: Regenerate.
+
+ * doc/tm.texi (Alignment Output): Document that ASM_OUTPUT_SKIP
+ actually takes an unsigned HOST_WIDE_INT for its second parameter.
+
+2006-12-13 Ulrich Weigand <uweigand@de.ibm.com>
+
+ * config/spu/spu.c (TARGET_ENCODE_SECTION_INFO): Define.
+ (spu_encode_section_info): New.
+ * config/spu/spu.h (ALIGNED_SYMBOL_REF_P): Adjust.
+ (SYMBOL_FLAG_ALIGN1): New.
+
+2006-12-12 Andrew Pinski <andrew_pinski@playstation.sony.com>
+
+ PR tree-opt/28624
+ * tree-ssa-dom.c (eliminate_degenerate_phis): Use a temporary
+ bitmap for EXECUTE_IF_SET_IN_BITMAP.
+
+2006-12-12 Andrew Pinski <andrew_pinski@playstation.sony.com>
+
+ PR tree-opt/28436
+ * tree.h (DECL_COMPLEX_GIMPLE_REG_P): Rename to ...
+ (DECL_GIMPLE_REG_P): This.
+ * fold-const.c (fold_indirect_ref_1): Fold *(foo *)&vectorfoo into
+ using BIT_FIELD_REF.
+ * omp-low.c (omp_copy_decl_2): Use the renamed DECL_GIMPLE_REG_P.
+ * tree-gimple.c (is_gimple_reg): Use the renamed DECL_GIMPLE_REG_P
+ and check for VECTOR_TYPE.
+ * expr.c (get_inner_reference): Set the mode for BIT_FIELD_REF with
+ vector types.
+ * tree-flow-inline.h (var_can_have_subvars): Use the renamed
+ DECL_GIMPLE_REG_P.
+ * gimplify.c (internal_get_tmp_var): Use the renamed DECL_GIMPLE_REG_P
+ and check for VECTOR_TYPE.
+ (gimplify_bind_expr): Likewise.
+ (gimplify_function_tree): Likewise.
+ * expmed.c: Include target.h.
+ (extract_bit_field): For vector mode, try find a better mode first.
+ If that fails use gen_lowpart (for vectors only).
+ * tree-dfa.c (make_rename_temp): Use the renamed DECL_GIMPLE_REG_P
+ and check for VECTOR_TYPE.
+ * tree-ssa-pre.c (create_expressions_by_pieces): Likewise.
+ (insert_into_preds_of_block): Likewise.
+ (insert_fake_stores): Create gimple register store_tmps for
+ vector types.
+ * tree-sra.c (sra_elt): New field, is_vector_lhs.
+ (sra_walk_expr <case BIT_FIELD_REF>): For vector types that
+ are the left hand side, set the element's is_vector_lhs to true.
+ (instantiate_element): For vector types which were on the left
+ hand size, set DECL_GIMPLE_REG_P to false.
+ * tree-nested.c (create_tmp_var_for): Use the renamed DECL_GIMPLE_REG_P. * tree-inline.c (declare_return_variable): Use the renamed
+ DECL_GIMPLE_REG_P
+ and check for VECTOR_TYPE.
+ (copy_decl_to_var): Use the renamed DECL_GIMPLE_REG_P.
+ (copy_result_decl_to_var): Likewise.
+ * tree-vect-transform.c (vect_get_new_vect_var): For vector types,
+ create a gimple register variable.
+ (vect_permute_store_chain): Set DECL_GIMPLE_REG_P to true for the
+ vect_inter_* temp variables.
+ * Makefile.in (expmed.o): Update dependencies.
+
+2006-12-12 Peter Bergner <bergner@vnet.ibm.com>
+
+ * reload1.c (eliminate_regs_in_insn): Merge the plus_src "else" and
+ the offset == 0 "then" clauses.
+ * config/rs6000/predicates.md (gpc_reg_operand): Check for
+ reload_in_progress.
+
+2006-12-12 Marcin Dalecki <martin@dalecki.de>
+
+ * doc/passes.texi: remove docs about "redundant PHI removal".
+ * tree-pass.h: remove orphaned declaration of pass_redundant_phi,
+ remove redundant pass_partition_blocks declaration.
+
+2006-12-12 Andrew Macleod <amacleod@redhat.com>
+
+ PR tree-optimization/30159
+ * tree-ssa-coalesce.c (coalesce_ssa_name): Process single ssa_name
+ functions in case a default_def coalesce is required.
+
+2006-12-12 Jakub Jelinek <jakub@redhat.com>
+
+ PR libstdc++/11953
+ * gthr-posix.h (_REENTRANT): Only define if __osf__ is defined.
+
+ * config/ia64/linux.h (CPP_SPEC): Define.
+ * config/s390/linux.h (CPP_SPEC): Define.
+
+2006-12-12 Jim Wilson <wilson@specifix.com>
+ Jakub Jelinek <jakub@redhat.com>
+
+ PR rtl-optimization/27761
+ * combine.c (try_combine): Don't create a useless garbage SET
+ if PATTERN (i2) is a PARALLEL. If added_sets_1, save
+ PATTERN (i1) resp. SET from i1src to i1dest in i1pat
+ and use it to prevent accidental modification of i1src.
+
+2006-12-12 Ira Rosen <irar@il.ibm.com>
+
+ * tree-vect-analyze.c (vect_analyze_data_ref_access): Add another check
+ for stores with gaps.
+ * tree-vect-transform.c (vect_permute_store_chain): Create
+ interleave_high or interleave_low according to the endianess.
+
+2006-12-12 Richard Guenther <rguenther@suse.de>
+
+ PR middle-end/30147
+ * fold-const.c (fold_read_from_constant_string): Only fold read
+ from constant string if the result type is integer.
+
2006-12-12 Olivier Hainque <hainque@adacore.com>
* config/rs6000/t-vxworks: Remove assignment to LIB2FUNCS_EXTRA.
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.
More information about the Gcc-regression
mailing list