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

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


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:
  Ovarall memory allocated via mmap and sbrk decreased from 18349k to 7381k, overall -148.60%
    Overall memory needed: 18349k -> 7381k
    Peak memory use before GGC: 2264k
    Peak memory use after GGC: 1955k
    Maximum of released memory in single GGC run: 309k
    Garbage: 444k
    Leak: 2288k
    Overhead: 455k
    GGC runs: 3

comparing empty function compilation at -O0 -g level:
  Ovarall memory allocated via mmap and sbrk decreased from 18365k to 7397k, overall -148.28%
    Overall memory needed: 18365k -> 7397k
    Peak memory use before GGC: 2291k
    Peak memory use after GGC: 1982k
    Maximum of released memory in single GGC run: 309k
    Garbage: 447k
    Leak: 2320k
    Overhead: 460k
    GGC runs: 3

comparing empty function compilation at -O1 level:
  Ovarall memory allocated via mmap and sbrk decreased from 18461k to 7493k, overall -146.38%
    Overall memory needed: 18461k -> 7493k
    Peak memory use before GGC: 2264k
    Peak memory use after GGC: 1955k
    Maximum of released memory in single GGC run: 309k
    Garbage: 450k -> 450k
    Leak: 2291k -> 2291k
    Overhead: 456k
    GGC runs: 4

comparing empty function compilation at -O2 level:
  Ovarall memory allocated via mmap and sbrk decreased from 18473k to 7505k, overall -146.14%
    Overall memory needed: 18473k -> 7505k
    Peak memory use before GGC: 2265k
    Peak memory use after GGC: 1955k
    Maximum of released memory in single GGC run: 310k
    Garbage: 453k -> 453k
    Leak: 2291k -> 2291k
    Overhead: 456k
    GGC runs: 4

comparing empty function compilation at -O3 level:
  Ovarall memory allocated via mmap and sbrk decreased from 18473k to 7505k, overall -146.14%
    Overall memory needed: 18473k -> 7505k
    Peak memory use before GGC: 2265k
    Peak memory use after GGC: 1955k
    Maximum of released memory in single GGC run: 310k
    Garbage: 453k -> 453k
    Leak: 2291k -> 2291k
    Overhead: 456k
    GGC runs: 4

comparing combine.c compilation at -O0 level:
  Ovarall memory allocated via mmap and sbrk decreased from 28633k to 17665k, overall -62.09%
    Overall memory needed: 28633k -> 17665k
    Peak memory use before GGC: 9334k
    Peak memory use after GGC: 8886k
    Maximum of released memory in single GGC run: 2628k
    Garbage: 37266k
    Leak: 6554k
    Overhead: 4828k
    GGC runs: 276

comparing combine.c compilation at -O0 -g level:
  Ovarall memory allocated via mmap and sbrk decreased from 30685k to 19717k, overall -55.63%
    Overall memory needed: 30685k -> 19717k
    Peak memory use before GGC: 10917k
    Peak memory use after GGC: 10546k
    Maximum of released memory in single GGC run: 2388k
    Garbage: 37874k
    Leak: 9414k
    Overhead: 5530k
    GGC runs: 272

comparing combine.c compilation at -O1 level:
  Overall memory allocated via mmap and sbrk increased from 33390k to 34309k, overall 2.75%
    Overall memory needed: 33390k -> 34309k
    Peak memory use before GGC: 19919k -> 19923k
    Peak memory use after GGC: 19721k -> 19725k
    Maximum of released memory in single GGC run: 2262k
    Garbage: 55507k -> 55479k
    Leak: 6564k -> 6566k
    Overhead: 9970k -> 9967k
    GGC runs: 351

comparing combine.c compilation at -O2 level:
  Overall memory allocated via mmap and sbrk increased from 33394k to 38181k, overall 14.33%
    Overall memory needed: 33394k -> 38181k
    Peak memory use before GGC: 19933k
    Peak memory use after GGC: 19735k
    Maximum of released memory in single GGC run: 2204k -> 2203k
    Garbage: 71255k -> 71204k
    Leak: 6686k -> 6686k
    Overhead: 11872k -> 11868k
    GGC runs: 409 -> 408

comparing combine.c compilation at -O3 level:
  Overall memory allocated via mmap and sbrk increased from 32450k to 48845k, overall 50.52%
    Overall memory needed: 32450k -> 48845k
    Peak memory use before GGC: 21065k -> 21063k
    Peak memory use after GGC: 20197k
    Maximum of released memory in single GGC run: 3167k
    Garbage: 105390k -> 105315k
    Leak: 6768k -> 6768k
    Overhead: 16504k -> 16499k
    GGC runs: 459

comparing insn-attrtab.c compilation at -O0 level:
  Overall memory allocated via mmap and sbrk increased from 89610k to 105513k, overall 17.75%
    Overall memory needed: 89610k -> 105513k
    Peak memory use before GGC: 71144k
    Peak memory use after GGC: 45190k
    Maximum of released memory in single GGC run: 37768k
    Garbage: 131559k
    Leak: 9580k
    Overhead: 16626k
    GGC runs: 208

comparing insn-attrtab.c compilation at -O0 -g level:
  Overall memory allocated via mmap and sbrk increased from 90786k to 106913k, overall 17.76%
    Overall memory needed: 90786k -> 106913k
    Peak memory use before GGC: 72305k
    Peak memory use after GGC: 46458k
    Maximum of released memory in single GGC run: 37769k
    Garbage: 132721k
    Leak: 11269k
    Overhead: 17020k
    GGC runs: 207

comparing insn-attrtab.c compilation at -O1 level:
  Overall memory allocated via mmap and sbrk increased from 98490k to 124917k, overall 26.83%
    Overall memory needed: 98490k -> 124917k
    Peak memory use before GGC: 72996k -> 72957k
    Peak memory use after GGC: 69150k
    Maximum of released memory in single GGC run: 31661k
    Garbage: 230037k -> 229890k
    Leak: 9397k -> 9397k
    Overhead: 29471k -> 29470k
    GGC runs: 224

comparing insn-attrtab.c compilation at -O2 level:
  Overall memory allocated via mmap and sbrk increased from 110406k to 190921k, overall 72.93%
    Overall memory needed: 110406k -> 190921k
    Peak memory use before GGC: 79821k -> 79783k
    Peak memory use after GGC: 74012k
    Maximum of released memory in single GGC run: 30532k
    Garbage: 281304k -> 281020k
    Leak: 9394k -> 9394k
    Overhead: 35777k -> 35776k
    GGC runs: 246

comparing insn-attrtab.c compilation at -O3 level:
  Overall memory allocated via mmap and sbrk increased from 110406k to 190917k, overall 72.92%
    Overall memory needed: 110406k -> 190917k
    Peak memory use before GGC: 79834k -> 79795k
    Peak memory use after GGC: 74024k
    Maximum of released memory in single GGC run: 30597k
    Garbage: 282004k -> 281720k
    Leak: 9396k -> 9396k
    Overhead: 35987k -> 35986k
    GGC runs: 246

comparing Gerald's testcase PR8361 compilation at -O0 level:
  Overall memory allocated via mmap and sbrk increased from 119706k to 152085k, overall 27.05%
    Overall memory needed: 119706k -> 152085k
    Peak memory use before GGC: 92946k
    Peak memory use after GGC: 92023k
    Maximum of released memory in single GGC run: 18804k
    Garbage: 208266k
    Leak: 49015k
    Overhead: 21200k
    GGC runs: 408

comparing Gerald's testcase PR8361 compilation at -O0 -g level:
  Overall memory allocated via mmap and sbrk increased from 132150k to 169673k, overall 28.39%
    Overall memory needed: 132150k -> 169673k
    Peak memory use before GGC: 105297k
    Peak memory use after GGC: 104254k
    Maximum of released memory in single GGC run: 18718k
    Garbage: 214834k
    Leak: 72440k
    Overhead: 27103k
    GGC runs: 382

comparing Gerald's testcase PR8361 compilation at -O1 level:
  Overall memory allocated via mmap and sbrk increased from 123354k to 137472k, overall 11.45%
    Overall memory needed: 123354k -> 137472k
    Peak memory use before GGC: 98455k -> 98401k
    Peak memory use after GGC: 97460k -> 97402k
    Maximum of released memory in single GGC run: 17915k
    Garbage: 402864k -> 402809k
    Leak: 49997k -> 49996k
    Overhead: 54392k -> 54394k
    GGC runs: 549

comparing Gerald's testcase PR8361 compilation at -O2 level:
  Overall memory allocated via mmap and sbrk increased from 123362k to 139900k, overall 13.41%
    Overall memory needed: 123362k -> 139900k
    Peak memory use before GGC: 98507k -> 98444k
    Peak memory use after GGC: 97525k -> 97468k
    Maximum of released memory in single GGC run: 17915k
    Garbage: 461503k -> 461452k
    Leak: 50820k -> 50821k
    Overhead: 47445k -> 47451k
    GGC runs: 599 -> 600

comparing Gerald's testcase PR8361 compilation at -O3 level:
  Overall memory allocated via mmap and sbrk increased from 125390k to 142212k, overall 13.42%
    Overall memory needed: 125390k -> 142212k
    Peak memory use before GGC: 100260k -> 100200k
    Peak memory use after GGC: 99209k -> 99152k
    Maximum of released memory in single GGC run: 18261k
    Garbage: 489579k -> 489290k
    Leak: 51430k -> 51430k
    Overhead: 49389k -> 49372k
    GGC runs: 616

comparing PR rtl-optimization/28071 testcase compilation at -O0 level:
  Overall memory allocated via mmap and sbrk increased from 138314k to 246452k, overall 78.18%
    Overall memory needed: 138314k -> 246452k
    Peak memory use before GGC: 82630k
    Peak memory use after GGC: 59510k
    Maximum of released memory in single GGC run: 45582k
    Garbage: 148155k
    Leak: 8080k
    Overhead: 25066k
    GGC runs: 80

comparing PR rtl-optimization/28071 testcase compilation at -O0 -g level:
  Overall memory allocated via mmap and sbrk increased from 138698k to 247348k, overall 78.34%
    Overall memory needed: 138698k -> 247348k
    Peak memory use before GGC: 83276k
    Peak memory use after GGC: 60155k
    Maximum of released memory in single GGC run: 45231k
    Garbage: 148325k
    Leak: 9335k
    Overhead: 25561k
    GGC runs: 88

comparing PR rtl-optimization/28071 testcase compilation at -O1 level:
  Overall memory allocated via mmap and sbrk increased from 249142k to 305313k, overall 22.55%
    Overall memory needed: 249142k -> 305313k
    Peak memory use before GGC: 197776k
    Peak memory use after GGC: 178775k -> 178776k
    Maximum of released memory in single GGC run: 134229k
    Garbage: 274126k -> 274126k
    Leak: 27473k -> 27473k
    Overhead: 33142k
    GGC runs: 74

comparing PR rtl-optimization/28071 testcase compilation at -O2 level:
  Overall memory allocated via mmap and sbrk increased from 192018k to 301577k, overall 57.06%
    Overall memory needed: 192018k -> 301577k
    Peak memory use before GGC: 302461k
    Peak memory use after GGC: 178766k
    Maximum of released memory in single GGC run: 241049k
    Garbage: 586684k -> 586684k
    Leak: 27902k -> 27902k
    Overhead: 95313k
    GGC runs: 83

comparing PR rtl-optimization/28071 testcase compilation at -O3 -fno-tree-pre -fno-tree-fre level:
  Overall memory allocated via mmap and sbrk increased from 586858k to 1415993k, overall 141.28%
    Overall memory needed: 586858k -> 1415993k
    Peak memory use before GGC: 283571k
    Peak memory use after GGC: 276589k
    Maximum of released memory in single GGC run: 138367k
    Garbage: 451307k -> 451306k
    Leak: 48594k -> 48594k
    Overhead: 56724k
    GGC runs: 72 -> 73

Head of the ChangeLog is:

--- /usr/src/SpecTests/sandbox-britten-memory/x86_64/mem-result/ChangeLog	2007-01-18 04:56:20.000000000 +0000
+++ /usr/src/SpecTests/sandbox-britten-memory/gcc/gcc/ChangeLog	2007-01-18 20:43:53.000000000 +0000
@@ -1,3 +1,352 @@
+2007-01-18  Kazu Hirata  <kazu@codesourcery.com>
+	    Richard Sandiford  <richard@codesourcery.com>
+
+	* doc/tm.texi (TARGET_FUNCTION_VALUE): Expand documentation of
+	parallels.
+	* calls.c (expand_call): If the return value is a PARALLEL,
+	extract its first member.
+	* config/m68k/linux.h (FUNCTION_EXTRA_EPILOGUE): Remove.
+	* config/m68k/m68k.c (m68k_output_function_epilogue): Don't
+	use FUNCTION_EXTRA_EPILOGUE.
+	(m68k_function_value): Return a PARALLEL if the return value
+	is of a pointer type.
+	* config/m68k/netbsd-elf.h (current_function_returns_pointer)
+	(FUNCTION_EXTRA_EPILOGUE): Remove.
+	* config/m68k/m68k.md (D0_REG): New constant.
+
+2007-01-18  Kazu Hirata  <kazu@codesourcery.com>
+
+	* config/m68k/m68k.c (m68k_output_function_epilogue): Don't
+	output a NOP for empty epilogues.
+
+2007-01-18  Richard Sandiford  <richard@codesourcery.com>
+
+	* config/m68k/m68k.c (m68k_use_return_insn): Update comments
+	before function.  Extend register save check to include all
+	registers, not just integer ones.
+
+2007-01-18  Kazu Hirata  <kazu@codesourcery.com>
+
+	* config/m68k/m68k-protos.h (use_return_insn): Rename to...
+	(m68k_use_return_insn): ...this.
+	* config/m68k/m68k.h (USE_RETURN_INSN): Delete.
+	* config/m68k/m68k.c (use_return_insn): Rename to...
+	(m68k_use_return_insn): ...this.
+	* config/m68k/m68k.md (return): Use m68k_use_return_insn instead
+	of USE_RETURN_INSN.
+
+2007-01-18  Nathan Sidwell  <nathan@codesourcery.com>
+
+	* config/m68k/fpgnulib.c (__truncdfsf2): Implement round to
+	nearest even, fix denormal rounding overflow.
+
+2007-01-18  Richard Sandiford  <richard@codesourcery.com>
+
+	* config/m68k/m68k.md (movsf_cf_hard): Use fsmove instead of
+	f%$smove and f%$move.
+	(movdf_cf_hard): Use fdmove for cases 0 and 3 and fmove for case 1.
+	(extendsfdf2_cf): Use fdmove instead of f%&move.
+	(truncdfsf2_cf): Use fsmove instead of f%$smove.
+	(add<mode>3_cf, sub<mode>3_cf): Use <FP:prec> instead of <FP:round>.
+
+2007-01-18  Richard Sandiford  <richard@codesourcery.com>
+
+	* config/m68k/m68k.md (movdf_cf_hard): Use output_move_double for
+	GPR<-GPR moves.
+
+2007-01-18  Richard Sandiford  <richard@codesourcery.com>
+
+	* real.h (real_format): Add a canonical_nan_lsbs_set field.
+	(coldfire_single_format): Declare.
+	(coldfire_double_format): Likewise.
+	* real.c (encode_ieee_single): Use canonical_nan_lsbs_set instead
+	of qnan_msb_set to determine the lower bits of a canonical
+	NaN significand.
+	(encode_ieee_double): Likewise.
+	(encode_ieee_quad): Likewise.
+	(ieee_single_format): Initialize canonical_nan_lsbs_set.
+	(mips_single_format): Likewise.
+	(ieee_double_format): Likewise.
+	(mips_double_format): Likewise.
+	(ieee_extended_motorola_format): Likewise.
+	(ieee_extended_intel_96_format): Likewise.
+	(ieee_extended_intel_128_format): Likewise.
+	(ieee_extended_intel_96_round_53_format): Likewise.
+	(ibm_extended_format): Likewise.
+	(mips_extended_format): Likewise.
+	(ieee_quad_format): Likewise.
+	(mips_quad_format): Likewise.
+	(vax_f_format): Likewise.
+	(vax_d_format): Likewise.
+	(vax_g_format): Likewise.
+	(i370_single_format): Likewise.
+	(i370_double_format): Likewise.
+	(decimal_single_format): Likewise.
+	(decimal_double_format): Likewise.
+	(decimal_quad_format): Likewise.
+	(c4x_single_format): Likewise.
+	(c4x_extended_format): Likewise.
+	(real_internal_format): Likewise.
+	(coldfire_single_format): New real_format.
+	(coldfire_double_format): Likewise.
+	* config/pdp11/pdp11.c (pdp11_f_format): Initialize
+	canonical_nan_lsbs_set.
+	(pdp11_d_format): Likewise.
+	* config/m68k/m68k.c (override_options): Override REAL_FORMAT_MODE
+	if TARGET_COLDFIRE_CPU.
+
+2007-01-18  Richard Sandiford  <richard@codesourcery.com>
+
+	* config/m68k/m68k-protos.h (m68k_output_pic_call): Delete.
+	(output_call, m68k_legitimize_call_address): Declare.
+	* config/m68k/m68k.h (EXTRA_CONSTRAINT): Remove unnecessary
+	parenthesees.  Add support for a 'W' constraint.
+	(LEGITIMATE_PIC_OPERAND_P): Remove SYMBOL_REF_FLAG handling.
+	(PRINT_OPERAND_PUNCT_VALID_P): Remove comment about 'o'.
+	(m68k_symbolic_call, m68k_symbolic_jump): Declare.
+	* config/m68k/m68k.c (m68k_symbolic_call, m68k_symbolic_jump): New
+	variables.
+	(override_options): Initialize them.  Do not set flag_no_function_cse
+	for TARGET_ID_SHARED_LIBRARY.
+	(m68k_output_pic_call): Delete.
+	(m68k_legitimize_call_address): New function.
+	(print_operand): Remove the %o prefix.  Handle the %p prefix.
+	(output_call): New function.
+	(m68k_output_mi_thunk): Use m68k_symbolic_jump.  Always load the
+	target address from the GOT if symbolic jumps are not allowed.
+	* config/m68k/m68k.md (call, general_operand): Do not set
+	SYMBOL_REF_FLAG.  Use m68k_legitimize_call_address instead.
+	Merge separate flag_pic and !flag_pic define_insns into...
+	(*call, *call_value): ...these new patterns.  Match the address
+	rather than the containing MEM and require it to be a call_operand.
+	Use output_call to generate the asm template.
+	* config/m68k/predicates.md (const_call_operand): New predicate.
+	(call_operand): Likewise.
+
+2007-01-18  Nathan Sidwell  <nathan@codesourcery.com>
+
+	* config/m68k/m68k.h (REGISTER_MOVE_COST): Simplify definition.
+	(STACK_GROWS_DOWNWARD): Define to 1.
+	(FUNCTION_VALUE, LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Equivocate
+	comments, emphasizing that these values are only defaults.
+	* config/m68k/linux.h (LINK_SPEC): Fix formatting in #undef.
+	* config/m68k/m68k.c (const_method): Remove trailing whitespace.
+
+2007-01-18  Richard Sandiford  <richard@codesourcery.com>
+
+	* config/m68k/m68k.md (cmpsi): Remove outdated flag_pic handling.
+
+2007-01-18  Kazu Hirata  <kazu@codesourcery.com>
+	    Richard Sandiford  <richard@codesourcery.com>
+
+	* config/m68k/m68k.h (DATA_REGNO_P, ADDRESS_REGNO_P, INT_REGNO_P)
+	(FP_REGNO_P): New macros.
+	(REGNO_OK_FOR_INDEX_P, REGNO_OK_FOR_BASE_P, REGNO_OK_FOR_DATA_P)
+	(REGNO_OK_FOR_FP_P, REG_OK_FOR_INDEX_P, REG_OK_FOR_BASE_P): Use them.
+	(EH_RETURN_STACKADJ_RTX): Use A0_REG.
+	* config/m68k/m68k.c (m68k_regno_mode_ok): Use the new REGNO macros.
+
+2007-01-18  Nathan Sidwell  <nathan@codesourcery.com>
+
+	* config.gcc (m68k-*-aout*, m68k-*-coff*, m68020-*-elf*, m68k-*-elf*)
+	(m68k-*-uclinuxoldabi, m68k-*-uclinux*, m68k-*-rtems*): Add t-floatlib
+	to $tmake_file.
+	* config/m68k/t-floatlib: New file, extracting common code from...
+	* config/m68k/t-m68kbare, config/m68k/t-m68kelf,
+	* config/m68k/t-uclinux: Here.
+	* config/m68k/fpgnulib.c: Do not compile extendeed precision
+	routines on ColdFire targets.
+
+2007-01-18  Nathan Sidwell  <nathan@codesourcery.com>
+
+	* config.gcc (m68k-*-aout*, m68k-*-coff*, m68020-*-elf*, m68k-*-elf*)
+	(m68010-*-netbsdelf*, m68k*-*-netbsdelf*, m68k*-*-openbsd*)
+	(m68k-*-uclinuxoldabi, m68k-*-uclinux*, m68k-*-linux*)
+	(m68k-*-rtems*): Use tm_file rather than m68k/m68k.h and
+	explicitly set MOTOROLA to 1.
+	* config/m68k/m68k.h (MOTOROLA): Simplify definition accordingly.
+
+2007-01-18  Richard Sandiford  <richard@codesourcery.com>
+	    Nathan Sidwell  <nathan@codesourcery.com>
+
+	* config/m68k/m68k.h (PCC_STATIC_STRUCT_RETURN): Delete.
+	(ASM_OUTPUT_REG_PUSH, ASM_OUTPUT_REG_POP): Add MOTOROLA cases.
+	* config/m68k/coff.h (REGISTER_PREFIX_MD): Delete.
+	* config/m68k/m68020-elf.h (LIB_SPEC): Delete.
+	* config/m68k/m68k-none.h (CC1_SPEC, CPP_SUBTARGET_SPEC): Delete.
+	* config/m68k/m68kelf.h (IMMEDIATE_PREFIX, REGISTER_PREFIX_MD)
+	(ASM_OUTPUT_REG_PUSH, ASM_OUTPUT_REG_POP): Delete.
+	(NO_DOLLAR_IN_LABEL, PCC_STATIC_STRUCT_RETURN): Don't undefine.
+	(BSS_ASM_OP, ASM_OUTPUT_SKIP, ASM_OUTPUT_ASCII): Delete.
+	* config/m68k/m68kemb.h (PCC_STATIC_STRUCT_RETURN): Don't undefine.
+	* config/m68k/linux.h (SIZE_TYPE, PTRDIFF_TYPE, WCHAR_TYPE)
+	(WCHAR_TYPE_SIZE, TARGET_OBJFMT_CPP_BUILTINS): Delete.
+	(TARGET_OS_CPP_BUILTINS): Don't define mc68000 and mc68020 here.
+	(DBX_REGISTER_NUMBER): Delete.
+	* config/m68k/netbsd-elf.h (IMMEDIATE_PREFIX): Delete.
+	(PCC_STATIC_STRUCT_RETURN): Don't undefine.
+	* config/m68k/openbsd.h (PCC_STATIC_STRUCT_RETURN): Define.
+
+2007-01-18  Richard Sandiford  <richard@codesourcery.com>
+
+	* config.gcc (m68k-*-uclinux*): Add flat.h to $tm_file.
+	* config/flat.h: New file.
+	* crtstuff.c (USE_PT_GNU_EH_FRAME): Don't define if
+	OBJECT_FORMAT_FLAT.
+	* config/m68k/m68k.h (ASM_PREFERRED_EH_DATA_FORMAT): Do not use
+	indirect references for -msep-data or -mid-shared-library.
+	Do not use PC-relative code addresses either.
+	* config/m68k/m68k.c (override_options): Restrict -fPIC error
+	to -mpcrel.
+	* config/m68k/uclinux.h (STARTFILE_SPEC): Define.  Use Scrt1.o
+	for shared libraries and crt1.o for executables.  Use crti.o and
+	crtbegin.o.
+	(ENDFILE_SPEC): Use crtend.o and crtn.o.
+	(LIB_SPEC): Suppress -Rlibc.gdb if -static-libc is given.
+	Do not add -elf2flt or -shared-lib-id options here.
+	(LINK_SPEC): Define.  Pass -elf2flt if no -elf2flt option is given.
+	Pass -shared-lib-id if -mid-shared-library, taking the library
+	identifier from -mshared-library-id if given, otherwise
+	defaulting to 0.
+	(EH_FRAME_IN_DATA_SECTION): Do not undefine.
+	(INIT_SECTION_ASM_OP, FINI_SECTION_ASM_OP): Likewise.
+	(TARGET_OS_CPP_BUILTINS): Define __GXX_MERGED_TYPEINFO_NAMES=0
+	and __GXX_TYPEINFO_EQUALITY_INLINE=0 if -mid-shared-library.
+	(DRIVER_SELF_SPECS): Map unadorned PIC options to -msep-data.
+	* config/m68k/t-uclinux (EXTRA_MULTILIB_PARTS): Add crtbegin.o
+	and crtend.o.
+	* config/m68k/lb1sf68.asm (PICCALL): Use an lea and pc-relative
+	jump sequence for ISA A and ISA A+.
+	(PICJUMP): Likewise.
+
+2007-01-18  Richard Sandiford  <richard@codesourcery.com>
+
+	* config.gcc (m68k-*-uclinux*): Base the port on the common
+	and m68k GNU/Linux files rather than on the generic ELF ones.
+	* config/m68k/uclinux.h (TARGET_VERSION): Override.
+	(TARGET_OS_CPP_BUILTINS): Use LINUX_TARGET_OS_CPP_BUILTINS.
+
+2007-01-18  Julian Brown  <julian@codesourcery.com>
+	    Richard Sandiford  <richard@codesourcery.com>
+
+	* config/m68k/m68k.h (LONG_DOUBLE_TYPE_SIZE): Make 64-bit on ColdFire.
+	(LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Likewise.
+	* config/m68k/netbsd-elf.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Undefine
+	before redefining.
+	* config/m68k/uclinux-oldabi.h (LONG_DOUBLE_TYPE_SIZE): Redefine to
+	80 unconditionally.
+	(LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Likewise.
+
+2007-01-18  Richard Sandiford  <richard@codesourcery.com>
+
+	* doc/install.texi: Document m68k-uclinuxoldabi.
+	* config.gcc (m68k-*-uclinuxoldabi): New configuration.
+	* config/m68k/uclinux-oldabi.h: New file, copied from
+	config/m68k/uclinux.h.
+
+2007-01-18  Kaz Kojima  <kkojima@rr.iij4u.or.jp>
+
+	* config/m32r/m32r-protos.h (m32r_expand_epilogue): Declare it.
+	* config/m32r/m32r.c (m32r_setup_incoming_varargs): Use gen_frame_mem.
+	(m32r_compute_frame_size): Use unsigned for regno.
+	(m32r_reload_lr): Use gen_frame_mem.
+	(pop): New.
+	(m32r_output_function_epilogue): Don't output the function epilogue
+	textually here.
+	(m32r_expand_epilogue): New.
+	(direct_return): Return false if the function has the interrupt
+	attribute.
+	(m32r_hard_regno_rename_ok): Remove code for the textual epilogue.
+	* config/m32r/m32r.md (epilogue): New expander.
+	(return_lr, return_rte): New insns.
+	(return): Make it expander.
+	(return_normal): New expander.
+
+2007-01-18  Josh Conner  <jconner@apple.com>
+
+	PR target/30485
+	* config/rs6000/rs6000.c (rs6000_emit_vector_compare): Add
+	support for UNLE, UNLT, UNGE, and UNGT.
+
+2007-01-18  Jan Hubicka  <jh@suse.cz>
+
+	* tree-vrp.c (finalize_jump_threads): Do not call cleanup_cfg by hand.
+	* tree-tailcall (add_virtual_phis): Likewise.
+	(optimize_tail_call): Return TODOs.
+	(execute_tail_calls): Return TODOs.
+	* tree-ssa-ccp (execute_fold_all_builtins): Do cleanup_cfg via TODO.
+	* tree-cfgcleanup.c (cleanup_tree_cfg_loop): Return if something
+	changed.
+	* tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_value):
+	Cleanup cfg using TODO.
+	* tree-flow.h (cleanup_tree_cfg_loop): Update prototype.
+	* passes.c (execute_function_todo): When cleanup did something, remove
+	unused locals.
+	* tree-cfg.c (pass_build_cfg): Add cleanup_cfg TODO.
+	(make_edges): Don't cleanup_cfg.
+
+2007-01-18  Uros Bizjak  <ubizjak@gmail.com>
+
+	* reg-stack.c (subst_stack_regs_pat) [UNSPEC_SINCOS_COS,
+	UNSPEC_XTRACT_FRACT]: Use generic code for instructions that
+	operate on the top of stack.
+	[UNSPEC_SINCOS_SIN, UNSPEC_XTRACT_EXP, UNSPEC_TAN]: Rewrite
+	register handling of instructions that output to the second
+	stack slot.
+	[UNSPEC_TAN_ONE, UNSPEC_TAN_TAN]: Remove.
+	(move_for_stack_reg): Special-case check for dead destination
+	stack slot for constant load of 1.0 inside UNSPEC_TAN.
+
+	* config/i386/i386.md (UNSPEC_TAN): New constant.
+	(UNSPEC_TAN_ONE, UNSPEC_TAN_TAN): Remove.
+	(fptanxf4_i387, fptan_extend<mode>xf4_i387): New patterns
+	to correctly model move of constant 1.0 to top stack slot.
+	(*tandf3_1, *tansf3_1, *tanxf3_1): Remove insn patterns.
+	(unnamed peephole2 pattern): Remove corresponding peephole2
+	pattern that optimizes tan insn and loading of constant 1.0.
+	(tanxf2): Use fptanxf4_i387.
+	(tan<mode>2): Rename from tansf2 and tandf2 and macroize insn
+	patterns using X87MODEF12 mode macro.  Use fptan_extend<mode>xf4_i387
+	and truncate result to requested mode.  Use SSE_FLOAT_MODE_P to
+	disable patterns for SSE math.
+	(sincos<mode>3): Use truncxf<mode>2_i387_noop for truncation.
+	(fyl2x_extend<mode>xf3_i387): Use X87MODEF12 for operand 1.
+
+2007-01-18  Dirk Mueller  <dmueller@suse.de>
+	    Richard Guenther <rguenther@suse.de>
+
+	PR diagnostic/8268
+	* doc/invoke.texi (Warray-bounds): Document -Warray-bounds.
+	* common.opt (Warray-bounds): Add new warning option.
+	* c-opts.c (c_common_handle_option): Define -Warray-bounds
+	if -Wall is given.
+	* Makefile.in: make tree-vrp.o depend on toplev.h
+	* tree-vrp.c (vrp_finalize): Call check_array_refs if -Warray-bounds
+	is enabled.
+	(check_array_refs, check_array_bounds, check_array_ref): New.
+
+2007-01-18  Jan Hubicka  <jh@suse.cz>
+
+	* tree-ssa-ccp.c (ccp_finalize): Return if something changed.
+	(execute_ssa_ccp): Return flags conditionally.
+	* tree-ssa-propagate.c (substitue_and_fold): Return if something was
+	changed.
+	* tree-ssa-propagate.h (substitute_and_fold): Update prototype.
+
+2007-01-18  Steven Bosscher  <steven@gcc.gnu.org>
+
+	* cfgcleanup.c (cleanup_cfg): Detect cfglayout mode and set
+	the CLEANUP_CFGLAYOUT flag when in cfglayout mode.
+
+	* Makefile.c (GTFILES): Add cfglayout.h.
+	* gengtype.c (open_base_files): Likewise.
+	* cfglayout.c (cfg_layout_function_footer,
+	cfg_layout_function_header) Reindent to make gengtype happy.
+	* cfglayout.h (cfg_layout_function_footer,
+	cfg_layout_function_header): Add GTY(()) marker.
+
+	* ifcvt.c (noce_try_sign_mask): Make sure INSN_B is non-null.
+
 2007-01-18  Ben Elliston  <bje@au.ibm.com>
 
 	* genautomata.c (write_automata): Include xstrerror output in the
@@ -221,7 +570,7 @@
 	* config/i386/i386.md (fyl2xxf3_i387): Rename from fyl2x_xf3.
 	(fyl2x_extend<mode>xf3_i387): New insn pattern.
 	(log<mode>2): Rename from logsf2 and logdf2 and macroize insn
-	insn patterns using X87MODEF12 mode macro.  Extend operand 1
+	patterns using X87MODEF12 mode macro.  Extend operand 1
 	to XFmode. Use SSE_FLOAT_MODE_P to disable patterns for SSE math.
 	(log10<mode>2): Ditto.
 	(log2<mode>2): Ditto.
@@ -232,7 +581,6 @@
 	(*fxtractxf3_i387): Rename from *fxtractxf3.
 	(fxtract_extend<mode>xf3_i387): New insn pattern.
 	(ilogbsi2): Use match_dup 3, not match_operand:XF 3.
-
 	* config/i386/i386.c (ix86_emit_i387_log1p): Use gen_fyl2xp1xf3_i387()
 	and gen_fyl2xxf3_i387().
 


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]