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: Variable Expansion Optimization


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


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