Home
last modified time | relevance | path

Searched refs:SCC (Results 1 – 25 of 138) sorted by relevance

123456

/llvm-project-15.0.7/llvm/include/llvm/Analysis/
H A DCGSCCPassManager.h112 extern template class AllAnalysesOn<LazyCallGraph::SCC>;
123 AnalysisManager<LazyCallGraph::SCC, LazyCallGraph &>;
131 CGSCCUpdateResult &>::run(LazyCallGraph::SCC &InitialC,
210 ModuleAnalysisManager, LazyCallGraph::SCC, LazyCallGraph &>;
257 SmallPriorityWorklist<LazyCallGraph::SCC *, 1> &CWorklist;
273 SmallPtrSetImpl<LazyCallGraph::SCC *> &InvalidatedSCCs;
283 LazyCallGraph::SCC *UpdatedC;
333 detail::PassConcept<LazyCallGraph::SCC, CGSCCAnalysisManager,
435 LazyCallGraph::SCC &updateCGAndAnalysisManagerForFunctionPass(
446 LazyCallGraph::SCC &updateCGAndAnalysisManagerForCGSCCPass(
[all …]
H A DLazyCallGraph.h114 class SCC; variable
419 class LLVM_EXTERNAL_VISIBILITY SCC {
488 bool isParentOf(const SCC &C) const;
496 bool isAncestorOf(const SCC &C) const;
543 SmallVector<SCC *, 4> SCCs;
546 SmallDenseMap<SCC *, int, 4> SCCIndices;
567 for (LazyCallGraph::SCC &C : RC) {
611 iterator find(SCC &C) const { in find()
978 if (SCC *C = lookupSCC(N)) in lookupRefSCC()
1122 SpecificBumpPtrAllocator<SCC> SCCBPA;
[all …]
H A DMLInlineAdvisor.h34 void onPassEntry(LazyCallGraph::SCC *SCC) override;
35 void onPassExit(LazyCallGraph::SCC *SCC) override;
H A DCallGraphSCCPass.h59 virtual bool runOnSCC(CallGraphSCC &SCC) = 0;
83 bool skipSCC(CallGraphSCC &SCC) const;
131 bool runOnSCC(CallGraphSCC &SCC) override { return false; } in runOnSCC() argument
/llvm-project-15.0.7/llvm/lib/Analysis/
H A DCGSCCPassManager.cpp49 template class AllAnalysesOn<LazyCallGraph::SCC>;
75 LazyCallGraph::SCC *C = &InitialC; in run()
372 LazyCallGraph::SCC *C = &InitialC; in run()
383 auto ScanSCC = [](LazyCallGraph::SCC &C, in run()
530 LazyCallGraph::SCC *CurrentC = &C; in run()
828 static LazyCallGraph::SCC *
832 using SCC = LazyCallGraph::SCC; in incorporateNewSCCRange() typedef
842 SCC *OldC = C; in incorporateNewSCCRange()
896 using SCC = LazyCallGraph::SCC; in updateCGAndAnalysisManagerForPass() typedef
900 SCC *C = &InitialC; in updateCGAndAnalysisManagerForPass()
[all …]
H A DLazyCallGraph.cpp282 bool LazyCallGraph::SCC::isParentOf(const SCC &C) const { in isParentOf()
295 bool LazyCallGraph::SCC::isAncestorOf(const SCC &TargetC) const { in isAncestorOf()
344 for (SCC *C : SCCs) { in verify()
384 for (SCC *C : SCCs) { in verify()
413 for (SCC &C : *this) in isParentOf()
637 for (SCC *C : in switchInternalEdgeToCall()
1043 for (SCC &C : RC) in insertIncomingRefEdge()
1068 for (SCC &C : RC) in insertIncomingRefEdge()
1223 for (SCC *C : SCCs) { in removeInternalRefEdge()
1373 for (SCC *C : SCCs) { in removeInternalRefEdge()
[all …]
H A DSyntheticCountsUtils.cpp24 const SccTy &SCC, GetProfCountTy GetProfCount, AddCountTy AddCount) { in propagateFromSCC() argument
29 for (auto &Node : SCC) in propagateFromSCC()
95 for (auto &SCC : reverse(SCCs)) in propagate() local
96 propagateFromSCC(SCC, GetProfCount, AddCount); in propagate()
H A DGlobalsModRef.cpp461 const std::vector<CallGraphNode *> &SCC = *I; in CollectSCCMembership() local
462 assert(!SCC.empty() && "SCC with no functions?"); in CollectSCCMembership()
464 for (auto *CGN : SCC) in CollectSCCMembership()
479 const std::vector<CallGraphNode *> &SCC = *I; in AnalyzeCallGraph() local
480 assert(!SCC.empty() && "SCC with no functions?"); in AnalyzeCallGraph()
482 Function *F = SCC[0]->getFunction(); in AnalyzeCallGraph()
488 for (auto *Node : SCC) in AnalyzeCallGraph()
540 for (CallGraphNode::iterator CI = SCC[i]->begin(), E = SCC[i]->end(); in AnalyzeCallGraph()
550 if (!is_contained(SCC, CalleeNode)) in AnalyzeCallGraph()
561 for (auto *Node : SCC) in AnalyzeCallGraph()
[all …]
H A DCallGraphSCCPass.cpp685 bool runOnSCC(CallGraphSCC &SCC) override { in runOnSCC() argument
698 SCC.getCallGraph().getModule().print(OS, nullptr); in runOnSCC()
702 for (CallGraphNode *CGN : SCC) { in runOnSCC()
719 SCC.getCallGraph().getModule().print(OS, nullptr); in runOnSCC()
736 static std::string getDescription(const CallGraphSCC &SCC) { in getDescription() argument
739 for (CallGraphNode *CGN : SCC) { in getDescription()
751 bool CallGraphSCCPass::skipSCC(CallGraphSCC &SCC) const { in skipSCC()
753 SCC.getCallGraph().getModule().getContext().getOptPassGate(); in skipSCC()
754 return Gate.isEnabled() && !Gate.shouldRunPass(this, getDescription(SCC)); in skipSCC()
/llvm-project-15.0.7/llvm/include/llvm/Transforms/Utils/
H A DCallGraphUpdater.h50 LazyCallGraph::SCC *SCC = nullptr; variable
63 void initialize(CallGraph &CG, CallGraphSCC &SCC) { in initialize() argument
65 this->CGSCC = &SCC; in initialize()
67 void initialize(LazyCallGraph &LCG, LazyCallGraph::SCC &SCC, in initialize() argument
70 this->SCC = &SCC; in initialize()
74 &AM.getResult<FunctionAnalysisManagerCGSCCProxy>(SCC, LCG).getManager(); in initialize()
/llvm-project-15.0.7/llvm/test/Transforms/Inline/
H A Dcgscc-cycle-debug.ll1 ; When an SCC got split due to inlining, we have two mechanisms for reprocessing the updated SCC, f…
2 ; that repeatedly rerun the new, current SCC; second is a worklist for all newly split SCCs. We nee…
3 ; the same SCC when the SCC is set to be processed by both mechanisms back to back. In pathological…
8 ; of the same caller-callee edge, we could end up getting more recursive inlining without SCC mutat…
13 ; CHECK: Running an SCC pass across the RefSCC: [(test1_a, test1_b, test1_c)]
14 ; CHECK: Enqueuing the existing SCC in the worklist:(test1_b)
15 ; CHECK: Enqueuing a newly formed SCC:(test1_c)
19 ; CHECK: Re-running SCC passes after a refinement of the current SCC: (test1_c, test1_a)
20 ; CHECK: Skipping redundant run on SCC: (test1_c, test1_a)
H A Dcgscc-update.ll18 ; call in the inlined body of the function. After that, we form a new SCC and
29 ; This function should have had 'readnone' deduced for its SCC.
38 ; This function should have had 'readnone' deduced for its SCC.
51 ; This too should form a new SCC which can then be reasoned about to compute
61 ; This function should have had 'readnone' deduced for its SCC.
71 ; This function should have had 'readnone' deduced for its SCC.
152 ; form a new SCC and should use that can deduce precise function attrs.
154 ; This function should have had 'readnone' deduced for its SCC.
177 ; This function should have had 'readnone' deduced for its SCC.
H A Dcgscc-invalidate.ll66 ; dominators after splitting an SCC into two smaller SCCs.
69 ; can into this routine. That splits test3_g into a separate SCC that is enqued
74 ; Create the first edge in the SCC cycle.
87 ; This function ends up split into a separate SCC, which can cause its analyses
94 ; Create the second edge in the SCC cycle.
/llvm-project-15.0.7/llvm/unittests/ADT/
H A DDirectedGraphTest.cpp246 TEST(DirectedGraphTest, SCC) { in TEST() argument
274 ListOfSCCs.push_back(NodeListTy(SCC.begin(), SCC.end())); in TEST()
278 for (auto &SCC : ListOfSCCs) { in TEST() local
279 if (SCC.size() > 1) in TEST()
281 EXPECT_TRUE(SCC.size() == 1); in TEST()
282 EXPECT_TRUE(SCC.count(&N4) == 1); in TEST()
284 for (auto &SCC : ListOfSCCs) { in TEST() local
285 if (SCC.size() <= 1) in TEST()
287 EXPECT_TRUE(SCC.size() == 3); in TEST()
288 EXPECT_TRUE(SCC.count(&N1) == 1); in TEST()
[all …]
/llvm-project-15.0.7/llvm/test/Analysis/LazyCallGraph/
H A Dbasic.ll259 ; CHECK-NEXT: SCC with 1 functions:
263 ; CHECK-NEXT: SCC with 1 functions:
267 ; CHECK-NEXT: SCC with 1 functions:
271 ; CHECK-NEXT: SCC with 1 functions:
275 ; CHECK-NEXT: SCC with 1 functions:
279 ; CHECK-NEXT: SCC with 1 functions:
283 ; CHECK-NEXT: SCC with 1 functions:
287 ; CHECK-NEXT: SCC with 1 functions:
291 ; CHECK-NEXT: SCC with 1 functions:
295 ; CHECK-NEXT: SCC with 1 functions:
[all …]
/llvm-project-15.0.7/llvm/unittests/Analysis/
H A DCGSCCPassManagerTest.cpp64 bool invalidate(LazyCallGraph::SCC &, const PreservedAnalyses &PA, in invalidate()
70 PAC.preservedSet<AllAnalysesOn<LazyCallGraph::SCC>>()); in invalidate()
393 CGPM1.addPass(LambdaSCCPass([&](LazyCallGraph::SCC &C, in TEST_F()
429 CGPM3.addPass(LambdaSCCPass([&](LazyCallGraph::SCC &C, in TEST_F()
884 Result run(LazyCallGraph::SCC &C, CGSCCAnalysisManager &AM, in run()
940 Result run(LazyCallGraph::SCC &C, CGSCCAnalysisManager &AM, in run()
1379 CGPM.addPass(LambdaSCCPassNoPreserve([&](LazyCallGraph::SCC &C, in TEST_F()
1447 CGPM.addPass(LambdaSCCPassNoPreserve([&](LazyCallGraph::SCC &C, in TEST_F()
1517 CGPM.addPass(LambdaSCCPassNoPreserve([&](LazyCallGraph::SCC &C, in TEST_F()
1803 CGPM.addPass(LambdaSCCPassNoPreserve([&](LazyCallGraph::SCC &C, in TEST_F()
[all …]
/llvm-project-15.0.7/llvm/test/ThinLTO/X86/
H A Dmodule_summary_graph_traits.ll12 ; CHECK: SCC (2 nodes) {
17 ; CHECK: SCC (1 node) {
21 ; CHECK: SCC (1 node) {
25 ; CHECK: SCC (1 node) {
30 ; CHECK: SCC (1 node) {
/llvm-project-15.0.7/clang-tools-extra/clang-tidy/misc/
H A DNoRecursionCheck.cpp160 CallStackTy pathfindSomeCycle(ArrayRef<CallGraphNode *> SCC) { in pathfindSomeCycle() argument
163 const ImmutableSmallSet<CallGraphNode *, SmallSCCSize> SCCElts(SCC); in pathfindSomeCycle()
175 CallGraphNode::CallRecord EntryNode(SCC.front(), /*CallExpr=*/nullptr); in pathfindSomeCycle()
202 void NoRecursionCheck::handleSCC(ArrayRef<CallGraphNode *> SCC) { in handleSCC() argument
203 assert(!SCC.empty() && "Empty SCC does not make sense."); in handleSCC()
206 for (CallGraphNode *N : SCC) { in handleSCC()
215 const CallStackTy EventuallyCyclicCallStack = pathfindSomeCycle(SCC); in handleSCC()
/llvm-project-15.0.7/polly/lib/Transform/
H A DScopInliner.cpp51 bool runOnSCC(CallGraphSCC &SCC) override { in runOnSCC() argument
54 if (SCC.size() > 1) in runOnSCC()
56 assert(SCC.size() == 1 && "found empty SCC"); in runOnSCC()
57 Function *F = (*SCC.begin())->getFunction(); in runOnSCC()
/llvm-project-15.0.7/llvm/test/Transforms/Inline/ML/
H A Dscc-dead-accounting.ll1 ; MRE for SCC splitting causing MLInlineAdvisor to lose track of edges
3 ; when the foo-bar-inlineme SCC reaches the inliner, foo-bar will be split out
4 ; leaving inlineme in the SCC. inlineme is dead, so it gets removed from the SCC
6 ; as the foo-bar SCC will be passed on to the next SCC pass in the pipeline
/llvm-project-15.0.7/llvm/test/Other/
H A Dno-rerun-function-simplification-pipeline.ll8 ; CHECK: PassManager{{.*}}SCC{{.*}} on (f1)
10 ; CHECK: PassManager{{.*}}SCC{{.*}} on (f2, f3)
13 ; CHECK: PassManager{{.*}}SCC{{.*}} on (f2)
16 ; CHECK: PassManager{{.*}}SCC{{.*}} on (f3)
H A Dcgscc-devirt-iteration.ll1 ; The CGSCC pass manager includes an SCC iteration utility that tracks indirect
3 ; SCC to expose those calls to the SCC-based IPO passes. We trigger
26 ; call we revisit the SCC passes to reflect the more precise information. This
48 ; is to have one indirect call that can only be resolved when the entire SCC is
86 ; Call the other function here to prevent forwarding until the SCC has had
92 ; after we deduce 'readonly' for the rest of the SCC. Once it is
93 ; devirtualized, we can deduce readnone for the SCC.
105 ; intrinsic we still revisit the SCC pass. This also covers cases where the
/llvm-project-15.0.7/llvm/lib/Transforms/IPO/
H A DPruneEH.cpp47 bool runOnSCC(CallGraphSCC &SCC) override;
163 bool PruneEH::runOnSCC(CallGraphSCC &SCC) { in runOnSCC() argument
164 if (skipSCC(SCC)) in runOnSCC()
167 for (auto &N : SCC) { in runOnSCC()
173 CGU.initialize(CG, SCC); in runOnSCC()
H A DInlineSimple.cpp70 bool runOnSCC(CallGraphSCC &SCC) override;
110 bool SimpleInliner::runOnSCC(CallGraphSCC &SCC) { in runOnSCC() argument
112 return LegacyInlinerBase::runOnSCC(SCC); in runOnSCC()
/llvm-project-15.0.7/llvm/lib/Target/AMDGPU/
H A DAMDGPUAnnotateKernelFeatures.cpp41 bool runOnSCC(CallGraphSCC &SCC) override;
112 bool AMDGPUAnnotateKernelFeatures::runOnSCC(CallGraphSCC &SCC) { in runOnSCC() argument
115 for (CallGraphNode *I : SCC) { in runOnSCC()

123456