diff options
author | Dimitry Andric <dim@FreeBSD.org> | 2020-07-26 19:36:28 +0000 |
---|---|---|
committer | Dimitry Andric <dim@FreeBSD.org> | 2020-07-26 19:36:28 +0000 |
commit | cfca06d7963fa0909f90483b42a6d7d194d01e08 (patch) | |
tree | 209fb2a2d68f8f277793fc8df46c753d31bc853b /llvm/lib/Target/AMDGPU/GCNNSAReassign.cpp | |
parent | 706b4fc47bbc608932d3b491ae19a3b9cde9497b (diff) |
Notes
Diffstat (limited to 'llvm/lib/Target/AMDGPU/GCNNSAReassign.cpp')
-rw-r--r-- | llvm/lib/Target/AMDGPU/GCNNSAReassign.cpp | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/llvm/lib/Target/AMDGPU/GCNNSAReassign.cpp b/llvm/lib/Target/AMDGPU/GCNNSAReassign.cpp index f6023f3a40a27..57346087d0175 100644 --- a/llvm/lib/Target/AMDGPU/GCNNSAReassign.cpp +++ b/llvm/lib/Target/AMDGPU/GCNNSAReassign.cpp @@ -286,8 +286,15 @@ bool GCNNSAReassign::runOnMachineFunction(MachineFunction &MF) { } Intervals.push_back(LI); OrigRegs.push_back(VRM->getPhys(Reg)); - MinInd = I ? std::min(MinInd, LI->beginIndex()) : LI->beginIndex(); - MaxInd = I ? std::max(MaxInd, LI->endIndex()) : LI->endIndex(); + if (LI->empty()) { + // The address input is undef, so it doesn't contribute to the relevant + // range. Seed a reasonable index range if required. + if (I == 0) + MinInd = MaxInd = LIS->getInstructionIndex(*MI); + continue; + } + MinInd = I != 0 ? std::min(MinInd, LI->beginIndex()) : LI->beginIndex(); + MaxInd = I != 0 ? std::max(MaxInd, LI->endIndex()) : LI->endIndex(); } if (Intervals.empty()) |