diff options
author | Anders Carlsson <andersca@mac.com> | 2011-03-21 02:42:27 +0000 |
---|---|---|
committer | Anders Carlsson <andersca@mac.com> | 2011-03-21 02:42:27 +0000 |
commit | 701822a48e4c82c5a08f97fce97da683f6e29105 (patch) | |
tree | 6d30345fbe4ca6ee29ef5684f4f47c16dedd1811 /llvm/lib/Transforms | |
parent | d078183725a6bd64c2a37304c87bc80afe7b8ec0 (diff) | |
download | bcm5719-llvm-701822a48e4c82c5a08f97fce97da683f6e29105.tar.gz bcm5719-llvm-701822a48e4c82c5a08f97fce97da683f6e29105.zip |
As suggested by Nick Lewycky, ignore debugging intrinsics when trying to decide whether a destructor is empty or not.
llvm-svn: 127985
Diffstat (limited to 'llvm/lib/Transforms')
-rw-r--r-- | llvm/lib/Transforms/IPO/GlobalOpt.cpp | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/llvm/lib/Transforms/IPO/GlobalOpt.cpp b/llvm/lib/Transforms/IPO/GlobalOpt.cpp index 60ede4f6d53..d8212e8894f 100644 --- a/llvm/lib/Transforms/IPO/GlobalOpt.cpp +++ b/llvm/lib/Transforms/IPO/GlobalOpt.cpp @@ -2742,6 +2742,13 @@ static bool cxxDtorIsEmpty(const Function &Fn, if (!CalledFn) return false; + if (unsigned IntrinsicID = CalledFn->getIntrinsicID()) { + // Ignore debug intrinsics. + if (IntrinsicID == llvm::Intrinsic::dbg_declare || + IntrinsicID == llvm::Intrinsic::dbg_value) + continue; + } + // Don't treat recursive functions as empty. if (!CalledFunctions.insert(CalledFn)) return false; |