Trace Selection For Compiling Large C Application Programs To Microcode
- 24 August 2005
- conference paper
- Published by Institute of Electrical and Electronics Engineers (IEEE)
- No. 01941895,p. 21-29
- https://doi.org/10.1109/micro.1988.639244
Abstract
Microcode optimization techniques such as code scheduling and resource allocation can benefit significantly by reducing uncertainties in program control flow. A trace selection algorithm with profiling information reduces the uncertainties in program control flow by identifying sequences of frequently invoked basic blocks as traces. These traces are treated as sequential codes for optimization purposes. Optimization based on traces is especially useful when the code size is large and the control structure is complicated enough to defeat hand optimizations. However, most of the experimental results reported to date are based on small benchmarks with simple control structures.For different trace selection algorithms, we report the distribution of control transfers categorized according to their potential impact on the microcode optimizations. The experimental results are based on ten C application programs which exhibit large code size and complicated control structure. The measured data for each program is accumulated across a large number of input files to ensure the reliability of the result. All experiments are performed automatically using our IMPACT C compiler which contains integrated profiling and analysis tools.Keywords
This publication has 9 references indexed in Scilit:
- Exploiting parallel microprocessor microarchitectures with a compiler code generatorPublished by Institute of Electrical and Electronics Engineers (IEEE) ,2003
- Trace scheduling optimization in a retargetable microcode compilerPublished by Association for Computing Machinery (ACM) ,1987
- URPR—An extension of URCR for software pipeliningPublished by Association for Computing Machinery (ACM) ,1986
- An improvement of trace scheduling for global microcode compactionACM SIGMICRO Newsletter, 1984
- SRDAG compactionACM SIGMICRO Newsletter, 1983
- Postpass Code Optimization of Pipeline ConstraintsACM Transactions on Programming Languages and Systems, 1983
- Optimization of MicroprogramsIEEE Transactions on Computers, 1981
- Trace Scheduling: A Technique for Global Microcode CompactionIEEE Transactions on Computers, 1981
- Dependence graphs and compiler optimizationsPublished by Association for Computing Machinery (ACM) ,1981