Abstract

A modified data dependency graph (DDG) for modeling loop-optimizing restrictions is proposed. By using it, pipelining, loop-carried data dependencies and folding of individual multicycle operations over iteration boundaries can be modeled. Properties of semantically correct software pipelining transformations are first defined in the acyclic DDG of the unrolled loop. The case when an operation in a loop body is dependent on that same operation in some previous iteration is analyzed in the acyclic DDG of the unrolled loop. The algorithm for finding a real machine optimal schedule is split into two independent tasks: finding an optimal acyclic data dependency graph of one loop body and then finding an optimal schedule for a real machine by implementing basic block methods. A method for loop optimizing named 'pipelining of strongly connected components' is proposed. It is proved that the method is semantically correct. The loop body optimization is converted into sub-tasks of optimizing individual strongly connected components of the modified data dependency graph of a loop. >

Full Text
Published version (Free)

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call