This is the mail archive of the gcc@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: [tree-ssa] New regressions as of 2003-11-04


> On Wed, 2003-11-05 at 11:07, Jan Hubicka wrote:
> > > On Wed, 2003-11-05 at 10:35, Jan Hubicka wrote:
> > > 
> > > > 
> > > > Webizer makes about 0.5% difference on mainline, over 1.5% difference on
> > > > tree-SSA, so we obviously made this worse by unnecesary re-use.
> > > 
> > > My analysis of crafty indicated that the use of all these temporaries
> > > causes a lot of uneccesary spilling by the register allocator, and we
> > > were losing a lot of runtime because of that.
> > 
> > Yes, this is because our register allocator is broken enought to not
> > being able to reorganize registers to avoid reg-reg copies needed on
> > 2-address machines.
> > My webizer pass is a loss for crafty too, but it pays back elsewhere.
> 
> It'll be interesting to see what the webizer does after my changes. with
> the nature of tree-ssa its important to seperate those disjoint changes
> since we generate a lot of them, and I suspect we will continue to in
> some cases. At the very least with user vars its going to happen.
> 
> I dont suppose its in the code base now? I would say this is something
> we are going to need for the SSA path always. Or at least have it
> available via an option.
> 
> Right now the webizer *just* breaks up this disjoint ranges? or does it
> do something else too?

It just breaks disjoint ranges.  The stuff to break may however come
from user variables, tree-ssa shared temporaries or reuse implied by RTL
expansion, so it is not perfect estimate.
It is in the mainline and branch.  All you need is to call
rest_of_handle_webizer somewhere before CSE1 pass.

Honza
> 
> Andrew
> 


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