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]

Loop optimizer issues


Hello,

I would like to discuss some of the loop optimizer related issues:

The process of merging of the loop optimizer work I am currently doing
on rtlopt branch. I am quite sure that I won't be able to get it to
reasonable state for 3.4. I would however like to reuse some parts of
this work on tree-ssa. Would it be feasible to merge this work from
rtlopt branch to tree-ssa branch once it is in sufficiently stabilized
state (in about a month or so)?

What parts do we want to do on ast level and what on rtl level?
The optimizations I would like to see on rtl level:

doloop optimization -- clearly machine specific and hard to express
  on ast level
unrolling (at least partially) -- to do it efficiently we should take
  scheduling into account, which we cannot until late rtl stages
(maybe) prefetching -- it is machine specific, but it should not
  be hard to do it in later stages of ast, where it could still benefit
  from a more accurate analyses
(maybe) part of induction variable optimizations that require knowledge
  of addressing modes; again could also be done in late ast stages
loop invariant motion -- it must take register pressure into account

Most of the above mentioned optimizations that are suitable for rtl
level would benefit from results of analyses done on ast level; we
should also consider how to pass them there (perhaps some annotations on
appropriate registers? It would be quite hard to keep them up-to-date).

And finally, who will do it? I of course volunteer for anything of the
above and later implementation of additional optimizations, but on gcc
summit I had a feeling that other people also have related plans.  There
is a lot of stuff to do, but we need to coordinate it somehow so that
one thing is not unnecessarily done twice.

Zdenek


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