Modulo scheduling of loops in control-intensive non-numeric programs
- 24 December 2002
- proceedings article
- Published by Institute of Electrical and Electronics Engineers (IEEE)
Abstract
Much of the previous work on modulo scheduling has targeted numeric programs, in which, often, the majority of the loops are well-behaved loop-counter-based loops without early exits. In control-intensive non-numeric programs, the loops frequently have characteristics that make it more difficult to effectively apply modulo scheduling. These characteristics include multiple control flow paths, loops that are not based on a loop counter, and multiple exits. In these loops, the presence of unimportant paths with high resource usage or long dependence chains can penalize the important paths. A path that contains a hazard such as another nested loop can prohibit modulo scheduling of the loop. Control dependences can severely restrict the overlap of the blocks within and across iterations. This paper describes a set of methods that allow effective modulo scheduling of loops with multiple exits. The techniques include removal of control dependences to enable speculation, extensions to modulo variable expansion, and a new epilogue generation scheme. These methods can be used with superblock and hyperblock techniques to allow modulo scheduling of the selected paths of loops with arbitrary control flow. A case study is presented to show how these methods, combined with superblock techniques, enable modulo scheduling to be effectively applied to control-intensive non-numeric programs. Performance results for several SPEC CINT92 benchmarks and Unix utility programs are reported and demonstrate the applicability of modulo scheduling to this class of programs.Keywords
This publication has 16 references indexed in Scilit:
- Code Generation Schema For Modulo Scheduled LoopsPublished by Institute of Electrical and Electronics Engineers (IEEE) ,2005
- Effective Compiler Support For Predicated Execution Using The HyperblockPublished by Institute of Electrical and Electronics Engineers (IEEE) ,2005
- Unrolling-based optimizations for modulo schedulingPublished by Institute of Electrical and Electronics Engineers (IEEE) ,1995
- Iterative modulo schedulingPublished by Association for Computing Machinery (ACM) ,1994
- Sentinel schedulingACM Transactions on Computer Systems, 1993
- The superblock: An effective technique for VLIW and superscalar compilationThe Journal of Supercomputing, 1993
- Instruction-level parallel processing: History, overview, and perspectiveThe Journal of Supercomputing, 1993
- A VLIW architecture based on shifting register filesPublished by Institute of Electrical and Electronics Engineers (IEEE) ,1993
- Software pipelining: an effective scheduling technique for VLIW machinesPublished by Association for Computing Machinery (ACM) ,1988
- Some scheduling techniques and an easily schedulable horizontal architecture for high performance scientific computingACM SIGMICRO Newsletter, 1981