... >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. Ayal.