diff options
author | Jakob Stoklund Olesen <stoklund@2pi.dk> | 2011-04-02 06:03:35 +0000 |
---|---|---|
committer | Jakob Stoklund Olesen <stoklund@2pi.dk> | 2011-04-02 06:03:35 +0000 |
commit | 5907d863659eb972ebb2afe07bc863a4c616f0ef (patch) | |
tree | 36571ce2f0dac41150c44d8a04b2f8199a744858 /include | |
parent | a122eaaee22750c4f92c33672e149eb2f0c538cb (diff) | |
download | external_llvm-5907d863659eb972ebb2afe07bc863a4c616f0ef.zip external_llvm-5907d863659eb972ebb2afe07bc863a4c616f0ef.tar.gz external_llvm-5907d863659eb972ebb2afe07bc863a4c616f0ef.tar.bz2 |
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')
-rw-r--r-- | include/llvm/ADT/IntervalMap.h | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/include/llvm/ADT/IntervalMap.h b/include/llvm/ADT/IntervalMap.h index 79f24d3..f28ebf3 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(); } |