Loop optimization plays an important role in compiler optimization and program transformation. Many sophisticated techniques such as loop invariance code motion have been developed. Loop peeling is a technique to ass...Loop optimization plays an important role in compiler optimization and program transformation. Many sophisticated techniques such as loop invariance code motion have been developed. Loop peeling is a technique to assist parallelization of loops by unfolding loops a few times. This paper introduces a novel technique called loop peeling based on quasi invariance/induction variables. It aims at finding a general and automatic method to derive how many times a given loop should be peeled. Our technique allows for a number of iterations before some variables assigned inside a given loop become invariance or induction variables. In this paper we define the notion of quasi invariance/induction variables, present an algorithm for statically computing the optimal peeling length of a given loop. Our technique can increase the accuracy of program analyses, improve the effectiveness of loop peeling and is well suited as supporting other optimization techniques in the context of supercomputers.展开更多
基金Supported by the Japan Society for the Promotion of Science(JSPS96 P0 0 5 0 4)
文摘Loop optimization plays an important role in compiler optimization and program transformation. Many sophisticated techniques such as loop invariance code motion have been developed. Loop peeling is a technique to assist parallelization of loops by unfolding loops a few times. This paper introduces a novel technique called loop peeling based on quasi invariance/induction variables. It aims at finding a general and automatic method to derive how many times a given loop should be peeled. Our technique allows for a number of iterations before some variables assigned inside a given loop become invariance or induction variables. In this paper we define the notion of quasi invariance/induction variables, present an algorithm for statically computing the optimal peeling length of a given loop. Our technique can increase the accuracy of program analyses, improve the effectiveness of loop peeling and is well suited as supporting other optimization techniques in the context of supercomputers.