diff options
author | Nuno Lopes <nunoplopes@sapo.pt> | 2012-06-29 17:49:32 +0000 |
---|---|---|
committer | Nuno Lopes <nunoplopes@sapo.pt> | 2012-06-29 17:49:32 +0000 |
commit | 7d539716e2ef6c953bed51cfab5edba98b557657 (patch) | |
tree | 5ed0f1842a021663f5a26e0b898eb50cdebec456 /lib/Analysis/IPA/CallGraphSCCPass.cpp | |
parent | 60db7966acc9462e62ccfd5075aece683149505b (diff) | |
download | external_llvm-7d539716e2ef6c953bed51cfab5edba98b557657.zip external_llvm-7d539716e2ef6c953bed51cfab5edba98b557657.tar.gz external_llvm-7d539716e2ef6c953bed51cfab5edba98b557657.tar.bz2 |
RefreshCallGraph: ignore 'invoke intrinsic'. IntrinsicInst doesnt not recognize invoke, and shouldnt at this point, since the rest of LLVM codebase doesnt expect invoke of intrinsics
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@159441 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Analysis/IPA/CallGraphSCCPass.cpp')
-rw-r--r-- | lib/Analysis/IPA/CallGraphSCCPass.cpp | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/lib/Analysis/IPA/CallGraphSCCPass.cpp b/lib/Analysis/IPA/CallGraphSCCPass.cpp index 963da75..449b7ee 100644 --- a/lib/Analysis/IPA/CallGraphSCCPass.cpp +++ b/lib/Analysis/IPA/CallGraphSCCPass.cpp @@ -246,7 +246,9 @@ bool CGPassManager::RefreshCallGraph(CallGraphSCC &CurSCC, for (Function::iterator BB = F->begin(), E = F->end(); BB != E; ++BB) for (BasicBlock::iterator I = BB->begin(), E = BB->end(); I != E; ++I) { CallSite CS(cast<Value>(I)); - if (!CS || isa<IntrinsicInst>(I)) continue; + if (!CS) continue; + Function *Callee = CS.getCalledFunction(); + if (Callee && Callee->isIntrinsic()) continue; // If this call site already existed in the callgraph, just verify it // matches up to expectations and remove it from CallSites. |