Index: lib/CodeGen/LiveDebugVariables.cpp =================================================================== --- lib/CodeGen/LiveDebugVariables.cpp +++ lib/CodeGen/LiveDebugVariables.cpp @@ -1098,8 +1098,9 @@ // Find the next instruction in the MBB that define the register Reg. while (I != MBB->end()) { - if (!LIS.isNotInMIMap(*I) && - SlotIndex::isEarlierEqualInstr(StopIdx, LIS.getInstructionIndex(*I))) + if ((!LIS.isNotInMIMap(*I) && SlotIndex::isEarlierEqualInstr( + StopIdx, LIS.getInstructionIndex(*I))) || + I->isTerminator()) break; if (I->definesRegister(Reg, &TRI)) // The insert location is directly after the instruction/bundle. Index: test/CodeGen/Mips/pr34975.ll =================================================================== --- test/CodeGen/Mips/pr34975.ll +++ test/CodeGen/Mips/pr34975.ll @@ -1,4 +1,4 @@ -; RUN: llc -mtriple=mips64-unknown-freebsd -target-abi n64 -relocation-model pic -o /dev/null %s -O2 +; RUN: llc -mtriple=mips64-unknown-freebsd -target-abi n64 -relocation-model pic -verify-machineinstrs -o /dev/null %s -O2 ; Test that the presence of debug information does not cause the branch folder ; to rewrite branches to have negative basic block ids, which would cause the Index: test/CodeGen/Mips/pr35071.ll =================================================================== --- test/CodeGen/Mips/pr35071.ll +++ test/CodeGen/Mips/pr35071.ll @@ -1,4 +1,4 @@ -; RUN: llc -mtriple mips64-unknown-freebsd12.0 -relocation-model pic -mcpu=mips4 -target-abi n64 -O2 -o - %s +; RUN: llc -mtriple mips64-unknown-freebsd12.0 -relocation-model pic -mcpu=mips4 -target-abi n64 -O2 -verify-machineinstrs -o - %s ; Test that the long branch pass does not crash due to the control flow ; optimizer producing malformed basic block operands due to the backend