Digital Signal Processing Reference
In-Depth Information
C Compilers and Code Optimization for DSPs
Bj orn Franke
Abstract Compilers take a central role in the software development tool chain
for any processor and enable high-level programming. Hence, they increase pro-
grammer productivity and code portability while reducing time-to-market. The
responsibilities of a C compiler go far beyond the translation of the source code
into an executable binary and comprise additional code optimization for high
performance and low memory footprint. However, traditional optimizations are
typically oriented towards RISC architectures that differ significantly from most
digital signal processors. In this chapter we provide an overview of the challenges
faced by compilers for DSPs and outline some of the code optimization techniques
specifically developed to address the architectural idiosyncrasies of the most
prevalent digital signal processors on the market.
1
Introduction
Compilers translate the source code written by the programmer into an executable
program for the particular target machine. While compilers generally aid the pro-
grammer to work more productively through higher levels of abstraction compilers
have to meet many additional—and sometimes conflicting—requirements. For
performance-critical DSP applications highest efficiency of the generated code is
expected and only small overhead compared to manually written assembly code is
tolerated. At the same time, high code density is paramount for memory constrained
and cost-sensitive DSP applications. Optimized code should be predictable, correct
and amendable to debugging, and generally “well-behaved” irrespective of coding
B. Franke ( )
University of Edinburgh, School of Informatics, Informatics Forum, 10 Crichton Street,
Edinburgh EH8 9AB, Scotland, UK
e-mail: bfranke@inf.ed.ac.uk
Search WWH ::




Custom Search