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

gcctest@suse.de gcctest@suse.de
Wed Dec 6 11:09: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:
    Overall memory needed: 18261k -> 18257k
    Peak memory use before GGC: 2233k
    Peak memory use after GGC: 1940k
    Maximum of released memory in single GGC run: 293k
    Garbage: 422k -> 422k
    Leak: 2271k
    Overhead: 446k -> 446k
    GGC runs: 3

comparing empty function compilation at -O0 -g level:
    Overall memory needed: 18277k -> 18273k
    Peak memory use before GGC: 2260k
    Peak memory use after GGC: 1967k
    Maximum of released memory in single GGC run: 293k
    Garbage: 425k -> 425k
    Leak: 2303k
    Overhead: 450k -> 450k
    GGC runs: 3

comparing empty function compilation at -O1 level:
    Overall memory needed: 18365k -> 18361k
    Peak memory use before GGC: 2233k
    Peak memory use after GGC: 1940k
    Maximum of released memory in single GGC run: 293k
    Garbage: 426k -> 426k
    Leak: 2273k
    Overhead: 446k -> 446k
    GGC runs: 4

comparing empty function compilation at -O2 level:
    Overall memory needed: 18377k -> 18373k
    Peak memory use before GGC: 2233k
    Peak memory use after GGC: 1940k
    Maximum of released memory in single GGC run: 293k
    Garbage: 429k -> 430k
    Leak: 2273k
    Overhead: 447k -> 447k
    GGC runs: 4

comparing empty function compilation at -O3 level:
    Overall memory needed: 18377k -> 18373k
    Peak memory use before GGC: 2233k
    Peak memory use after GGC: 1940k
    Maximum of released memory in single GGC run: 293k
    Garbage: 429k -> 430k
    Leak: 2273k
    Overhead: 447k -> 447k
    GGC runs: 4

comparing combine.c compilation at -O0 level:
  Amount of produced GGC garbage increased from 36871k to 37458k, overall 1.59%
    Overall memory needed: 28461k -> 28389k
    Peak memory use before GGC: 9315k -> 9268k
    Peak memory use after GGC: 8853k -> 8786k
    Maximum of released memory in single GGC run: 2667k -> 2643k
    Garbage: 36871k -> 37458k
    Leak: 6465k -> 6452k
    Overhead: 4874k -> 4868k
    GGC runs: 279 -> 280

comparing combine.c compilation at -O0 -g level:
  Amount of produced GGC garbage increased from 37443k to 38030k, overall 1.57%
    Overall memory needed: 30549k -> 30473k
    Peak memory use before GGC: 10884k -> 10816k
    Peak memory use after GGC: 10513k -> 10446k
    Maximum of released memory in single GGC run: 2415k -> 2319k
    Garbage: 37443k -> 38030k
    Leak: 9341k -> 9328k
    Overhead: 5576k -> 5569k
    GGC runs: 272

comparing combine.c compilation at -O1 level:
  Amount of produced GGC garbage increased from 57346k to 58185k, overall 1.46%
    Overall memory needed: 40285k -> 39797k
    Peak memory use before GGC: 17305k -> 16872k
    Peak memory use after GGC: 17131k -> 16704k
    Maximum of released memory in single GGC run: 2259k -> 2231k
    Garbage: 57346k -> 58185k
    Leak: 6473k
    Overhead: 6162k -> 6255k
    GGC runs: 353 -> 359

comparing combine.c compilation at -O2 level:
  Amount of produced GGC garbage increased from 78561k to 79521k, overall 1.22%
    Overall memory needed: 29810k -> 29386k
    Peak memory use before GGC: 17304k -> 16874k
    Peak memory use after GGC: 17131k -> 16704k
    Maximum of released memory in single GGC run: 4035k -> 3776k
    Garbage: 78561k -> 79521k
    Leak: 6597k -> 6589k
    Overhead: 8540k -> 8629k
    GGC runs: 413 -> 416

comparing combine.c compilation at -O3 level:
  Overall memory allocated via mmap and sbrk increased from 28910k to 29510k, overall 2.08%
  Amount of produced GGC garbage increased from 115252k to 116427k, overall 1.02%
    Overall memory needed: 28910k -> 29510k
    Peak memory use before GGC: 18841k -> 18390k
    Peak memory use after GGC: 18260k -> 17806k
    Maximum of released memory in single GGC run: 5907k -> 5531k
    Garbage: 115252k -> 116427k
    Leak: 6670k -> 6671k
    Overhead: 13173k -> 13263k
    GGC runs: 457 -> 468

comparing insn-attrtab.c compilation at -O0 level:
  Peak amount of GGC memory allocated before garbage collecting increased from 69795k to 70079k, overall 0.41%
  Amount of produced GGC garbage increased from 129078k to 131134k, overall 1.59%
    Overall memory needed: 88246k -> 88530k
    Peak memory use before GGC: 69795k -> 70079k
    Peak memory use after GGC: 44205k -> 43585k
    Maximum of released memory in single GGC run: 36964k -> 37868k
    Garbage: 129078k -> 131134k
    Leak: 9522k -> 9274k
    Overhead: 17005k -> 16943k
    GGC runs: 216

comparing insn-attrtab.c compilation at -O0 -g level:
  Peak amount of GGC memory allocated before garbage collecting increased from 70956k to 71240k, overall 0.40%
  Amount of produced GGC garbage increased from 130490k to 132034k, overall 1.18%
  Amount of memory still referenced at the end of compilation increased from 10972k to 11218k, overall 2.24%
    Overall memory needed: 89422k -> 89710k
    Peak memory use before GGC: 70956k -> 71240k
    Peak memory use after GGC: 45473k -> 44853k
    Maximum of released memory in single GGC run: 36965k -> 37869k
    Garbage: 130490k -> 132034k
    Leak: 10972k -> 11218k
    Overhead: 17400k -> 17339k
    GGC runs: 212 -> 213

comparing insn-attrtab.c compilation at -O1 level:
  Amount of produced GGC garbage increased from 270385k to 271364k, overall 0.36%
    Overall memory needed: 108954k -> 110262k
    Peak memory use before GGC: 86803k -> 85471k
    Peak memory use after GGC: 80522k -> 79438k
    Maximum of released memory in single GGC run: 31852k -> 31668k
    Garbage: 270385k -> 271364k
    Leak: 9336k
    Overhead: 28957k -> 28698k
    GGC runs: 221 -> 223

comparing insn-attrtab.c compilation at -O2 level:
  Ovarall memory allocated via mmap and sbrk decreased from 126222k to 120758k, overall -4.52%
  Amount of produced GGC garbage increased from 309724k to 310401k, overall 0.22%
    Overall memory needed: 126222k -> 120758k
    Peak memory use before GGC: 89025k -> 87633k
    Peak memory use after GGC: 81500k -> 80352k
    Maximum of released memory in single GGC run: 30398k -> 30219k
    Garbage: 309724k -> 310401k
    Leak: 9339k
    Overhead: 35529k -> 35209k
    GGC runs: 243 -> 246

comparing insn-attrtab.c compilation at -O3 level:
  Ovarall memory allocated via mmap and sbrk decreased from 126254k to 120774k, overall -4.54%
  Amount of produced GGC garbage increased from 310568k to 311241k, overall 0.22%
    Overall memory needed: 126254k -> 120774k
    Peak memory use before GGC: 89052k -> 87658k
    Peak memory use after GGC: 81527k -> 80378k
    Maximum of released memory in single GGC run: 30591k -> 30412k
    Garbage: 310568k -> 311241k
    Leak: 9342k
    Overhead: 35757k -> 35436k
    GGC runs: 247 -> 250

comparing Gerald's testcase PR8361 compilation at -O0 level:
  Amount of produced GGC garbage increased from 208582k to 209815k, overall 0.59%
    Overall memory needed: 120146k -> 118582k
    Peak memory use before GGC: 93567k -> 91843k
    Peak memory use after GGC: 92640k -> 90934k
    Maximum of released memory in single GGC run: 20152k -> 19241k
    Garbage: 208582k -> 209815k
    Leak: 47803k -> 47804k
    Overhead: 21212k -> 21134k
    GGC runs: 409 -> 414

comparing Gerald's testcase PR8361 compilation at -O0 -g level:
  Amount of produced GGC garbage increased from 215170k to 216401k, overall 0.57%
    Overall memory needed: 132638k -> 130990k
    Peak memory use before GGC: 105852k -> 104049k
    Peak memory use after GGC: 104799k -> 103007k
    Maximum of released memory in single GGC run: 19788k -> 18732k
    Garbage: 215170k -> 216401k
    Leak: 71322k -> 71322k
    Overhead: 27116k -> 27038k
    GGC runs: 380 -> 385

comparing Gerald's testcase PR8361 compilation at -O1 level:
    Overall memory needed: 119338k -> 119610k
    Peak memory use before GGC: 98100k -> 96238k
    Peak memory use after GGC: 95815k -> 93982k
    Maximum of released memory in single GGC run: 18694k -> 18069k
    Garbage: 451729k -> 446943k
    Leak: 49491k
    Overhead: 33642k -> 32619k
    GGC runs: 559 -> 564

comparing Gerald's testcase PR8361 compilation at -O2 level:
  Amount of produced GGC garbage increased from 545661k to 564910k, overall 3.53%
    Overall memory needed: 119402k -> 119630k
    Peak memory use before GGC: 98127k -> 96264k
    Peak memory use after GGC: 95842k -> 94009k
    Maximum of released memory in single GGC run: 18694k -> 18069k
    Garbage: 545661k -> 564910k
    Leak: 50413k -> 50412k
    Overhead: 42560k -> 42293k
    GGC runs: 624

comparing Gerald's testcase PR8361 compilation at -O3 level:
  Amount of produced GGC garbage increased from 567357k to 586132k, overall 3.31%
    Overall memory needed: 119462k -> 121402k
    Peak memory use before GGC: 98103k -> 97232k
    Peak memory use after GGC: 97129k -> 95640k
    Maximum of released memory in single GGC run: 19074k -> 18476k
    Garbage: 567357k -> 586132k
    Leak: 50365k -> 50363k
    Overhead: 43601k -> 43262k
    GGC runs: 630 -> 634

comparing PR rtl-optimization/28071 testcase compilation at -O0 level:
  Amount of produced GGC garbage increased from 147250k to 148487k, overall 0.84%
    Overall memory needed: 137970k -> 137618k
    Peak memory use before GGC: 81913k -> 81563k
    Peak memory use after GGC: 58793k -> 58443k
    Maximum of released memory in single GGC run: 45494k -> 45145k
    Garbage: 147250k -> 148487k
    Leak: 7541k -> 7540k
    Overhead: 25306k -> 25306k
    GGC runs: 82

comparing PR rtl-optimization/28071 testcase compilation at -O0 -g level:
  Amount of produced GGC garbage increased from 147421k to 148690k, overall 0.86%
    Overall memory needed: 138138k -> 137990k
    Peak memory use before GGC: 82559k -> 82209k
    Peak memory use after GGC: 59439k -> 59089k
    Maximum of released memory in single GGC run: 45559k -> 45210k
    Garbage: 147421k -> 148690k
    Leak: 9308k -> 9307k
    Overhead: 25801k -> 25801k
    GGC runs: 88

comparing PR rtl-optimization/28071 testcase compilation at -O1 level:
  Ovarall memory allocated via mmap and sbrk decreased from 422890k to 408078k, overall -3.63%
  Peak amount of GGC memory allocated before garbage collecting run decreased from 205189k to 194153k, overall -5.68%
  Peak amount of GGC memory still allocated after garbage collecting decreased from 200965k to 187972k, overall -6.91%
    Overall memory needed: 422890k -> 408078k
    Peak memory use before GGC: 205189k -> 194153k
    Peak memory use after GGC: 200965k -> 187972k
    Maximum of released memory in single GGC run: 101892k -> 94098k
    Garbage: 290212k -> 283874k
    Leak: 29776k
    Overhead: 31284k -> 29694k
    GGC runs: 101 -> 98

comparing PR rtl-optimization/28071 testcase compilation at -O2 level:
  Ovarall memory allocated via mmap and sbrk decreased from 350706k to 329894k, overall -6.31%
  Peak amount of GGC memory allocated before garbage collecting run decreased from 205960k to 194146k, overall -6.09%
  Peak amount of GGC memory still allocated after garbage collecting decreased from 201736k to 187965k, overall -7.33%
    Overall memory needed: 350706k -> 329894k
    Peak memory use before GGC: 205960k -> 194146k
    Peak memory use after GGC: 201736k -> 187965k
    Maximum of released memory in single GGC run: 108805k -> 96112k
    Garbage: 370458k -> 364116k
    Leak: 30359k
    Overhead: 47034k -> 45444k
    GGC runs: 110 -> 105

comparing PR rtl-optimization/28071 testcase compilation at -O3 -fno-tree-pre -fno-tree-fre level:
    Overall memory needed: 783778k -> 777862k
    Peak memory use before GGC: 314885k -> 308402k
    Peak memory use after GGC: 293228k -> 286746k
    Maximum of released memory in single GGC run: 165189k -> 162713k
    Garbage: 514805k -> 501959k
    Leak: 45412k
    Overhead: 59892k -> 57075k
    GGC runs: 98

Head of the ChangeLog is:

--- /usr/src/SpecTests/sandbox-britten-memory/x86_64/mem-result/ChangeLog	2006-12-05 17:01:00.000000000 +0000
+++ /usr/src/SpecTests/sandbox-britten-memory/gcc/gcc/ChangeLog	2006-12-06 09:26:49.000000000 +0000
@@ -1,3 +1,821 @@
+2006-12-06  Jan Hubicka  <jh@suse.cz>
+
+	* statistics.h (ALONE_PASS_MEM_STAT, ALONE_MEM_STAT_INFO,
+	ALONE_MEM_STAT_DECL): New macros.
+	* bitmap.h: Include statistics.h
+	(struct bitmap_head_def): Add variant with pointer to bitmap descriptor.
+	(bitmap_initialize_stat): Rename from bitmap_initialize; add statistics.
+	(bitmap_obstack_alloc_stat, bitmap_gc_alloc_stat): Declare.
+	* bitmap.c: Include hashtab.h
+	(bitmap_descriptor): New.
+	(bitmap_hash): New static variable
+	(hash_descriptor, eq_descriptor, bitmap_descriptor, register_overhead):
+	New static functions.
+	(bitmap_register): New.
+	(bitmap_element_free, bitmap_element_allocate, bitmap_elt_clear_from,
+	bitmap_obstack_release): Do accounting.
+	(bitmap_obstack_alloc_stat): Rename from bitmap_obstack_alloc ; do
+	accounting.
+	(bitmap_gc_alloc_stat): Likewise.
+	(bitmap_obstack_free, bitmap_find_bit): Do statictics.
+	(print_statistics, dump_bitmap_statistics): New functions.
+	* toplev.c (finalize): Dump bitmap statistics.
+
+2006-12-06  Bernd Schmidt  <bernd.schmidt@analog.com>
+
+	* reload1.c (delete_output_reload): Count occurrences in
+	CALL_INSN_FUNCTION_USAGE.
+	* rtlanal.c (count_occurrences): Handle EXPR_LIST nodes without
+	crashing at the end of the list.
+
+2006-12-05  Daniel Berlin  <dberlin@dberlin.org>
+
+	* tree-ssa-structalias.c (set_used_smts): Re-fix pr29156.
+	Optimize to avoid marking more SMT's as used when they aren't.
+
+2006-12-05  Eric Christopher  <echristo@apple.com>
+
+	* config/i386/i386.c (x86_output_aligned_bss): Move out
+	of COMMON_ASM_OP ifdef.
+
+2006-12-05  Eric Christopher  <echristo@apple.com>
+
+	* config/darwin.h (DARWIN_EXTRA_SPECS): New.
+	(STARTFILE_SPEC): Use.
+	(DARWIN_DYLIB1_SPEC): New.
+	(DARWIN_CRT1_SPEC): New.
+	* config/i386/darwin64.h (SUBTARGET_EXTRA_SPECS): Use
+	DARWIN_EXTRA_SPECS.
+	* config/i386/darwin.h: Ditto.
+	* config/rs6000/darwin.h: Ditto.
+
+2006-12-05  Daniel Berlin  <dberlin@dberlin.org>
+
+	* tree-vrp.c (pass_vrp): Remove PROP_smt_usage.
+	* tree-complex.c (pass_lower_complex): Ditto.
+	* tree-ssa-ccp.c (pass_ccp): Ditto.
+	(pass_store_ccp): Ditto.
+	* tree-ssa-dom.c (pass_dominator): Ditto.
+	(pass_phi_only_cprop): Ditto.
+	* tree-sra.c (pass_sra): Ditto.
+	* tree-ssa-forwprop.c (pass_forwprop): Ditto.
+	* tree-flow.h (updating_used_alone): Remove.
+	(updating_used_alone): Ditto.
+	* tree-ssa-alias.c (updating_used_alone): Remove variable.
+	(lhs_may_store_to): Remove function.
+	(recalculate_used_alone): Ditto.
+	(compute_may_aliases): Remove used_alone calculation.
+	* tree.h (struct tree_memory_tag): Remove is_used_alone and
+	old_used_alone. Remove SMT_USED_ALONE and SMT_OLD_USED_ALONE.
+	* tree-pass.h (PROP_smt_usage): Remove.
+	* passes.c (execute_todo): Remove used alone recalculation.
+	(execute_one_pass): Ditto.
+	* tree-ssa-operands.c (add_virtual_operand): Remove used_alone
+	stuff.
+
+2006-12-05  Brooks Moses  <brooks.moses@codesourcery.com>
+
+	* doc/include/texinfo.tex: Update to version 2006-11-08.17.
+
+2006-12-05  Zdenek Dvorak <dvorakz@suse.cz>
+
+	PR tree-optimization/14784
+	* tree-ssa-operands.c (access_can_touch_variable): Unrevert the fix.
+
+2006-12-05  Aldy Hernandez  <aldyh@redhat.com>
+
+	Merge from gimple-tuples-branch.
+
+	2006-12-04  Aldy Hernandez  <aldyh@redhat.com>
+
+	* config/s390/s390.c (s390_va_start): Replace MODIFY_EXPR with
+	GIMPLE_MODIFY_STMT.
+	(s390_gimplify_va_arg): Same.
+	* config/sparc/sparc.c (sparc_gimplify_va_arg): Same.
+	* config/sh/sh.c (sh_va_start): Same.
+	(sh_gimplify_va_arg_expr): Same.
+	* config/xtensa/xtensa.c (xtensa_va_start): Same.
+	(xtensa_gimplify_va_arg_expr): Same.
+	* config/ia64/ia64.c (ia64_gimplify_va_arg): Same.
+	* config/pa/pa.c (hppa_gimplify_va_arg_expr): Same.
+	* config/mips/mips.c (mips_va_start): Same.
+	(mips_gimplify_va_arg_expr): Same.
+
+	2006-12-04  Aldy Hernandez  <aldyh@redhat.com>
+
+	* Merge from mainline at revision 119445.
+
+	2006-12-04  Aldy Hernandez  <aldyh@redhat.com>
+
+	* config/spu/spu.c (spu_va_start): Change MODIFY_EXPR to
+	GIMPLE_MODIFY_STMT.
+	(spu_gimplify_va_arg_expr): Same.
+
+	2006-12-04  Aldy Hernandez  <aldyh@redhat.com>
+
+	* config/stormy16/stormy16.c (xstormy16_expand_builtin_va_start):
+	Change uses of MODIFY_EXPR to GIMPLE_MODIFY_STMT.
+	(xstormy16_expand_builtin_va_arg): Same.
+
+	2006-12-04  Aldy Hernandez  <aldyh@redhat.com>
+
+	* config/frv/frv.c (frv_expand_builtin_va_start): Change MODIFY_EXPR
+	to GIMPLE_MODIFY_STMT.
+
+	2006-12-04  Aldy Hernandez  <aldyh@redhat.com>
+
+	* config/alpha/alpha.c (va_list_skip_additions): Change all
+	occurrences of MODIFY_EXPR to GIMPLE_MODIFY_STMT.
+	(alpha_va_start): Same.
+	(alpha_gimplify_va_arg_1): Same.
+	(alpha_gimplify_va_arg): Same.
+
+	2006-12-01  Aldy Hernandez  <aldyh@redhat.com>
+
+	* gimplify.c (gimplify_modify_expr): Remove FIXME comment.
+
+	2006-12-01  Aldy Hernandez  <aldyh@redhat.com>
+
+	* tree-ssa-loop-im.c: Rename all PROTECTED_TREE_OPERAND to
+	GENERIC_TREE_OPERAND, and all PROTECTED_TREE_TYPE to
+	GENERIC_TREE_TYPE.
+	* tree-complex.c: Same.
+	* tree-pretty-print.c: Same.
+	* tree.c: Same.
+	* tree.h: Same.
+	* builtins.c: Same.
+	* fold-const.c: Same.
+	* tree-ssa-dom.c: Same.
+	* tree-ssa-propagate.c: Same.
+	* tree-ssa-alias.c: Same.
+	* gimple-low.c: Same.
+	* dwarf2out.c: Same.
+	* c-pretty-print.c: Same.
+	* gimplify.c: Same.
+	* tree-inline.c: Same.
+	* tree-outof-ssa.c: Same.
+	* tree-ssa-structalias.c: Same.
+	* tree-ssa-reassoc.c: Same.
+	* stmt.c: Same.
+
+	2006-11-16  Aldy Hernandez  <aldyh@redhat.com>
+
+	* tree.c (build2_stat): Fix comment.
+
+	2006-11-13  Aldy Hernandez  <aldyh@redhat.com>
+
+	* tree-ssa-propagate.c (get_rhs): Use GIMPLE_MODIFY_STMT and
+	TREE_OPERAND when appropriate.
+
+	2006-11-04  Aldy Hernandez  <aldyh@redhat.com>
+
+	* java/java-tree.h (lang_tree_node): Handle gimple tuples.
+	(EXPR_WFL_EMIT_LINE_NOTE): Look inside base.
+	(EXPR_WFL_LINECOL): Use EXPR_LOCUS macro instead of exp.locus.
+	* java/java-gimplify.c (java_gimplify_expr): Comment on why we do
+	not handle GIMPLE_MODIFY_STMT in the switch statement.
+	(java_gimplify_modify_expr): Call build2 with GIMPLE_MODIFY_STMT.
+	(java_gimplify_new_array_init): Same.
+
+	2006-11-03  Aldy Hernandez  <aldyh@redhat.com>
+
+	* gimplify.c (gimplify_omp_for): Allow gimple statements.
+	* tree-outof-ssa.c (check_replaceable): Use PROTECTED_TREE_OPERAND.
+	* fold-const.c (fold_binary): Allow gimple statements.
+	(fold): Same.
+	* fortran/trans-array.c (gfc_conv_descriptor_data_set_internal):
+	Rename from gfc_conv_descriptor_data_set.
+	Call gfc_add_modify instead of gfc_add_modify_expr.
+	* fortran/trans-array.h (gfc_conv_descriptor_data_set_internal):
+	Rename from gfc_conv_descriptor_data_set.
+	(gfc_conv_descriptor_data_set): New macro.
+	(gfc_conv_descriptor_data_set_tuples): New macros.
+	* fortran/trans-openmp.c (gfc_omp_clause_default_ctor): Call
+	gfc_conv_descriptor_data_set_tuples.
+	* fortran/trans.c (gfc_add_modify): Rename from gfc_add_modify_expr.
+	Generate GIMPLE_MODIFY_STMT when appropriate.
+	* fortran/trans.h (gfc_add_modify): Rename from gfc_add_modify_expr.
+	(gfc_add_modify_expr): New macro.
+	(gfc_add_modify_stmt): New macro.
+	* fortran/f95-lang.c (lang_tree_node): Handle gimple statements.
+
+	2006-11-02  Aldy Hernandez  <aldyh@redhat.com>
+
+	* ada/ada-tree.h (lang_tree_node): Handle gimple tuples.
+	* ada/trans.c (gnat_gimplify_expr): Replace MODIFY_EXPR with
+	GIMPLE_MODIFY_STMT.
+
+	2006-11-01  Aldy Hernandez  <aldyh@redhat.com>
+
+	* Merge from mainline at revision 118200.
+
+	2006-10-09  Aldy Hernandez  <aldyh@redhat.com>
+
+	* tree-inline.c (copy_bb): Check for GIMPLE_MODIFY_STMT, and adjust
+	accordingly.
+
+	2006-10-09  Aldy Hernandez  <aldyh@redhat.com>
+
+	* tree.h (TREE_CHAIN, TREE_TYPE): Add versions for non GCC or not
+	enable checking.
+	Also, add __extension__ to GCC versions.
+	* tree-mudflap.c (mf_xform_derefs_1): Add parentheses around TREE_TYPE.
+	* tree-inline.c (copy_tree_r): Initialize chain to assuage the warning
+	patrol.
+
+	2006-10-05  Aldy Hernandez  <aldyh@redhat.com>
+
+	* tree-complex.c (expand_complex_libcall): Adjust for
+	GIMPLE_MODIFY_STMT.
+	(expand_complex_comparison): Same.
+	* tree-pretty-print.c (dump_generic_node): Is_expr should include
+	GIMPLE_STMT_P statements.
+	* value-prof.c (tree_divmod_fixed_value_transform): Adjust for
+	GIMPLE_MODIFY_STMT.
+	(tree_mod_pow2_value_transform): Same.
+	(tree_mod_subtract_transform): Same.
+	* tree.c (build2_stat): Check for gimplified function in cfun.
+	* tree.h (DECL_GIMPLIFIED): Delete.
+	(struct tree_function_decl): Remove gimplified_flag.
+	* omp-low.c (lower_omp_for): Adjust for GIMPLE_MODIFY_STMT.
+	* cp/cp-gimplify.c (cp_gimplify_expr): Adjust for GIMPLE_MODIFY_STMT.
+	(cxx_omp_clause_apply_fn): Adjust for GIMPLE_MODIFY_STMT.
+	(cxx_omp_clause_copy_ctor): Same.
+	(cxx_omp_clause_assign_op): Same.
+	* c-pretty-print.c (pp_c_conditional_expression): Same.
+	(pp_c_expression): Same.
+	* langhooks.c (lhd_omp_predetermined_sharing): Same.
+	* function.h (struct function): Add gimplified field.
+	* tree-if-conv.c (add_to_dst_predicate_list): Adjust for
+	GIMPLE_MODIFY_STMT.
+	(find_phi_replacement_condition): Same.
+	* gimplify.c (gimplify_modify_expr_to_memcpy): Same.
+	(gimplify_modify_expr_to_memset): Same.
+	(gimplify_init_ctor_eval_range): Same.
+	(gimplify_modify_expr_complex_part): Same.
+	(tree_to_gimple_tuple): Same.
+	(gimplify_modify_expr): Same.
+	(gimple_push_cleanup): Same.
+	(gimplify_omp_for): Same.
+	(gimplify_omp_atomic_pipeline): Same.
+	(gimplify_omp_atomic_mutex): Same.
+	(gimplify_expr): Same.
+	(gimplify_one_sizepos): Same.
+	(gimplify_function_tree): Same.
+	* tree-vect-patterns.c (vect_recog_dot_prod_pattern): Same.
+	(vect_recog_widen_sum_pattern): Same.
+	* tree-vect-transform.c (get_initial_def_for_reduction): Same.
+	(vect_create_epilog_for_reduction): Same.
+	(vectorizable_reduction): Same.
+
+	2006-09-28  Aldy Hernandez  <aldyh@redhat.com>
+
+	* tree-ssa-math-opts.c (replace_reciprocal): Use GIMPLE_STMT_OPERAND.
+	* tree-if-conv.c (if_convertible_gimple_modify_stmt_p): Same.
+	(ifc_temp_var): Same.
+	* tree-vect-analyze.c (vect_determine_vectorization_factor): Check
+	for gimple statements.
+	(vect_analyze_operations): Same.
+	(exist_non_indexing_operands_for_use_p): Use GIMPLE_STMT_OPERAND.
+	* gimplify.c (gimplify_return_expr): Handle gimple statements.
+	* lambda-code.c (can_put_in_inner_loop): Same.
+	(can_put_after_inner_loop): Same.
+	* tree-vect-transform.c (vect_create_addr_base_for_vector_ref): Same.
+	(vect_create_data_ref_ptr): Same.
+	(vect_init_vector): Same.
+	(vect_get_vec_def_for_operand): Same.
+	(vect_create_epilog_for_reduction): Same.
+	(vectorizable_reduction): Same.
+	(vectorizable_assignment): Same.
+	(vectorizable_operation): Same.
+	(vectorizable_load): Same.
+	(vectorizable_condition): Same.
+	* config/rs6000/rs6000.c (rs6000_va_start): Do not create MODIFY_EXPRs.
+	(rs6000_gimplify_va_arg): Same.
+
+	2006-09-25  Aldy Hernandez  <aldyh@redhat.com>
+
+	* tree-vrp.c (simplify_div_or_mod_using_ranges): Use
+	GIMPLE_STMT_OPERAND.
+	(simplify_abs_using_ranges): Same.
+	* tree-complex.c (expand_complex_operations_1): Use
+	PROTECTED_TREE_OPERAND.
+	* tree-ssa-loop-niter.c (simplify_replace_tree): Check for gimple
+	stmt.
+	(get_val_for): Use GIMPLE_STMT_OPERAND.
+	* tree-tailcall.c (adjust_accumulator_values): Same.
+	(adjust_return_value): Same.
+	* tree.c (walk_tree): Use IS_GIMPLE_STMT_CODE_CLASS on default
+	case.  Remove special case for tcc_gimple_stmt.
+	* tree.h (CAN_HAVE_LOCATION_P): New.
+	* tree-ssa-loop-ivopts.c (expr_invariant_in_loop_p): Check for
+	GIMPLE_STMT_P.
+	* tree-stdarg.c (va_list_counter_bump): Use GIMPLE_STMT_OPERAND.
+	* tree-ssa-dom.c (propagate_rhs_into_lhs): Same.
+	* tree-nrv.c (execute_return_slot_opt): Same.
+	* tree-ssa-alias.c (count_uses_and_derefs): Check for GIMPLE_STMT_P.
+	* tree-vn.c (set_value_handle): Same.
+	(get_value_handle): Same.
+	* c-decl.c (add_stmt): Use CAN_HAVE_LOCATION_P.
+	* tree-vectorizer.c (find_loop_location): Same.
+	* c-typeck.c (c_process_expr_stmt): Same.
+	(c_finish_stmt_expr): Same.
+	* gimplify.c (should_carry_locus_p): Same.
+	(tree_to_gimple_tuple): Delete definition and use of unecessary
+	variable save_tree_block.
+	* tree-ssa-pre.c (phi_translate): Check for GIMPLE_STMT_P.
+	(create_expression_by_pieces): Use GIMPLE_STMT_OPERAND.
+	(realify_fake_stores): Same.
+	* tree-ssa-forwprop.c (forward_propagate_addr_into_variable_arr):
+	Use TREE_OPERAND.
+	* tree-inline.c (copy_body_r): Check for EXPR_P and GIMPLE_STMT_P.
+	(copy_tree_r): Check for IS_GIMPLE_STMT_CODE_CLASS.
+	* tree-cfg.c (move_stmt_r): Use EXPR_P.  Check for GIMPLE_STMT_P.
+	* c-parser.c (c_parser_typeof_specifier): Use CAN_HAVE_LOCATION_P.
+	(c_parser_statement_after_labels): Same.
+	(c_parser_paren_condition): Same.
+	(c_parser_for_statement): Same.
+	(c_parser_omp_for_loop): Same.
+	* tree-ssa-reassoc.c (linearize_expr): Use GIMPLE_STMT_OPERAND.
+	(linearize_expr_tree): Same.
+	* dwarf2out.c (reference_to_unused): Check for GIMPLE_STMT_P.
+	* function.c (instantiate_expr): Same.
+
+	2006-09-22  Aldy Hernandez  <aldyh@redhat.com>
+
+	* tree.c (expr_location): Use GIMPLE_STMT_LOCUS.
+	(set_expr_location): Same.
+	(expr_locus): Same.
+	(set_expr_locus): Same.
+	(expr_filename): Same.
+	(expr_lineno): Same.
+	(tree_block): Use GIMPLE_STMT_BLOCK.
+	(protected_tree_operand): Use GIMPLE_STMT_OPERAND.
+	* tree.h (struct gimple_stmt): Remove prev and next.
+	(GIMPLE_STMT_OPERAND_CHECK): New.
+	(TREE_TO_GIMPLE_STMT): Delete.
+	(GIMPLE_STMT_TO_TREE): Delete.
+	(GIMPLE_STMT_OPERAND): Use union, not cast.
+	(GIMPLE_STMT_LOCUS): New.
+	(GIMPLE_STMT_BLOCK): New.
+	* gimplify.c (tree_to_gimple_tuple): Use union.  Do not cast
+	to tree_base.
+	* tree-cfg.c (verify_gimple_tuples_1): Call gcc_unreachable.
+
+	2006-09-21  Aldy Hernandez  <aldyh@redhat.com>
+
+	* tree-into-ssa.c (REGISTER_DEFS_IN_STMT): Change common.base
+	to base.
+	* tree-tailcall.c (adjust_return_value): Same.
+	* tree.c (tree_code_size): Remove GIMPLE_STATEMENT_LIST case.
+	(copy_node_stat): Change common.base to base.
+	(tree_node_structure): Return TS_GIMPLE_STATEMENT for tcc_gimple_stmt.
+	Remove GIMPLE_STATEMENT_LIST case.
+	* tree.h (struct gimple_stmt): Make operands of type tree.
+	(TREE_CODE, TREE_SET_CODE, TREE_ADDRESSABLE, CALL_EXPR_TAILCALL,
+	CASE_LOW_SEEN, TREE_STATIC, CLEANUP_EH_ONLY, CASE_HIGH_SEEN,
+	TREE_NO_WARNING, TREE_CONSTANT_OVERFLOW, TREE_SYMBOL_REFERENCED,
+	TYPE_REF_CAN_ALIAS_ALL, TREE_OVERFLOW, TREE_PUBLIC,
+	TYPE_CACHED_VALUES_P, TREE_SIDE_EFFECTS, FORCED_LABEL,
+	TREE_THIS_VOLATILE, TREE_THIS_NOTRAP, TREE_READONLY,
+	TREE_CONSTANT, TYPE_SIZES_GIMPLIFIED, DECL_UNSIGNED,
+	BIT_FIELD_REF_UNSIGNED, TYPE_UNSIGNED, TREE_ASM_WRITTEN, TREE_USED,
+	TREE_NOTHROW, CALL_EXPR_RETURN_SLOT_OPT, DECL_BY_REFERENCE,
+	CALL_FROM_THUNK_P, TYPE_ALIGN_OK, TREE_PRIVATE, TREE_PROTECTED,
+	TREE_DEPRECATED, IDENTIFIER_TRANSPARENT_ALIAS, TREE_INVARIANT,
+	TREE_LANG_FLAG_*, SSA_NAME_OCCURS_IN_ABNORMAL_PHI,
+	SSA_NAME_IN_FREE_LIST, TYPE_VOLATILE, TYPE_READONLY, BINFO_VIRTUAL_P):
+	Change common.base to base.
+	(GIMPLE_STATEMENT_LIST*): Remove.
+	(union tree_node): Add base.  Remove gimple_statement_list.
+	Remove pointer from gstmt.
+	* tree-ssa-propagate.c (set_rhs): Change common.base to base.
+	* treestruct.def: Add TS_BASE.  Remove TS_GIMPLE_STATEMENT_LIST.
+	* tree-vn.c (vn_compute): Change common.base to base.
+	* tree-eh.c (verify_eh_throw_stmt_node): Same.
+	* tree-flow-inline.h (var_ann): Same.
+	(function_ann): Same.
+	(stmt_ann): Same.
+	(mark_non_addressable): Same.
+	* gimplify.c (tree_to_gimple_tuple): Same.
+	* tree.def (DEFTREECODE): Remove GIMPLE_STATEMENT_LIST.
+	* tree-dfa.c (create_var_ann): Change common.base to base.
+	(create_function_ann): Same.
+	(create_stmt_ann): Same.
+	(create_tree_ann): Same.
+	(collect_dfa_stats_r): Same.
+	* tree-ssa-pre.c (NECESSARY): Change common.base to base.
+	* tree-ssa-dce.c (NECESSARY): Same.
+	* tree-ssa.c (delete_tree_ssa): Same.
+	* tree-optimize.c (execute_free_cfg_annotations): Same.
+	* tree-flow.h: Same.
+
+	2006-09-19  Aldy Hernandez  <aldyh@redhat.com>
+
+	* tree.c (tree_code_size): Handle GIMPLE_STATEMENT_LIST.
+	(tree_node_structure): Handle GIMPLE_STATEMENT_LIST and
+	GIMPLE_MODIFY_STMT.
+	* tree.h (struct gimple_stmt): Add prev and next fields.
+	(GIMPLE_STMT_TO_TREE): Cast, do not call GIMPLE_STMT_CHECK.
+	(GIMPLE_STATEMENT_LIST_HEAD): New.
+	(GIMPLE_STATEMENT_LIST_TAIL): New.
+	(struct gimple_statement_list): New.
+	(union tree_node): Add gimple_stmt_list and gstmt.
+	* treestruct.def: Add TS_GIMPLE_STATEMENT_LIST, TS_GIMPLE_STATEMENT.
+	* tree.def: Add GIMPLE_STATEMENT_LIST.
+
+	2006-09-06  Aldy Hernandez  <aldyh@redhat.com>
+
+	* tree-dump.c (dequeue_and_dump): Handle GIMPLE_MODIFY_STMT.
+	* tree-vrp.c (build_assert_expr_for): Change uses of
+	MODIFY_EXPR to GIMPLE_MODIFY_STMT and adjust accordingly.
+	(find_assert_locations): Same.
+	(remove_range_assertions): Same.
+	(stmt_interesting_for_vrp): Same.
+	(vrp_visit_assignment): Same.
+	(vrp_visit_stmt): Same.
+	(simplify_cond_using_ranges): Same.
+	* tree-into-ssa.c (REGISTER_DEFS_IN_THIS_STMT): Adjust for new
+	tree structure.
+	* tree-ssa-loop-im.c (movement_possibility): Change uses of
+	MODIFY_EXPR to GIMPLE_MODIFY_STMT and adjust accordingly.
+	(stmt_cost): Same.
+	(determine_invariantness_stmt): Same.
+	(schedule_sm): Same.
+	(gather_mem_refs_stmt): Same.
+	* tree-complex.c (init_dont_simulate_again): Same.
+	(complex_visit_stmt): Same.
+	(set_component_ssa_name): Same.
+	(expand_complex_move): Same.
+	(expand_complex_div_wide): Same.
+	(expand_complex_comparison): Same.
+	(expand_complex_operations_1): Same.
+	* tree-ssa-loop-niter.c (expand_simple_operations): Same.
+	(chain_of_csts_start): Same.
+	(infer_loop_bounds_from_undefined): Same.
+	* tree-pretty-print.c (dump_generic_node): Same.
+	(op_prio): Same.
+	(op_symbol_1): Same.
+	* tree-ssa-loop-manip.c (create_iv): Same.
+	* value-prof.c (tree_divmod_fixed_value): Same.
+	(tree_divmod_fixed_value_transform): Same.
+	(tree_mod_pow2): Same.
+	(tree_mod_pow2_value_transform): Same.
+	(tree_mod_subtract): Same.
+	(tree_mod_subtract_transform): Same.
+	(tree_divmod_values_to_profile): Same.
+	* tree-tailcall.c (process_assignment): Same.
+	(find_tail_calls): Same.
+	(adjust_accumulator_values): Same.
+	(adjust_return_value): Same.
+	(eliminate_tail_call): Same.
+	* tree.c (tree_code_size): Handle tcc_gimple_stmt.
+	(make_node_stat): Same.
+	(copy_node_stat): Handle gimple tuples.
+	(expr_align): Handle GIMPLE_MODIFY_STMT.  Abort on MODIFY_EXPR.
+	(tree_node_structure): Handle tcc_gimple_stmt.
+	(build2_stat): Abort on MODIFY_EXPR after gimplification.  Handle
+	tcc_gimple_stmt.
+	(build2_gimple_stat): New.
+	(expr_location): New.
+	(set_expr_location): New.
+	(expr_has_location): New.
+	(expr_locus): New.
+	(set_expr_locus): New.
+	(expr_filename): New.
+	(expr_lineno): New.
+	(walk_tree): Handle tcc_gimple_stmt.
+	(tree_block): New.
+	(protected_tree_operand): New.
+	(protected_tree_type): New.
+	(tree_code_kind): Add gimple statements.
+	* tree.h (tree_code_class): Add tcc_gimple_stmt.
+	(IS_GIMPLE_STMT_CODE_CLASS): New.
+	(struct tree_base): New.
+	(struct tree_common): Shrink.
+	(struct gimple_stmt): New.
+	(struct gimple_expr): New.
+	(TREE_SET_CODE, TREE_ADDRESSABLE, CALL_EXPR_TAILCALL,
+	CASE_LOW_SEEN, TREE_STATIC, CLEANUP_EH_ONLY, CASE_HIGH_SEEN,
+	TREE_NO_WARNING, TREE_CONSTANT_OVERFLOW, TREE_SYMBOL_REFERENCED,
+	TYPE_REF_CAN_ALIAS_ALL, TREE_OVERFLOW, TREE_PUBLIC,
+	TYPE_CACHED_VALUES_P, SAVE_EXPR_RESOLVED_P, TREE_SIDE_EFFECTS,
+	FORCED_LABEL, TREE_THIS_VOLATILE, TREE_THIS_NOTRAP, TREE_READONLY,
+	TREE_CONSTANT, TYPE_SIZES_GIMPLIFIED, DECL_UNSIGNED,
+	BIT_FIELD_REF_UNSIGNED, TYPE_UNSIGNED, TREE_ASM_WRITTEN,
+	TREE_USED, TREE_NOTHROW, CALL_EXPR_RETURN_SLOT_OPT,
+	DECL_BY_REFERENCE, CALL_FROM_THUNK_P, TYPE_ALIGN_OK,
+	TREE_PRIVATE, TREE_PROTECTED, TREE_DEPRECATED,
+	IDENTIFIER_TRANSPARENT_ALIAS, TREE_INVARIANT,
+	TREE_LANG_FLAG_[0-6], SSA_NAME_CHECK, SSA_NAME_IN_FREE_LIST,
+	TYPE_VOLATILE, TYPE_READONLY, TREE_VISITED, BINFO_VIRTUAL_P):
+	Adjust for new `common' layout.
+	(struct tree_function_decl): Add gimplified_flag.
+	(DECL_GIMPLIFIED): NEW.
+	(EXPR_LOCATION, SET_EXPR_LOCUS, EXPR_FILENAME, EXPR_LOCUS,
+	SET_EXPR_LOCUS, SET_EXPR_LOCATION, EXPR_LINENO,
+	EXPR_HAS_LOCATION): Call corresponding function.
+	(GIMPLE_STMT_CHECK): New.
+	(TREE_OPERAND_CHECK, TREE_TYPE, TREE_CHAIN): Abort on gimple tuples.
+	(TREE_BLOCK): Call tree_block.
+	(GIMPLE_STMT_P): New.
+	(GIMPLE_TUPLE_P): New.
+	(TREE_TO_GIMPLE_STMT): New.
+	(GIMPLE_STMT_TO_TREE): New.
+	(GIMPLE_STMT_OPERAND): New.
+	(GIMPLE_TUPLE_HAS_LOCUS_P): New.
+	(PROTECTED_TREE_OPERAND): New.
+	(PROTECTED_TREE_TYPE): New.
+	(build2_gimple_stat): Protoize.
+	(build2_gimple): New.
+	(expr_location): Protoize.
+	(set_expr_location): Protoize.
+	(expr_has_location): Protoize.
+	(expr_locus): Protoize.
+	(set_expr_locus): Protoize.
+	(expr_filename): Protoize.
+	(expr_lineno): Protoize.
+	(tree_block): Protoize.
+	(protected_tree_operand): Protoize.
+	(protected_tree_type): Protoize.
+	(enum tree_node_kind): Add gimple_stmt_kind.
+	* c-decl.c (union lang_tree_node): Tuples do not have a
+	TREE_CHAIN.
+	* ipa-cp.c (constant_val_insert): Change uses of MODIFY_EXPR to
+	GIMPLE_MODIFY_STMT and adjust accordingly.
+	* tree-scalar-evolution.c (follow_ssa_edge): Same.
+	(interpret_condition_phi): Same.
+	(pointer_used_p): Same.
+	(analyze_scalar_evolution_1): Same.
+	(scev_const_prop): Same.
+	(interpret_rhs_modify_stmt): Rename from
+	interpret_rhs_modify_expr.
+	* builtins.c (std_expand_builtin_va_start): Change uses of
+	MODIFY_EXPR to GIMPLE_MODIFY_STMT and adjust accordingly.
+	(std_gimplify_va_arg_expr): Same.
+	(expand_builtin_va_copy): Same.
+	(integer_valued_real_p): Same.
+	* fold-const.c (maybe_lvalue_p): Same.
+	(fold_unary): Same.
+	(tree_expr_nonnegative_p): Same.
+	(tree_expr_nonzero_p): Same.
+	* omp-low.c (extract_omp_for_data): Same.
+	(lower_rec_input_clauses): Same.
+	(lower_reduction_clauses): Same.
+	(lower_copyprivate_clauses): Same.
+	(lower_send_clauses): Same.
+	(lower_send_shared_vars): Same.
+	(expand_parallel_call): Same.
+	(expand_omp_parallel): Same.
+	(expand_omp_for_generic): Same.
+	(expand_omp_for_static_nochunk): Same.
+	(expand_omp_for_static_chunk): Same.
+	(expand_omp_sections): Same.
+	(lower_omp_single_copy): Same.
+	(lower_omp_parallel): Same.
+	* tree-ssa-dse.c (memory_address_same): Same.
+	(dse_optimize_stmt): Same.
+	* ipa-reference.c (scan_for_static_refs): Same.
+	* tree-gimple.c (is_gimple_reg_rhs): Same.
+	(get_call_expr_in): Same.
+	(recalculate_side_effects): Same.
+	* cgraphunit.c (cgraph_create_edges): Same.
+	* tree-ssa-copyrename.c (rename_ssa_copies): Same.
+	* tree-ssa-ccp.c (get_default_value): Same.
+	(likely_value): Same.
+	(visit_assignment): Same.
+	(ccp_visit_stmt): Same.
+	(get_maxval_strlen): Same.
+	(ccp_fold_builtin): Same.
+	* tree-ssa-loop-ivopts.c (find_givs_in_stmt_scev): Same.
+	(find_givs_in_stmt): Same.
+	(find_interesting_uses_op): Same.
+	(find_interesting_uses_stmt): Same.
+	(rewrite_use_nonlinear_expr): Same.
+	* ipa-pure-const.c (scan_function): Same.
+	* tree-stdarg.c (va_list_counter_bump): Same.
+	(check_all_va_list_escapes): Same.
+	(execute_optimize_stdarg): Same.
+	* tree-ssa-math-opts.c (compute_merit): Same.
+	(insert_reciprocals): Same.
+	(execute_cse_reciprocals): Same.
+	* tree-ssa-dom.c (initialize_hash_element): Same.
+	(simple_iv_increment_p): Same.
+	(record_equivalences_from_stmt): Same.
+	(optimize_stmt): Same.
+	(remove_stmt_or_phi): Same.
+	(get_rhs_or_phi_arg): Same.
+	(get_lhs_or_phi_result): Same.
+	(propagate_rhs_into_lhs): Same.
+	* tree-nrv.c (tree_nrv): Same.
+	(execute_return_slot_opt): Same.
+	* tree-ssa-propagate.c (get_rhs): Same.
+	(set_rhs): Same.
+	(stmt_makes_single_load): Same.
+	(stmt_makes_single_store): Same.
+	(replace_vuses_in): Same.
+	(fold_predicate_in): Same.
+	(substitute_and_fold): Same.
+	* tree-ssa-alias.c (compute_call_clobbered): Same.
+	(recalculate_used_alone): Same.
+	(count_uses_and_derefs): Same.
+	(is_escape_site): Same.
+	(find_used_portions): Same.
+	* gimple-low.c (lower_stmt): Same.
+	(block_may_fallthru): Same.
+	(lower_return_expr): Same.
+	* tree-ssa-sink.c (is_hidden_global_store): Same.
+	(statement_sink_location): Same.
+	* dwarf2out.c (loc_descriptor_from_tree_1): Same.
+	* expr.c (safe_from_p): Same.
+	(expand_expr_real): Same.
+	(expand_expr_real_1): Same.
+	* tree-ssa-loop-ivcanon.c (empty_loop_p): Same.
+	* predict.c (expr_expected_value): Same.
+	(strip_builtin_expect): Same.
+	(apply_return_prediction): Same.
+	(tree_bb_level_predictions): Same.
+	(tree_estimate_probability): Same.
+	* tree-vn.c (vn_compute): Same.
+	* tree-eh.c (add_stmt_to_eh_region_fn): Same.
+	(remove_stmt_from_eh_region_fn): Same.
+	(do_return_redirection): Same.
+	(honor_protect_cleanup_actions): Same.
+	(lower_try_finally_switch): Same.
+	(lower_eh_constructs_1): Same.
+	(tree_could_throw_p): Same.
+	(verify_eh_throw_stmt_node): Same.
+	* function.c (gimplify_parameters): Same.
+	* tree-vectorizer.c (vect_is_simple_use): Same.
+	(vect_is_simple_reduction): Same.
+	* ipa-type-escape.c (scan_for_refs): Same.
+	* tree-if-conv.c (tree_if_conversion): Same.
+	(tree_if_convert_stmt): Same.
+	(if_convertible_gimplify_modify_stmt_p): Rename from
+	if_convertible_modify_expr_p.
+	(if_convertible_stmt_p): Adjust for GIMPLE_MODIFY_STMT.
+	(ifc_temp_var): Same.
+	(replace_phi_with_cond_modify_stmt): Rename from
+	replace_phi_with_cond_modify_expr.
+	(process_phi_nodes): Call replace_phi_with_cond_modify_stmt.
+	* tree.def (DEFTREECODE): Add GIMPLE_MODIFY_STMT.
+	* tree-data-ref.c (find_data_references_in_loop): Adjust for
+	GIMPLE_MODIFY_STMT.
+	* tree-flow-inline.h (var_ann): Same.
+	(function_ann): Same.
+	(stmt_ann): Same.
+	(mark_non_addressable): Same.
+	* tree-vect-analyze.c (vect_determine_vectorization_factor): Same.
+	* gimplify.c (tree_to_gimple_tuple): New.
+	(build_stack_save_restore): Adjust for GIMPLE_MODIFY_STMT.
+	(gimplify_return_expr): Same.
+	(gimplify_decl_expr): Same.
+	(gimplify_self_mod_expr): Same.
+	(gimplify_cond_expr): Same.
+	(gimplify_init_constructor): Same.
+	(gimplify_modify_expr): Same.
+	(gimplify_expr): Same.
+	(gimplify_function_tree): Same.
+	(force_gimple_operand): Same.
+	* tree-ssa-phiopt.c (conditional_replacement): Same.
+	(minmax_replacement): Same.
+	(abs_replacement): Same.
+	* tree-dfa.c (create_var_ann): Same.
+	(create_function_ann): Same.
+	(create_stmt_ann): Same.
+	(create_tree_ann): Same.
+	(collect_dfa_stats_r): Same.
+	* tree-ssa-pre.c (find_or_generate_expression): Same.
+	(create_expression_by_pieces): Same.
+	(try_look_through_load): Same.
+	(insert_fake_stores): Same.
+	(realify_fake_stores): Same.
+	(compute_avail): Same.
+	(eliminate): Same.
+	(init_pre): Same.
+	(poolify_modify_stmt): Rename from poolify_modify_stmt.
+	Adjust for GIMPLE_MODIFY_STMT.
+	(NECESSARY): Adjust for new `common' layout.
+	* tree-ssa-live.c (build_tree_conflict_graph): Adjust for
+	GIMPLE_MODIFY_STMT.
+	* tree-sra.c (sra_walk_modify_stmt): Rename from
+	sra_walk_modify_expr.
+	(sra_walk_function): Adjust for GIMPLE_MODIFY_STMT.
+	(generate_copy_inout): Same.
+	(generate_element_copy): Same.
+	(generate_element_zero): Same.
+	(scalarize_copy): Same.
+	* tree-mudflap.c (mf_decl_cache_locals): Same.
+	(mf_build_check_statement_for): Same.
+	(mf_xform_derefs): Same.
+	* ipa-prop.c (ipa_method_modify_stmt): Same.
+	* print-tree.c (print_node): Handle gimple tuples.
+	Add case for tcc_gimple_stmt.
+	* tree-ssa-copy.c (stmt_may_generate_copy): Adjust for
+	GIMPLE_MODIFY_STMT.
+	(copy_prop_visit_assignment): Same.
+	(copy_prop_visit_stmt): Same.
+	(init_copy_prop): Same.
+	* tree-ssa-forwprop.c (ssa_name_defined_by_comparison_p): Same.
+	(forward_propagate_into_cond_1): Same.
+	(find_equivalent_equality_comparison): Same.
+	(tidy_after_forward_propagate_addr): Same.
+	(forward_propagate_addr_expr_1): Same.
+	(simplify_not_neg_expr): Same.
+	(simplify_switch_expr): Same.
+	* tree-ssa-dce.c (find_pdom): Same.
+	(mark_stmt_if_obviously_necessary): Same.
+	(NECESSARY): Adjust for new `common' layout.
+	* tree-flow.h: Same.
+	* tree-vect-patterns.c (widened_name_p): Adjust for
+	GIMPLE_MODIFY_STMT.
+	(vect_recog_dot_prod_pattern): Same.
+	(vect_recog_widen_sum_pattern): Same.
+	(vect_pattern_recog_1): Same.
+	* tree-nested.c (init_tmp_var): Same.
+	(save_tmp_var): Same.
+	(walk_stmts): Same.
+	(convert_call_expr): Same.
+	(finalize_nesting_tree_1): Same.
+	* tree-ssa.c (verify_ssa): Same.
+	(delete_tree_ssa): Same.
+	* lambda-code.c (lbv_to_gcc_expression): Same.
+	(lle_to_gcc_expression): Same.
+	(lambda_loopnest_to_gcc_loopnest): Same.
+	(can_put_in_inner_loop): Same.
+	(can_convert_to_perfect_nest): Same.
+	(perfect_nestify): Same.
+	* tree-ssa-loop-prefetch.c (gather_memory_references): Same.
+	* tree-inline.c (copy_body_r): Same.
+	(setup_one_parameter): Same.
+	(initialize_inlined_parameters): Same.
+	(estimate_num_insns_1): Same.
+	(expand_call_inline): Same.
+	(gimple_expand_calls_inline): Same.
+	(copy_tree_r): Same.
+	* tree-optimize.c (execute_free_cfg_annotations): Same.
+	* tree-vect-transform.c (vect_create_addr_base_for_vector_ref): Same.
+	(vect_align_data_ref): Same.
+	(vect_create_data_ref_ptr): Same.
+	(vect_init_vector): Same.
+	(vect_create_epilog_for_reduction): Same.
+	(vectorizable_reduction): Same.
+	(vectorizable_assignment): Same.
+	(vectorizable_operation): Same.
+	(vectorizable_store): Same.
+	(vectorizable_load): Same.
+	(vectorizable_live_operation): Same.
+	(vectorizable_condition): Same.
+	(vect_generate_tmps_on_preheader): Same.
+	(vect_create_cond_for_align_checks): Same.
+	* tree-object-size.c (collect_object_sizes_for): Same.
+	(check_for_plus_in_loops_1): Same.
+	(check_for_plus_in_loops): Same.
+	* tree-outof-ssa.c (insert_copy_on_edge): Same.
+	(replace_use_variable): Same.
+	(check_replaceable): Same.
+	(rewrite_trees): Same.
+	(identical_copies_p): Same.
+	(insert_backedge_copies): Same.
+	* tree-profile.c (tree_gen_edge_profiler): Same.
+	* tree-vect-generic.c (expand_vector_operations_1): Same.
+	* tree-ssa-structalias.c (update_alias_info): Same.
+	(find_func_aliases): Same.
+	* tree-cfg.c (factor_computed_gotos): Same.
+	(make_edges): Same.
+	(make_goto_expr_edges): Same.
+	(tree_merge_blocks): Same.
+	(remove_useless_stmts_cond): Same.
+	(remove_useless_stmts_1): Same.
+	(tree_find_edge_insert_loc): Same.
+	(verify_expr): Same.
+	(gimplify_val): Same.
+	(verify_gimple_tuples_1): New.
+	(verify_gimple_tuples): New.
+	(verify_stmts): Call verify_gimple_tuples.
+	* tree-ssa-reassoc.c (get_rank): Adjust for GIMPLE_MODIFY_STMT.
+	(get_unary_op): Same.
+	(linearize_expr): Same.
+	(get_single_immediate_use): Same.
+	(negate_value): Same.
+	(should_break_up_subtract): Same.
+	(break_up_subtract): Same.
+	(repropagate_negates): Same.
+	(break_up_subtract_bb): Same.
+	(reassociate_bb): Same.
+	* config/i386/i386.c (ix86_va_start): Same.
+	(ix86_gimplify_va_arg): Same.
+	* stmt.c (expand_expr_stmt): Same.
+	(warn_if_unused_value): Same.
+	(expand_return): Same.
+	* tree-ssanames.c (make_ssa_name): Same.
+	* tree-ssa-threadedge.c (lhs_of_dominating_assert): Same.
+	* tree-ssa-operands.c (finalize_ssa_defs): Same.
+	(add_virtual_operand): Same.
+	(get_expr_operands): Same.
+	(parse_ssa_operands): Same.
+	(get_modify_stmt_operands): Rename from get_modify_expr_operands.
+
 2006-12-05  H.J. Lu  <hongjiu.lu@intel.com>
 
 	* config.host: Remove extra blank line.
@@ -409,7 +1227,7 @@
 	(spu_force_reg): Remove.
 
 2006-12-01  Joseph Myers  <joseph@codesourcery.com>
-            David Edelsohn  <edelsohn@gnu.org>
+	    David Edelsohn  <edelsohn@gnu.org>
 
 	PR target/24036
 	* doc/tm.texi (HARD_REGNO_NREGS_HAS_PADDING,
@@ -501,8 +1319,8 @@
 
 	* tree-vectorizer.h (vectorizable_function): Export.
 	* tree-vect-transform.c (vectorizable_function): Likewise.
-        * tree-vect-patterns.c (vect_recog_pow_pattern): Set
-        type_in to scalar type in recognition of squaring.
+	* tree-vect-patterns.c (vect_recog_pow_pattern): Set
+	type_in to scalar type in recognition of squaring.
 	Make sure the target can vectorize sqrt in recognition
 	of sqrt, set type_in to vector type in this case.
 
--- /usr/src/SpecTests/sandbox-britten-memory/x86_64/mem-result/ChangeLog.cp	2006-12-05 17:00:59.000000000 +0000
+++ /usr/src/SpecTests/sandbox-britten-memory/gcc/gcc/cp/ChangeLog	2006-12-06 09:26:46.000000000 +0000
@@ -1,3 +1,33 @@
+2006-12-05  Mark Mitchell  <mark@codesourcery.com>
+
+	PR c++/29729
+	* decl2.c (check_member_template): Move check for member
+	templates in local classes to ...
+	* parser.c (cp_parser_template_declaration_after_export):
+	... here.
+
+	PR c++/29728
+	* decl.c (check_array_designated_initializer): New function.
+	(maybe_deduce_size_from_array_init): Use it.
+	(reshape_init_array): Likewise.
+
+2006-12-05  Aldy Hernandez  <aldyh@redhat.com>
+
+	Merge from gimple-tuples-branch.
+	
+	2006-10-05  Aldy Hernandez  <aldyh@redhat.com>
+
+	* cp-gimplify.c (cp_gimplify_expr): Adjust for GIMPLE_MODIFY_STMT.
+	(cxx_omp_clause_apply_fn): Adjust for GIMPLE_MODIFY_STMT.
+	(cxx_omp_clause_copy_ctor): Same.
+	(cxx_omp_clause_assign_op): Same.
+
+	2006-09-28  Aldy Hernandez  <aldyh@redhat.com>
+
+        * cp-tree.h (union lang_tree_node): Gimple statements do not
+	have a TREE_CHAIN.
+	(TREE_INDIRECT_USING): Look in base.
+
 2006-12-04  Jan Hubicka  <jh@suse.cz>
 
 	* cp-objcp-common.c (cp_expr_size): Return NULL in the case


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