Lines Matching refs:SCCNodes

161                           const SCCNodeSet &SCCNodes) {  in checkFunctionMemoryAccess()  argument
190 SCCNodes.count(Call->getCalledFunction())) { in checkFunctionMemoryAccess()
259 static void addMemoryAttrs(const SCCNodeSet &SCCNodes, AARGetterT &&AARGetter, in addMemoryAttrs() argument
263 for (Function *F : SCCNodes) { in addMemoryAttrs()
270 checkFunctionMemoryAccess(*F, F->hasExactDefinition(), AAR, SCCNodes); in addMemoryAttrs()
283 for (Function *F : SCCNodes) { in addMemoryAttrs()
415 auto PropagateAttributes = [&](std::vector<ValueInfo> &SCCNodes) { in thinLTOPropagateFunctionAttrs() argument
418 InferredFlags.NoRecurse = (SCCNodes.size() == 1); in thinLTOPropagateFunctionAttrs()
421 for (auto &V : SCCNodes) { in thinLTOPropagateFunctionAttrs()
452 for (auto &V : SCCNodes) { in thinLTOPropagateFunctionAttrs()
533 ArgumentUsesTracker(const SCCNodeSet &SCCNodes) : SCCNodes(SCCNodes) {} in ArgumentUsesTracker()
545 if (!F || !F->hasExactDefinition() || !SCCNodes.count(F)) { in captured()
580 const SCCNodeSet &SCCNodes; member
612 const SmallPtrSet<Argument *, 8> &SCCNodes) { in determinePointerAccessAttrs() argument
690 SCCNodes.count(F->getArg(UseIndex))) in determinePointerAccessAttrs()
753 static void addArgumentReturnedAttrs(const SCCNodeSet &SCCNodes, in addArgumentReturnedAttrs() argument
756 for (Function *F : SCCNodes) { in addArgumentReturnedAttrs()
870 static void addArgumentAttrs(const SCCNodeSet &SCCNodes, in addArgumentAttrs() argument
876 for (Function *F : SCCNodes) { in addArgumentAttrs()
905 ArgumentUsesTracker Tracker(SCCNodes); in addArgumentAttrs()
1055 static bool isFunctionMallocLike(Function *F, const SCCNodeSet &SCCNodes) { in isFunctionMallocLike() argument
1103 if (CB.getCalledFunction() && SCCNodes.count(CB.getCalledFunction())) in isFunctionMallocLike()
1119 static void addNoAliasAttrs(const SCCNodeSet &SCCNodes, in addNoAliasAttrs() argument
1123 for (Function *F : SCCNodes) { in addNoAliasAttrs()
1139 if (!isFunctionMallocLike(F, SCCNodes)) in addNoAliasAttrs()
1143 for (Function *F : SCCNodes) { in addNoAliasAttrs()
1161 static bool isReturnNonNull(Function *F, const SCCNodeSet &SCCNodes, in isReturnNonNull() argument
1216 if (Callee && SCCNodes.count(Callee)) { in isReturnNonNull()
1232 static void addNonNullAttrs(const SCCNodeSet &SCCNodes, in addNonNullAttrs() argument
1240 for (Function *F : SCCNodes) { in addNonNullAttrs()
1257 if (isReturnNonNull(F, SCCNodes, Speculative)) { in addNonNullAttrs()
1275 for (Function *F : SCCNodes) { in addNonNullAttrs()
1289 static void addNoUndefAttrs(const SCCNodeSet &SCCNodes, in addNoUndefAttrs() argument
1293 for (Function *F : SCCNodes) { in addNoUndefAttrs()
1398 void run(const SCCNodeSet &SCCNodes, SmallSet<Function *, 8> &Changed);
1403 void AttributeInferer::run(const SCCNodeSet &SCCNodes, in run() argument
1409 for (Function *F : SCCNodes) { in run()
1458 for (Function *F : SCCNodes) in run()
1472 SCCNodeSet SCCNodes; member
1480 const SCCNodeSet &SCCNodes) { in InstrBreaksNonConvergent() argument
1485 !SCCNodes.contains(CB->getCalledFunction()); in InstrBreaksNonConvergent()
1489 static bool InstrBreaksNonThrowing(Instruction &I, const SCCNodeSet &SCCNodes) { in InstrBreaksNonThrowing() argument
1497 if (SCCNodes.contains(Callee)) in InstrBreaksNonThrowing()
1505 static bool InstrBreaksNoFree(Instruction &I, const SCCNodeSet &SCCNodes) { in InstrBreaksNoFree() argument
1515 if (SCCNodes.contains(Callee)) in InstrBreaksNoFree()
1544 static bool InstrBreaksNoSync(Instruction &I, const SCCNodeSet &SCCNodes) { in InstrBreaksNoSync() argument
1570 if (SCCNodes.contains(Callee)) in InstrBreaksNoSync()
1579 static void inferConvergent(const SCCNodeSet &SCCNodes, in inferConvergent() argument
1593 [SCCNodes](Instruction &I) { in inferConvergent()
1594 return InstrBreaksNonConvergent(I, SCCNodes); in inferConvergent()
1603 AI.run(SCCNodes, Changed); in inferConvergent()
1610 static void inferAttrsFromFunctionBodies(const SCCNodeSet &SCCNodes, in inferAttrsFromFunctionBodies() argument
1625 [&SCCNodes](Instruction &I) { in inferAttrsFromFunctionBodies()
1626 return InstrBreaksNonThrowing(I, SCCNodes); in inferAttrsFromFunctionBodies()
1648 [&SCCNodes](Instruction &I) { in inferAttrsFromFunctionBodies()
1649 return InstrBreaksNoFree(I, SCCNodes); in inferAttrsFromFunctionBodies()
1664 [&SCCNodes](Instruction &I) { in inferAttrsFromFunctionBodies()
1665 return InstrBreaksNoSync(I, SCCNodes); in inferAttrsFromFunctionBodies()
1676 AI.run(SCCNodes, Changed); in inferAttrsFromFunctionBodies()
1679 static void addNoRecurseAttrs(const SCCNodeSet &SCCNodes, in addNoRecurseAttrs() argument
1684 if (SCCNodes.size() != 1) in addNoRecurseAttrs()
1687 Function *F = *SCCNodes.begin(); in addNoRecurseAttrs()
1749 static void addNoReturnAttrs(const SCCNodeSet &SCCNodes, in addNoReturnAttrs() argument
1751 for (Function *F : SCCNodes) { in addNoReturnAttrs()
1793 static void addWillReturn(const SCCNodeSet &SCCNodes, in addWillReturn() argument
1795 for (Function *F : SCCNodes) { in addWillReturn()
1830 Res.SCCNodes.insert(F); in createSCCNodeSet()
1842 if (Nodes.SCCNodes.empty()) in deriveAttrsInPostOrder()
1847 addArgumentAttrs(Nodes.SCCNodes, Changed); in deriveAttrsInPostOrder()
1851 addArgumentReturnedAttrs(Nodes.SCCNodes, Changed); in deriveAttrsInPostOrder()
1852 addMemoryAttrs(Nodes.SCCNodes, AARGetter, Changed); in deriveAttrsInPostOrder()
1853 addArgumentAttrs(Nodes.SCCNodes, Changed); in deriveAttrsInPostOrder()
1854 inferConvergent(Nodes.SCCNodes, Changed); in deriveAttrsInPostOrder()
1855 addNoReturnAttrs(Nodes.SCCNodes, Changed); in deriveAttrsInPostOrder()
1856 addWillReturn(Nodes.SCCNodes, Changed); in deriveAttrsInPostOrder()
1857 addNoUndefAttrs(Nodes.SCCNodes, Changed); in deriveAttrsInPostOrder()
1862 addNoAliasAttrs(Nodes.SCCNodes, Changed); in deriveAttrsInPostOrder()
1863 addNonNullAttrs(Nodes.SCCNodes, Changed); in deriveAttrsInPostOrder()
1864 inferAttrsFromFunctionBodies(Nodes.SCCNodes, Changed); in deriveAttrsInPostOrder()
1865 addNoRecurseAttrs(Nodes.SCCNodes, Changed); in deriveAttrsInPostOrder()
1872 for (Function *F : Nodes.SCCNodes) in deriveAttrsInPostOrder()