diff options
author | Dimitry Andric <dim@FreeBSD.org> | 2023-09-02 21:17:18 +0000 |
---|---|---|
committer | Dimitry Andric <dim@FreeBSD.org> | 2023-12-08 17:34:50 +0000 |
commit | 06c3fb2749bda94cb5201f81ffdb8fa6c3161b2e (patch) | |
tree | 62f873df87c7c675557a179e0c4c83fe9f3087bc /contrib/llvm-project/llvm/lib/CodeGen/LiveRegMatrix.cpp | |
parent | cf037972ea8863e2bab7461d77345367d2c1e054 (diff) | |
parent | 7fa27ce4a07f19b07799a767fc29416f3b625afb (diff) |
Diffstat (limited to 'contrib/llvm-project/llvm/lib/CodeGen/LiveRegMatrix.cpp')
-rw-r--r-- | contrib/llvm-project/llvm/lib/CodeGen/LiveRegMatrix.cpp | 16 |
1 files changed, 8 insertions, 8 deletions
diff --git a/contrib/llvm-project/llvm/lib/CodeGen/LiveRegMatrix.cpp b/contrib/llvm-project/llvm/lib/CodeGen/LiveRegMatrix.cpp index 6ca7f00a7885..6df7e5c10862 100644 --- a/contrib/llvm-project/llvm/lib/CodeGen/LiveRegMatrix.cpp +++ b/contrib/llvm-project/llvm/lib/CodeGen/LiveRegMatrix.cpp @@ -93,8 +93,8 @@ static bool foreachUnit(const TargetRegisterInfo *TRI, } } } else { - for (MCRegUnitIterator Units(PhysReg, TRI); Units.isValid(); ++Units) { - if (Func(*Units, VRegInterval)) + for (MCRegUnit Unit : TRI->regunits(PhysReg)) { + if (Func(Unit, VRegInterval)) return true; } } @@ -136,8 +136,8 @@ void LiveRegMatrix::unassign(const LiveInterval &VirtReg) { } bool LiveRegMatrix::isPhysRegUsed(MCRegister PhysReg) const { - for (MCRegUnitIterator Unit(PhysReg, TRI); Unit.isValid(); ++Unit) { - if (!Matrix[*Unit].empty()) + for (MCRegUnit Unit : TRI->regunits(PhysReg)) { + if (!Matrix[Unit].empty()) return true; } return false; @@ -216,7 +216,7 @@ bool LiveRegMatrix::checkInterference(SlotIndex Start, SlotIndex End, LR.addSegment(Seg); // Check for interference with that segment - for (MCRegUnitIterator Units(PhysReg, TRI); Units.isValid(); ++Units) { + for (MCRegUnit Unit : TRI->regunits(PhysReg)) { // LR is stack-allocated. LiveRegMatrix caches queries by a key that // includes the address of the live range. If (for the same reg unit) this // checkInterference overload is called twice, without any other query() @@ -230,7 +230,7 @@ bool LiveRegMatrix::checkInterference(SlotIndex Start, SlotIndex End, // subtle bugs due to query identity. Avoiding caching, for example, would // greatly simplify things. LiveIntervalUnion::Query Q; - Q.reset(UserTag, LR, Matrix[*Units]); + Q.reset(UserTag, LR, Matrix[Unit]); if (Q.checkInterference()) return true; } @@ -239,8 +239,8 @@ bool LiveRegMatrix::checkInterference(SlotIndex Start, SlotIndex End, Register LiveRegMatrix::getOneVReg(unsigned PhysReg) const { const LiveInterval *VRegInterval = nullptr; - for (MCRegUnitIterator Unit(PhysReg, TRI); Unit.isValid(); ++Unit) { - if ((VRegInterval = Matrix[*Unit].getOneVReg())) + for (MCRegUnit Unit : TRI->regunits(PhysReg)) { + if ((VRegInterval = Matrix[Unit].getOneVReg())) return VRegInterval->reg(); } |