Software Pipelining Irregular Loops On the TMS320C6000 VLIW DSP Architecture

  • Authors:
  • Elana Granston;Eric Stotzer;Joe Zbiciak

  • Affiliations:
  • Texas Instrument Incorporated, Houston, TX;Texas Instrument Incorporated, Houston, TX;Texas Instrument Incorporated, Houston, TX

  • Venue:
  • OM '01 Proceedings of the 2001 ACM SIGPLAN workshop on Optimization of middleware and distributed systems
  • Year:
  • 2001

Quantified Score

Hi-index 0.00

Visualization

Abstract

The TMS320C6000 architecture is a leading family of Digital Signal Processors (DSPs). To achieve peak performance, this VLIW architecture relies heavily on software pipelining. Traditionally, software pipelining has been restricted to regular (FOR) loops. More recently, software pipelining has been extended to irregular (WHILE) loops, but only on architectures that provide special-purpose hardware such as rotating (predicate and general-purpose) register files, specific instructions for filling/draining software pipelined loops, and possibly hardware support for speculative code motion. In contrast, the TMS320C6000 family has a limited, static register file and no specialized hardware beyond the ability to predicate instructions using a few static registers. In this paper, we describe our experience extending a production compiler for the TMS320C6000 family to software pipeline irregular loops. We discuss our technique for preprocessing irregular loops so that they can be handled by the existing software pipeliner. Our approach is much simpler than previous approaches and works very well in the presence of the DSP applications and the target architecture which characterize our environment. With this optimization, we achieve impressive speedups on several key DSP and non-DSP algorithms.