Variable Expansion Optimization
Zdenek Dvorak
rakdver@atrey.karlin.mff.cuni.cz
Mon Aug 23 15:46:00 GMT 2004
Hello,
> > > >1) The loop unrolling as a separate optimization should be done on
> > > > rtl level, to avoid unnecessary compile-time overheads (optimizing
> > > > the unrolled loop bodies separately is rarely useful and usually
> > > > just a waste of time). For reasons mentioned by Sebastian
> (possible
> > > > loss of information during unrolling, mostly), I believe the right
> > > > place for the unrolling optimization would be after the loop-aware
> > > > scheduling passes (SMS), and before rest of scheduling passes and
> > > > register allocation.
> > >
> > > Well, SMS could overlap more insns if the loop is unrolled before SMS.
> >
> > as I understood, unrolling is a part of SMS; why this should be the
> > case?
>
> SMS does not unroll the loop. It "peels" certain insns into a prolog (and
> complementary into an epilog), so that the loop itself iterates a few
> iterations less.
sorry, I missunderstood that. How hard would it be to incorporate
unrolling into SMS? It seems to me that this optimizations is
one of the very few places that have information sufficient to estimate
how profitable the unrolling by different factors would be with respect
to scheduling.
Zdenek
More information about the Gcc
mailing list