aboutsummaryrefslogtreecommitdiff
path: root/lib/CodeGen/LiveRegMatrix.h
diff options
context:
space:
mode:
authorJakob Stoklund Olesen <stoklund@2pi.dk>2012-06-20 22:52:26 +0000
committerJakob Stoklund Olesen <stoklund@2pi.dk>2012-06-20 22:52:26 +0000
commit042888db2bb195c86bf34afbb6907d70855d2830 (patch)
tree40e04d9f554c4c5310d5639addf14525f6d9f70a /lib/CodeGen/LiveRegMatrix.h
parent812cda9a5cc26b1f8dda6f909bf5062c215b65d7 (diff)
Convert RAGreedy to LiveRegMatrix interference checking.
Stop depending on the LiveIntervalUnions in RegAllocBase, they are about to be removed. The changes are mostly replacing register alias iterators with regunit iterators, and querying LiveRegMatrix instrad of RegAllocBase. InterferenceCache is converted to work with per-regunit LiveIntervalUnions, and it checks fixed regunit interference separately, using the fixed live intervals provided by LiveIntervalAnalysis. The local splitting helper calcGapWeights() is also considering fixed regunit interference which is kept on the side now. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@158867 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/CodeGen/LiveRegMatrix.h')
-rw-r--r--lib/CodeGen/LiveRegMatrix.h4
1 files changed, 4 insertions, 0 deletions
diff --git a/lib/CodeGen/LiveRegMatrix.h b/lib/CodeGen/LiveRegMatrix.h
index 019a5f5877..b3e2d7f4b4 100644
--- a/lib/CodeGen/LiveRegMatrix.h
+++ b/lib/CodeGen/LiveRegMatrix.h
@@ -137,6 +137,10 @@ public:
/// This returns a reference to an internal Query data structure that is only
/// valid until the next query() call.
LiveIntervalUnion::Query &query(LiveInterval &VirtReg, unsigned RegUnit);
+
+ /// Directly access the live interval unions per regunit.
+ /// This returns an array indexed by the regunit number.
+ LiveIntervalUnion *getLiveUnions() { return &Matrix[0]; }
};
} // end namespace llvm