This is the mail archive of the gcc-patches@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]

Re: PR 30089: Fix ICE in operand allocation


> 
> In the second testcase of this PR, we are creating very many
> subvariables for one of the structures in the code.  Since these
> sub-variables happen to be unaliased, we are adding a VUSE operand for
> each of them.
> 
> Andrew suggested to re-state this limit in terms of operands, instead
> of bytes.  He is re-working the code to support multiple-operands and
> he will likely make this limit more flexible.
> 
> We should however, notice that we are trying to add an unreasonable
> number of virtual operands.  Though, ICEing is perhaps not the kindest
> way.
> 
> Setting this limit to 511 operands for now (an extra pointer is taken
> up by the buffer).
> 
> The test still takes a lot more memory than it probably should.  I
> will be working on that. I have cc1plus topping at 1Gb on x86_64.  But
> the alias analysis times are more reasonable:

Hi,
I would say that this patch is the most likely suspect for memory
increase reported for this night. (memory tester jammed, so there are
quite few patches cumulated together).
It is 12% for insn-attrtrab, but we are still bellow memory usage before
your merge and above memory usage before original Daniel's aliasing
fixes (that was about 100MB, now we are almost 130)


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.


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