Fw: Scheduling an early complete loop unrolling pass?

Dorit Nuzman DORIT@il.ibm.com
Fri Feb 9 18:11:00 GMT 2007


Ayal Zaks/Haifa/IBM wrote on 07/02/2007 23:17:54:

> ...
>
> >Ah, right... I wonder if we can keep the loop structure in place, even
> >after completely unrolling the loop  - I mean the 'struct loop' in
> >'current_loops' (not the actual CFG), so that the "SLP in loops" would
have
> >a chance to at least consider vectorizing this "loop".

> Having a "loop" structure for a piece of CFG that is not a loop, was
> used in some other compiler we worked with - the notion of 'region'
> was such that it corresponded to loops, and in addition the entire
> function belonged to a "universal" region (Peter - please correct if
> I'm wrong). But I think you were looking for some marking of a basic
> block saying "this used to be a loop but got completely unrolled". I
> wonder how much such a "dummy" loop structure can really help the
> vectorizer, except for (convenience of) keeping intact the driver
> that traverses all such structures or the hanging of additional data
> off of them.
>

yes, the idea was just to save time in looking for such occurrences, and
leverage our loop-based-slp. Indeed, there may be user-unrolled code and
other occurrences for which this trick won't help, and as stated earlier,
we probably shouldn't care too much about these cases anyhow. We can play
with this idea at some later point when loop-based-slp is in place.

thanks,
dorit

> Ayal.



More information about the Gcc mailing list