@@ -169,9 +169,9 @@ void ReachingDefAnalysis::releaseMemory() {
169
169
InstIds.clear ();
170
170
}
171
171
172
- int ReachingDefAnalysis::getReachingDef (MachineInstr *MI, int PhysReg) {
172
+ int ReachingDefAnalysis::getReachingDef (MachineInstr *MI, int PhysReg) const {
173
173
assert (InstIds.count (MI) && " Unexpected machine instuction." );
174
- int InstId = InstIds[MI] ;
174
+ int InstId = InstIds. lookup (MI) ;
175
175
int DefRes = ReachingDefDefaultVal;
176
176
unsigned MBBNumber = MI->getParent ()->getNumber ();
177
177
assert (MBBNumber < MBBReachingDefs.size () &&
@@ -188,12 +188,13 @@ int ReachingDefAnalysis::getReachingDef(MachineInstr *MI, int PhysReg) {
188
188
return LatestDef;
189
189
}
190
190
191
- MachineInstr* ReachingDefAnalysis::getReachingMIDef (MachineInstr *MI, int PhysReg) {
191
+ MachineInstr* ReachingDefAnalysis::getReachingMIDef (MachineInstr *MI,
192
+ int PhysReg) const {
192
193
return getInstFromId (MI->getParent (), getReachingDef (MI, PhysReg));
193
194
}
194
195
195
196
bool ReachingDefAnalysis::hasSameReachingDef (MachineInstr *A, MachineInstr *B,
196
- int PhysReg) {
197
+ int PhysReg) const {
197
198
MachineBasicBlock *ParentA = A->getParent ();
198
199
MachineBasicBlock *ParentB = B->getParent ();
199
200
if (ParentA != ParentB)
@@ -203,7 +204,7 @@ bool ReachingDefAnalysis::hasSameReachingDef(MachineInstr *A, MachineInstr *B,
203
204
}
204
205
205
206
MachineInstr *ReachingDefAnalysis::getInstFromId (MachineBasicBlock *MBB,
206
- int InstId) {
207
+ int InstId) const {
207
208
assert (static_cast <size_t >(MBB->getNumber ()) < MBBReachingDefs.size () &&
208
209
" Unexpected basic block number." );
209
210
assert (InstId < static_cast <int >(MBB->size ()) &&
@@ -213,19 +214,20 @@ MachineInstr *ReachingDefAnalysis::getInstFromId(MachineBasicBlock *MBB,
213
214
return nullptr ;
214
215
215
216
for (auto &MI : *MBB) {
216
- if (InstIds.count (&MI) && InstIds[ &MI] == InstId)
217
+ if (InstIds.count (&MI) && InstIds. lookup ( &MI) == InstId)
217
218
return &MI;
218
219
}
219
220
return nullptr ;
220
221
}
221
222
222
- int ReachingDefAnalysis::getClearance (MachineInstr *MI, MCPhysReg PhysReg) {
223
+ int
224
+ ReachingDefAnalysis::getClearance (MachineInstr *MI, MCPhysReg PhysReg) const {
223
225
assert (InstIds.count (MI) && " Unexpected machine instuction." );
224
- return InstIds[MI] - getReachingDef (MI, PhysReg);
226
+ return InstIds. lookup (MI) - getReachingDef (MI, PhysReg);
225
227
}
226
228
227
229
void ReachingDefAnalysis::getReachingLocalUses (MachineInstr *Def, int PhysReg,
228
- SmallPtrSetImpl<MachineInstr*> &Uses) {
230
+ SmallPtrSetImpl<MachineInstr*> &Uses) const {
229
231
MachineBasicBlock *MBB = Def->getParent ();
230
232
MachineBasicBlock::iterator MI = MachineBasicBlock::iterator (Def);
231
233
while (++MI != MBB->end ()) {
@@ -245,8 +247,9 @@ void ReachingDefAnalysis::getReachingLocalUses(MachineInstr *Def, int PhysReg,
245
247
}
246
248
}
247
249
248
- bool ReachingDefAnalysis::getLiveInUses (MachineBasicBlock *MBB, int PhysReg,
249
- SmallPtrSetImpl<MachineInstr*> &Uses) {
250
+ bool
251
+ ReachingDefAnalysis::getLiveInUses (MachineBasicBlock *MBB, int PhysReg,
252
+ SmallPtrSetImpl<MachineInstr*> &Uses) const {
250
253
for (auto &MI : *MBB) {
251
254
for (auto &MO : MI.operands ()) {
252
255
if (!MO.isReg () || !MO.isUse () || MO.getReg () != PhysReg)
@@ -259,8 +262,9 @@ bool ReachingDefAnalysis::getLiveInUses(MachineBasicBlock *MBB, int PhysReg,
259
262
return isReachingDefLiveOut (&MBB->back (), PhysReg);
260
263
}
261
264
262
- void ReachingDefAnalysis::getGlobalUses (MachineInstr *MI, int PhysReg,
263
- SmallPtrSetImpl<MachineInstr*> &Uses) {
265
+ void
266
+ ReachingDefAnalysis::getGlobalUses (MachineInstr *MI, int PhysReg,
267
+ SmallPtrSetImpl<MachineInstr*> &Uses) const {
264
268
MachineBasicBlock *MBB = MI->getParent ();
265
269
266
270
// Collect the uses that each def touches within the block.
@@ -288,7 +292,7 @@ void ReachingDefAnalysis::getGlobalUses(MachineInstr *MI, int PhysReg,
288
292
}
289
293
}
290
294
291
- bool ReachingDefAnalysis::isRegUsedAfter (MachineInstr *MI, int PhysReg) {
295
+ bool ReachingDefAnalysis::isRegUsedAfter (MachineInstr *MI, int PhysReg) const {
292
296
MachineBasicBlock *MBB = MI->getParent ();
293
297
LivePhysRegs LiveRegs (*TRI);
294
298
LiveRegs.addLiveOuts (*MBB);
@@ -302,12 +306,13 @@ bool ReachingDefAnalysis::isRegUsedAfter(MachineInstr *MI, int PhysReg) {
302
306
for (auto Last = MBB->rbegin (), End = MBB->rend (); Last != End; ++Last) {
303
307
LiveRegs.stepBackward (*Last);
304
308
if (LiveRegs.contains (PhysReg))
305
- return InstIds[ &*Last] > InstIds[MI] ;
309
+ return InstIds. lookup ( &*Last) > InstIds. lookup (MI) ;
306
310
}
307
311
return false ;
308
312
}
309
313
310
- bool ReachingDefAnalysis::isReachingDefLiveOut (MachineInstr *MI, int PhysReg) {
314
+ bool
315
+ ReachingDefAnalysis::isReachingDefLiveOut (MachineInstr *MI, int PhysReg) const {
311
316
MachineBasicBlock *MBB = MI->getParent ();
312
317
LivePhysRegs LiveRegs (*TRI);
313
318
LiveRegs.addLiveOuts (*MBB);
@@ -328,7 +333,7 @@ bool ReachingDefAnalysis::isReachingDefLiveOut(MachineInstr *MI, int PhysReg) {
328
333
}
329
334
330
335
MachineInstr* ReachingDefAnalysis::getLocalLiveOutMIDef (MachineBasicBlock *MBB,
331
- int PhysReg) {
336
+ int PhysReg) const {
332
337
LivePhysRegs LiveRegs (*TRI);
333
338
LiveRegs.addLiveOuts (*MBB);
334
339
if (!LiveRegs.contains (PhysReg))
0 commit comments