A recent patch increased GCC's memory consumption in some cases!
gcctest@suse.de
gcctest@suse.de
Wed Oct 25 21:59: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 combine.c compilation at -O0 level:
Overall memory allocated via mmap and sbrk increased from 24797k to 27995k, overall 12.90%
Peak amount of GGC memory allocated before garbage collecting increased from 8929k to 8995k, overall 0.74%
Peak amount of GGC memory still allocated after garbage collectin increased from 8558k to 8623k, overall 0.76%
Amount of produced GGC garbage increased from 34878k to 34914k, overall 0.10%
Amount of memory still referenced at the end of compilation increased from 6073k to 6148k, overall 1.25%
Overall memory needed: 24797k -> 27995k
Peak memory use before GGC: 8929k -> 8995k
Peak memory use after GGC: 8558k -> 8623k
Maximum of released memory in single GGC run: 2576k
Garbage: 34878k -> 34914k
Leak: 6073k -> 6148k
Overhead: 4715k -> 4741k
GGC runs: 294 -> 288
comparing combine.c compilation at -O1 level:
Overall memory allocated via mmap and sbrk increased from 36237k to 39431k, overall 8.81%
Peak amount of GGC memory allocated before garbage collecting increased from 16999k to 17071k, overall 0.42%
Peak amount of GGC memory still allocated after garbage collectin increased from 16830k to 16897k, overall 0.40%
Amount of memory still referenced at the end of compilation increased from 6151k to 6205k, overall 0.88%
Overall memory needed: 36237k -> 39431k
Peak memory use before GGC: 16999k -> 17071k
Peak memory use after GGC: 16830k -> 16897k
Maximum of released memory in single GGC run: 2342k -> 2263k
Garbage: 55748k -> 55201k
Leak: 6151k -> 6205k
Overhead: 6045k -> 6028k
GGC runs: 369 -> 364
comparing combine.c compilation at -O2 level:
Overall memory allocated via mmap and sbrk increased from 26496k to 29562k, overall 11.57%
Peak amount of GGC memory allocated before garbage collecting increased from 16999k to 17066k, overall 0.39%
Peak amount of GGC memory still allocated after garbage collectin increased from 16830k to 16897k, overall 0.40%
Amount of memory still referenced at the end of compilation increased from 6252k to 6313k, overall 0.98%
Overall memory needed: 26496k -> 29562k
Peak memory use before GGC: 16999k -> 17066k
Peak memory use after GGC: 16830k -> 16897k
Maximum of released memory in single GGC run: 2884k -> 2914k
Garbage: 76521k -> 75631k
Leak: 6252k -> 6313k
Overhead: 8785k -> 8823k
GGC runs: 443 -> 433
comparing combine.c compilation at -O3 level:
Overall memory allocated via mmap and sbrk increased from 25596k to 28666k, overall 11.99%
Peak amount of GGC memory allocated before garbage collecting increased from 17988k to 18072k, overall 0.47%
Peak amount of GGC memory still allocated after garbage collectin increased from 17536k to 17628k, overall 0.52%
Amount of memory still referenced at the end of compilation increased from 6317k to 6379k, overall 0.97%
Overall memory needed: 25596k -> 28666k
Peak memory use before GGC: 17988k -> 18072k
Peak memory use after GGC: 17536k -> 17628k
Maximum of released memory in single GGC run: 4130k -> 4036k
Garbage: 107354k -> 106091k
Leak: 6317k -> 6379k
Overhead: 12408k -> 12439k
GGC runs: 490 -> 481
comparing insn-attrtab.c compilation at -O0 level:
Overall memory allocated via mmap and sbrk increased from 83700k to 86762k, overall 3.66%
Peak amount of GGC memory still allocated after garbage collectin increased from 43913k to 43978k, overall 0.15%
Amount of memory still referenced at the end of compilation increased from 9117k to 9208k, overall 1.01%
Overall memory needed: 83700k -> 86762k
Peak memory use before GGC: 68247k -> 68313k
Peak memory use after GGC: 43913k -> 43978k
Maximum of released memory in single GGC run: 35708k
Garbage: 125964k -> 125948k
Leak: 9117k -> 9208k
Overhead: 16830k -> 16847k
GGC runs: 231 -> 229
comparing insn-attrtab.c compilation at -O1 level:
Ovarall memory allocated via mmap and sbrk decreased from 118444k to 113814k, overall -4.07%
Peak amount of GGC memory allocated before garbage collecting run decreased from 94551k to 89637k, overall -5.48%
Peak amount of GGC memory still allocated after garbage collecting decreased from 90403k to 83012k, overall -8.90%
Amount of produced GGC garbage decreased from 289427k to 272769k, overall -6.11%
Amount of memory still referenced at the end of compilation increased from 8977k to 9051k, overall 0.83%
Overall memory needed: 118444k -> 113814k
Peak memory use before GGC: 94551k -> 89637k
Peak memory use after GGC: 90403k -> 83012k
Maximum of released memory in single GGC run: 31807k -> 31805k
Garbage: 289427k -> 272769k
Leak: 8977k -> 9051k
Overhead: 29408k -> 29309k
GGC runs: 240 -> 231
comparing insn-attrtab.c compilation at -O2 level:
Peak amount of GGC memory allocated before garbage collecting run decreased from 95237k to 91914k, overall -3.62%
Peak amount of GGC memory still allocated after garbage collecting decreased from 90625k to 84018k, overall -7.86%
Amount of produced GGC garbage decreased from 328157k to 315751k, overall -3.93%
Amount of memory still referenced at the end of compilation increased from 8982k to 9051k, overall 0.77%
Overall memory needed: 114404k -> 112046k
Peak memory use before GGC: 95237k -> 91914k
Peak memory use after GGC: 90625k -> 84018k
Maximum of released memory in single GGC run: 30386k -> 30368k
Garbage: 328157k -> 315751k
Leak: 8982k -> 9051k
Overhead: 36436k -> 36637k
GGC runs: 269 -> 257
comparing insn-attrtab.c compilation at -O3 level:
Peak amount of GGC memory allocated before garbage collecting run decreased from 95263k to 91940k, overall -3.61%
Peak amount of GGC memory still allocated after garbage collecting decreased from 90651k to 84044k, overall -7.86%
Amount of produced GGC garbage decreased from 328738k to 316348k, overall -3.92%
Amount of memory still referenced at the end of compilation increased from 8984k to 9055k, overall 0.79%
Overall memory needed: 114436k -> 112090k
Peak memory use before GGC: 95263k -> 91940k
Peak memory use after GGC: 90651k -> 84044k
Maximum of released memory in single GGC run: 30582k -> 30557k
Garbage: 328738k -> 316348k
Leak: 8984k -> 9055k
Overhead: 36612k -> 36825k
GGC runs: 271 -> 260
comparing Gerald's testcase PR8361 compilation at -O0 level:
Overall memory allocated via mmap and sbrk increased from 116568k to 119602k, overall 2.60%
Amount of produced GGC garbage increased from 200877k to 201237k, overall 0.18%
Amount of memory still referenced at the end of compilation increased from 47326k to 47385k, overall 0.13%
Overall memory needed: 116568k -> 119602k
Peak memory use before GGC: 92731k -> 92767k
Peak memory use after GGC: 91812k -> 91845k
Maximum of released memory in single GGC run: 19778k -> 19781k
Garbage: 200877k -> 201237k
Leak: 47326k -> 47385k
Overhead: 20503k -> 20702k
GGC runs: 399
comparing Gerald's testcase PR8361 compilation at -O1 level:
Overall memory allocated via mmap and sbrk increased from 115728k to 118730k, overall 2.59%
Overall memory needed: 115728k -> 118730k
Peak memory use before GGC: 97572k -> 97606k
Peak memory use after GGC: 95362k -> 95397k
Maximum of released memory in single GGC run: 18425k
Garbage: 436946k -> 436478k
Leak: 49793k -> 49718k
Overhead: 32048k -> 32018k
GGC runs: 546 -> 544
comparing Gerald's testcase PR8361 compilation at -O2 level:
Overall memory allocated via mmap and sbrk increased from 115708k to 118726k, overall 2.61%
Overall memory needed: 115708k -> 118726k
Peak memory use before GGC: 97573k -> 97607k
Peak memory use after GGC: 95363k -> 95397k
Maximum of released memory in single GGC run: 18424k -> 18425k
Garbage: 505402k -> 503504k
Leak: 50510k -> 50435k
Overhead: 40543k -> 40529k
GGC runs: 616 -> 609
comparing Gerald's testcase PR8361 compilation at -O3 level:
Overall memory allocated via mmap and sbrk increased from 115648k to 118614k, overall 2.56%
Overall memory needed: 115648k -> 118614k
Peak memory use before GGC: 97616k -> 97649k
Peak memory use after GGC: 96649k -> 96682k
Maximum of released memory in single GGC run: 18845k -> 18846k
Garbage: 523573k -> 521894k
Leak: 50058k -> 50011k
Overhead: 41001k -> 40926k
GGC runs: 624 -> 617
comparing PR rtl-optimization/28071 testcase compilation at -O0 level:
Overall memory allocated via mmap and sbrk increased from 133788k to 137230k, overall 2.57%
Peak amount of GGC memory still allocated after garbage collectin increased from 58503k to 58569k, overall 0.11%
Amount of memory still referenced at the end of compilation increased from 7138k to 7230k, overall 1.29%
Overall memory needed: 133788k -> 137230k
Peak memory use before GGC: 81623k -> 81689k
Peak memory use after GGC: 58503k -> 58569k
Maximum of released memory in single GGC run: 45494k -> 45493k
Garbage: 143586k -> 143528k
Leak: 7138k -> 7230k
Overhead: 25104k -> 25109k
GGC runs: 87 -> 86
comparing PR rtl-optimization/28071 testcase compilation at -O1 level:
Amount of memory still referenced at the end of compilation increased from 47214k to 47295k, overall 0.17%
Overall memory needed: 420900k -> 426118k
Peak memory use before GGC: 203238k -> 203262k
Peak memory use after GGC: 199035k -> 199038k
Maximum of released memory in single GGC run: 100858k -> 100820k
Garbage: 265252k -> 265068k
Leak: 47214k -> 47295k
Overhead: 30028k -> 30042k
GGC runs: 106 -> 105
comparing PR rtl-optimization/28071 testcase compilation at -O2 level:
Amount of memory still referenced at the end of compilation increased from 47798k to 47879k, overall 0.17%
Overall memory needed: 347040k -> 350238k
Peak memory use before GGC: 203993k -> 204017k
Peak memory use after GGC: 199791k -> 199793k
Maximum of released memory in single GGC run: 107135k -> 107098k
Garbage: 354765k -> 354578k
Leak: 47798k -> 47879k
Overhead: 47629k -> 47643k
GGC runs: 113 -> 112
comparing PR rtl-optimization/28071 testcase compilation at -O3 -fno-tree-pre -fno-tree-fre level:
Amount of memory still referenced at the end of compilation increased from 65130k to 65211k, overall 0.12%
Overall memory needed: 533168k -> 536130k
Peak memory use before GGC: 314706k -> 314709k
Peak memory use after GGC: 293028k -> 293052k
Maximum of released memory in single GGC run: 163494k -> 163452k
Garbage: 487556k -> 487537k
Leak: 65130k -> 65211k
Overhead: 58865k -> 58900k
GGC runs: 100 -> 99
Head of the ChangeLog is:
--- /usr/src/SpecTests/sandbox-britten-memory/x86_64/mem-result/ChangeLog 2006-10-21 08:52:15.000000000 +0000
+++ /usr/src/SpecTests/sandbox-britten-memory/gcc/gcc/ChangeLog 2006-10-25 17:08:58.000000000 +0000
@@ -1,3 +1,479 @@
+2006-10-25 Bob Wilson <bob.wilson@acm.org>
+
+ * config/xtensa/lib2funcs.S: Use C-style comments.
+
+2006-10-24 Nathan Froyd <froydnj@codesourcery.com>
+
+ * dwarf2out.c (gen_compile_unit_die): Use IS_ABSOLUTE_PATH.
+ (file_table_relative_p): Likewise.
+ (dwarf2out_finish): Likewise.
+ (file_name_acquire): Use DIR_SEPARATOR and DIR_SEPARATOR_2.
+
+2006-10-25 Daniel Berlin <dberlin@dberlin.org>
+
+ * tree-ssa-structalias.c (intra_create_variable_infos):
+ Don't recreate nonlocal_all if it already exists.
+
+2006-10-25 Richard Guenther <rguenther@suse.de>
+
+ PR target/28803
+ * optabs.h (enum optab_index): Remove OTI_lrint.
+ (enum convert_optab_index): Add COI_lrint.
+ (lrint_optab): Adjust.
+ (expand_sfix_optab): Declare.
+ * optabs.c (expand_sfix_optab): New function.
+ (init_optabs): Init lrint_optab as conversion optab.
+ * genopinit.c (lrint_optab): Change to a conversion optab.
+ * builtins.c (expand_builtin_int_roundingfn_2): Adjust to
+ expansion via conversion optab.
+ * config/i386/i386.md (*fistdi2_1): Remove
+ flag_unsafe_math_optimizations guard.
+ (fistdi2, fistdi2_with_temp, *fist<mode>2_1, fist<mode>2,
+ fist<mode>2_with_temp): Likewise.
+ (lrint<mode>2): Split into...
+ (lrintxf<mode>2): ... x87 part
+ (lrint<mode>di2, lrint<mode>si2): ... and SSE parts.
+ * config/i386/sse.md (sse_cvtss2si_2, sse_cvtss2_siq_2,
+ sse2_cvtsd2si_2, sse2_cvtsd2siq_2): New insns for
+ UNSPEC_FIX_NOTRUNC matching non-vector float modes.
+ * doc/md.texi (lrintMN2): Document.
+
+2006-10-25 Uros Bizjak <uros@kss-loka.si>
+
+ PR target/28909
+ * config/i386/sync.md ("sync_add<mode>", "sync_sub<mode>"):
+ Use inc and dec instructions for TARGET_USE_INCDEC.
+ ("*sync_compare_and_swap<mode>"): Fix -masm=intel template.
+ ("sync_double_compare_and_swap<mode>"): Likewise.
+ ("*sync_double_compare_and_swapdi_pic"): Likewise.
+ ("*sync_compare_and_swap_cc<mode>"): Likewise.
+ ("sync_double_compare_and_swap_cc<mode>"): Likewise.
+ ("*sync_double_compare_and_swap_ccdi_pic"): Likewise.
+ ("sync_old_add<mode>"): Likewise.
+ ("sync_lock_test_and_set<mode>"): Likewise.
+ ("sync_lock_test_and_set<mode>"): Likewise.
+ ("sync_add<mode>"): Likewise.
+ ("sync_sub<mode>"): Likewise.
+ ("sync_ior<mode>"): Likewise.
+ ("sync_and<mode>"): Likewise.
+ ("sync_xor<mode>"): Likewise.
+
+2006-10-25 Uros Bizjak <uros@kss-loka.si>
+
+ * optabs.h (enum optab_index): Rename OTI_drem to OTI_remainder.
+ (remainder_optab): Define corresponding macro.
+ (drem_optab): Remove.
+ * optabs.c (init_optabs): Initialize remainder_optab. Remove
+ drem_optab initialization.
+ * genopinit.c (optabs): Implement remainder_optab using
+ remainder?f3 patterns. Remove drem_optab.
+ * builtins.c (expand_builtin_mathfn_2): Handle
+ BUILT_IN_REMAINDER{,F,L} using remainder_optab.
+ (expand_builtin): Expand BUILT_IN_REMAINDER{,F,L} using
+ expand_builtin_mathfn_2.
+
+ (expand_builtin) [BUILT_IN_FMOD, BUILT_IN_DREM]: Do not
+ depend on flag_unsafe_math_optimizations.
+
+ * config/i386/i386.md ("remaindersf3", "remainderdf3")
+ ("remainderxf3"): Renamed from "drem{s,d,x}f3" expanders.
+ Do not depend on flag_unsafe_math_optimizations. Use
+ truncxf?f expander instead of truncxf?f_i387_noop.
+
+ ("fpremxf4", "fprem1xf4"): Do not depend on
+ flag_unsafe_math_optimizations.
+ ("fmodsf3", "fmoddf3", "fmodxf3"): Do not depend on
+ flag_unsafe_math_optimizations. Use truncxf?f expander
+ instead of truncxf?f_i387_noop.
+
+ * doc/md.texi (fmod, remainder): Document standard named pattern.
+
+2006-10-24 Richard Sandiford <richard@codesourcery.com>
+ David Daney <ddaney@avtrex.com>
+
+ PR middle-end/29519
+ * rtlanal.c (nonzero_address_p): Remove check for values wrapping.
+
+2006-10-25 Ben Elliston <bje@au.ibm.com>
+
+ * doc/extend.texi (Variable Attributes): Typo fix.
+
+2006-10-24 Uros Bizjak <uros@kss-loka.si>
+
+ * config/i386/i386.h (FIRST_PSEUDO_REGISTER): Define to 54.
+ (FIXED_REGISTERS, CALL_USED_REGISTERS): Add fpcr register.
+ (REG_ALLOC_ORDER): Add one element to allocate fpcr register.
+ (FRAME_POINTER_REGNUM): Update register number to 21.
+ (REG_CLASS_CONTENTS): Update contents for added fpcr register.
+ (HI_REGISTER_NAMES): Add "fpcr" for fpcr register.
+
+ * config/i386/i386.c (regclass_map): Add fpcr entry.
+ (dbx_register_map, dbx64_register_map, svr4_dbx_register_map):
+ Add fpcr entry.
+ (print_reg): Assert REGNO (x) != FPCR_REG.
+
+ * config/i386/i386.md (FPCR_REG, R11_REG): New constants.
+ (DIRFLAG_REG): Renumber.
+ (x86_fnstcw_1, x86_fldcw_1): Use FPCR_REG instead of FPSR_REG.
+ (*sibcall_1_rex64_v, *sibcall_value_1_rex64_v): Use R11_REG.
+ (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-10-24 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
+
+ PR middle-end/29335
+ * builtins.c (fold_builtin_sin, fold_builtin_atan): Remove.
+ (do_mpfr_arg1): Add `min', `max' and `inclusive' arguments.
+ Update all callers.
+ (BUILT_IN_SIN, BUILT_IN_ATAN): Handle in main switch.
+ (BUILT_IN_ASIN, BUILT_IN_ACOS, BUILT_IN_ATAN, BUILT_IN_ASINH,
+ BUILT_IN_ACOSH, BUILT_IN_ATANH, BUILT_IN_SINH, BUILT_IN_COSH,
+ BUILT_IN_TANH): Calculate compile-time arguments using MPFR.
+
+2006-10-24 Richard Guenther <rguenther@suse.de>
+
+ PR middle-end/28796
+ * builtins.c (fold_builtin_classify): Use HONOR_INFINITIES
+ and HONOR_NANS instead of MODE_HAS_INFINITIES and MODE_HAS_NANS
+ for deciding optimizations in consistency with fold-const.c
+ (fold_builtin_unordered_cmp): Likewise.
+
+2006-10-24 Richard Guenther <rguenther@suse.de>
+
+ * builtins.c (fold_builtin_floor): Fold floor (x) where
+ x is nonnegative to trunc (x).
+ (fold_builtin_int_roundingfn): Fold lfloor (x) where x is
+ nonnegative to FIX_TRUNC_EXPR.
+
+2006-10-24 Richard Guenther <rguenther@suse.de>
+
+ PR tree-optimization/29567
+ * tree-vrp.c (register_edge_assert_for_1): Fix wrong logic
+ for TRUTH_NOT_EXPR. Clarify comments.
+
+2006-10-24 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
+
+ PR middle-end/29335
+ * builtins.c (fold_builtin_exponent): Evaluate constant arguments
+ at compile-time using MPFR. Change parameter VALUE to FUNC,
+ update all callers.
+ (do_mpfr_arg1): Rename `exact' to `inexact'. Carefully check
+ for overflow and underflow at all times and avoid folding in
+ those cases.
+
+2006-10-24 Ben Elliston <bje@au.ibm.com>
+
+ * reload1.c: Formatting fixes.
+
+2006-10-23 Zdenek Dvorak <dvorakz@suse.cz>
+
+ PR tree-optimization/14784
+ * tree-flow.h (struct var_ann_d): Add is_heapvar bit.
+ * tree-ssa-structalias.c (get_constraint_for,
+ intra_create_variable_infos): Set is_heapvar.
+ * tree-ssa-operands.c (access_can_touch_variable): Do not handle
+ non-heapvar pointer variables specially.
+
+2006-10-23 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
+
+ PR middle-end/29335
+ * builtins.c (fold_builtin_sin, fold_builtin_cos,
+ fold_builtin_tan): Fold all constant arguments. Take a "type"
+ argument as necessary.
+ (do_mpfr_arg1): New.
+ * real.c, real.h (real_from_mpfr, mpfr_from_real): New.
+
+2006-10-23 Bob Wilson <bob.wilson@acm.org>
+
+ * config/xtensa/lib1funcs.asm: Use C-style comments.
+
+2006-10-23 Rafael Avila de Espindola <rafael.espindola@gmail.com>
+
+ * tree.c (local_define_builtin): Replace calls to
+ lang_hooks.builtin_function with add_builtin_function.
+ * c-objc-common.h (LANG_HOOKS_BUILTIN_FUNCTION): Define as
+ c_builtin_function.
+ * c-tree.h (builtin_function): Rename to c_builtin_function. Change
+ the signature.
+ * c-decl.c (builtin_function): Rename to c_builtin_function. Move
+ common code to add_builtin_function.
+ * langhooks.c (add_builtin_function): New function.
+ (lhd_builtin_function): New function.
+ * langhooks.h (struct lang_hooks): Change the signature of
+ builtin_function.
+ (add_builtin_function): New function.
+ * tree-ssa-loop-prefetch.c (tree_ssa_prefetch_arrays): Replace
+ calls to lang_hooks.builtin_function with add_builtin_function.
+ * c-common.c (decl_builtin_1): Replace calls to
+ lang_hooks.builtin_function with add_builtin_function.
+ * config/alpha/alpha.c (alpha_init_builtins): Replace calls to
+ lang_hooks.builtin_function with add_builtin_function.
+ * config/frv/frv.c (def_builtin): Replace calls to
+ lang_hooks.builtin_function with add_builtin_function.
+ * config/s390/s390.c (s390_init_builtins): Replace calls to
+ lang_hooks.builtin_function with add_builtin_function.
+ * config/sparc/sparc.c (def_builtin): Replace calls to
+ lang_hooks.builtin_function with add_builtin_function.
+ * config/i386/i386.c (def_builtin): Replace calls to
+ lang_hooks.builtin_function with add_builtin_function.
+ * config/sh/sh.c (sh_media_init_builtins): Replace calls to
+ lang_hooks.builtin_function with add_builtin_function.
+ * config/c4x/c4x.c (c4x_init_builtins): Replace calls to
+ lang_hooks.builtin_function with add_builtin_function.
+ * config/stormy16/stormy16.c (xstormy16_init_builtins):
+ Replace calls to lang_hooks.builtin_function with
+ add_builtin_function.
+ * config/iq2000/iq2000.c (def_builtin):
+ Replace calls to lang_hooks.builtin_function with
+ add_builtin_function.
+ * config/ia64/ia64.c (def_builtin): Replace calls to
+ lang_hooks.builtin_function with add_builtin_function.
+ * config/rs6000/rs6000.c (def_builtin): Replace calls to
+ lang_hooks.builtin_function with add_builtin_function.
+ (altivec_init_builtins): Replace calls to
+ lang_hooks.builtin_function with add_builtin_function.
+ * config/arm/arm.c (def_mbuiltin): Replace calls to
+ lang_hooks.builtin_function with add_builtin_function.
+ (arm_init_tls_builtins): Replace calls to
+ lang_hooks.builtin_function with add_builtin_function.
+ * config/mips/mips.c (mips_init_builtins): Replace calls to
+ lang_hooks.builtin_function with add_builtin_function.
+ * config/bfin/bfin.c (def_builtin): Replace calls to
+ lang_hooks.builtin_function with add_builtin_function.
+ * langhooks-def.h (lhd_builtin_function): New function.
+ (LANG_HOOKS_BUILTIN_FUNCTION): Define as lhd_builtin_function.
+
+2006-10-23 Jakub Jelinek <jakub@redhat.com>
+
+ * builtins.c (expand_builtin, maybe_emit_chk_warning): Handle
+ BUILT_IN_STRNCAT_CHK.
+
+2006-10-23 Jan Hubicka <jh@suse.cz>
+
+ * builtins.c (expand_builtin_memmove): Remove ORIG_EXP argument;
+ don't do conversion from memmove to memcpy here.
+ (expand_builtin_bcopy, expand_builtin): Update call of
+ expand_builtin_memmove.
+ (fold_builtin_memory_op): Do folding of memmove to memcpy here.
+
+2006-10-23 Paul Brook <paul@codesourcery.com>
+
+ * stor-layout.c (start_record_layout): maximum_field_alignment
+ overrides STRUCTURE_SIZE_BOUNDARY.
+
+2006-10-23 Ulrich Weigand <uweigand@de.ibm.com>
+
+ * config/s390/predicates.md ("bras_sym_operand"): Do not accept
+ nonlocal function symbols if flag_pic.
+
+2006-10-23 Richard Guenther <rguenther@suse.de>
+
+ PR middle-end/27132
+ PR middle-end/23295
+ * builtins.c (fold_binary): Remove checks for flag_wrapv
+ and flag_trapv where negate_expr_p covers these cases.
+
+2006-10-23 Richard Guenther <rguenther@suse.de>
+
+ PR middle-end/29548
+ * fold-const.c (fold_plusminus_mult_expr): Check exact power
+ of two on the absolute value.
+ (fold_binary): Fold x * -C to -x * C if x is easily negatable
+ and negating -C does not overflow.
+
+2006-10-23 Richard Guenther <rguenther@suse.de>
+
+ PR middle-end/21032
+ * convert.c (convert_to_real): Fold (float)-x to -(float)x
+ only if not flag_rounding_math.
+
+2006-10-22 Richard Sandiford <richard@codesourcery.com>
+ Kaz Kojima <kkojima@gcc.gnu.org>
+
+ PR target/28232
+ * config/sh/sh.c (expand_block_move): Use a BLKmode rather than
+ SImode memory reference for the source of a movua.
+ * config/sh/sh.md (UNSPEC_MOVUA): New macro.
+ (movua): Use an unspec instead of sign_extract. Expect the source
+ to have mode BLKmode.
+ (extv, insv): Use a BLKmode rather than SImode memory reference
+ for the source of a movua.
+
+2006-10-22 Jeff Law <law@redhat.com>
+ Richard Guenther <rguenther@suse.de>
+
+ PR tree-optimization/15911
+ * tree-vrp.c (extract_code_and_val_from_cond): New function.
+ (register_edge_assert_for_1): Likewise.
+ (register_edge_assert_for): Handle &&/&/||/| in conditionals.
+ (find_conditional_asserts): Adjust for new function signature.
+ (find_assert_locations): Likewise.
+
+2006-10-22 H.J. Lu <hongjiu.lu@intel.com>
+
+ * config/i386/tmmintrin.h: Remove the duplicated content.
+
+2006-10-22 H.J. Lu <hongjiu.lu@intel.com>
+
+ * config.gcc (i[34567]86-*-*): Add tmmintrin.h to extra_headers.
+ (x86_64-*-*): Likewise.
+
+ * config/i386/i386.c (pta_flags): Add PTA_SSSE3.
+ (override_options): Check SSSE3.
+ (ix86_builtins): Add IX86_BUILTIN_PHADDW, IX86_BUILTIN_PHADDD,
+ IX86_BUILTIN_PHADDSW, IX86_BUILTIN_PHSUBW, IX86_BUILTIN_PHSUBD,
+ IX86_BUILTIN_PHSUBSW, IX86_BUILTIN_PMADDUBSW,
+ IX86_BUILTIN_PMULHRSW, IX86_BUILTIN_PSHUFB,
+ IX86_BUILTIN_PSIGNB, IX86_BUILTIN_PSIGNW, IX86_BUILTIN_PSIGND,
+ IX86_BUILTIN_PALIGNR, IX86_BUILTIN_PABSB, IX86_BUILTIN_PABSW,
+ IX86_BUILTIN_PABSD, IX86_BUILTIN_PHADDW128,
+ IX86_BUILTIN_PHADDD128, IX86_BUILTIN_PHADDSW128,
+ IX86_BUILTIN_PHSUBW128, IX86_BUILTIN_PHSUBD128,
+ IX86_BUILTIN_PHSUBSW128, IX86_BUILTIN_PMADDUBSW128,
+ IX86_BUILTIN_PMULHRSW128, IX86_BUILTIN_PSHUFB128,
+ IX86_BUILTIN_PSIGNB128, IX86_BUILTIN_PSIGNW128,
+ IX86_BUILTIN_PSIGND128, IX86_BUILTIN_PALIGNR128,
+ IX86_BUILTIN_PABSB128, IX86_BUILTIN_PABSW128 and
+ IX86_BUILTIN_PABSD128.
+ (bdesc_2arg): Add SSSE3.
+ (bdesc_1arg): Likewise.
+ (ix86_init_mmx_sse_builtins): Support SSSE3.
+ (ix86_expand_builtin): Likewise.
+ * config/i386/i386.h (TARGET_CPU_CPP_BUILTINS): Likewise.
+
+ * config/i386/i386.md (UNSPEC_PSHUFB): New.
+ (UNSPEC_PSIGN): Likewise.
+ (UNSPEC_PALIGNR): Likewise.
+ Include mmx.md before sse.md.
+
+ * config/i386/i386.opt: Add -mssse3.
+
+ * config/i386/sse.md (ssse3_phaddwv8hi3): New pattern for SSSE3.
+ (ssse3_phaddwv4hi3): Likewise.
+ (ssse3_phadddv4si3): Likewise.
+ (ssse3_phadddv2si3): Likewise.
+ (ssse3_phaddswv8hi3): Likewise.
+ (ssse3_phaddswv4hi3): Likewise.
+ (ssse3_phsubwv8hi3): Likewise.
+ (ssse3_phsubwv4hi3): Likewise.
+ (ssse3_phsubdv4si3): Likewise.
+ (ssse3_phsubdv2si3): Likewise.
+ (ssse3_phsubswv8hi3): Likewise.
+ (ssse3_phsubswv4hi3): Likewise.
+ (ssse3_pmaddubswv8hi3): Likewise.
+ (ssse3_pmaddubswv4hi3): Likewise.
+ (ssse3_pmulhrswv8hi3): Likewise.
+ (ssse3_pmulhrswv4hi3): Likewise.
+ (ssse3_pshufbv16qi3): Likewise.
+ (ssse3_pshufbv8qi3): Likewise.
+ (ssse3_psign<mode>3): Likewise.
+ (ssse3_psign<mode>3): Likewise.
+ (ssse3_palignrti): Likewise.
+ (ssse3_palignrdi): Likewise.
+ (abs<mode>2): Likewise.
+ (abs<mode>2): Likewise.
+
+ * config/i386/tmmintrin.h: New file.
+
+ * doc/extend.texi: Document SSSE3 built-in functions.
+
+ * doc/invoke.texi: Document -mssse3/-mno-ssse3 switches.
+
+2006-10-22 Ira Rosen <irar@il.ibm.com>
+
+ * tree-vect-transform.c (vectorizable_load): Use the type of the
+ return value of the mask_for_load builtin to create realign_load
+ stmt.
+
+2006-10-22 Richard Sandiford <richard@codesourcery.com>
+
+ * config/mips/mips.c (mips_split_const): Don't accept bare PLUS
+ expressions.
+
+2006-10-21 H.J. Lu <hongjiu.lu@intel.com>
+
+ * config/i386/i386.md (UNSPEC_LDQQU): Renamed to ...
+ (UNSPEC_LDDQU): This.
+ * config/i386/sse.md (sse3_lddqu): Updated.
+
+2006-10-21 Richard Guenther <rguenther@suse.de>
+
+ * builtins.c (expand_builtin_int_roundingfn_2): New function.
+ (expand_builtin): Use it to expand lrint instead of
+ expand_builtin_mathfn.
+
+2006-10-21 Uros Bizjak <uros@kss-loka.si>
+
+ PR middle-end/28252
+ * builtins.c (fold_builtin): Fold pow(x,1.0/3.0) as cbrt(x) if
+ flag_unsafe_math_optimizations is set.
+
+2006-10-21 Uros Bizjak <uros@kss-loka.si>
+
+ PR target/19398
+ * config/i386/i386.md (fix_trunc?f?i_sse): Add peephole2
+ patterns to use memory input operand in x87->mem->XMM
+ reload sequences. Skip transformation for TARGET_K8.
+
+2006-10-21 Uros Bizjak <uros@kss-loka.si>
+
+ * config/i386/i386.md (extendsfdf2, extendsfxf2, extenddfxf2): Do not
+ force operand1 to register if both operands are memory operands.
+ (*extendsfdf2_mixed, *extendsfdf2_sse, *extendsfdf2_i387)
+ (*extendsfxf2_i387, *extenddfxf2_i387): Do not disable pattern
+ if both operands are memory operands.
+ (truncdfsf2): Do not force operand1 to register if both operands
+ are memory operands.
+
+2006-10-21 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
+
+ * Makefile.in (LIBS): Add $(GMPLIBS).
+ * doc/install.texi: Update GMP and MPFR requirements.
+ * doc/sourcebuild.texi (need_gmp): Delete.
+
+2006-10-21 Richard Guenther <rguenther@suse.de>
+
+ PR tree-optimization/3511
+ * tree-ssa-pre.c (phi_translate): Fold CALL_EXPRs that
+ got new invariant arguments during PHI translation.
+
+2006-10-21 Richard Guenther <rguenther@suse.de>
+
+ PR middle-end/26898
+ * fold-const.c (fold_comparison): Fold signed comparisons
+ of the form X +- C1 CMP Y +- C2.
+
+2006-10-21 Richard Guenther <rguenther@suse.de>
+
+ PR target/19116
+ * config/i386/i386.c (override_options): Do not set MASK_IEEE_FP
+ if flag_unsafe_math_optimizations is specified. We have
+ flag_finite_math_only for that.
+ * config/i386/i386.md (sqrtxf2): Do not require TARGET_IEEE_FP
+ or flag_unsafe_math_optimizations.
+
+2006-10-21 Richard Guenther <rguenther@suse.de>
+
+ * builtins.c (fold_builtin_classify): Fix typo.
+
+2006-10-21 Richard Guenther <rguenther@suse.de>
+
+ PR middle-end/28796
+ * simplify-rtx.c (simplify_const_relational_operation):
+ Do not constant-fold ORDERED and UNORDERED for
+ flag_unsafe_math_optimizations but only we do not need to
+ honor NaNs for the given mode.
+
+2006-10-21 Richard Guenther <rguenther@suse.de>
+
+ PR target/29512
+ * config/i386/i386.c (classify_argument): Remove redundant
+ walking of the BINFOs.
+ (contains_128bit_aligned_vector_p): Likewise.
+
2006-10-20 Mark Mitchell <mark@codesourcery.com>
* BASE-VER: Set to 4.3.0.
--- /usr/src/SpecTests/sandbox-britten-memory/x86_64/mem-result/ChangeLog.cp 2006-10-20 21:25:01.000000000 +0000
+++ /usr/src/SpecTests/sandbox-britten-memory/gcc/gcc/cp/ChangeLog 2006-10-23 19:53:17.000000000 +0000
@@ -1,3 +1,23 @@
+2006-10-23 Rafael Avila de Espindola <rafael.espindola@gmail.com>
+
+ * decl.c (builtin_function_1): Move common code to
+ add_builtin_function.
+ (builtin_function): Rename to cxx_builtin_function.
+ Change the signature.
+ * call.c: Include langhooks.h.
+ (build_java_interface_fn_ref): Replace calls to
+ builtin_function with add_builtin_function.
+ * Make-lang.in (cp/call.o): Depend on langhooks.h.
+ * cp-objcp-common.h (LANG_HOOKS_BUILTIN_FUNCTION): Define as
+ cxx_builtin_function.
+ * cp-tree.h (builtin_function): Rename to cxx_builtin_function.
+ Change the signature.
+
+2006-10-22 Nathan Sidwell <nathan@codesourcery.com>
+
+ PR c++/20647
+ * rtti.c (tinfo_base_init): The type info string is always global.
+
2006-10-20 Lee Millward <lee.millward@codesourcery.com>
Mark Mitchell <mark@codesourcery.com>
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