A compilation technique for software pipelining of loops with conditional jumps

  • Authors:
  • Kemal Ebcioğlu

  • Affiliations:
  • IBM, Thomas J. Watson Research Center, P.O. Box 704, Yorktown Heights, NY

  • Venue:
  • MICRO 20 Proceedings of the 20th annual workshop on Microprogramming
  • Year:
  • 1987

Quantified Score

Hi-index 0.00

Visualization

Abstract

We describe a compilation algorithm for efficient software pipelining of general inner loops, where the number of iterations and the time taken by each iteration may be unpredictable, due to arbitrary if-then- else statements and conditional exit statements within the loop. As our target machine, we assume a wide instruction word architecture that allows multi-way branching in the form of if-then-else trees, and that allows conditional register transfers depending on where the microinstruction branches to (a hardware implementation proposal for such a machine is briefly described in the paper). Our compilation algorithm, which we call the pipeline scheduling technique, produces a software- pipelined version of a given inner loop, which allows a new iteration of the loop to begin on every cycle whenever dependencies and resources permit. The correctness and termination properties of the algorithm are studied in the paper.