Using de-optimization to re-optimize code

  • Authors:
  • Stephen Hines;Prasad Kulkarni;David Whalley;Jack Davidson

  • Affiliations:
  • Florida State University, Tallahassee, FL;Florida State University, Tallahassee, FL;Florida State University, Tallahassee, FL;University of Virginia, Charlottesville, VA

  • Venue:
  • Proceedings of the 5th ACM international conference on Embedded software
  • Year:
  • 2005

Quantified Score

Hi-index 0.00

Visualization

Abstract

The nature of embedded systems development places a great deal of importance on meeting strict requirements in areas such as static code size, power consumption, and execution time. In order to meet these requirements, embedded developers frequently generate and tune assembly code for applications by hand, despite the disadvantages of coding at a low level. The phase ordering problem is a well-known problem affecting the design of optimizing compilers. Hand-tuned code is susceptible to an analogous problem to phase ordering due to the process of iterative refinement, but there has been little research in mitigating its effect on the quality of the generated code. This paper presents an extension of the VISTA framework for investigating the effect and potential benefit of performing de-optimization before re-optimizing assembly code. The design and implementation of algorithms for de-optimization of both loop-invariant code motion and register allocation, along with results of experiments regarding de-optimization and re-optimization of previously generated assembly code are also presented.