summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAnders Carlsson <andersca@mac.com>2011-03-22 03:21:01 +0000
committerAnders Carlsson <andersca@mac.com>2011-03-22 03:21:01 +0000
commit1cc8073bb36cd8f7bbd771ce3b07b5caad88db9d (patch)
tree17b2a6e66a43b90cc2e7a355c60c8efd481fa57f
parent7bf595348ea08d911dd2da449c484cee8f31860d (diff)
downloadbcm5719-llvm-1cc8073bb36cd8f7bbd771ce3b07b5caad88db9d.tar.gz
bcm5719-llvm-1cc8073bb36cd8f7bbd771ce3b07b5caad88db9d.zip
Handle another case that Frits suggested.
llvm-svn: 128068
-rw-r--r--llvm/lib/Transforms/IPO/GlobalOpt.cpp6
1 files changed, 4 insertions, 2 deletions
diff --git a/llvm/lib/Transforms/IPO/GlobalOpt.cpp b/llvm/lib/Transforms/IPO/GlobalOpt.cpp
index 7f69aeb0d02..0087362e339 100644
--- a/llvm/lib/Transforms/IPO/GlobalOpt.cpp
+++ b/llvm/lib/Transforms/IPO/GlobalOpt.cpp
@@ -2746,11 +2746,13 @@ static bool cxxDtorIsEmpty(const Function &Fn,
if (!CalledFn)
return false;
+ SmallPtrSet<const Function *, 8> NewCalledFunctions(CalledFunctions);
+
// Don't treat recursive functions as empty.
- if (!CalledFunctions.insert(CalledFn))
+ if (!NewCalledFunctions.insert(CalledFn))
return false;
- if (!cxxDtorIsEmpty(*CalledFn, CalledFunctions))
+ if (!cxxDtorIsEmpty(*CalledFn, NewCalledFunctions))
return false;
} else if (isa<ReturnInst>(*I))
return true;
OpenPOWER on IntegriCloud