Constraint driven code selection for fixed-point DSPs

Fixed-point DSPs are a class of embedded processors with highly irregular architectures. This irregularity makes it difficult to generate high-quality machine code from programming languages such as C. In this paper we present a novel constraint driven approach to code selection for irregular processor architectures, which provides a twofold improvement of earlier work. First, it handles complete data flow graphs instead of trees and thereby generates better code in the presence of common subexpressions. Second, the presented technique is not restricted to computation of a single solution, but it generates alternative solutions. This feature enables the tight coupling of different code generation phases, resulting in better exploitation of instruction-level parallelism. Experimental results indicate that our technique is capable of generating machine code that competes well with handwritten assembly code.

[1]  Hugo De Man,et al.  Data routing: a paradigm for efficient data-path synthesis and code generation , 1994, Proceedings of 7th International Symposium on High-Level Synthesis.

[2]  Christopher W. Fraser,et al.  Engineering a simple, efficient code-generator generator , 1992, LOPL.

[3]  Gary William Grewal,et al.  An ILP-based approach to code generation , 1994, Code Generation for Embedded Processors.

[4]  Rainer Leupers,et al.  Retargetable Code Generation Based on Structural Processor Description , 1998, Des. Autom. Embed. Syst..

[5]  Kurt Keutzer,et al.  Instruction selection using binate covering for code size optimization , 1995, Proceedings of IEEE International Conference on Computer Aided Design (ICCAD).

[6]  Pierre G. Paulin,et al.  Flexware: A flexible firmware development environment for embedded systems , 1994, Code Generation for Embedded Processors.

[7]  Rainer Leupers,et al.  Retargetable Code Generation for Digital Signal Processors , 1997, Springer US.

[8]  Catherine H. Gebotys,et al.  An efficient model for DSP code generation: performance, code size, estimated energy , 1997, Proceedings. Tenth International Symposium on System Synthesis (Cat. No.97TB100114).

[9]  Peter J. Stuckey,et al.  Programming with Constraints: An Introduction , 1998 .

[10]  Mike Tien-Chien Lee,et al.  Using register-transfer paths in code generation for heterogeneous memory-register architectures , 1996, 33rd Design Automation Conference Proceedings, 1996.

[11]  K. Rimey,et al.  Lazy data routing and greedy scheduling for application-specific signal processors , 1988, MICRO 1988.