A decoupled non-SSA global register allocation using bipartite liveness graphs

  title={A decoupled non-SSA global register allocation using bipartite liveness graphs},
  author={R. Barik and J. Zhao and Vivek Sarkar},
  journal={ACM Trans. Archit. Code Optim.},
Register allocation is an essential optimization for all compilers. A number of sophisticated register allocation algorithms have been developed over the years. The two fundamental classes of register allocation algorithms used in modern compilers are based on Graph Coloring (GC) and Linear Scan (LS). However, these two algorithms have fundamental limitations in terms of precision. For example, the key data structure used in GC-based algorithms, the interference graph, lacks information on the… Expand
4 Citations
Improving on Linear Scan Register Allocation
Bytewise Register Allocation
  • 6
Using the SSA-Form in a Code Generator
  • 6
  • PDF
Graph decomposition in routing and compilers
  • 1


Advances in static single assignment form and register allocation
  • 8
  • Highly Influential
SSA Elimination after Register Allocation
  • 19
  • Highly Influential
  • PDF
Register Allocation via Coloring of Chordal Graphs
  • 87
  • Highly Influential
  • PDF
A methodology for the real world
  • 594
  • Highly Influential
The LLVM Compiler Infrastructure
  • Retrieved from http://llvm.org/.
  • 2009
The Java Grande Forum Benchmark Suite The LLVM Compiler Infrastructure
  • 2001