summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Transforms
diff options
context:
space:
mode:
authorBill Wendling <isanbard@gmail.com>2011-08-15 18:22:00 +0000
committerBill Wendling <isanbard@gmail.com>2011-08-15 18:22:00 +0000
commit88294cdbe09f539aa66644de41ffbfe02f00e906 (patch)
tree33c4f8e0402d73c2c53dc5310b450bb47ec71c02 /llvm/lib/Transforms
parentb9c0e0db5348a4b37516555a4a79ea835effa2a0 (diff)
downloadbcm5719-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.cpp5
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;
OpenPOWER on IntegriCloud