diff options
Diffstat (limited to 'lib/CodeGen/LiveInterval.h')
-rw-r--r-- | lib/CodeGen/LiveInterval.h | 16 |
1 files changed, 14 insertions, 2 deletions
diff --git a/lib/CodeGen/LiveInterval.h b/lib/CodeGen/LiveInterval.h index 05ebcc1ca2..55de7e38d8 100644 --- a/lib/CodeGen/LiveInterval.h +++ b/lib/CodeGen/LiveInterval.h @@ -76,11 +76,14 @@ namespace llvm { : reg(Reg), weight(Weight), NumValues(0) { } - typedef Ranges::iterator iterator; iterator begin() { return ranges.begin(); } iterator end() { return ranges.end(); } + typedef Ranges::const_iterator const_iterator; + const_iterator begin() const { return ranges.begin(); } + const_iterator end() const { return ranges.end(); } + /// advanceTo - Advance the specified iterator to point to the LiveRange /// containing the specified position, or end() if the position is past the @@ -139,7 +142,16 @@ namespace llvm { bool joinable(const LiveInterval& other, unsigned CopyIdx) const; - bool overlaps(const LiveInterval& other) const; + /// overlaps - Return true if the intersection of the two live intervals is + /// not empty. + bool overlaps(const LiveInterval& other) const { + return overlapsFrom(other, other.begin()); + } + + /// overlapsFrom - Return true if the intersection of the two live intervals + /// is not empty. The specified iterator is a hint that we can begin + /// scanning the Other interval starting at I. + bool overlapsFrom(const LiveInterval& other, const_iterator I) const; /// addRange - Add the specified LiveRange to this interval, merging /// intervals as appropriate. This returns an iterator to the inserted live |