aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/CodeGen/InterferenceCache.cpp
diff options
context:
space:
mode:
authorDimitry Andric <dim@FreeBSD.org>2023-07-26 19:03:47 +0000
committerDimitry Andric <dim@FreeBSD.org>2023-07-26 19:04:23 +0000
commit7fa27ce4a07f19b07799a767fc29416f3b625afb (patch)
tree27825c83636c4de341eb09a74f49f5d38a15d165 /llvm/lib/CodeGen/InterferenceCache.cpp
parente3b557809604d036af6e00c60f012c2025b59a5e (diff)
Diffstat (limited to 'llvm/lib/CodeGen/InterferenceCache.cpp')
-rw-r--r--llvm/lib/CodeGen/InterferenceCache.cpp15
1 files changed, 8 insertions, 7 deletions
diff --git a/llvm/lib/CodeGen/InterferenceCache.cpp b/llvm/lib/CodeGen/InterferenceCache.cpp
index 3cab9e5734ee..ae197ee5553a 100644
--- a/llvm/lib/CodeGen/InterferenceCache.cpp
+++ b/llvm/lib/CodeGen/InterferenceCache.cpp
@@ -93,8 +93,8 @@ void InterferenceCache::Entry::revalidate(LiveIntervalUnion *LIUArray,
// Invalidate all iterators.
PrevPos = SlotIndex();
unsigned i = 0;
- for (MCRegUnitIterator Units(PhysReg, TRI); Units.isValid(); ++Units, ++i)
- RegUnits[i].VirtTag = LIUArray[*Units].getTag();
+ for (MCRegUnit Unit : TRI->regunits(PhysReg))
+ RegUnits[i++].VirtTag = LIUArray[Unit].getTag();
}
void InterferenceCache::Entry::reset(MCRegister physReg,
@@ -110,20 +110,21 @@ void InterferenceCache::Entry::reset(MCRegister physReg,
// Reset iterators.
PrevPos = SlotIndex();
RegUnits.clear();
- for (MCRegUnitIterator Units(PhysReg, TRI); Units.isValid(); ++Units) {
- RegUnits.push_back(LIUArray[*Units]);
- RegUnits.back().Fixed = &LIS->getRegUnit(*Units);
+ for (MCRegUnit Unit : TRI->regunits(PhysReg)) {
+ RegUnits.push_back(LIUArray[Unit]);
+ RegUnits.back().Fixed = &LIS->getRegUnit(Unit);
}
}
bool InterferenceCache::Entry::valid(LiveIntervalUnion *LIUArray,
const TargetRegisterInfo *TRI) {
unsigned i = 0, e = RegUnits.size();
- for (MCRegUnitIterator Units(PhysReg, TRI); Units.isValid(); ++Units, ++i) {
+ for (MCRegUnit Unit : TRI->regunits(PhysReg)) {
if (i == e)
return false;
- if (LIUArray[*Units].changedSince(RegUnits[i].VirtTag))
+ if (LIUArray[Unit].changedSince(RegUnits[i].VirtTag))
return false;
+ ++i;
}
return i == e;
}