Implement value affinities for register allocation.

An SSA value is usually biased towards a specific register class or a
stack slot, depending on the constraints of the instructions using it.

Represent this bias as an Affinity enum, and implement a merging
algorithm for updating an affinity to satisfy a new constraint.

Affinities will be computed as part of the liveness analysis. This is
not implemented yet.
This commit is contained in:
Jakob Stoklund Olesen
2017-01-26 14:51:49 -08:00
parent a395f01b3e
commit 3c4d54c4bd
7 changed files with 90 additions and 7 deletions

View File

@@ -5,3 +5,5 @@
pub mod liverange;
pub mod liveness;
pub mod allocatable_set;
mod affinity;