Optimizing address code generation for array-intensive DSP applications

Guilin Chen, Mahmut Kandemir

Research output: Chapter in Book/Report/Conference proceedingConference contribution

11 Scopus citations


The application code size is a critical design factor for many embedded systems. Unfortunately, most available compilers optimize primarily for speed of execution rather than code density. As a result, the compiler-generated code can be much larger than necessary. In particular, in the DSP domain, the past research found that optimizing address code generation can be very important since address code can account for over 50% of all program bits. This paper presents a compiler-directed scheme to minimize the number of instructions to be generated to manipulate address registers found in DSP architectures. As opposed to most of the prior techniques that attempt to reduce the number of such instructions through careful address register assignment, this paper proposes modifying loop access patterns in array-intensive signal processing applications. In addition, it demonstrates how the proposed scheme can cooperate with a data layout optimizer for increasing its benefits further. We also discuss how optimizations that target effective address code generation can conflict with data locality-enhancing transformations. We evaluate the proposed approach using twelve array-intensive embedded applications. Our experimental results indicate that the proposed approach not only leads to significant reductions in code size but also outperforms prior efforts on reducing code size of array-intensive DSP applications.

Original languageEnglish (US)
Title of host publicationProceedings of the 2005 International Symposium on Code Generation and Optimization, CGO 2005
Number of pages12
StatePublished - Dec 1 2005

Publication series

NameProceedings of the 2005 International Symposium on Code Generation and Optimization, CGO 2005

All Science Journal Classification (ASJC) codes

  • General Engineering


Dive into the research topics of 'Optimizing address code generation for array-intensive DSP applications'. Together they form a unique fingerprint.

Cite this