TY - JOUR
T1 - A method for applying loop unrolling and software pipelining to instruction-level parallel architectures
AU - Kondo, Nobuhiro
AU - Koseki, Akira
AU - Komatsu, Hideaki
AU - Fukazawa, Yoshiaki
PY - 1998/8
Y1 - 1998/8
N2 - A considerable part of program execution time is consumed by loops, so that loop optimization is highly effective especially for the innermost loops of a program. Software pipelining and loop unrolling are known methods for loop optimization. Software pipelining is advantageous in that the code becomes only slightly longer. This method, however, is difficult to apply if the loop includes branching when the parallelism is limited. On the other hand, loop unrolling, while being free of such limitations, suffers from a number of drawbacks. In particular the code size grows substantially and it is difficult to determine the optimal number of body replications. In order to solve these problems, it seems important to combine software pipelining with loop unrolling so as to utilize the advantages of both techniques while paying due regard to properties of programs under consideration and to the machine resources available. This paper describes a method for applying optimal loop unrolling and effective software pipelining to achieve this goal. Program characteristics obtained by means of an extended PDG (program dependence graph) are taken into consideration as well as machine resources.
AB - A considerable part of program execution time is consumed by loops, so that loop optimization is highly effective especially for the innermost loops of a program. Software pipelining and loop unrolling are known methods for loop optimization. Software pipelining is advantageous in that the code becomes only slightly longer. This method, however, is difficult to apply if the loop includes branching when the parallelism is limited. On the other hand, loop unrolling, while being free of such limitations, suffers from a number of drawbacks. In particular the code size grows substantially and it is difficult to determine the optimal number of body replications. In order to solve these problems, it seems important to combine software pipelining with loop unrolling so as to utilize the advantages of both techniques while paying due regard to properties of programs under consideration and to the machine resources available. This paper describes a method for applying optimal loop unrolling and effective software pipelining to achieve this goal. Program characteristics obtained by means of an extended PDG (program dependence graph) are taken into consideration as well as machine resources.
KW - Instruction-level parallelism
KW - Loop unrolling
KW - Optimizing compiler
KW - Software pipelining
UR - http://www.scopus.com/inward/record.url?scp=0032131086&partnerID=8YFLogxK
UR - http://www.scopus.com/inward/citedby.url?scp=0032131086&partnerID=8YFLogxK
U2 - 10.1002/(SICI)1520-684X(199808)29:9<62::AID-SCJ7>3.0.CO;2-H
DO - 10.1002/(SICI)1520-684X(199808)29:9<62::AID-SCJ7>3.0.CO;2-H
M3 - Article
AN - SCOPUS:0032131086
SN - 0882-1666
VL - 29
SP - 62
EP - 73
JO - Systems and Computers in Japan
JF - Systems and Computers in Japan
IS - 9
ER -