diff --git a/llvm/lib/CodeGen/RegisterScavenging.cpp b/llvm/lib/CodeGen/RegisterScavenging.cpp --- a/llvm/lib/CodeGen/RegisterScavenging.cpp +++ b/llvm/lib/CodeGen/RegisterScavenging.cpp @@ -369,6 +369,10 @@ const TargetRegisterInfo &TRI = *MRI.getTargetRegisterInfo(); LiveRegUnits Used(TRI); + assert(From->getParent() == To->getParent() && + "Target instruction is in other than current basic block, use " + "enterBasicBlockEnd first"); + for (MachineBasicBlock::iterator I = From;; --I) { const MachineInstr &MI = *I; @@ -423,6 +427,8 @@ if (I == MBB.begin()) break; } + assert(I != MBB.begin() && "Did not find target instruction while " + "iterating backwards"); } return std::make_pair(Survivor, Pos);