Skip to content

Commit 03cf9ba

Browse files
authored
[CodeGen] Use MCRegister::id() to avoid implicit conversions to unsigned. NFC (llvm#159965)
1 parent 092bc04 commit 03cf9ba

File tree

3 files changed

+30
-28
lines changed

3 files changed

+30
-28
lines changed

llvm/lib/CodeGen/AggressiveAntiDepBreaker.cpp

Lines changed: 20 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,7 @@ AggressiveAntiDepState::AggressiveAntiDepState(const unsigned TargetRegs,
6868
}
6969

7070
unsigned AggressiveAntiDepState::GetGroup(MCRegister Reg) {
71-
unsigned Node = GroupNodeIndices[Reg];
71+
unsigned Node = GroupNodeIndices[Reg.id()];
7272
while (GroupNodes[Node] != Node)
7373
Node = GroupNodes[Node];
7474

@@ -106,14 +106,14 @@ unsigned AggressiveAntiDepState::LeaveGroup(MCRegister Reg) {
106106
// it.
107107
unsigned idx = GroupNodes.size();
108108
GroupNodes.push_back(idx);
109-
GroupNodeIndices[Reg] = idx;
109+
GroupNodeIndices[Reg.id()] = idx;
110110
return idx;
111111
}
112112

113113
bool AggressiveAntiDepState::IsLive(MCRegister Reg) {
114114
// KillIndex must be defined and DefIndex not defined for a register
115115
// to be live.
116-
return((KillIndices[Reg] != ~0u) && (DefIndices[Reg] == ~0u));
116+
return ((KillIndices[Reg.id()] != ~0u) && (DefIndices[Reg.id()] == ~0u));
117117
}
118118

119119
AggressiveAntiDepBreaker::AggressiveAntiDepBreaker(
@@ -154,10 +154,10 @@ void AggressiveAntiDepBreaker::StartBlock(MachineBasicBlock *BB) {
154154
for (MachineBasicBlock *Succ : BB->successors())
155155
for (const auto &LI : Succ->liveins()) {
156156
for (MCRegAliasIterator AI(LI.PhysReg, TRI, true); AI.isValid(); ++AI) {
157-
unsigned Reg = *AI;
157+
MCRegister Reg = *AI;
158158
State->UnionGroups(Reg, 0);
159-
KillIndices[Reg] = BB->size();
160-
DefIndices[Reg] = ~0u;
159+
KillIndices[Reg.id()] = BB->size();
160+
DefIndices[Reg.id()] = ~0u;
161161
}
162162
}
163163

@@ -174,8 +174,8 @@ void AggressiveAntiDepBreaker::StartBlock(MachineBasicBlock *BB) {
174174
for (MCRegAliasIterator AI(Reg, TRI, true); AI.isValid(); ++AI) {
175175
MCRegister AliasReg = *AI;
176176
State->UnionGroups(AliasReg, 0);
177-
KillIndices[AliasReg] = BB->size();
178-
DefIndices[AliasReg] = ~0u;
177+
KillIndices[AliasReg.id()] = BB->size();
178+
DefIndices[AliasReg.id()] = ~0u;
179179
}
180180
}
181181
}
@@ -307,8 +307,8 @@ void AggressiveAntiDepBreaker::HandleLastUse(MCRegister Reg, unsigned KillIdx,
307307
}
308308

309309
if (!State->IsLive(Reg)) {
310-
KillIndices[Reg] = KillIdx;
311-
DefIndices[Reg] = ~0u;
310+
KillIndices[Reg.id()] = KillIdx;
311+
DefIndices[Reg.id()] = ~0u;
312312
RegRefs.erase(Reg);
313313
State->LeaveGroup(Reg);
314314
LLVM_DEBUG(if (header) {
@@ -651,7 +651,7 @@ bool AggressiveAntiDepBreaker::FindSuitableFreeRegisters(
651651
LLVM_DEBUG(dbgs() << " " << printReg(NewReg, TRI));
652652

653653
// Check if Reg can be renamed to NewReg.
654-
if (!RenameRegisterMap[Reg].test(NewReg)) {
654+
if (!RenameRegisterMap[Reg].test(NewReg.id())) {
655655
LLVM_DEBUG(dbgs() << "(no rename)");
656656
goto next_super_reg;
657657
}
@@ -660,15 +660,16 @@ bool AggressiveAntiDepBreaker::FindSuitableFreeRegisters(
660660
// Regs's kill, it's safe to replace Reg with NewReg. We
661661
// must also check all aliases of NewReg, because we can't define a
662662
// register when any sub or super is already live.
663-
if (State->IsLive(NewReg) || (KillIndices[Reg] > DefIndices[NewReg])) {
663+
if (State->IsLive(NewReg) ||
664+
(KillIndices[Reg.id()] > DefIndices[NewReg.id()])) {
664665
LLVM_DEBUG(dbgs() << "(live)");
665666
goto next_super_reg;
666667
} else {
667668
bool found = false;
668669
for (MCRegAliasIterator AI(NewReg, TRI, false); AI.isValid(); ++AI) {
669670
MCRegister AliasReg = *AI;
670671
if (State->IsLive(AliasReg) ||
671-
(KillIndices[Reg] > DefIndices[AliasReg])) {
672+
(KillIndices[Reg.id()] > DefIndices[AliasReg.id()])) {
672673
LLVM_DEBUG(dbgs()
673674
<< "(alias " << printReg(AliasReg, TRI) << " live)");
674675
found = true;
@@ -940,15 +941,15 @@ unsigned AggressiveAntiDepBreaker::BreakAntiDependencies(
940941
// the state as if it were dead.
941942
State->UnionGroups(NewReg, 0);
942943
RegRefs.erase(NewReg);
943-
DefIndices[NewReg] = DefIndices[CurrReg];
944-
KillIndices[NewReg] = KillIndices[CurrReg];
944+
DefIndices[NewReg.id()] = DefIndices[CurrReg.id()];
945+
KillIndices[NewReg.id()] = KillIndices[CurrReg.id()];
945946

946947
State->UnionGroups(CurrReg, 0);
947948
RegRefs.erase(CurrReg);
948-
DefIndices[CurrReg] = KillIndices[CurrReg];
949-
KillIndices[CurrReg] = ~0u;
950-
assert(((KillIndices[CurrReg] == ~0u) !=
951-
(DefIndices[CurrReg] == ~0u)) &&
949+
DefIndices[CurrReg.id()] = KillIndices[CurrReg.id()];
950+
KillIndices[CurrReg.id()] = ~0u;
951+
assert(((KillIndices[CurrReg.id()] == ~0u) !=
952+
(DefIndices[CurrReg.id()] == ~0u)) &&
952953
"Kill and Def maps aren't consistent for AntiDepReg!");
953954
}
954955

llvm/lib/CodeGen/CriticalAntiDepBreaker.cpp

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,7 @@ void CriticalAntiDepBreaker::StartBlock(MachineBasicBlock *BB) {
7070
MCRegister Reg = *AI;
7171
Classes[Reg.id()] = reinterpret_cast<TargetRegisterClass *>(-1);
7272
KillIndices[Reg.id()] = BBSize;
73-
DefIndices[Reg] = ~0u;
73+
DefIndices[Reg.id()] = ~0u;
7474
}
7575
}
7676

@@ -412,11 +412,12 @@ MCRegister CriticalAntiDepBreaker::findSuitableFreeRegister(
412412
assert(((KillIndices[AntiDepReg.id()] == ~0u) !=
413413
(DefIndices[AntiDepReg.id()] == ~0u)) &&
414414
"Kill and Def maps aren't consistent for AntiDepReg!");
415-
assert(((KillIndices[NewReg] == ~0u) != (DefIndices[NewReg] == ~0u))
416-
&& "Kill and Def maps aren't consistent for NewReg!");
417-
if (KillIndices[NewReg] != ~0u ||
418-
Classes[NewReg] == reinterpret_cast<TargetRegisterClass *>(-1) ||
419-
KillIndices[AntiDepReg.id()] > DefIndices[NewReg])
415+
assert(((KillIndices[NewReg.id()] == ~0u) !=
416+
(DefIndices[NewReg.id()] == ~0u)) &&
417+
"Kill and Def maps aren't consistent for NewReg!");
418+
if (KillIndices[NewReg.id()] != ~0u ||
419+
Classes[NewReg.id()] == reinterpret_cast<TargetRegisterClass *>(-1) ||
420+
KillIndices[AntiDepReg.id()] > DefIndices[NewReg.id()])
420421
continue;
421422
// If NewReg overlaps any of the forbidden registers, we can't use it.
422423
bool Forbidden = false;
@@ -641,8 +642,8 @@ BreakAntiDependencies(const std::vector<SUnit> &SUnits,
641642
std::multimap<MCRegister, MachineOperand *>::iterator>
642643
Range = RegRefs.equal_range(AntiDepReg);
643644
if (MCRegister NewReg = findSuitableFreeRegister(
644-
Range.first, Range.second, AntiDepReg, LastNewReg[AntiDepReg], RC,
645-
ForbidRegs)) {
645+
Range.first, Range.second, AntiDepReg,
646+
LastNewReg[AntiDepReg.id()], RC, ForbidRegs)) {
646647
LLVM_DEBUG(dbgs() << "Breaking anti-dependence edge on "
647648
<< printReg(AntiDepReg, TRI) << " with "
648649
<< RegRefs.count(AntiDepReg) << " references"

llvm/lib/CodeGen/ExecutionDomainFix.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ using namespace llvm;
1818
iterator_range<SmallVectorImpl<int>::const_iterator>
1919
ExecutionDomainFix::regIndices(MCRegister Reg) const {
2020
assert(Reg < AliasMap.size() && "Invalid register");
21-
const auto &Entry = AliasMap[Reg];
21+
const auto &Entry = AliasMap[Reg.id()];
2222
return make_range(Entry.begin(), Entry.end());
2323
}
2424

0 commit comments

Comments
 (0)