@@ -148,13 +148,13 @@ namespace {
148
148
DenseMap<MachineLoop *, SmallVector<MachineBasicBlock *, 8 >> ExitBlockMap;
149
149
150
150
bool isExitBlock (MachineLoop *CurLoop, const MachineBasicBlock *MBB) {
151
- if ( ExitBlockMap.contains (CurLoop))
152
- return is_contained (ExitBlockMap[CurLoop], MBB);
153
-
154
- SmallVector<MachineBasicBlock *, 8 > ExitBlocks;
155
- CurLoop-> getExitBlocks ( ExitBlocks) ;
156
- ExitBlockMap[CurLoop] = ExitBlocks;
157
- return is_contained (ExitBlocks , MBB);
151
+ auto [It, Inserted] = ExitBlockMap.try_emplace (CurLoop);
152
+ if (Inserted) {
153
+ SmallVector<MachineBasicBlock *, 8 > ExitBlocks;
154
+ CurLoop-> getExitBlocks ( ExitBlocks) ;
155
+ It-> second = ExitBlocks;
156
+ }
157
+ return is_contained (It-> second , MBB);
158
158
}
159
159
160
160
// Track 'estimated' register pressure.
@@ -1010,12 +1010,8 @@ MachineLICMImpl::calcRegisterCost(const MachineInstr *MI, bool ConsiderSeen,
1010
1010
if (RCCost == 0 )
1011
1011
continue ;
1012
1012
const int *PS = TRI->getRegClassPressureSets (RC);
1013
- for (; *PS != -1 ; ++PS) {
1014
- if (!Cost.contains (*PS))
1015
- Cost[*PS] = RCCost;
1016
- else
1017
- Cost[*PS] += RCCost;
1018
- }
1013
+ for (; *PS != -1 ; ++PS)
1014
+ Cost[*PS] += RCCost;
1019
1015
}
1020
1016
return Cost;
1021
1017
}
0 commit comments