[llvm] [ReachingDefAnalysis] Fix management of MBBFrameObjsReachingDefs (PR #124943)
Nikita Popov via llvm-commits
llvm-commits at lists.llvm.org
Wed Jan 29 11:42:05 PST 2025
================
@@ -147,16 +147,13 @@ void ReachingDefAnalysis::processDefs(MachineInstr *MI) {
assert(FrameIndex >= 0 && "Can't handle negative frame indicies yet!");
if (!isFIDef(*MI, FrameIndex, TII))
continue;
- if (MBBFrameObjsReachingDefs.contains(MBBNumber)) {
- auto Frame2InstrIdx = MBBFrameObjsReachingDefs[MBBNumber];
- if (Frame2InstrIdx.count(FrameIndex - ObjectIndexBegin) > 0)
- Frame2InstrIdx[FrameIndex - ObjectIndexBegin].push_back(CurInstr);
- else
- Frame2InstrIdx[FrameIndex - ObjectIndexBegin] = {CurInstr};
- } else {
- MBBFrameObjsReachingDefs[MBBNumber] = {
- {FrameIndex - ObjectIndexBegin, {CurInstr}}};
- }
+
+ int Key = FrameIndex - ObjectIndexBegin;
+ if (MBBFrameObjsReachingDefs.contains(MBBNumber) &&
+ MBBFrameObjsReachingDefs[MBBNumber].count(Key) > 0)
+ MBBFrameObjsReachingDefs[MBBNumber][Key].push_back(CurInstr);
+ else
+ MBBFrameObjsReachingDefs[MBBNumber][Key] = {CurInstr};
----------------
nikic wrote:
```suggestion
MBBFrameObjsReachingDefs[MBBNumber][Key].push_back(CurInstr);
```
Isn't this equivalent? The DenseMap accesses will initialize to empty maps.
https://github.com/llvm/llvm-project/pull/124943
More information about the llvm-commits
mailing list