Postpass Code Optimization of Pipeline Constraints
- 1 July 1983
- journal article
- Published by Association for Computing Machinery (ACM) in ACM Transactions on Programming Languages and Systems
- Vol. 5 (3) , 422-448
- https://doi.org/10.1145/2166.357217
Abstract
Pipeline interlocks are used in a pipelined architecture to prevent the execution of a machine instruction before its operands are available. An alternative to this complex piece of hardware is to rearrange the instructions at compile time to avoid pipeline interlocks. This problem is called code reorganization and is studied here. The basic problem of reorganization of machine-level instructions at compile time is shown to be NP-complete. A heuristic algorithm is proposed, and its properties and effectiveness are explored. Empirical data from MIPS, a VLSI processor design, are given. The impact of code reorganization techniques on the rest of a compiler system is discussed.Keywords
This publication has 11 references indexed in Scilit:
- Symbolic Debugging of Optimized CodeACM Transactions on Programming Languages and Systems, 1982
- Real-Time Signal Processor Software SupportIBM Journal of Research and Development, 1982
- ACM president's letter: computer architecture: some old ideas that haven't quite made it yetCommunications of the ACM, 1981
- Optimization of MicroprogramsIEEE Transactions on Computers, 1981
- Some Experiments in Local Microcode Compaction for Horizontal MachinesIEEE Transactions on Computers, 1981
- Trace Scheduling: A Technique for Global Microcode CompactionIEEE Transactions on Computers, 1981
- The case for the reduced instruction set computerACM SIGARCH Computer Architecture News, 1980
- Code Generation for Expressions with Common SubexpressionsJournal of the ACM, 1977
- NP-complete scheduling problemsJournal of Computer and System Sciences, 1975
- An axiomatic approach to code optimization for expressionsJournal of the ACM, 1972