Convert RAGreedy to LiveRegMatrix interference checking.
authorJakob Stoklund Olesen <stoklund@2pi.dk>
Wed, 20 Jun 2012 22:52:26 +0000 (22:52 +0000)
committerJakob Stoklund Olesen <stoklund@2pi.dk>
Wed, 20 Jun 2012 22:52:26 +0000 (22:52 +0000)
commit042888db2bb195c86bf34afbb6907d70855d2830
tree40e04d9f554c4c5310d5639addf14525f6d9f70a
parent812cda9a5cc26b1f8dda6f909bf5062c215b65d7
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
lib/CodeGen/InterferenceCache.cpp
lib/CodeGen/InterferenceCache.h
lib/CodeGen/LiveRegMatrix.h
lib/CodeGen/RegAllocGreedy.cpp