diff --git a/llvm/lib/Target/AMDGPU/AMDGPUSetWavePriority.cpp b/llvm/lib/Target/AMDGPU/AMDGPUSetWavePriority.cpp --- a/llvm/lib/Target/AMDGPU/AMDGPUSetWavePriority.cpp +++ b/llvm/lib/Target/AMDGPU/AMDGPUSetWavePriority.cpp @@ -122,17 +122,16 @@ // executed provided no backedge is ever taken. MBBInfoSet MBBInfos; for (MachineBasicBlock *MBB : post_order(&MF)) { - MBBInfo &Info = MBBInfos[MBB]; bool AtStart = true; unsigned MaxNumVALUInstsInMiddle = 0; unsigned NumVALUInstsAtEnd = 0; for (MachineInstr &MI : *MBB) { if (isVMEMLoad(MI)) { AtStart = false; - Info.NumVALUInstsAtStart = 0; + MBBInfos[MBB].NumVALUInstsAtStart = 0; MaxNumVALUInstsInMiddle = 0; NumVALUInstsAtEnd = 0; - Info.LastVMEMLoad = &MI; + MBBInfos[MBB].LastVMEMLoad = &MI; } else if (SIInstrInfo::isDS(MI)) { AtStart = false; MaxNumVALUInstsInMiddle = @@ -140,7 +139,7 @@ NumVALUInstsAtEnd = 0; } else if (SIInstrInfo::isVALU(MI)) { if (AtStart) - ++Info.NumVALUInstsAtStart; + ++MBBInfos[MBB].NumVALUInstsAtStart; ++NumVALUInstsAtEnd; } } @@ -153,14 +152,14 @@ std::max(NumFollowingVALUInsts, MBBInfos[Succ].NumVALUInstsAtStart); } if (AtStart) - Info.NumVALUInstsAtStart += NumFollowingVALUInsts; + MBBInfos[MBB].NumVALUInstsAtStart += NumFollowingVALUInsts; NumVALUInstsAtEnd += NumFollowingVALUInsts; unsigned MaxNumVALUInsts = std::max(MaxNumVALUInstsInMiddle, NumVALUInstsAtEnd); - Info.MayReachVMEMLoad = + MBBInfos[MBB].MayReachVMEMLoad = SuccsMayReachVMEMLoad || - (Info.LastVMEMLoad && MaxNumVALUInsts >= VALUInstsThreshold); + (MBBInfos[MBB].LastVMEMLoad && MaxNumVALUInsts >= VALUInstsThreshold); } MachineBasicBlock &Entry = MF.front();