Register allocation via usage counts
Communications of the ACM
The Design of an Optimizing Compiler
The Design of an Optimizing Compiler
Machine-independent PASCAL code optimization
SIGPLAN '79 Proceedings of the 1979 SIGPLAN symposium on Compiler construction
An approach to global register allocation.
An approach to global register allocation.
Register allocation by priority-based coloring
SIGPLAN '84 Proceedings of the 1984 SIGPLAN symposium on Compiler construction
Eliminating redundant object code
POPL '82 Proceedings of the 9th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Register allocation by priority-based coloring
ACM SIGPLAN Notices - Best of PLDI 1979-1999
Combining offline and online optimizations: register allocation and method inlining
APLAS'06 Proceedings of the 4th Asian conference on Programming Languages and Systems
Hi-index | 0.00 |
The context of this paper is a machine-independent Pascal optimizer that transforms an intermediate stack-machine pseudo-code program into a generally smaller and faster pseudo-code program. The emphasis of this current paper is on the approach taken for mapping registers and storage, using an abstract but practical definition of the target machine's storage hierarchy. A companion paper [7] describes the overall optimizer project. After starting on this project, additional input became available from a Fortran-to-Pcode compiler written at Stanford [2]. Our storage mapping design is sufficiently robust that the addition of Fortran EQUIVALENCE and COMMON statements required no changes. Our particular allocation algorithm is not unique or original, but the abstract description of the storage hierarchy, and its inclusion of practical considerations we feel to be an original contribution. The description framework has so far stood the test of describing the storage hierarchy of many commercially-available machines without needing to be extended or embellished. We hope that this is a good predictor for the future.