Disable the Thumb no-return call optimization:
authorEvan Cheng <evan.cheng@apple.com>
Sat, 10 Nov 2012 02:09:05 +0000 (02:09 +0000)
committerEvan Cheng <evan.cheng@apple.com>
Sat, 10 Nov 2012 02:09:05 +0000 (02:09 +0000)
commitb341fac05a890272024dcc5c7e47d10b22d62b92
treed5c87bfab8a43761673a9b96e2735c86bfde68c7
parent9c7ae01f390b3d7c0fab562e69aba253d28a6dfb
Disable the Thumb no-return call optimization:
mov lr, pc
b.w _foo

The "mov" instruction doesn't set bit zero to one, it's putting incorrect
value in lr. It messes up backtraces.

rdar://12663632

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@167657 91177308-0d34-0410-b5e6-96231b3b80d8
lib/Target/ARM/ARMAsmPrinter.cpp
lib/Target/ARM/ARMISelLowering.cpp
lib/Target/ARM/ARMInstrThumb2.td
test/CodeGen/ARM/call-noret-minsize.ll
test/CodeGen/ARM/call-noret.ll