2013
DOI: 10.1145/2544101
|View full text |Cite
|
Sign up to set email alerts
|

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

Abstract: 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 program points a… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
2

Citation Types

0
2
0

Year Published

2014
2014
2015
2015

Publication Types

Select...
1
1

Relationship

0
2

Authors

Journals

citations
Cited by 2 publications
(2 citation statements)
references
References 44 publications
0
2
0
Order By: Relevance
“…While they can be generalized to handle some architectural irregularities [24,26], they cannot handle the extreme irregularities and aliasing resulting from bytewise register allocation well. Many of the recent graph-coloring approaches are decoupled, i. e. they handle register assignment and spilling in separate stages of the register allocator [26,4,8]. There are some approaches based on integer linear programming (ILP) [13,11] and partitioned Boolean quadratic programming (PBQP) [23,16].…”
Section: Introductionmentioning
confidence: 99%
“…While they can be generalized to handle some architectural irregularities [24,26], they cannot handle the extreme irregularities and aliasing resulting from bytewise register allocation well. Many of the recent graph-coloring approaches are decoupled, i. e. they handle register assignment and spilling in separate stages of the register allocator [26,4,8]. There are some approaches based on integer linear programming (ILP) [13,11] and partitioned Boolean quadratic programming (PBQP) [23,16].…”
Section: Introductionmentioning
confidence: 99%
“…In particular, liveness analysis, unrollingbased loop optimizations, and exploitation of special instructions or addressing modes benefit significantly from the SSA form. On the other hand, the SSA form does not apply after register allocation, and there is still debate as to whether it should be used in the register allocator [3].…”
Section: Introductionmentioning
confidence: 99%