diff options
Diffstat (limited to 'llvm/lib/Transforms/IPO/SampleProfile.cpp')
-rw-r--r-- | llvm/lib/Transforms/IPO/SampleProfile.cpp | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/llvm/lib/Transforms/IPO/SampleProfile.cpp b/llvm/lib/Transforms/IPO/SampleProfile.cpp index 87015272b96..d6678279355 100644 --- a/llvm/lib/Transforms/IPO/SampleProfile.cpp +++ b/llvm/lib/Transforms/IPO/SampleProfile.cpp @@ -634,7 +634,8 @@ bool SampleProfileLoader::inlineHotFunctions(Function &F) { InlineFunctionInfo IFI(nullptr, ACT ? &GetAssumptionCache : nullptr); Function *CalledFunction = CallSite(I).getCalledFunction(); Instruction *DI = I; - if (!CalledFunction && !PromotedInsns.count(I)) { + if (!CalledFunction && !PromotedInsns.count(I) && + CallSite(I).isIndirectCall()) { auto CalleeFunctionName = findCalleeFunctionSamples(*I)->getName(); const char *Reason = "Callee function not available"; CalledFunction = F.getParent()->getFunction(CalleeFunctionName); |