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 | 88294cdbe09f539aa66644de41ffbfe02f00e906 (patch) | |
tree | 33c4f8e0402d73c2c53dc5310b450bb47ec71c02 /llvm/lib/Transforms | |
parent | b9c0e0db5348a4b37516555a4a79ea835effa2a0 (diff) | |
download | bcm5719-llvm-88294cdbe09f539aa66644de41ffbfe02f00e906.tar.gz bcm5719-llvm-88294cdbe09f539aa66644de41ffbfe02f00e906.zip |
Mark the SCC as "might unwind" if we run into a 'resume' instruction.
llvm-svn: 137627
Diffstat (limited to 'llvm/lib/Transforms')
-rw-r--r-- | llvm/lib/Transforms/IPO/PruneEH.cpp | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/llvm/lib/Transforms/IPO/PruneEH.cpp b/llvm/lib/Transforms/IPO/PruneEH.cpp index b7e63dc4484..cbb80f07508 100644 --- a/llvm/lib/Transforms/IPO/PruneEH.cpp +++ b/llvm/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; |