Code reuse in an optimizing compiler

  • Authors:
  • Ali-Reza Adl-Tabatabai;Thomas Gross;Guei-Yuan Lueh

  • Affiliations:
  • Intel Corporation, RN6-18. 2200 Mission College Blvd. Santa Clara, CA, and School of Computer Science, Carnegie Mellon University, Pittsburgh, PA;Institut für Computer Systeme, ETH Zürich, CH 8092 Zürich, and School of Computer Science, Carnegie Mellon University Pittsburgh, PA;ECE Department, Carnegie Mellon University, Pittsburgh, PA

  • Venue:
  • Proceedings of the 11th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
  • Year:
  • 1996

Quantified Score

Hi-index 0.00

Visualization

Abstract

This paper describes how the cmcc compiler reuses code---both internally (reuse between different modules) and externally (reuse between versions for different target machines). The key to reuse are the application frameworks developed for global data-flow analysis, code generation, instruction scheduling, and register allocation.The code produced by cmcc is as good as the code produced by the native compilers for the MIPS and SPARC, although significantly less resources have been spent on cmcc (overall, about 6 man years by 2.5 persons). cmcc is implemented in C++, which allowed for a compact expression of the frameworks as class hierarchies. The results support the claim that suitable frameworks facilitate reuse and thereby significantly improve developer effectiveness.