Author:
Briggs Preston,Cooper Keith D.,Torczon Linda
Abstract
This paper examines a problem that arises during global register allocation –
rematerialization
. If a value cannot be kept in a register, the allocator should recognize when it is cheaper to recompute the value (rematerialize it) than to store and reload it. Chaitin's original graph-coloring allocator handled simple instance of this problem correctly. This paper details a general solution to the problem and presents experimental evidence that shows its importance.
Our approach is to tag individual values in the procedure's SSA graph with information specifying how it should be spilled. We use a variant of Wegman and Zadeck's
sparse simple constant
algorithm to propagate tags throughout the graph. The allocator then splits live ranges into values with different tags. This isolates those values that can be easily rematerialized from values that require general spilling. We modify the base allocator to use this information when estimating spill costs and introducing spill code.
Our presentation focuses on rematerialization in the context of Chaitin's allocator; however, the problem arises in any global allocator. We believe that our approach will work in other allocators–while the details of implementation will vary, the key insights should carry over directly.
Publisher
Association for Computing Machinery (ACM)
Subject
Computer Graphics and Computer-Aided Design,Software
Cited by
36 articles.
订阅此论文施引文献
订阅此论文施引文献,注册后可以免费订阅5篇论文的施引文献,订阅后可以查看论文全部施引文献
1. Bibliography;Engineering a Compiler;2023
2. Register Allocation;Engineering a Compiler;2023
3. Optimal heap limits for reducing browser memory use;Proceedings of the ACM on Programming Languages;2022-10-31
4. Irregular Register Allocation for Translation of Test-pattern Programs;ACM Transactions on Architecture and Code Optimization;2021-01-21
5. SQUARE: Strategic Quantum Ancilla Reuse for Modular Quantum Programs via Cost-Effective Uncomputation;2020 ACM/IEEE 47th Annual International Symposium on Computer Architecture (ISCA);2020-05