Access the full text.
Sign up today, get DeepDyve free for 14 days.
P. Knijnenburg, T. Kisuki, M. O’Boyle (2000)
Combined Selection of Tile Sizes and Unroll Factors Using Iterative CompilationThe Journal of Supercomputing, 24
S. Bhattacharyya, R. Leupers, P. Marwedel (2000)
Software synthesis and code generation for signal processing systems
Daniel Grove, Linda Torczon (1993)
Interprocedural constant propagation: a study of jump function implementation, 28
D. Callahan, K. Cooper, K. Kennedy, Linda Torczon (1986)
Interprocedural constant propagation
M. O’Boyle, P. Knijnenburg (1998)
Integrating loop and data transformations for global optimisationProceedings. 1998 International Conference on Parallel Architectures and Compilation Techniques (Cat. No.98EX192)
D. Bacon, S. Graham, O. Sharp (1994)
Compiler transformations for high-performance computingACM Comput. Surv., 26
R. Morgan (1998)
Building an Optimizing Compiler
M.F.X.B. Swaaij, F. Franssen, F. Catthoor, H. Man (1992)
Automating High Level Control F'low Transformations For Dsp Memory ManagementWorkshop on VLSI Signal Processing
(1999)
TriMedia TM-1300 http://www.semiconductors.philips.com
S. Sair, D. Kaeli, W. Meleis (1998)
A study of loop unrolling for VLIW-based DSP processors1998 IEEE Workshop on Signal Processing Systems. SIPS 98. Design and Implementation (Cat. No.98TH8374)
G. Araújo (1997)
Code generation algorithms for digital signal processors
C. Liem, P. Paulin, A. Jerraya (1996)
Address calculation for retargetable compilation and exploration of instruction-set architectures33rd Design Automation Conference Proceedings, 1996
M. Kandemir, N. Vijaykrishnan, M. Irwin, Hyun Kim (2000)
Experimental Evaluation of Energy Behavior of Iteration Space Tiling
(2003)
Array Recovery and High-Level Transformations @BULLET 161
(1998)
Novel code optimzation techniques for DSPs
(1996)
The technique of high-level optimization of DSP algorithms implementation
B. Aarts, M. Barreteau, F. Bodin, Peter Brinkhaus, Z. Chamski, H. Charles, C. Eisenbeis, J. Gurd, J. Hoogerbrugge, Ping Hu, W. Jalby, P. Knijnenburg, M. O’Boyle, Erven Rohou, R. Sakellariou, H. Schepers, André Seznec, E. Stöhr, Marco Verhoeven, H. Wijshoff (1998)
OCEANS: Optimizing Compilers for Embedded Applications
Daniel Grove, Linda Torczon (1993)
Interprocedural Constant Propagation: A Study of Jump Function Implementations
Jian Wang, B. Su (1998)
Software pipelining of nested loops for real-time DSP applicationsProceedings of the 1998 IEEE International Conference on Acoustics, Speech and Signal Processing, ICASSP '98 (Cat. No.98CH36181), 5
(2000)
Digital Signal Processing Web Site
(2002)
Received February
(1999)
ADSP-21160 SHARC DSP Hardware Reference
P. Clauss (1996)
Counting solutions to linear and nonlinear constraints through Ehrhart polynomials: applications to analyze and transform scientific programs
(1994)
DSPstone: A DSP-oriented benchmarking methodology
S. Gupta, Rajesh Gupta, M. Corbalan, F. Catthoor (2000)
Analysis of high-level address code transformations for programmable processorsProceedings Design, Automation and Test in Europe Conference and Exhibition 2000 (Cat. No. PR00537)
Allan Frederiksen, R. Christiansen, Jeff Bie, P. Koch (2000)
An evaluation of compiler-processor interaction for DSP applicationsConference Record of the Thirty-Fourth Asilomar Conference on Signals, Systems and Computers (Cat. No.00CH37154), 2
B. Su, Jian Wang, Andrew Esguerra (1999)
Source-level loop optimization for DSP code generation1999 IEEE International Conference on Acoustics, Speech, and Signal Processing. Proceedings. ICASSP99 (Cat. No.99CH36258), 4
Robert Engelen, K. Gallivan (2001)
An efficient algorithm for pointer-to-array access conversion for compiling and optimizing DSP applications2001 Innovative Architecture for Future Generation High-Performance Processors and Systems
F. Bodin, Z. Chamski, C. Eisenbeis, Erven Rohou, André Seznec (1998)
GCDS: A Compiler Strategy for Trading Code Size Against Performance in Embedded Applications
A. Timmer, M. Strik, J. Meerbergen, J. Jess (1995)
Conflict Modelling and Instruction Scheduling in Code Generation for In-House DSP Cores32nd Design Automation Conference
W. Pugh (1994)
Counting solutions to Presburger formulas: how and why
A. William, H. Russell (1999)
Real Time Dsp Signal Application In An Engineering Technology Laboratory Course Using An Analog Devices’ Sharc Adsp 21061 Processor
(2001)
TMS320C6201B Digital Signal Processor
Shmuel Sagiv, T. Reps, Susan Horwitz (1995)
Precise Interprocedural Dataflow Analysis with Applications to Constant Propagation
E. Duesterwald, Rajiv Gupta, M. Soffa (1993)
A practical data flow framework for array reference analysis and its use in optimizations
Yonghong Song, Yuan Lin (2000)
Unroll-and-jam for imperfectly-nested loops in DSP applications
M. Kandemir, J. Ramanujam, A. Choudhary (1999)
Improving Cache Locality by a Combination of Loop and Data TransformationIEEE Trans. Computers, 48
R. Allen, Steve Johnson (1988)
Compiling C for vectorization, parallelization, and inline expansion
(1995)
Effectiveness of data dependence analysis, Int
Björn Franke, M. O’Boyle (2001)
Compiler Transformation of Pointers to Explicit Array Accesses in DSP Applications
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.
ACM Transactions on Embedded Computing Systems (TECS) – Association for Computing Machinery
Published: May 1, 2003
Read and print from thousands of top scholarly journals.
Already have an account? Log in
Bookmark this article. You can see your Bookmarks on your DeepDyve Library.
To save an article, log in first, or sign up for a DeepDyve account if you don’t already have one.
Copy and paste the desired citation format or use the link below to download a file formatted for EndNote
Access the full text.
Sign up today, get DeepDyve free for 14 days.
All DeepDyve websites use cookies to improve your online experience. They were placed on your computer when you launched this website. You can change your cookie settings through your browser.