Trace selection for compiling large C application programs to microcode

  • Authors:
  • P. P. Chang;W. W. Hwu

  • Affiliations:
  • Coordinated Science Laboratory, 1101 W. springfield Ave., Unviersity of Illinois, Urbana, IL;Coordinated Science Laboratory, 1101 W. springfield Ave., Unviersity of Illinois, Urbana, IL

  • Venue:
  • MICRO 21 Proceedings of the 21st annual workshop on Microprogramming and microarchitecture
  • Year:
  • 1988

Quantified Score

Hi-index 0.02

Visualization

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.