Array recovery and high-level transformations for DSP applications
- 1 May 2003
- journal article
- Published by Association for Computing Machinery (ACM) in ACM Transactions on Embedded Computing Systems
- Vol. 2 (2) , 132-162
- https://doi.org/10.1145/643470.643472
Abstract
Efficient implementation of DSP applications is critical for many embedded systems. Optimizing compilers for application programs, written in C, largely focus on code generation and scheduling, which, with their growing maturity, are providing diminishing returns. As DSP applications typically make extensive use of pointer arithmetic, the alternative use of high-level, source-to-source, transformations has been largely ignored. This article develops an array recovery technique that automatically converts pointers to arrays, enabling the empirical evaluation of high-level transformations. High-level techniques were applied to the DSPstone benchmarks on three platforms: TriMedia TM-1000, Texas Instruments TMS320C6201, and the Analog Devices SHARC ADSP-21160. On average, the best transformation gave a factor of 2.43 improvement across the platforms. In certain cases, a speedup of 5.48 was found for the SHARC, 7.38 for the TM-1, and 2.3 for the C6201. These preliminary results justify pointer to array conversion and further investigation into the use of high-level techniques for embedded compilers.Keywords
This publication has 15 references indexed in Scilit:
- Analysis of high-level address code transformations for programmable processorsPublished by Association for Computing Machinery (ACM) ,2000
- Improving cache locality by a combination of loop and data transformationsIEEE Transactions on Computers, 1999
- Counting solutions to linear and nonlinear constraints through Ehrhart polynomialsPublished by Association for Computing Machinery (ACM) ,1996
- Effectiveness of data dependence analysisInternational Journal of Parallel Programming, 1995
- Conflict modelling and instruction scheduling in code generation for in-house DSP coresPublished by Association for Computing Machinery (ACM) ,1995
- Compiler transformations for high-performance computingACM Computing Surveys, 1994
- Counting solutions to Presburger formulasPublished by Association for Computing Machinery (ACM) ,1994
- Interprocedural constant propagationPublished by Association for Computing Machinery (ACM) ,1993
- A practical data flow framework for array reference analysis and its use in optimizationsPublished by Association for Computing Machinery (ACM) ,1993
- Interprocedural constant propagationPublished by Association for Computing Machinery (ACM) ,1986