Variable Expansion Optimization

Ayal Zaks ZAKS@il.ibm.com
Mon Aug 23 07:32:00 GMT 2004


>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.
OTOH, SMS generates register-moves (in the absence of rotating registers),
which could be eliminated by further unrolling - after or as a final step
of SMS.

Ayal.



More information about the Gcc mailing list