Index: lib/Target/ARM/ARMLoadStoreOptimizer.cpp =================================================================== --- lib/Target/ARM/ARMLoadStoreOptimizer.cpp +++ lib/Target/ARM/ARMLoadStoreOptimizer.cpp @@ -560,6 +560,9 @@ while (LiveRegPos != Before) { --LiveRegPos; LiveRegs.stepBackward(*LiveRegPos); + if (LiveRegPos->getOpcode() == ARM::tBX_RET || + LiveRegPos->getOpcode() == ARM::tBX_RET) + LiveRegs.addReg(ARM::LR); } }