An Optimizing Compiler for the TMS320C25 DSP Processor

Wen-Yen Lin
Master of Applied Science, January 1995
Department of Electrical and Computer Engineering
University of Toronto

Abstract

Programming DSP applications in a high-level language such as C is becoming more prevalent as applications become increasingly more complex. Current DSP compilers, how ever, are generally unable to exploit the DSP-specific features of a processor to produce good codes for most DSP applications. To explore the challenges and gain an understanding of gen erating code that is as good as handwritten assembly code, an optimizing C compiler for Texas Instruments' TMS320C25 DSP processor is developed.

A pseudo C25 instruction set and GCC configuration files are also created for the C25 in this study. A number of benchmark programs are collected and used to evaluate the quality of compiler-generated codes. Finally, this thesis shows that a modified GNU C compiler com bined with a post-optimizer is able to utilize the special features of the TMS320C25 and to generate high-performance codes. The empirical results indicate that codes generated by the UofT C25 optimizing compiler execute, on average, 1.9 times faster than the TI compiler-gen erated codes. In addition, for most of the benchmark programs, the performance of codes gen erated by the UofT C25 optimizing compiler come, on average, within a factor of two of that of the hand-written assembly codes.

UofT C25 Compiler

The source code for the UofT C25 compiler is available as a 7.2MB, compressed, tar file (uncompressed version occupies ~25MB). Please note that due to time and resource constraints, this code is provided with absolutely no support and with no warranty or fitness for any specific purpose.


Last Updated: 15 May 1998
Corinna G. Lee (corinna@eecg.toronto.edu)