From 96eebf0b141b989235129f820bd6ad4436322f04 Mon Sep 17 00:00:00 2001 From: Jakob Stoklund Olesen Date: Wed, 20 Jun 2012 22:52:26 +0000 Subject: 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. llvm-svn: 158867 --- llvm/lib/CodeGen/LiveRegMatrix.h | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'llvm/lib/CodeGen/LiveRegMatrix.h') diff --git a/llvm/lib/CodeGen/LiveRegMatrix.h b/llvm/lib/CodeGen/LiveRegMatrix.h index 019a5f5877e..b3e2d7f4b45 100644 --- a/llvm/lib/CodeGen/LiveRegMatrix.h +++ b/llvm/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 -- cgit v1.2.3