A new approach to DSP intrinsic functions
暂无分享,去创建一个
A compiler is frequently unable to make use of algorithm-specific instructions which DSP's (digital signal processors) provide. To force their use, programmers use language extensions to define intrinsic functions. Traditionally, these intrinsic functions are implemented with assembly language instructions on the target processor. We propose and implement a new approach to intrinsic functions where the programmer targets a compiler's intermediate representation rather than the assembly language of a particular processor. The benefits of our approach are both portability and improved performance. We compare the performance of the traditional approach with our new approach for four GSM (Global System for Mobile communication) speech coders. We also examine the interaction of our new approach with two major optimizations: profile-directed function inlining and aggressive loop optimization. We find that, compared to the traditional approach, ours benefits greatly from removing barriers to these optimizations. We find that without inlining or loop optimization, our new approach speeds up execution by a factor of 1.12 compared to the traditional approach; however, with both loop optimization and a moderate amount of inlining, we find a speedup of 2.88. We find a similar improvement in achieved instruction level parallelism.
[1] Daniel M. Lavery,et al. Modulo Scheduling for Control-Intensive General-Purpose Programs , 1997 .
[2] Heinrich Meyr,et al. Code Generation and Optimization Techniques for Embedded Digital Signal Processors , 1996 .
[3] Stan Y. Liao,et al. Code generation and optimization for embedded digital signal processors , 1996 .
[4] Pierre G. Paulin,et al. DSP design tool requirements for embedded systems: A telecommunications industrial perspective , 1995, J. VLSI Signal Process..