This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Bootstrap failures


> On 10/20/06, Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz> wrote:
> >Hello,
> >
> >I am getting bootstap failures on i686 and x86_64 during libjava build,
> >that seem to be caused by your patch (probably the same problem as
> >the one reported in 
> >http://gcc.gnu.org/ml/gcc-patches/2006-10/msg01033.html,
> >however, on a platform easier to access).
> >
> >Zdenek
> >
> 
> I am testing a fix for all of these issues (compile time, memory
> usage, bootstrap failure).
> 
> It will end up losing us some generated code performance, but should
> fix all the issues.
> 
> The diff being tested is attached (it possibly doesn't even bootstrap
> yet, i just made the changes a second ago)
Hi,
looks like your patch further increase memory consumption.  Overall
footprint of -O1 insn-attrtab compilation is now 15% up compared to day
before yesterday.

Honza

comparing combine.c compilation at -O0 level:
    Overall memory needed: 24809k -> 24797k
    Peak memory use before GGC: 8930k -> 8929k
    Peak memory use after GGC: 8558k
    Maximum of released memory in single GGC run: 2577k -> 2576k
    Garbage: 34893k -> 34878k
    Leak: 6073k -> 6073k
    Overhead: 4716k -> 4715k
    GGC runs: 294

comparing combine.c compilation at -O1 level:
  Amount of produced GGC garbage increased from 55253k to 55748k, overall 0.90%
    Overall memory needed: 36229k -> 36237k
    Peak memory use before GGC: 16998k -> 16999k
    Peak memory use after GGC: 16830k
    Maximum of released memory in single GGC run: 2310k -> 2342k
    Garbage: 55253k -> 55748k
    Leak: 6147k -> 6151k
    Overhead: 6005k -> 6045k
    GGC runs: 366 -> 369

comparing combine.c compilation at -O2 level:
  Amount of produced GGC garbage increased from 74206k to 76521k, overall 3.12%
    Overall memory needed: 26496k
    Peak memory use before GGC: 17001k -> 16999k
    Peak memory use after GGC: 16830k
    Maximum of released memory in single GGC run: 2842k -> 2884k
    Garbage: 74206k -> 76521k
    Leak: 6276k -> 6252k
    Overhead: 8696k -> 8785k
    GGC runs: 439 -> 443

comparing combine.c compilation at -O3 level:
  Amount of produced GGC garbage increased from 101807k to 107354k, overall 5.45%
    Overall memory needed: 25596k
    Peak memory use before GGC: 18001k -> 17988k
    Peak memory use after GGC: 17545k -> 17536k
    Maximum of released memory in single GGC run: 3996k -> 4130k
    Garbage: 101807k -> 107354k
    Leak: 6337k -> 6317k
    Overhead: 12067k -> 12408k
    GGC runs: 489 -> 490

comparing insn-attrtab.c compilation at -O0 level:
    Overall memory needed: 83700k
    Peak memory use before GGC: 68248k -> 68247k
    Peak memory use after GGC: 43913k
    Maximum of released memory in single GGC run: 35709k -> 35708k
    Garbage: 125972k -> 125964k
    Leak: 9117k -> 9117k
    Overhead: 16830k -> 16830k
    GGC runs: 231

comparing insn-attrtab.c compilation at -O1 level:
  Overall memory allocated via mmap and sbrk increased from 111856k to 118444k, overall 5.89%
  Peak amount of GGC memory allocated before garbage collecting increased from 89585k to 94551k, overall 5.54%
  Peak amount of GGC memory still allocated after garbage collectin increased from 82960k to 90403k, overall 8.97%
  Amount of produced GGC garbage increased from 272884k to 289427k, overall 6.06%
    Overall memory needed: 111856k -> 118444k
    Peak memory use before GGC: 89585k -> 94551k
    Peak memory use after GGC: 82960k -> 90403k
    Maximum of released memory in single GGC run: 31806k -> 31807k
    Garbage: 272884k -> 289427k
    Leak: 8979k -> 8977k
    Overhead: 29303k -> 29408k
    GGC runs: 232 -> 240

comparing insn-attrtab.c compilation at -O2 level:
  Overall memory allocated via mmap and sbrk increased from 108256k to 114404k, overall 5.68%
  Peak amount of GGC memory allocated before garbage collecting increased from 91054k to 95237k, overall 4.59%
  Peak amount of GGC memory still allocated after garbage collectin increased from 83154k to 90625k, overall 8.98%
  Amount of produced GGC garbage increased from 311213k to 328157k, overall 5.44%
    Overall memory needed: 108256k -> 114404k
    Peak memory use before GGC: 91054k -> 95237k
    Peak memory use after GGC: 83154k -> 90625k
    Maximum of released memory in single GGC run: 30385k -> 30386k
    Garbage: 311213k -> 328157k
    Leak: 8986k -> 8982k
    Overhead: 36327k -> 36436k
    GGC runs: 258 -> 269

comparing insn-attrtab.c compilation at -O3 level:
  Overall memory allocated via mmap and sbrk increased from 108280k to 114436k, overall 5.69%
  Peak amount of GGC memory allocated before garbage collecting increased from 91079k to 95263k, overall 4.59%
  Peak amount of GGC memory still allocated after garbage collectin increased from 83179k to 90651k, overall 8.98%
  Amount of produced GGC garbage increased from 311793k to 328738k, overall 5.43%
    Overall memory needed: 108280k -> 114436k
    Peak memory use before GGC: 91079k -> 95263k
    Peak memory use after GGC: 83179k -> 90651k
    Maximum of released memory in single GGC run: 30579k -> 30582k
    Garbage: 311793k -> 328738k
    Leak: 8989k -> 8984k
    Overhead: 36500k -> 36612k
    GGC runs: 260 -> 271

comparing Gerald's testcase PR8361 compilation at -O0 level:
    Overall memory needed: 116568k
    Peak memory use before GGC: 92730k -> 92731k
    Peak memory use after GGC: 91812k
    Maximum of released memory in single GGC run: 19777k -> 19778k
    Garbage: 201487k -> 200877k
    Leak: 47326k -> 47326k
    Overhead: 20524k -> 20503k
    GGC runs: 400 -> 399

comparing Gerald's testcase PR8361 compilation at -O1 level:
  Amount of produced GGC garbage increased from 435371k to 436946k, overall 0.36%
    Overall memory needed: 115728k
    Peak memory use before GGC: 97572k
    Peak memory use after GGC: 95362k
    Maximum of released memory in single GGC run: 18425k
    Garbage: 435371k -> 436946k
    Leak: 49820k -> 49793k
    Overhead: 31940k -> 32048k
    GGC runs: 545 -> 546

comparing Gerald's testcase PR8361 compilation at -O2 level:
    Overall memory needed: 115708k
    Peak memory use before GGC: 97575k -> 97573k
    Peak memory use after GGC: 95363k
    Maximum of released memory in single GGC run: 18424k
    Garbage: 512007k -> 505402k
    Leak: 50831k -> 50510k
    Overhead: 41799k -> 40543k
    GGC runs: 622 -> 616

comparing Gerald's testcase PR8361 compilation at -O3 level:
    Overall memory needed: 115644k -> 115648k
    Peak memory use before GGC: 97616k
    Peak memory use after GGC: 96649k
    Maximum of released memory in single GGC run: 18845k
    Garbage: 529605k -> 523573k
    Leak: 50347k -> 50058k
    Overhead: 42236k -> 41001k
    GGC runs: 631 -> 624

comparing PR rtl-optimization/28071 testcase compilation at -O0 level:
    Overall memory needed: 134128k -> 133788k
    Peak memory use before GGC: 81623k
    Peak memory use after GGC: 58503k
    Maximum of released memory in single GGC run: 45493k -> 45494k
    Garbage: 143593k -> 143586k
    Leak: 7138k -> 7138k
    Overhead: 25104k -> 25104k
    GGC runs: 87

comparing PR rtl-optimization/28071 testcase compilation at -O1 level:
    Overall memory needed: 420516k -> 420900k
    Peak memory use before GGC: 203205k -> 203238k
    Peak memory use after GGC: 198981k -> 199035k
    Maximum of released memory in single GGC run: 100817k -> 100858k
    Garbage: 265037k -> 265252k
    Leak: 47213k -> 47214k
    Overhead: 30028k -> 30028k
    GGC runs: 106

comparing PR rtl-optimization/28071 testcase compilation at -O2 level:
    Overall memory needed: 346044k -> 347040k
    Peak memory use before GGC: 203956k -> 203993k
    Peak memory use after GGC: 199732k -> 199791k
    Maximum of released memory in single GGC run: 107089k -> 107135k
    Garbage: 354552k -> 354765k
    Leak: 47796k -> 47798k
    Overhead: 47628k -> 47629k
    GGC runs: 113

comparing PR rtl-optimization/28071 testcase compilation at -O3 -fno-tree-pre -fno-tree-fre level:
    Overall memory needed: 533520k -> 533168k
    Peak memory use before GGC: 314653k -> 314706k
    Peak memory use after GGC: 292995k -> 293028k
    Maximum of released memory in single GGC run: 163448k -> 163494k
    Garbage: 487508k -> 487556k
    Leak: 65129k -> 65130k
    Overhead: 58885k -> 58865k
    GGC runs: 100

Head of the ChangeLog is:

--- /usr/src/SpecTests/sandbox-britten-memory/x86_64/mem-result/ChangeLog	2006-10-20 09:58:42.000000000 +0000
+++ /usr/src/SpecTests/sandbox-britten-memory/gcc/gcc/ChangeLog	2006-10-21 08:52:15.000000000 +0000
@@ -1,3 +1,29 @@
+2006-10-20  Mark Mitchell  <mark@codesourcery.com>
+
+	* BASE-VER: Set to 4.3.0.
+
+2006-10-20  Daniel Berlin  <dberlin@dberlin.org>
+
+	* tree.h (DECL_PTA_ARTIFICIAL): Remove.
+	(tree_decl_with_vis): Remove artificial_pta_var flag.
+	* tree-flow.h (referenced_var_check_and_insert): Expose.
+	(nonlocal_all): New prototype.
+	* tree-ssa-structalias.c (nonlocal_for_type): Remove.
+	(nonlocal_all): Make global.
+	(nonlocal_lookup): Remove.
+	(nonlocal_insert): Ditto.
+	(create_nonlocal_var): Do not call nonlocal_insert.
+	(get_nonlocal_id_for_type): Remove.
+	(find_global_initializers): Mark new vars we find for renaming.
+	(intra_create_variable_infos): Only create one nonlocal.
+	(expand_nonlocal_solutions): Remove.
+	(compute_points_to_sets): Don't call it.
+	(ipa_pta_execute): Ditto.
+	(init_alias_heapvars): Don't create nonlocal_for_type.
+	(delete_alias_heapvars): Don't remove it.
+	* tree-ssa-operands.c (access_can_touch_variable): Don't prune
+	nonlocal_all.
+
 2006-10-19  Brooks Moses  <bmoses@stanford.edu>
 
 	* doc/install.texi (Downloading GCC): Clarify mention of


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]