Skip to content

Commit 44f30c8

Browse files
committed
[SandboxIR][NFC] Use Tracker.emplaceIfTracking()
This patch replaces some of the remaining uses of Tracker::track() to Tracker::emplaceIfTracking().
1 parent 1d8d5d6 commit 44f30c8

File tree

3 files changed

+34
-39
lines changed

3 files changed

+34
-39
lines changed

llvm/include/llvm/SandboxIR/Tracker.h

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -97,7 +97,7 @@ class UseSet : public IRChangeBase {
9797
};
9898

9999
class PHISetIncoming : public IRChangeBase {
100-
PHINode Φ
100+
PHINode *PHI;
101101
unsigned Idx;
102102
PointerUnion<Value *, BasicBlock *> OrigValueOrBB;
103103

@@ -106,7 +106,7 @@ class PHISetIncoming : public IRChangeBase {
106106
Value,
107107
Block,
108108
};
109-
PHISetIncoming(PHINode &PHI, unsigned Idx, What What);
109+
PHISetIncoming(PHINode *PHI, unsigned Idx, What What);
110110
void revert(Tracker &Tracker) final;
111111
void accept() final {}
112112
#ifndef NDEBUG
@@ -116,13 +116,13 @@ class PHISetIncoming : public IRChangeBase {
116116
};
117117

118118
class PHIRemoveIncoming : public IRChangeBase {
119-
PHINode &PHI;
119+
PHINode *PHI;
120120
unsigned RemovedIdx;
121121
Value *RemovedV;
122122
BasicBlock *RemovedBB;
123123

124124
public:
125-
PHIRemoveIncoming(PHINode &PHI, unsigned RemovedIdx);
125+
PHIRemoveIncoming(PHINode *PHI, unsigned RemovedIdx);
126126
void revert(Tracker &Tracker) final;
127127
void accept() final {}
128128
#ifndef NDEBUG
@@ -132,11 +132,11 @@ class PHIRemoveIncoming : public IRChangeBase {
132132
};
133133

134134
class PHIAddIncoming : public IRChangeBase {
135-
PHINode &PHI;
135+
PHINode *PHI;
136136
unsigned Idx;
137137

138138
public:
139-
PHIAddIncoming(PHINode &PHI);
139+
PHIAddIncoming(PHINode *PHI);
140140
void revert(Tracker &Tracker) final;
141141
void accept() final {}
142142
#ifndef NDEBUG

llvm/lib/SandboxIR/SandboxIR.cpp

Lines changed: 7 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1125,9 +1125,8 @@ Value *PHINode::getIncomingValue(unsigned Idx) const {
11251125
}
11261126
void PHINode::setIncomingValue(unsigned Idx, Value *V) {
11271127
auto &Tracker = Ctx.getTracker();
1128-
if (Tracker.isTracking())
1129-
Tracker.track(std::make_unique<PHISetIncoming>(
1130-
*this, Idx, PHISetIncoming::What::Value));
1128+
Tracker.emplaceIfTracking<PHISetIncoming>(this, Idx,
1129+
PHISetIncoming::What::Value);
11311130

11321131
cast<llvm::PHINode>(Val)->setIncomingValue(Idx, V->Val);
11331132
}
@@ -1142,34 +1141,29 @@ BasicBlock *PHINode::getIncomingBlock(const Use &U) const {
11421141
}
11431142
void PHINode::setIncomingBlock(unsigned Idx, BasicBlock *BB) {
11441143
auto &Tracker = Ctx.getTracker();
1145-
if (Tracker.isTracking())
1146-
Tracker.track(std::make_unique<PHISetIncoming>(
1147-
*this, Idx, PHISetIncoming::What::Block));
1144+
Tracker.emplaceIfTracking<PHISetIncoming>(this, Idx,
1145+
PHISetIncoming::What::Block);
11481146
cast<llvm::PHINode>(Val)->setIncomingBlock(Idx,
11491147
cast<llvm::BasicBlock>(BB->Val));
11501148
}
11511149
void PHINode::addIncoming(Value *V, BasicBlock *BB) {
11521150
auto &Tracker = Ctx.getTracker();
1153-
if (Tracker.isTracking())
1154-
Tracker.track(std::make_unique<PHIAddIncoming>(*this));
1151+
Tracker.emplaceIfTracking<PHIAddIncoming>(this);
11551152

11561153
cast<llvm::PHINode>(Val)->addIncoming(V->Val,
11571154
cast<llvm::BasicBlock>(BB->Val));
11581155
}
11591156
Value *PHINode::removeIncomingValue(unsigned Idx) {
11601157
auto &Tracker = Ctx.getTracker();
1161-
if (Tracker.isTracking())
1162-
Tracker.track(std::make_unique<PHIRemoveIncoming>(*this, Idx));
1158+
Tracker.emplaceIfTracking<PHIRemoveIncoming>(this, Idx);
11631159
llvm::Value *LLVMV =
11641160
cast<llvm::PHINode>(Val)->removeIncomingValue(Idx,
11651161
/*DeletePHIIfEmpty=*/false);
11661162
return Ctx.getValue(LLVMV);
11671163
}
11681164
Value *PHINode::removeIncomingValue(BasicBlock *BB) {
11691165
auto &Tracker = Ctx.getTracker();
1170-
if (Tracker.isTracking())
1171-
Tracker.track(
1172-
std::make_unique<PHIRemoveIncoming>(*this, getBasicBlockIndex(BB)));
1166+
Tracker.emplaceIfTracking<PHIRemoveIncoming>(this, getBasicBlockIndex(BB));
11731167

11741168
auto *LLVMBB = cast<llvm::BasicBlock>(BB->Val);
11751169
llvm::Value *LLVMV =

llvm/lib/SandboxIR/Tracker.cpp

Lines changed: 21 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -27,23 +27,23 @@ void UseSwap::dump() const {
2727
}
2828
#endif // NDEBUG
2929

30-
PHISetIncoming::PHISetIncoming(PHINode &PHI, unsigned Idx, What What)
30+
PHISetIncoming::PHISetIncoming(PHINode *PHI, unsigned Idx, What What)
3131
: PHI(PHI), Idx(Idx) {
3232
switch (What) {
3333
case What::Value:
34-
OrigValueOrBB = PHI.getIncomingValue(Idx);
34+
OrigValueOrBB = PHI->getIncomingValue(Idx);
3535
break;
3636
case What::Block:
37-
OrigValueOrBB = PHI.getIncomingBlock(Idx);
37+
OrigValueOrBB = PHI->getIncomingBlock(Idx);
3838
break;
3939
}
4040
}
4141

4242
void PHISetIncoming::revert(Tracker &Tracker) {
4343
if (auto *V = OrigValueOrBB.dyn_cast<Value *>())
44-
PHI.setIncomingValue(Idx, V);
44+
PHI->setIncomingValue(Idx, V);
4545
else
46-
PHI.setIncomingBlock(Idx, OrigValueOrBB.get<BasicBlock *>());
46+
PHI->setIncomingBlock(Idx, OrigValueOrBB.get<BasicBlock *>());
4747
}
4848

4949
#ifndef NDEBUG
@@ -53,32 +53,33 @@ void PHISetIncoming::dump() const {
5353
}
5454
#endif // NDEBUG
5555

56-
PHIRemoveIncoming::PHIRemoveIncoming(PHINode &PHI, unsigned RemovedIdx)
56+
PHIRemoveIncoming::PHIRemoveIncoming(PHINode *PHI, unsigned RemovedIdx)
5757
: PHI(PHI), RemovedIdx(RemovedIdx) {
58-
RemovedV = PHI.getIncomingValue(RemovedIdx);
59-
RemovedBB = PHI.getIncomingBlock(RemovedIdx);
58+
RemovedV = PHI->getIncomingValue(RemovedIdx);
59+
RemovedBB = PHI->getIncomingBlock(RemovedIdx);
6060
}
6161

6262
void PHIRemoveIncoming::revert(Tracker &Tracker) {
6363
// Special case: if the PHI is now empty, as we don't need to care about the
6464
// order of the incoming values.
65-
unsigned NumIncoming = PHI.getNumIncomingValues();
65+
unsigned NumIncoming = PHI->getNumIncomingValues();
6666
if (NumIncoming == 0) {
67-
PHI.addIncoming(RemovedV, RemovedBB);
67+
PHI->addIncoming(RemovedV, RemovedBB);
6868
return;
6969
}
7070
// Shift all incoming values by one starting from the end until `Idx`.
7171
// Start by adding a copy of the last incoming values.
7272
unsigned LastIdx = NumIncoming - 1;
73-
PHI.addIncoming(PHI.getIncomingValue(LastIdx), PHI.getIncomingBlock(LastIdx));
73+
PHI->addIncoming(PHI->getIncomingValue(LastIdx),
74+
PHI->getIncomingBlock(LastIdx));
7475
for (unsigned Idx = LastIdx; Idx > RemovedIdx; --Idx) {
75-
auto *PrevV = PHI.getIncomingValue(Idx - 1);
76-
auto *PrevBB = PHI.getIncomingBlock(Idx - 1);
77-
PHI.setIncomingValue(Idx, PrevV);
78-
PHI.setIncomingBlock(Idx, PrevBB);
76+
auto *PrevV = PHI->getIncomingValue(Idx - 1);
77+
auto *PrevBB = PHI->getIncomingBlock(Idx - 1);
78+
PHI->setIncomingValue(Idx, PrevV);
79+
PHI->setIncomingBlock(Idx, PrevBB);
7980
}
80-
PHI.setIncomingValue(RemovedIdx, RemovedV);
81-
PHI.setIncomingBlock(RemovedIdx, RemovedBB);
81+
PHI->setIncomingValue(RemovedIdx, RemovedV);
82+
PHI->setIncomingBlock(RemovedIdx, RemovedBB);
8283
}
8384

8485
#ifndef NDEBUG
@@ -88,10 +89,10 @@ void PHIRemoveIncoming::dump() const {
8889
}
8990
#endif // NDEBUG
9091

91-
PHIAddIncoming::PHIAddIncoming(PHINode &PHI)
92-
: PHI(PHI), Idx(PHI.getNumIncomingValues()) {}
92+
PHIAddIncoming::PHIAddIncoming(PHINode *PHI)
93+
: PHI(PHI), Idx(PHI->getNumIncomingValues()) {}
9394

94-
void PHIAddIncoming::revert(Tracker &Tracker) { PHI.removeIncomingValue(Idx); }
95+
void PHIAddIncoming::revert(Tracker &Tracker) { PHI->removeIncomingValue(Idx); }
9596

9697
#ifndef NDEBUG
9798
void PHIAddIncoming::dump() const {

0 commit comments

Comments
 (0)