Affiliation:
1. Rice Univ., Houston, TX
Abstract
Modern optimizing compilers use several passes over a program's intermediate representation to generate good code. Many of these optimizations exhibit a phase-ordering problem. Getting the best code may require iterating optimizations until a fixed point is reached. Combining these phases can lead to the discovery of more facts about the program, exposing more opportunities for optimization. This article presents a framework for describing optimizations. It shows how to combine two such frameworks and how to reason about the properties of the resulting framework. The structure of the frame work provides insight into when a combination yields better results. To make the ideas more concrete, this article presents a framework for combining constant propagation, value numbering, and unreachable-code elimination. It is an open question as to what other frameworks can be combined in this way.
Publisher
Association for Computing Machinery (ACM)
Reference9 articles.
1. The program dependence graph and its use in optimization
2. HECHT M. 1977. Flow Analysis of Computer Programs. American Elsevier North-Holland Amsterdam. HECHT M. 1977. Flow Analysis of Computer Programs. American Elsevier North-Holland Amsterdam.
Cited by
73 articles.
订阅此论文施引文献
订阅此论文施引文献,注册后可以免费订阅5篇论文的施引文献,订阅后可以查看论文全部施引文献
1. Differential Testing of a Verification Framework for Compiler Optimizations (Case Study);2023 IEEE/ACM 11th International Conference on Formal Methods in Software Engineering (FormaliSE);2023-05
2. SSA Translation Is an Abstract Interpretation;Proceedings of the ACM on Programming Languages;2023-01-09
3. Bibliography;Engineering a Compiler;2023
4. Scalar Optimization;Engineering a Compiler;2023
5. Guard the Cache: Dispatch Optimization in a Contextual Role-oriented Language;COP 2022: International Workshop on Context-Oriented Programming and Advanced Modularity (collocated with ECOOP);2022-06-07