diff options
author | Bill Wendling <isanbard@gmail.com> | 2011-08-15 18:22:00 +0000 |
---|---|---|
committer | Bill Wendling <isanbard@gmail.com> | 2011-08-15 18:22:00 +0000 |
commit | bc4fcbbc7b61e21f154ec3a4687178ec20a5f09b (patch) | |
tree | a8a097aa548ab02698062b7d60d0aacffa5eb50c /lib/Transforms/IPO | |
parent | 1178fb47018fea531c91ee04e39f30607122e763 (diff) | |
download | llvm-bc4fcbbc7b61e21f154ec3a4687178ec20a5f09b.tar.gz llvm-bc4fcbbc7b61e21f154ec3a4687178ec20a5f09b.tar.bz2 llvm-bc4fcbbc7b61e21f154ec3a4687178ec20a5f09b.tar.xz |
Mark the SCC as "might unwind" if we run into a 'resume' instruction.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@137627 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Transforms/IPO')
-rw-r--r-- | lib/Transforms/IPO/PruneEH.cpp | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/lib/Transforms/IPO/PruneEH.cpp b/lib/Transforms/IPO/PruneEH.cpp index b7e63dc448..cbb80f0750 100644 --- a/lib/Transforms/IPO/PruneEH.cpp +++ b/lib/Transforms/IPO/PruneEH.cpp @@ -101,8 +101,9 @@ bool PruneEH::runOnSCC(CallGraphSCC &SCC) { // Check to see if this function performs an unwind or calls an // unwinding function. for (Function::iterator BB = F->begin(), E = F->end(); BB != E; ++BB) { - if (CheckUnwind && isa<UnwindInst>(BB->getTerminator())) { - // Uses unwind! + if (CheckUnwind && (isa<UnwindInst>(BB->getTerminator()) || + isa<ResumeInst>(BB->getTerminator()))) { + // Uses unwind / resume! SCCMightUnwind = true; } else if (CheckReturn && isa<ReturnInst>(BB->getTerminator())) { SCCMightReturn = true; |