cmcccompiler 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
(overall, about 6 man years by 2.5 persons).
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