Converting intermediate code to assembly code using declarative machine descriptions

  • Authors:
  • João Dias;Norman Ramsey

  • Affiliations:
  • Division of Engineering and Applied Sciences, Harvard University;Division of Engineering and Applied Sciences, Harvard University

  • Venue:
  • CC'06 Proceedings of the 15th international conference on Compiler Construction
  • Year:
  • 2006

Quantified Score

Hi-index 0.00

Visualization

Abstract

Writing an optimizing back end is expensive, in part because it requires mastery of both a target machine and a compiler's internals. We separate these concerns by isolating target-machine knowledge in declarative machine descriptions. We then analyze these descriptions to automatically generate machine-specific components of the back end. In this work, we generate a recognizer; this component, which identifies register transfers that correspond to target-machine instructions, plays a key role in instruction selection in such compilers as vpo, gcc and Quick C–. We present analyses and transformations that address the major challenge in generating a recognizer: accounting for compile-time abstractions not present in a machine description, including variables, pseudo-registers, stack slots, and labels.