diff options
author | David Majnemer <david.majnemer@gmail.com> | 2015-12-15 21:27:27 +0000 |
---|---|---|
committer | David Majnemer <david.majnemer@gmail.com> | 2015-12-15 21:27:27 +0000 |
commit | 3bb88c0210d955628f0b0daf5da52769815f3f25 (patch) | |
tree | 39b3e9cd4150a23f9e634dfa9024c6713635c49d /llvm/lib/Transforms/Utils/Local.cpp | |
parent | 2a27fc40a85d4d962f8b95422b10aefa646aee20 (diff) | |
download | bcm5719-llvm-3bb88c0210d955628f0b0daf5da52769815f3f25.tar.gz bcm5719-llvm-3bb88c0210d955628f0b0daf5da52769815f3f25.zip |
[WinEH] Use operand bundles to describe call sites
SimplifyCFG allows tail merging with code which terminates in
unreachable which, in turn, makes it possible for an invoke to end up in
a funclet which it was not originally part of.
Using operand bundles on invokes allows us to determine whether or not
an invoke was part of a funclet in the source program.
Furthermore, it allows us to unambiguously answer questions about the
legality of inlining into call sites which the personality may have
trouble with.
Differential Revision: http://reviews.llvm.org/D15517
llvm-svn: 255674
Diffstat (limited to 'llvm/lib/Transforms/Utils/Local.cpp')
-rw-r--r-- | llvm/lib/Transforms/Utils/Local.cpp | 4 |
1 files changed, 1 insertions, 3 deletions
diff --git a/llvm/lib/Transforms/Utils/Local.cpp b/llvm/lib/Transforms/Utils/Local.cpp index 24f88179c90..31039816e14 100644 --- a/llvm/lib/Transforms/Utils/Local.cpp +++ b/llvm/lib/Transforms/Utils/Local.cpp @@ -1180,9 +1180,7 @@ bool llvm::replaceDbgDeclareForAlloca(AllocaInst *AI, Value *NewAllocaAddress, Deref, Offset); } -/// changeToUnreachable - Insert an unreachable instruction before the specified -/// instruction, making it and the rest of the code in the block dead. -static void changeToUnreachable(Instruction *I, bool UseLLVMTrap) { +void llvm::changeToUnreachable(Instruction *I, bool UseLLVMTrap) { BasicBlock *BB = I->getParent(); // Loop over all of the successors, removing BB's entry from any PHI // nodes. |