Loop optimization with tradeoff between cycle count and code size for DSP applications

Software pipelining is an effective technique to reduce cycle count by exploiting instruction level parallelism in loops. It has been implemented in most VLIW DSP compilers. However, software pipelining expands the code size due to the introduction of prelude and postlude. To address this problem, many VLIW DSP compilers include certain code size reduction features. During compilation, a user is given limited options of exercising these code reduction features. As a result, the tradeoff options between cycle count and code size are also limited. Yet today's software development often requires an optimum balance between code size and cycle count, which in turn requires a much wider tradeoff space. This paper presents a new heuristic code-size-constraint loop optimization approach to extend the tradeoff space. Preliminary experimental results indicate that the new approach can significantly widen the tradeoff space, thus providing DSP users with more flexibility to meet their various design criteria.

[1]  Jian Wang,et al.  De-pipeline a software-pipelined loop , 2003, 2003 IEEE International Conference on Acoustics, Speech, and Signal Processing, 2003. Proceedings. (ICASSP '03)..

[2]  Josep Llosa,et al.  Reduced code size modulo scheduling in the absence of hardware support , 2002, MICRO.

[3]  J A Fisher,et al.  Instruction-Level Parallel Processing , 1991, Science.

[4]  Bogong Su,et al.  URPR—An extension of URCR for software pipelining , 1986, MICRO 19.

[5]  Edwin Hsing-Mean Sha,et al.  Optimal code size reduction for software-pipelined loops on DSP applications , 2002, Proceedings International Conference on Parallel Processing.