Experience with a software-defined machine architecture
- 1 May 1992
- journal article
- Published by Association for Computing Machinery (ACM) in ACM Transactions on Programming Languages and Systems
- Vol. 14 (3) , 299-338
- https://doi.org/10.1145/129393.129395
Abstract
We have built a system in which the compiler back end and the linker work together to present an abstract machine at a considerably higher level than the actual machine. The intermediate language translated by the back end is the target language of all high-level compilers and is also the only assembly language generally available. This lets us do intermodule register allocation, which would be harder if some of the code in the program had come from a traditional assembler, out of sight of the optimizer. We do intermodule register allocation and pipeline instruction scheduling at link time, using information gathered by the compiler back end. The mechanism for analyzing and modifying the program at link time is also useful in a wide array of instrumentation tools.Keywords
This publication has 15 references indexed in Scilit:
- Program optimization for instruction cachesACM SIGARCH Computer Architecture News, 1989
- Precision architectureComputer, 1989
- Multiplication by integer constantsSoftware: Practice and Experience, 1986
- ATUM: a new technique for capturing address traces using microcodeACM SIGARCH Computer Architecture News, 1986
- Reduced instruction set computersCommunications of the ACM, 1985
- Performance of various computers using standard linear equations software in a Fortran environmentACM SIGARCH Computer Architecture News, 1983
- Postpass Code Optimization of Pipeline ConstraintsACM Transactions on Programming Languages and Systems, 1983
- Cache Performance in the VAX-11/780ACM Transactions on Computer Systems, 1983
- Symbolic Debugging of Optimized CodeACM Transactions on Programming Languages and Systems, 1982
- Register allocation via coloringComputer Languages, 1981