We are pleased to announce that Mostafa Hagog and Ayal Zaks, of IBM Haifa Labs, have contributed Swing Modulo Scheduling (SMS) to GCC 4.0. Their implementation is based on the articles:
SMS is intended to schedule instructions of loops rather than the
traditional scheduler (in GCC) that does not give a special
handling for loops. For more information on the theory behind
SMS take a look at the
2004 GCC summit proceedings (page 55).
This optimization helps in loops where there is a place to
run consecutive iterations concurrently but the traditional
instruction scheduling is not able to fully utilize the hardware
functional units. This optimization is disabled by default
because of compile time consumption;
activates it. The current implementation of SMS is preliminary
and is not effective in the following cases:
Improvements to SMS to overcome (but not only) the first three restrictions are expected in the coming releases of GCC.
Copyright (C) Free Software Foundation, Inc. Verbatim copying and distribution of this entire article is permitted in any medium, provided this notice is preserved.