Code reuse in an optimizing compiler
- 1 October 1996
- proceedings article
- Published by Association for Computing Machinery (ACM)
- Vol. 31 (10) , 51-68
- https://doi.org/10.1145/236337.236342
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.Keywords
This publication has 16 references indexed in Scilit:
- Software pipelining showdownPublished by Association for Computing Machinery (ACM) ,1996
- Clarity MCodePublished by Association for Computing Machinery (ACM) ,1995
- Register allocation over the program dependence graphPublished by Association for Computing Machinery (ACM) ,1994
- Partial dead code eliminationPublished by Association for Computing Machinery (ACM) ,1994
- The evolution of an object‐oriented compiler frameworkSoftware: Practice and Experience, 1992
- The RTL System: A Framework for Code OptimizationPublished by Springer Nature ,1992
- Register allocation via hierarchical graph coloringPublished by Association for Computing Machinery (ACM) ,1991
- The priority-based coloring approach to register allocationACM Transactions on Programming Languages and Systems, 1990
- Spill code minimization techniques for optimizing compliersPublished by Association for Computing Machinery (ACM) ,1989
- Global optimization by suppression of partial redundanciesCommunications of the ACM, 1979