A retargetable instruction reorganizer
- 1 July 1986
- proceedings article
- Published by Association for Computing Machinery (ACM)
- Vol. 21 (7) , 234-241
- https://doi.org/10.1145/12276.13334
Abstract
Extant peephole optimizers can perform many optimizations that are handled by higher-level optimizers. This paper describes a retargetable instruction reorganizer that performs targeting and evaluation order determination by applying a well known algorithm for optimal code generation for expressions to object code. By applying the algorithm to object code after code generation and optimization, a phase ordering problem often encountered by higher-level optimizers is avoided. It minimizes the number of registers and temporaries required to compile expressions by rearranging machine instructions. For some machines, this can result in smaller and faster programs. By generalizing its operation, the reorganizer can also be used to reorder instructions to avoid delays in pipelined machines. For one pipelined machine, it has provided a 5 to 10 percent improvement in the execution speed of benchmark programs.Keywords
This publication has 15 references indexed in Scilit:
- Code selection through object code optimizationACM Transactions on Programming Languages and Systems, 1984
- Coding guidelines for pipelined processorsPublished by Association for Computing Machinery (ACM) ,1982
- The Y programming languageACM SIGPLAN Notices, 1981
- The Design and Application of a Retargetable Peephole OptimizerACM Transactions on Programming Languages and Systems, 1980
- Code Generation for Expressions with Common SubexpressionsJournal of the ACM, 1977
- Optimal Code Generation for Expression TreesJournal of the ACM, 1976
- Code Generation for a One-Register MachineJournal of the ACM, 1976
- More data on the O/W ratiosACM SIGARCH Computer Architecture News, 1975
- Adapting optimal code generation for arithmetic expressions to the instruction sets available on present-day computersCommunications of the ACM, 1973
- The Generation of Optimal Code for Arithmetic ExpressionsJournal of the ACM, 1970