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_HEADER tree code?


Hello,

for project http://gcc.gnu.org/wiki/PreservingLoops, I am considering
introducing a tree LOOP_HEADER with single argument N (number of
iterations of the loop), that would be present in IL at the beginning of
header of each loop.  I have following motivations:

1) One of the goals of the project is to avoid recomputing number of
   iterations of loops, and to keep this information (analysing # of
   iterations is fairly expensive, and we recompute this information
   quite a lot at the moment).  To keep the information valid, we need
   to prevent optimizations from destroying it (e.g., if the number
   is n_1 = n_2 - 1, and this is the last use of n_1, we do not want
   DCE to remove it); this is easy to achieve if n_1 would be the
   argument of LOOP_HEADER.  Without this tree node in IL, we would need
   to handle this specially in DCE, and possibly also other optimizers.
2) This statement might make it simpler to ensure that various
   optimizers update the loops correctly.

I am not quite sure whether this is a good idea, though.  Are there some
reasons why not to do this, or any other problems with the idea?

Zdenek


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