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: [PATCH][C++] Improve PR15855 (compile-time/memory hog)


On Fri, 2005-09-23 at 15:33 -0400, Daniel Berlin wrote:
> 
> On Fri, 23 Sep 2005, Jeffrey A Law wrote:
> 
> > On Fri, 2005-09-23 at 11:33 -0700, Mark Mitchell wrote:
> >> Richard Guenther wrote:
> >>
> >>> After some sleep and coffee I re-structured the thing even a little
> >>> more and came up with the following patch, which looks reasonably
> >>> easy to follow.
> >>
> >> This version is OK for mainline.  After it's baked in for a week or so,
> >> and assuming the 4.0.2 release has gone out, please apply it to the 4.0
> >> branch for 4.0.3 as well.
> > Cool.
> >
> > Now if someone wants to make another huge improvement to 15855, they
> > should probably look at how we're handling SFTs and how they're
> > exploding in the incremental SSA updates -- there's something like
> > 5 million mappings for SFTs for one of the incremental SSA updates.
> > We may have algorithmic issues with that many mappings and we may
> > be doing some stupid stuff in creating that many to begin with.
> 
> We don't create SFT's for structures with more than x (where x 
> is defaulting to 5) unless they are direct uses (ie not through pointers, 
> or anything like that).
The accesses are direct, not through pointers.


> I sincerely doubt we actually have 5 million SFT's.  I'd be *incredibly* 
> surprised.
We have 5 million _mappings_ for SFT variables during an incremental
SSA update.  There's something like 20k SFT variables IIRC.

If you don't believe me, then take a looksie :-)  Maybe I'm counting
wrong :-)


The first big incremental update for
static_initialization_and_destruction:


Number of virtual NEW -> OLD mappings:   43504
Number of real NEW -> OLD mappings:          0
Number of total NEW -> OLD mappings:     43504

Number of virtual symbols: 21950


The second big incremental update has:

Number of virtual NEW -> OLD mappings: 5443467
Number of real NEW -> OLD mappings:          0
Number of total NEW -> OLD mappings:   5443467

Number of virtual symbols: 21950


Jeff


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]