[ThinLTO] Remove too aggressive assertion in building function call graph.

The assertion was introduced in r317853 but there are cases when a call
isn't handled either as direct or indirect. In this case we add a
reference graph edge but not a call graph edge.

Reviewers: tejohnson

Reviewed By: tejohnson

Subscribers: mehdi_amini, inglorion, eraman, hiraditya, efriedma, llvm-commits

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

llvm-svn: 318540
This commit is contained in:
Volodymyr Sapsai
2017-11-17 18:28:05 +00:00
parent c94d393ad5
commit 8b46ff1648
2 changed files with 17 additions and 4 deletions

View File

@@ -280,8 +280,9 @@ computeFunctionSummary(ModuleSummaryIndex &Index, const Module &M,
// Skip inline assembly calls.
if (CI && CI->isInlineAsm())
continue;
assert(CalledValue && !isa<Constant>(CalledValue) &&
"Expected indirect call");
// Skip direct calls.
if (!CalledValue || isa<Constant>(CalledValue))
continue;
uint32_t NumVals, NumCandidates;
uint64_t TotalCount;