]> granicus.if.org Git - llvm/commitdiff
[SampleProfile] Skip intrinsic calls when visiting callsites in InlineHotFunctions.
authorAndrea Di Biagio <Andrea_DiBiagio@sn.scee.net>
Tue, 18 Apr 2017 10:08:53 +0000 (10:08 +0000)
committerAndrea Di Biagio <Andrea_DiBiagio@sn.scee.net>
Tue, 18 Apr 2017 10:08:53 +0000 (10:08 +0000)
Before this patch, we always called method 'findCalleeFunctionSamples()' on
intrinsic calls. However, intrinsic calls like llvm.dbg.value() are not viable
candidates for obvious reasons.

No functional change intended.

Differential Revision: https://reviews.llvm.org/D32008

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@300541 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Transforms/IPO/SampleProfile.cpp

index 599774e3e86bbb54f0d4fb0cec7aefafe244a052..642d80e6b8a2ea9e7ac9c8cea7ea1e0369ed31f0 100644 (file)
@@ -677,7 +677,7 @@ bool SampleProfileLoader::inlineHotFunctions(
       for (auto &I : BB.getInstList()) {
         const FunctionSamples *FS = nullptr;
         if ((isa<CallInst>(I) || isa<InvokeInst>(I)) &&
-            (FS = findCalleeFunctionSamples(I))) {
+            !isa<IntrinsicInst>(I) && (FS = findCalleeFunctionSamples(I))) {
           Candidates.push_back(&I);
           if (callsiteIsHot(Samples, FS))
             Hot = true;