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