summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJakob Stoklund Olesen <stoklund@2pi.dk>2011-07-23 03:10:17 +0000
committerJakob Stoklund Olesen <stoklund@2pi.dk>2011-07-23 03:10:17 +0000
commitc7931fd725b390142f9112952b1426560000e6b4 (patch)
treee288ae68858be1bd495473da76a1c09ca32b301a
parent59a4f9af0a2e94ec04840a066251eca34bf3e3f8 (diff)
downloadllvm-c7931fd725b390142f9112952b1426560000e6b4.tar.gz
llvm-c7931fd725b390142f9112952b1426560000e6b4.tar.bz2
llvm-c7931fd725b390142f9112952b1426560000e6b4.tar.xz
Allow null interference cursors to be queried.
They always report 'no interference'. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135843 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r--lib/CodeGen/InterferenceCache.cpp5
-rw-r--r--lib/CodeGen/InterferenceCache.h3
2 files changed, 6 insertions, 2 deletions
diff --git a/lib/CodeGen/InterferenceCache.cpp b/lib/CodeGen/InterferenceCache.cpp
index a09bb39f83..29b47bd67e 100644
--- a/lib/CodeGen/InterferenceCache.cpp
+++ b/lib/CodeGen/InterferenceCache.cpp
@@ -18,10 +18,13 @@
using namespace llvm;
+// Static member used for null interference cursors.
+InterferenceCache::BlockInterference InterferenceCache::Cursor::NoInterference;
+
void InterferenceCache::init(MachineFunction *mf,
LiveIntervalUnion *liuarray,
SlotIndexes *indexes,
- const TargetRegisterInfo *tri) {
+ const TargetRegisterInfo *tri) {
MF = mf;
LIUArray = liuarray;
TRI = tri;
diff --git a/lib/CodeGen/InterferenceCache.h b/lib/CodeGen/InterferenceCache.h
index 7f0a27a41b..4df0a9e5c3 100644
--- a/lib/CodeGen/InterferenceCache.h
+++ b/lib/CodeGen/InterferenceCache.h
@@ -138,6 +138,7 @@ public:
class Cursor {
Entry *CacheEntry;
BlockInterference *Current;
+ static BlockInterference NoInterference;
void setEntry(Entry *E) {
Current = 0;
@@ -175,7 +176,7 @@ public:
/// moveTo - Move cursor to basic block MBBNum.
void moveToBlock(unsigned MBBNum) {
- Current = CacheEntry->get(MBBNum);
+ Current = CacheEntry ? CacheEntry->get(MBBNum) : &NoInterference;
}
/// hasInterference - Return true if the current block has any interference.