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)
commit21b0348199a84c91a2d4b3eef626c2f69d14573d
tree4a0a5965f4db228fae5880a07fbc4c3d0c3cc042
parentf57b4355983d4d0d94c4c0421d5eb85abb8d6a0b
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

llvm-svn: 167657
llvm/lib/Target/ARM/ARMAsmPrinter.cpp
llvm/lib/Target/ARM/ARMISelLowering.cpp
llvm/lib/Target/ARM/ARMInstrThumb2.td
llvm/test/CodeGen/ARM/call-noret-minsize.ll
llvm/test/CodeGen/ARM/call-noret.ll