Lines Matching full:calls

10 // missing any calls and updating the call graph.  The decisions of which calls
80 "multiplier and one of its inlined calls was also subject to "
226 // We use a single common worklist for calls across the entire SCC. We
227 // process these in-order and append new calls introduced during inlining to
233 // each function contains a small amount of code and a couple of calls to
241 // functions we can end up incrementally inlining N calls into each of
251 SmallVector<std::pair<CallBase *, int>, 16> Calls;
253 // Populate the initial list of calls in this SCC.
266 Calls.push_back({CB, -1});
286 if (Calls.empty())
300 // Track the dead functions to delete once finished with inlining calls. We
308 // Loop forward over all of the calls. Note that we cannot cache the size as
309 // inlining can introduce new calls that need to be processed.
310 for (int I = 0; I < (int)Calls.size(); ++I) {
311 // We expect the calls to typically be batched with sequences of calls that
315 Function &F = *Calls[I].first->getCaller();
320 LLVM_DEBUG(dbgs() << "Inlining calls in: " << F.getName() << "\n"
328 // Now process as many calls as we have within this caller in the sequence.
332 for (; I < (int)Calls.size() && Calls[I].first->getCaller() == &F; ++I) {
333 auto &P = Calls[I];
410 "Intrinsic calls should not be tracked.");
421 Calls.push_back({ICB, NewHistoryID});
425 // We attempt to mitigate this by making these calls exponentially
427 // This doesn't apply to calls in the same SCC since if we do
453 Calls.erase(
454 std::remove_if(Calls.begin() + I + 1, Calls.end(),
458 Calls.end());
544 // Now that we've finished inlining all of the calls across this SCC, delete
618 // to detect when we devirtualize indirect calls and iterate the SCC passes