Lines Matching full:scc

148 /// where SCCNodes is the current SCC.
157 /// and additional memory effects that apply if any of the functions in the SCC
171 // Additional locations accessed if the SCC accesses argmem. in checkFunctionMemoryAccess()
184 // We can optimistically ignore calls to functions in the same SCC, with in checkFunctionMemoryAccess()
191 // Keep track of which additional locations are accessed if the SCC in checkFunctionMemoryAccess()
257 /// Deduce readonly/readnone/writeonly attributes for the SCC.
278 // If the SCC accesses argmem, add recursive accesses resulting from that. in addMemoryAttrs()
478 // Call propagation functions on each SCC in the Index in thinLTOPropagateFunctionAttrs()
490 /// in the same SCC that the pointer data flows into. We use this to build an
491 /// SCC of the arguments.
529 /// This tracker checks whether callees are in the SCC, and if so it does not
557 // use. In this case it does not matter if the callee is within our SCC in captured()
574 // True only if certainly captured (used outside our SCC).
577 // Uses within our SCC.
691 // This is an argument which is part of the speculative SCC. Note in determinePointerAccessAttrs()
752 /// Deduce returned attributes for the SCC.
869 /// Deduce nocapture attributes for the SCC.
915 // then it must be calling into another function in our SCC. Save in addArgumentAttrs()
916 // its particulars for Argument-SCC analysis later. in addArgumentAttrs()
925 // Otherwise, it's captured. Don't bother doing SCC analysis on it. in addArgumentAttrs()
929 // an SCC? Note that we don't allow any calls at all here, or else our in addArgumentAttrs()
931 // functions in the SCC. in addArgumentAttrs()
1118 /// Deduce noalias attributes for the SCC.
1160 /// conclusion due to SCC calls.
1214 // A call to a node within the SCC is assumed to return null until in isReturnNonNull()
1231 /// Deduce nonnull attributes for the SCC.
1234 // Speculative that all functions in the SCC return only nonnull in addNonNullAttrs()
1260 // which prevents us from speculating about the entire SCC in addNonNullAttrs()
1280 LLVM_DEBUG(dbgs() << "SCC marking " << F->getName() << " as nonnull\n"); in addNonNullAttrs()
1288 /// Deduce noundef attributes for the SCC.
1351 /// go on a single SCC Node. Inference involves scanning function bodies
1406 // Go through all the functions in SCC and check corresponding attribute in run()
1407 // assumptions for each of them. Attributes that are invalid for this SCC in run()
1483 // not in the SCC. in InstrBreaksNonConvergent()
1494 // I is a may-throw call to a function inside our SCC. This doesn't in InstrBreaksNonThrowing()
1495 // invalidate our current working assumption that the SCC is no-throw; we in InstrBreaksNonThrowing()
1513 // Speculatively assume in SCC. in InstrBreaksNoFree()
1568 // Speculatively assume in SCC. in InstrBreaksNoSync()
1583 // Request to remove the convergent attribute from all functions in the SCC in inferConvergent()
1584 // if every callsite within the SCC is not convergent (except for calls in inferConvergent()
1585 // to functions within the SCC). in inferConvergent()
1606 /// Infer attributes from all functions in the SCC by scanning every
1615 // Request to infer nounwind attribute for all the functions in the SCC if in inferAttrsFromFunctionBodies()
1616 // every callsite within the SCC is not throwing (except for calls to in inferAttrsFromFunctionBodies()
1617 // functions within the SCC). Note that nounwind attribute suffers from in inferAttrsFromFunctionBodies()
1637 // Request to infer nofree attribute for all the functions in the SCC if in inferAttrsFromFunctionBodies()
1638 // every callsite within the SCC does not directly or indirectly free in inferAttrsFromFunctionBodies()
1639 // memory (except for calls to functions within the SCC). Note that nofree in inferAttrsFromFunctionBodies()
1683 // If the SCC contains multiple nodes we know for sure there is recursion. in addNoRecurseAttrs()
1707 // we have no indirect recursion as the SCC size is one. This function cannot in addNoRecurseAttrs()
1816 // Track whether any functions in this SCC have an unknown call edge. in createSCCNodeSet()
1841 // Bail if the SCC only contains optnone functions. in deriveAttrsInPostOrder()
1859 // If we have no external nodes participating in the SCC, we can deduce some in deriveAttrsInPostOrder()
1880 PreservedAnalyses PostOrderFunctionAttrsPass::run(LazyCallGraph::SCC &C, in run()
1914 // invalidate all analyses for all functions in this SCC. in run()
1949 static bool runImpl(CallGraphSCC &SCC, AARGetterT AARGetter) { in runImpl() argument
1951 for (CallGraphNode *I : SCC) { in runImpl()
1991 // We only have a post-order SCC traversal (because SCCs are inherently in deduceFunctionAttributeInRPO()
1994 // because we need to combine SCC detection and the PO walk of the call in deduceFunctionAttributeInRPO()
2002 for (LazyCallGraph::SCC &SCC : RC) { in deduceFunctionAttributeInRPO()
2003 if (SCC.size() != 1) in deduceFunctionAttributeInRPO()
2005 Function &F = SCC.begin()->getFunction(); in deduceFunctionAttributeInRPO()