Improving Offset Assignment for Embedded Processors

Embedded systems consisting of the application program ROM, RAM, the embedded processor core, and any custom hardware on a single wafer are becoming increasingly common in application domains such as signal processing. Given the rapid deployment of these systems, programming on such systems has shifted from assembly language to high-level languages such as C, C++, and Java. The processors used in such systems are usually targeted toward specific application domains, e.g., digital signal processing (DSP). As a result, these embedded processors include application-specific instruction sets, complex and irregular data paths, etc., thereby rendering code generation for these processors difficult. In this paper, we present new code optimization techniques for embedded fixed point DSP processors which have limited on-chip program ROM and include indirect addressing modes using post-increment and decrement operations. We present a heuristic to reduce code size by taking advantage of these addressing modes. Our solution aims at improving the offset assignment produced by Liao et al.'s solution. It finds a layout of variables in RAM, so that it is possible to subsume explicit address register manipulation instructions into other instructions as a post-increment or post-decrement operation. Experimental results show the effectiveness of our solution.

[1]  Stan Y. Liao,et al.  Code generation and optimization for embedded digital signal processors , 1996 .

[2]  Rainer Leupers,et al.  Algorithms for address assignment in DSP code generation , 1996, ICCAD 1996.

[3]  Kurt Keutzer,et al.  Storage assignment to decrease code size , 1995, PLDI '95.

[4]  Kurt Keutzer,et al.  Storage assignment to decrease code size , 1996, TOPL.

[5]  Sharad Malik,et al.  Optimization of embedded DSP programs using post-pass data-flow analysis , 1997, 1997 IEEE International Conference on Acoustics, Speech, and Signal Processing.

[6]  Giovanni De Micheli,et al.  Synthesis and Optimization of Digital Circuits , 1994 .

[7]  S. Devadas,et al.  Analysis And Evaluation of Address Arithmetic Capabilities in Custom DSP Archtectures , 1997, Proceedings of the 34th Design Automation Conference.

[8]  Steven S. Muchnick,et al.  Advanced Compiler Design and Implementation , 1997 .

[9]  David A. Patterson,et al.  Computer Architecture: A Quantitative Approach , 1969 .

[10]  Heinrich Meyr,et al.  Code Generation and Optimization Techniques for Embedded Digital Signal Processors , 1996 .

[11]  Gert Goossens,et al.  Code Generation for Embedded Processors , 1995 .

[12]  D. H. Bartley,et al.  Optimizing stack frame accesses for processors with restricted addressing modes , 1992, Softw. Pract. Exp..

[13]  Dr. Rainer Leupers Code Optimization Techniques for Embedded Processors , 2000, Springer US.

[14]  R. K. Shyamasundar,et al.  Introduction to algorithms , 1996 .

[15]  Carlos Valderrama,et al.  Trends in embedded systems technology: an industrial perspective , 1995 .

[16]  Sharad Malik,et al.  Memory bank and register allocation in software synthesis for ASIPs , 1995, Proceedings of IEEE International Conference on Computer Aided Design (ICCAD).

[17]  Clifford Liem,et al.  Trends In Embedded Systems Technology , 1996 .

[18]  Amit Rao,et al.  Storage assignment optimizations to generate compact and efficient code on embedded DSPs , 1999, PLDI '99.