Array recovery and high-level transformations for DSP applications
ACM Transactions on Embedded Computing Systems (TECS)
A unified framework for nonlinear dependence testing and symbolic analysis
Proceedings of the 18th annual international conference on Supercomputing
Automatic validation of code-improving transformations on low-level program representations
Science of Computer Programming - Special issue on program transformation
Proceedings of the conference on Design, Automation and Test in Europe - Volume 2
An empirical evaluation of chains of recurrences for array dependence testing
Proceedings of the 15th international conference on Parallel architectures and compilation techniques
Automatic SIMD vectorization of chains of recurrences
Proceedings of the 22nd annual international conference on Supercomputing
Flow-Sensitive Loop-Variant Variable Classification in Linear Time
Languages and Compilers for Parallel Computing
MEMMU: Memory expansion for MMU-less embedded systems
ACM Transactions on Embedded Computing Systems (TECS)
Verification of source code transformations by program equivalence checking
CC'05 Proceedings of the 14th international conference on Compiler Construction
Equivalence checking of static affine programs using widening to handle recurrences
ACM Transactions on Programming Languages and Systems (TOPLAS)
Hi-index | 0.00 |
Abstract: The complexity of Digital Signal Processing (DSP) applications has been steadily increasing due to advances in hardware design for embedded processors. To meet critical power consumption and timing constraints, many DSP applications are hand-coded in assembly. Because the cost of hand-coding is becoming prohibitive for developing an embedded system, there is a trend toward the use of high- level programming languages, particularly C, and the use of optimizing compilers for software development. Consequently, more than ever there is a need for compilers to optimize DSP application to make effective use of the available hardware resources. Existing DSP codes are often riddled with pointer-based data accesses, because DSP programmers have the mistaken belief that a compiler will always generate better target code. The use of extensive pointer arithmetic makes analysis and optimization difficult for compilers for modern DSPs with regular architectures and large homogeneous registers sets. In this paper, we present a novel algorithm for converting pointer-based code to code with explicit array accesses. The conversion enables a compiler to perform data flow analysis and loop optimizations on DSP codes.