summaryrefslogtreecommitdiff
path: root/include/llvm/ADT/IntervalMap.h
diff options
context:
space:
mode:
authorJakob Stoklund Olesen <stoklund@2pi.dk>2011-04-02 06:03:35 +0000
committerJakob Stoklund Olesen <stoklund@2pi.dk>2011-04-02 06:03:35 +0000
commit5907d863659eb972ebb2afe07bc863a4c616f0ef (patch)
tree36571ce2f0dac41150c44d8a04b2f8199a744858 /include/llvm/ADT/IntervalMap.h
parenta122eaaee22750c4f92c33672e149eb2f0c538cb (diff)
downloadllvm-5907d863659eb972ebb2afe07bc863a4c616f0ef.tar.gz
llvm-5907d863659eb972ebb2afe07bc863a4c616f0ef.tar.bz2
llvm-5907d863659eb972ebb2afe07bc863a4c616f0ef.tar.xz
Add an InterferenceCache class for caching per-block interference ranges.
When the greedy register allocator is splitting multiple global live ranges, it tends to look at the same interference data many times. The InterferenceCache class caches queries for unaltered LiveIntervalUnions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@128764 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'include/llvm/ADT/IntervalMap.h')
-rw-r--r--include/llvm/ADT/IntervalMap.h4
1 files changed, 4 insertions, 0 deletions
diff --git a/include/llvm/ADT/IntervalMap.h b/include/llvm/ADT/IntervalMap.h
index 79f24d31c0..f28ebf3b9a 100644
--- a/include/llvm/ADT/IntervalMap.h
+++ b/include/llvm/ADT/IntervalMap.h
@@ -1328,6 +1328,10 @@ public:
/// const_iterator - Create an iterator that isn't pointing anywhere.
const_iterator() : map(0) {}
+ /// setMap - Change the map iterated over. This call must be followed by a
+ /// call to goToBegin(), goToEnd(), or find()
+ void setMap(const IntervalMap &m) { map = const_cast<IntervalMap*>(&m); }
+
/// valid - Return true if the current position is valid, false for end().
bool valid() const { return path.valid(); }