Do not convert "call asm" to "invoke asm" in Inliner.
authorManman Ren <manman.ren@gmail.com>
Thu, 31 Oct 2013 21:56:03 +0000 (21:56 +0000)
committerManman Ren <manman.ren@gmail.com>
Thu, 31 Oct 2013 21:56:03 +0000 (21:56 +0000)
commitef34496b3fc197fe03da6fd86214d5e9b37d4368
tree0419c5fa3cc764590626843f489298fa24737f43
parentfe0ae1db3afa3ae85d2b8ea8a18e74f21a958764
Do not convert "call asm" to "invoke asm" in Inliner.

Given that backend does not handle "invoke asm" correctly ("invoke asm" will be
handled by SelectionDAGBuilder::visitInlineAsm, which does not have the right
setup for LPadToCallSiteMap) and we already made the assumption that inline asm
does not throw in InstCombiner::visitCallSite, we are going to make the same
assumption in Inliner to make sure we don't convert "call asm" to "invoke asm".

If it becomes necessary to add support for "invoke asm" later on, we will need
to modify the backend as well as remove the assumptions that inline asm does
not throw.

Fix rdar://15317907

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193808 91177308-0d34-0410-b5e6-96231b3b80d8
lib/Transforms/Utils/InlineFunction.cpp
test/Transforms/Inline/inline_invoke_with_asm_call.ll [new file with mode: 0644]