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
76 articles.
订阅此论文施引文献
订阅此论文施引文献,注册后可以免费订阅5篇论文的施引文献,订阅后可以查看论文全部施引文献
1. Compiling with Abstract Interpretation;Proceedings of the ACM on Programming Languages;2024-06-20
2. Translation Validation for JIT Compiler in the V8 JavaScript Engine;Proceedings of the IEEE/ACM 46th International Conference on Software Engineering;2024-04-12
3. Software Architecture Reconstruction for Microservice Systems Using Static Analysis via GraalVM Native Image;2024 IEEE International Conference on Software Analysis, Evolution and Reengineering (SANER);2024-03-12
4. 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
5. SSA Translation Is an Abstract Interpretation;Proceedings of the ACM on Programming Languages;2023-01-09