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]

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


Hi,
the script computing mmap/sbrk usage was updated to new Richard's
version.  The original numbers was quite likely mostly wrong at least
for some time already (as can be seen from fact that they was smaller
than GGC memory).
All other indicators was OK before this date too.

Honza
> 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]