Combinatorial Register Allocation and Instruction Scheduling
Not on the map. Why?
Abstract (arXiv)
This paper introduces a combinatorial optimization approach to register allocation and instruction scheduling, two central compiler problems. Combinatorial optimization has the potential to solve these problems optimally and to exploit processor-specific features readily. Our approach is the first to leverage this potential in practice: it captures the complete set of program transformations used in state-of-the-art compilers, scales to medium-sized functions of up to 1000 instructions, and generates executable code. This level of practicality is reached by using constraint programming, a particularly suitable combinatorial optimization technique. Unison, the implementation of our approach, is open source, used in industry, and integrated with the LLVM toolchain. An extensive evaluation confirms that Unison generates better code than LLVM while scaling to medium-sized functions. The evaluation uses systematically selected benchmarks from MediaBench and SPEC CPU2006 and different processor architectures (Hexagon, ARM, MIPS). Mean estimated speedup ranges from 1.1% to 10% and mean code size reduction ranges from 1.3% to 3.8% for the different architectures. A significant part of this improvement is due to the integrated nature of the approach. Executing the generated code on Hexagon confirms that the estimated speedup results in actual speedup. Given a fixed time limit, Unison solves optimally functions of up to 946 instructions, nearly an order of magnitude larger than previous approaches. The results show that our combinatorial approach can be applied in practice to trade compilation time for code quality beyond the usual compiler optimization levels, identify improvement opportunities in heuristic algorithms, and fully exploit processor-specific features.
Key facts. Cited by 7 papers in the map (data through 7 Oct 2026). First posted on arXiv 6 Apr 2018.
Builds on
No reference list yet.
Built on by
Citing papers per year: 2021: 1; 2022: 3; 2023: 1; 2024: 0; 2025: 2.
7 papers.
- 2022RL4ReAl: Reinforcement Learning for Register Allocationcited by 4
- 2022Structured Q-learning For Antibody Designcited by 2
- 2025e-boost: Boosted E-Graph Extraction with Adaptive Heuristics and Exact Solvingcited by 2
- 2021Constraint-based Diversification of JOP Gadgetscited by 1
- 2025VeriLocc: End-to-End Cross-Architecture Register Allocation via LLMcited by 1
- 2022Securing Optimized Code Against Power Side Channelscited by 0
- 2023Moccasin: Efficient Tensor Rematerialization for Neural Networkscited by 0
- 2025e-boost: Boosted E-Graph Extraction with Adaptive Heuristics and Exact Solving18 Aug 2025
- 2025VeriLocc: End-to-End Cross-Architecture Register Allocation via LLM20 Jun 2025
- 2023Moccasin: Efficient Tensor Rematerialization for Neural Networks27 Apr 2023
- 2022Structured Q-learning For Antibody Design10 Sep 2022
- 2022Securing Optimized Code Against Power Side Channels6 Jul 2022
- 2022RL4ReAl: Reinforcement Learning for Register Allocation5 Apr 2022
- 2021Constraint-based Diversification of JOP Gadgets18 Nov 2021