reference, declarationdefinition
definition → references, declarations, derived classes, virtual overrides
reference to multiple definitions → definitions
unreferenced

Derived Classes

include/llvm/IR/PassManagerInternal.h
  137   template <typename T> struct Checker : CheckerBase, T {};

References

include/llvm/Analysis/CGSCCPassManager.h
  129     AnalysisManager<LazyCallGraph::SCC, LazyCallGraph &>;
  129     AnalysisManager<LazyCallGraph::SCC, LazyCallGraph &>;
  137             CGSCCUpdateResult &>::run(LazyCallGraph::SCC &InitialC,
  139                                       LazyCallGraph &G, CGSCCUpdateResult &UR);
  149     PassManager<LazyCallGraph::SCC, CGSCCAnalysisManager, LazyCallGraph &,
  149     PassManager<LazyCallGraph::SCC, CGSCCAnalysisManager, LazyCallGraph &,
  154 struct RequireAnalysisPass<AnalysisT, LazyCallGraph::SCC, CGSCCAnalysisManager,
  155                            LazyCallGraph &, CGSCCUpdateResult &>
  156     : PassInfoMixin<RequireAnalysisPass<AnalysisT, LazyCallGraph::SCC,
  157                                         CGSCCAnalysisManager, LazyCallGraph &,
  159   PreservedAnalyses run(LazyCallGraph::SCC &C, CGSCCAnalysisManager &AM,
  160                         LazyCallGraph &CG, CGSCCUpdateResult &) {
  175   explicit Result(CGSCCAnalysisManager &InnerAM, LazyCallGraph &G)
  196   LazyCallGraph *G;
  214     OuterAnalysisManagerProxy<ModuleAnalysisManager, LazyCallGraph::SCC,
  215                               LazyCallGraph &>;
  242   SmallPriorityWorklist<LazyCallGraph::RefSCC *, 1> &RCWorklist;
  257   SmallPriorityWorklist<LazyCallGraph::SCC *, 1> &CWorklist;
  265   SmallPtrSetImpl<LazyCallGraph::RefSCC *> &InvalidatedRefSCCs;
  273   SmallPtrSetImpl<LazyCallGraph::SCC *> &InvalidatedSCCs;
  283   LazyCallGraph::RefSCC *UpdatedRC;
  293   LazyCallGraph::SCC *UpdatedC;
  316   SmallDenseSet<std::pair<LazyCallGraph::Node *, LazyCallGraph::SCC *>, 4>
  316   SmallDenseSet<std::pair<LazyCallGraph::Node *, LazyCallGraph::SCC *>, 4>
  389     bool invalidate(LazyCallGraph::SCC &C, const PreservedAnalyses &PA,
  397   Result run(LazyCallGraph::SCC &C, CGSCCAnalysisManager &AM, LazyCallGraph &);
  397   Result run(LazyCallGraph::SCC &C, CGSCCAnalysisManager &AM, LazyCallGraph &);
  417 LazyCallGraph::SCC &updateCGAndAnalysisManagerForFunctionPass(
  418     LazyCallGraph &G, LazyCallGraph::SCC &C, LazyCallGraph::Node &N,
  418     LazyCallGraph &G, LazyCallGraph::SCC &C, LazyCallGraph::Node &N,
  418     LazyCallGraph &G, LazyCallGraph::SCC &C, LazyCallGraph::Node &N,
  455   PreservedAnalyses run(LazyCallGraph::SCC &C, CGSCCAnalysisManager &AM,
  456                         LazyCallGraph &CG, CGSCCUpdateResult &UR) {
  461     SmallVector<LazyCallGraph::Node *, 4> Nodes;
  462     for (LazyCallGraph::Node &N : C)
  468     LazyCallGraph::SCC *CurrentC = &C;
  474     for (LazyCallGraph::Node *N : Nodes) {
  561   PreservedAnalyses run(LazyCallGraph::SCC &InitialC, CGSCCAnalysisManager &AM,
  562                         LazyCallGraph &CG, CGSCCUpdateResult &UR) {
  569     LazyCallGraph::SCC *C = &InitialC;
  589       for (LazyCallGraph::Node &N : C) {
  612       if (!PI.runBeforePass<LazyCallGraph::SCC>(Pass, *C))
  618         PI.runAfterPassInvalidated<LazyCallGraph::SCC>(Pass);
  620         PI.runAfterPass<LazyCallGraph::SCC>(Pass, *C);
  742   LazyCallGraph &CG = AM.getResult<LazyCallGraphAnalysis>(M);
  746   SmallPriorityWorklist<LazyCallGraph::RefSCC *, 1> RCWorklist;
  747   SmallPriorityWorklist<LazyCallGraph::SCC *, 1> CWorklist;
  751   SmallPtrSet<LazyCallGraph::RefSCC *, 4> InvalidRefSCCSet;
  752   SmallPtrSet<LazyCallGraph::SCC *, 4> InvalidSCCSet;
  754   SmallDenseSet<std::pair<LazyCallGraph::Node *, LazyCallGraph::SCC *>, 4>
  754   SmallDenseSet<std::pair<LazyCallGraph::Node *, LazyCallGraph::SCC *>, 4>
  786       LazyCallGraph::RefSCC *RC = RCWorklist.pop_back_val();
  800       for (LazyCallGraph::SCC &C : llvm::reverse(*RC))
  804         LazyCallGraph::SCC *C = CWorklist.pop_back_val();
  860           if (!PI.runBeforePass<LazyCallGraph::SCC>(Pass, *C))
  866             PI.runAfterPassInvalidated<LazyCallGraph::SCC>(Pass);
  868             PI.runAfterPass<LazyCallGraph::SCC>(Pass, *C);
  928   PA.preserveSet<AllAnalysesOn<LazyCallGraph::SCC>>();
include/llvm/Analysis/LazyCallGraph.h
  332     LazyCallGraph &getGraph() const { return *G; }
  384     LazyCallGraph *G;
  397     Node(LazyCallGraph &G, Function &F) : G(&G), F(&F) {}
  457       for (LazyCallGraph::Node &N : C) {
  551     LazyCallGraph *G;
  561     RefSCC(LazyCallGraph &G);
  578       for (LazyCallGraph::SCC &C : RC) {
  895     LazyCallGraph *G;
  899     postorder_ref_scc_iterator(LazyCallGraph &G) : G(&G), RC(getRC(G, 0)) {}
  902     postorder_ref_scc_iterator(LazyCallGraph &G, IsAtEndT /*Nonce*/) : G(&G) {}
  906     static RefSCC *getRC(LazyCallGraph &G, int Index) {
  937   LazyCallGraph(LazyCallGraph &&G);
  938   LazyCallGraph &operator=(LazyCallGraph &&RHS);
  938   LazyCallGraph &operator=(LazyCallGraph &&RHS);
 1174   template <typename... Ts> RefSCC *createRefSCC(Ts &&... Args) {
 1218 inline LazyCallGraph::Edge::Kind LazyCallGraph::Edge::getKind() const {
 1228 inline LazyCallGraph::Node &LazyCallGraph::Edge::getNode() const {
 1240   using NodeRef = LazyCallGraph::Node *;
 1241   using ChildIteratorType = LazyCallGraph::EdgeSequence::iterator;
 1248   using NodeRef = LazyCallGraph::Node *;
 1249   using ChildIteratorType = LazyCallGraph::EdgeSequence::iterator;
 1264   using Result = LazyCallGraph;
 1270   LazyCallGraph run(Module &M, ModuleAnalysisManager &AM) {
include/llvm/IR/PassManager.h
  598   Result run(IRUnitT &, AnalysisManagerT &, ExtraArgTs &&...) {
 1386   PreservedAnalyses run(IRUnitT &Arg, AnalysisManagerT &AM, ExtraArgTs &&...) {
 1400   PreservedAnalyses run(IRUnitT &, AnalysisManagerT &, ExtraArgTs &&...) {
 1415   PreservedAnalyses run(IRUnitT &IR, AnalysisManagerT &AM, Ts &&... Args) {
include/llvm/IR/PassManagerInternal.h
  137   template <typename T> struct Checker : CheckerBase, T {};
  139   static decltype(NonceFunction(&Checker<T>::invalidate)) check(rank<1>);
  147   enum { Value = sizeof(check<ResultT>(rank<2>())) == sizeof(EnabledType) };
  169   explicit AnalysisResultModel(ResultT Result) : Result(std::move(Result)) {}
  198   ResultT Result;
include/llvm/Transforms/IPO/ArgumentPromotion.h
   29   PreservedAnalyses run(LazyCallGraph::SCC &C, CGSCCAnalysisManager &AM,
   30                         LazyCallGraph &CG, CGSCCUpdateResult &UR);
include/llvm/Transforms/IPO/FunctionAttrs.h
   51   PreservedAnalyses run(LazyCallGraph::SCC &C, CGSCCAnalysisManager &AM,
   52                         LazyCallGraph &CG, CGSCCUpdateResult &UR);
include/llvm/Transforms/IPO/Inliner.h
  103   PreservedAnalyses run(LazyCallGraph::SCC &C, CGSCCAnalysisManager &AM,
  104                         LazyCallGraph &CG, CGSCCUpdateResult &UR);
lib/Analysis/CGSCCPassManager.cpp
   53             CGSCCUpdateResult &>::run(LazyCallGraph::SCC &InitialC,
   55                                       LazyCallGraph &G, CGSCCUpdateResult &UR) {
   68   LazyCallGraph::SCC *C = &InitialC;
   82       PI.runAfterPassInvalidated<LazyCallGraph::SCC>(*Pass);
   84       PI.runAfterPass<LazyCallGraph::SCC>(*Pass, *C);
  123   PA.preserveSet<AllAnalysesOn<LazyCallGraph::SCC>>();
  161       PA.allAnalysesInSetPreserved<AllAnalysesOn<LazyCallGraph::SCC>>();
  218 FunctionAnalysisManagerCGSCCProxy::run(LazyCallGraph::SCC &C,
  220                                        LazyCallGraph &CG) {
  241     LazyCallGraph::SCC &C, const PreservedAnalyses &PA,
  256   if (!PAC.preserved() && !PAC.preservedSet<AllAnalysesOn<LazyCallGraph::SCC>>()) {
  257     for (LazyCallGraph::Node &N : C)
  269   for (LazyCallGraph::Node &N : C) {
  321 static void updateNewSCCFunctionAnalyses(LazyCallGraph::SCC &C,
  322                                          LazyCallGraph &G,
  330   for (LazyCallGraph::Node &N : C) {
  365 static LazyCallGraph::SCC *
  366 incorporateNewSCCRange(const SCCRangeT &NewSCCRange, LazyCallGraph &G,
  367                        LazyCallGraph::Node &N, LazyCallGraph::SCC *C,
  367                        LazyCallGraph::Node &N, LazyCallGraph::SCC *C,
  369   using SCC = LazyCallGraph::SCC;
  426 LazyCallGraph::SCC &llvm::updateCGAndAnalysisManagerForFunctionPass(
  427     LazyCallGraph &G, LazyCallGraph::SCC &InitialC, LazyCallGraph::Node &N,
  427     LazyCallGraph &G, LazyCallGraph::SCC &InitialC, LazyCallGraph::Node &N,
  427     LazyCallGraph &G, LazyCallGraph::SCC &InitialC, LazyCallGraph::Node &N,
  429   using Node = LazyCallGraph::Node;
  430   using Edge = LazyCallGraph::Edge;
  431   using SCC = LazyCallGraph::SCC;
  432   using RefSCC = LazyCallGraph::RefSCC;
  492   LazyCallGraph::visitReferences(Worklist, Visited, VisitRef);
lib/Analysis/LazyCallGraph.cpp
   62 static void addEdge(SmallVectorImpl<LazyCallGraph::Edge> &Edges,
   63                     DenseMap<LazyCallGraph::Node *, int> &EdgeIndexMap,
   64                     LazyCallGraph::Node &N, LazyCallGraph::Edge::Kind EK) {
   64                     LazyCallGraph::Node &N, LazyCallGraph::Edge::Kind EK) {
   72 LazyCallGraph::EdgeSequence &LazyCallGraph::Node::populateSlow() {
  108                       LazyCallGraph::Edge::Call);
  122             LazyCallGraph::Edge::Ref);
  130               LazyCallGraph::Edge::Ref);
  202             LazyCallGraph::Edge::Ref);
  206 LazyCallGraph::LazyCallGraph(LazyCallGraph &&G)
  214 LazyCallGraph &LazyCallGraph::operator=(LazyCallGraph &&G) {
  214 LazyCallGraph &LazyCallGraph::operator=(LazyCallGraph &&G) {
  267   LazyCallGraph &G = *OuterRefSCC->G;
  297 LazyCallGraph::RefSCC::RefSCC(LazyCallGraph &G) : G(&G) {}
  700 iterator_range<LazyCallGraph::RefSCC::iterator>
  964 SmallVector<LazyCallGraph::RefSCC *, 1>
 1127 SmallVector<LazyCallGraph::RefSCC *, 1>
 1556 LazyCallGraph::Node &LazyCallGraph::insertInto(Function &F, Node *&MappedN) {
 1745 static void printNode(raw_ostream &OS, LazyCallGraph::Node &N) {
 1747   for (LazyCallGraph::Edge &E : N.populate())
 1754 static void printSCC(raw_ostream &OS, LazyCallGraph::SCC &C) {
 1757   for (LazyCallGraph::Node &N : C)
 1761 static void printRefSCC(raw_ostream &OS, LazyCallGraph::RefSCC &C) {
 1764   for (LazyCallGraph::SCC &InnerC : C)
 1772   LazyCallGraph &G = AM.getResult<LazyCallGraphAnalysis>(M);
 1781   for (LazyCallGraph::RefSCC &C : G.postorder_ref_sccs())
 1790 static void printNodeDOT(raw_ostream &OS, LazyCallGraph::Node &N) {
 1793   for (LazyCallGraph::Edge &E : N.populate()) {
 1806   LazyCallGraph &G = AM.getResult<LazyCallGraphAnalysis>(M);
lib/Passes/PassBuilder.cpp
  276   PreservedAnalyses run(LazyCallGraph::SCC &C, CGSCCAnalysisManager &,
  277                         LazyCallGraph &, CGSCCUpdateResult &UR) {
  290   Result run(LazyCallGraph::SCC &, CGSCCAnalysisManager &, LazyCallGraph &G) {
  290   Result run(LazyCallGraph::SCC &, CGSCCAnalysisManager &, LazyCallGraph &G) {
lib/Passes/StandardInstrumentations.cpp
   46   if (any_isa<const LazyCallGraph::SCC *>(IR)) {
   47     const LazyCallGraph::SCC *C = any_cast<const LazyCallGraph::SCC *>(IR);
   47     const LazyCallGraph::SCC *C = any_cast<const LazyCallGraph::SCC *>(IR);
   48     for (const LazyCallGraph::Node &N : *C) {
   83 void printIR(const LazyCallGraph::SCC *C, StringRef Banner,
   86   for (const LazyCallGraph::Node &N : *C) {
  127   if (any_isa<const LazyCallGraph::SCC *>(IR)) {
  128     const LazyCallGraph::SCC *C = any_cast<const LazyCallGraph::SCC *>(IR);
  128     const LazyCallGraph::SCC *C = any_cast<const LazyCallGraph::SCC *>(IR);
lib/Transforms/IPO/ArgumentPromotion.cpp
 1020 PreservedAnalyses ArgumentPromotionPass::run(LazyCallGraph::SCC &C,
 1022                                              LazyCallGraph &CG,
 1030     for (LazyCallGraph::Node &N : C) {
lib/Transforms/IPO/FunctionAttrs.cpp
 1409 PreservedAnalyses PostOrderFunctionAttrsPass::run(LazyCallGraph::SCC &C,
 1411                                                   LazyCallGraph &CG,
 1427   for (LazyCallGraph::Node &N : C) {
lib/Transforms/IPO/Inliner.cpp
  873 PreservedAnalyses InlinerPass::run(LazyCallGraph::SCC &InitialC,
  874                                    CGSCCAnalysisManager &AM, LazyCallGraph &CG,
  978     LazyCallGraph::Node &N = *CG.lookup(F);
 1155       LazyCallGraph::Node &CalleeN = *CG.lookup(*InlinedCallee);
 1156       for (LazyCallGraph::Edge &E : *CalleeN)
 1166     LazyCallGraph::SCC *OldC = C;
unittests/Analysis/CGSCCPassManagerTest.cpp
   57   Result run(LazyCallGraph::SCC &C, CGSCCAnalysisManager &AM, LazyCallGraph &) {
   57   Result run(LazyCallGraph::SCC &C, CGSCCAnalysisManager &AM, LazyCallGraph &) {
  139   PreservedAnalyses run(LazyCallGraph::SCC &C, CGSCCAnalysisManager &AM,
  140                         LazyCallGraph &CG, CGSCCUpdateResult &UR) {
  144   std::function<PreservedAnalyses(LazyCallGraph::SCC &, CGSCCAnalysisManager &,
  145                                   LazyCallGraph &, CGSCCUpdateResult &)>
  294         for (LazyCallGraph::Node &N : C) {
  850     bool invalidate(LazyCallGraph::SCC &C, const PreservedAnalyses &PA,
  854                PAC.preservedSet<AllAnalysesOn<LazyCallGraph::SCC>>()) ||
  862   Result run(LazyCallGraph::SCC &C, CGSCCAnalysisManager &AM,
  863              LazyCallGraph &CG) {
  903     bool invalidate(LazyCallGraph::SCC &C, const PreservedAnalyses &PA,
  907                PAC.preservedSet<AllAnalysesOn<LazyCallGraph::SCC>>()) ||
  915   Result run(LazyCallGraph::SCC &C, CGSCCAnalysisManager &AM,
  916              LazyCallGraph &CG) {
  971     const LazyCallGraph &CG =
 1140       RequireAnalysisPass<TestDoublyIndirectSCCAnalysis, LazyCallGraph::SCC,
 1141                           CGSCCAnalysisManager, LazyCallGraph &,
unittests/Analysis/LazyCallGraphTest.cpp
  218 static LazyCallGraph buildCG(Module &M) {
  223   LazyCallGraph CG(M, GetTLI);
  230   LazyCallGraph CG = buildCG(*M);
  236   LazyCallGraph::Node &A1 = (I++)->getNode();
  238   LazyCallGraph::Node &A2 = (I++)->getNode();
  240   LazyCallGraph::Node &A3 = (I++)->getNode();
  242   LazyCallGraph::Node &B1 = (I++)->getNode();
  244   LazyCallGraph::Node &B2 = (I++)->getNode();
  246   LazyCallGraph::Node &B3 = (I++)->getNode();
  248   LazyCallGraph::Node &C1 = (I++)->getNode();
  250   LazyCallGraph::Node &C2 = (I++)->getNode();
  252   LazyCallGraph::Node &C3 = (I++)->getNode();
  254   LazyCallGraph::Node &D1 = (I++)->getNode();
  256   LazyCallGraph::Node &D2 = (I++)->getNode();
  258   LazyCallGraph::Node &D3 = (I++)->getNode();
  266   for (LazyCallGraph::Edge &E : A1.populate())
  281   for (LazyCallGraph::Edge &E : B1.populate())
  295   for (LazyCallGraph::Edge &E : C1.populate())
  323   LazyCallGraph::RefSCC &D = *J++;
  325   for (LazyCallGraph::Node &N : *D.begin())
  339   LazyCallGraph::RefSCC &C = *J++;
  341   for (LazyCallGraph::Node &N : *C.begin())
  355   LazyCallGraph::RefSCC &B = *J++;
  357   for (LazyCallGraph::Node &N : *B.begin())
  373   LazyCallGraph::RefSCC &A = *J++;
  375   for (LazyCallGraph::Node &N : *A.begin())
  418   LazyCallGraph CG = buildCG(*M);
  420   LazyCallGraph::Node &A = CG.get(lookupFunction(*M, "a"));
  421   LazyCallGraph::Node &B = CG.get(lookupFunction(*M, "b"));
  427   LazyCallGraph::Node &C = CG.get(lookupFunction(*M, "c"));
  429   CG.insertEdge(B, C, LazyCallGraph::Edge::Call);
  433   CG.insertEdge(C, B, LazyCallGraph::Edge::Call);
  437   CG.insertEdge(C, C, LazyCallGraph::Edge::Call);
  456   LazyCallGraph CG = buildCG(*M);
  460   LazyCallGraph::Node &D1 = CG.get(lookupFunction(*M, "d1"));
  461   LazyCallGraph::Node &A1 = CG.get(lookupFunction(*M, "a1"));
  464   CG.insertEdge(D1, A1, LazyCallGraph::Edge::Ref);
  473   LazyCallGraph::RefSCC &RC = *I++;
  478   LazyCallGraph::SCC &D = *J++;
  479   for (LazyCallGraph::Node &N : D)
  488   LazyCallGraph::SCC &B = *J++;
  489   for (LazyCallGraph::Node &N : B)
  498   LazyCallGraph::SCC &C = *J++;
  499   for (LazyCallGraph::Node &N : C)
  508   LazyCallGraph::SCC &A = *J++;
  509   for (LazyCallGraph::Node &N : A)
  553   LazyCallGraph CG = buildCG(*M);
  558   LazyCallGraph::RefSCC &RC = *I++;
  561   LazyCallGraph::Node &N1 = *CG.lookup(lookupFunction(*M, "f1"));
  562   LazyCallGraph::Node &N2 = *CG.lookup(lookupFunction(*M, "f2"));
  563   LazyCallGraph::Node &N3 = *CG.lookup(lookupFunction(*M, "f3"));
  564   LazyCallGraph::Node &N4 = *CG.lookup(lookupFunction(*M, "f4"));
  565   LazyCallGraph::Node &N5 = *CG.lookup(lookupFunction(*M, "f4"));
  574   LazyCallGraph::SCC &C = *RC.begin();
  604   LazyCallGraph CG = buildCG(*M);
  608   for (LazyCallGraph::RefSCC &RC : CG.postorder_ref_sccs())
  611   LazyCallGraph::Node &A = *CG.lookup(lookupFunction(*M, "a"));
  612   LazyCallGraph::Node &B = *CG.lookup(lookupFunction(*M, "b"));
  613   LazyCallGraph::Node &C = *CG.lookup(lookupFunction(*M, "c"));
  614   LazyCallGraph::Node &D = *CG.lookup(lookupFunction(*M, "d"));
  615   LazyCallGraph::SCC &AC = *CG.lookupSCC(A);
  616   LazyCallGraph::SCC &BC = *CG.lookupSCC(B);
  617   LazyCallGraph::SCC &CC = *CG.lookupSCC(C);
  618   LazyCallGraph::SCC &DC = *CG.lookupSCC(D);
  619   LazyCallGraph::RefSCC &ARC = *CG.lookupRefSCC(A);
  620   LazyCallGraph::RefSCC &BRC = *CG.lookupRefSCC(B);
  621   LazyCallGraph::RefSCC &CRC = *CG.lookupRefSCC(C);
  622   LazyCallGraph::RefSCC &DRC = *CG.lookupRefSCC(D);
  641   ARC.insertOutgoingEdge(A, D, LazyCallGraph::Edge::Call);
  643   const LazyCallGraph::Edge &NewE = (*A)[D];
  750   LazyCallGraph CG = buildCG(*M);
  754   for (LazyCallGraph::RefSCC &RC : CG.postorder_ref_sccs())
  757   LazyCallGraph::Node &A1 = *CG.lookup(lookupFunction(*M, "a1"));
  758   LazyCallGraph::Node &A2 = *CG.lookup(lookupFunction(*M, "a2"));
  759   LazyCallGraph::Node &A3 = *CG.lookup(lookupFunction(*M, "a3"));
  760   LazyCallGraph::Node &B1 = *CG.lookup(lookupFunction(*M, "b1"));
  761   LazyCallGraph::Node &B2 = *CG.lookup(lookupFunction(*M, "b2"));
  762   LazyCallGraph::Node &B3 = *CG.lookup(lookupFunction(*M, "b3"));
  763   LazyCallGraph::Node &C1 = *CG.lookup(lookupFunction(*M, "c1"));
  764   LazyCallGraph::Node &C2 = *CG.lookup(lookupFunction(*M, "c2"));
  765   LazyCallGraph::Node &C3 = *CG.lookup(lookupFunction(*M, "c3"));
  766   LazyCallGraph::Node &D1 = *CG.lookup(lookupFunction(*M, "d1"));
  767   LazyCallGraph::Node &D2 = *CG.lookup(lookupFunction(*M, "d2"));
  768   LazyCallGraph::Node &D3 = *CG.lookup(lookupFunction(*M, "d3"));
  769   LazyCallGraph::RefSCC &ARC = *CG.lookupRefSCC(A1);
  770   LazyCallGraph::RefSCC &BRC = *CG.lookupRefSCC(B1);
  771   LazyCallGraph::RefSCC &CRC = *CG.lookupRefSCC(C1);
  772   LazyCallGraph::RefSCC &DRC = *CG.lookupRefSCC(D1);
  798   for (LazyCallGraph::Edge E : *D2) {
  842   LazyCallGraph CG = buildCG(*M);
  846   for (LazyCallGraph::RefSCC &RC : CG.postorder_ref_sccs())
  849   LazyCallGraph::Node &A1 = *CG.lookup(lookupFunction(*M, "a1"));
  850   LazyCallGraph::Node &A2 = *CG.lookup(lookupFunction(*M, "a2"));
  851   LazyCallGraph::Node &A3 = *CG.lookup(lookupFunction(*M, "a3"));
  852   LazyCallGraph::Node &B1 = *CG.lookup(lookupFunction(*M, "b1"));
  853   LazyCallGraph::Node &B2 = *CG.lookup(lookupFunction(*M, "b2"));
  854   LazyCallGraph::Node &B3 = *CG.lookup(lookupFunction(*M, "b3"));
  855   LazyCallGraph::Node &C1 = *CG.lookup(lookupFunction(*M, "c1"));
  856   LazyCallGraph::Node &C2 = *CG.lookup(lookupFunction(*M, "c2"));
  857   LazyCallGraph::Node &C3 = *CG.lookup(lookupFunction(*M, "c3"));
  858   LazyCallGraph::Node &D1 = *CG.lookup(lookupFunction(*M, "d1"));
  859   LazyCallGraph::Node &D2 = *CG.lookup(lookupFunction(*M, "d2"));
  860   LazyCallGraph::Node &D3 = *CG.lookup(lookupFunction(*M, "d3"));
  861   LazyCallGraph::RefSCC &ARC = *CG.lookupRefSCC(A1);
  862   LazyCallGraph::RefSCC &BRC = *CG.lookupRefSCC(B1);
  863   LazyCallGraph::RefSCC &CRC = *CG.lookupRefSCC(C1);
  864   LazyCallGraph::RefSCC &DRC = *CG.lookupRefSCC(D1);
  890   for (LazyCallGraph::Edge E : *D2) {
  949   LazyCallGraph CG = buildCG(*M);
  953   for (LazyCallGraph::RefSCC &RC : CG.postorder_ref_sccs())
  956   LazyCallGraph::Node &A = *CG.lookup(lookupFunction(*M, "a"));
  957   LazyCallGraph::Node &B = *CG.lookup(lookupFunction(*M, "b"));
  958   LazyCallGraph::Node &C = *CG.lookup(lookupFunction(*M, "c"));
  959   LazyCallGraph::Node &D = *CG.lookup(lookupFunction(*M, "d"));
  960   LazyCallGraph::SCC &AC = *CG.lookupSCC(A);
  961   LazyCallGraph::SCC &BC = *CG.lookupSCC(B);
  962   LazyCallGraph::SCC &CC = *CG.lookupSCC(C);
  963   LazyCallGraph::SCC &DC = *CG.lookupSCC(D);
  964   LazyCallGraph::RefSCC &ARC = *CG.lookupRefSCC(A);
  965   LazyCallGraph::RefSCC &BRC = *CG.lookupRefSCC(B);
  966   LazyCallGraph::RefSCC &CRC = *CG.lookupRefSCC(C);
  967   LazyCallGraph::RefSCC &DRC = *CG.lookupRefSCC(D);
 1026   LazyCallGraph CG = buildCG(*M);
 1030   for (LazyCallGraph::RefSCC &RC : CG.postorder_ref_sccs())
 1033   LazyCallGraph::Node &A = *CG.lookup(lookupFunction(*M, "a"));
 1034   LazyCallGraph::Node &B = *CG.lookup(lookupFunction(*M, "b"));
 1035   LazyCallGraph::Node &C = *CG.lookup(lookupFunction(*M, "c"));
 1036   LazyCallGraph::Node &D = *CG.lookup(lookupFunction(*M, "d"));
 1037   LazyCallGraph::RefSCC &ARC = *CG.lookupRefSCC(A);
 1038   LazyCallGraph::RefSCC &BRC = *CG.lookupRefSCC(B);
 1039   LazyCallGraph::RefSCC &CRC = *CG.lookupRefSCC(C);
 1040   LazyCallGraph::RefSCC &DRC = *CG.lookupRefSCC(D);
 1088   LazyCallGraph CG = buildCG(*M);
 1092   for (LazyCallGraph::RefSCC &RC : CG.postorder_ref_sccs())
 1095   LazyCallGraph::Node &A1 = *CG.lookup(lookupFunction(*M, "a1"));
 1096   LazyCallGraph::Node &A2 = *CG.lookup(lookupFunction(*M, "a2"));
 1097   LazyCallGraph::Node &A3 = *CG.lookup(lookupFunction(*M, "a3"));
 1098   LazyCallGraph::Node &B1 = *CG.lookup(lookupFunction(*M, "b1"));
 1099   LazyCallGraph::Node &B2 = *CG.lookup(lookupFunction(*M, "b2"));
 1100   LazyCallGraph::Node &B3 = *CG.lookup(lookupFunction(*M, "b3"));
 1101   LazyCallGraph::Node &C1 = *CG.lookup(lookupFunction(*M, "c1"));
 1102   LazyCallGraph::Node &C2 = *CG.lookup(lookupFunction(*M, "c2"));
 1103   LazyCallGraph::Node &C3 = *CG.lookup(lookupFunction(*M, "c3"));
 1104   LazyCallGraph::Node &D1 = *CG.lookup(lookupFunction(*M, "d1"));
 1105   LazyCallGraph::Node &D2 = *CG.lookup(lookupFunction(*M, "d2"));
 1106   LazyCallGraph::Node &D3 = *CG.lookup(lookupFunction(*M, "d3"));
 1107   LazyCallGraph::RefSCC &ARC = *CG.lookupRefSCC(A1);
 1108   LazyCallGraph::RefSCC &BRC = *CG.lookupRefSCC(B1);
 1109   LazyCallGraph::RefSCC &CRC = *CG.lookupRefSCC(C1);
 1110   LazyCallGraph::RefSCC &DRC = *CG.lookupRefSCC(D1);
 1163   LazyCallGraph::SCC &DC = *CG.lookupSCC(D2);
 1167   LazyCallGraph::SCC &NewDC = *NewCs.begin();
 1172   LazyCallGraph::RefSCC &NewDRC = *NewRCs[0];
 1175   LazyCallGraph::RefSCC &D2RC = *NewRCs[1];
 1233   LazyCallGraph CG = buildCG(*M);
 1238   LazyCallGraph::RefSCC &RC = *I++;
 1241   LazyCallGraph::Node &A = *CG.lookup(lookupFunction(*M, "a"));
 1242   LazyCallGraph::Node &B = *CG.lookup(lookupFunction(*M, "b"));
 1243   LazyCallGraph::Node &C = *CG.lookup(lookupFunction(*M, "c"));
 1287   LazyCallGraph::SCC &AC = *CG.lookupSCC(A);
 1288   LazyCallGraph::SCC &CC = *CG.lookupSCC(C);
 1327   LazyCallGraph CG = buildCG(*M);
 1332   LazyCallGraph::RefSCC &RC = *I;
 1335   LazyCallGraph::Node &A = *CG.lookup(lookupFunction(*M, "a"));
 1336   LazyCallGraph::Node &B = *CG.lookup(lookupFunction(*M, "b"));
 1337   LazyCallGraph::Node &C = *CG.lookup(lookupFunction(*M, "c"));
 1344   SmallVector<LazyCallGraph::RefSCC *, 1> NewRCs =
 1363   LazyCallGraph::RefSCC &BCRC = *NewRCs[0];
 1364   LazyCallGraph::RefSCC &ARC = *NewRCs[1];
 1405   LazyCallGraph CG = buildCG(*M);
 1410   LazyCallGraph::RefSCC &RC = *I;
 1413   LazyCallGraph::Node &A = *CG.lookup(lookupFunction(*M, "a"));
 1414   LazyCallGraph::Node &B = *CG.lookup(lookupFunction(*M, "b"));
 1415   LazyCallGraph::Node &C = *CG.lookup(lookupFunction(*M, "c"));
 1425   SmallVector<LazyCallGraph::RefSCC *, 1> NewRCs =
 1429   LazyCallGraph::RefSCC &BRC = *NewRCs[0];
 1430   LazyCallGraph::RefSCC &ACRC = *NewRCs[1];
 1472   LazyCallGraph CG = buildCG(*M);
 1477   LazyCallGraph::RefSCC &RC = *I;
 1480   LazyCallGraph::SCC &C = *RC.begin();
 1483   LazyCallGraph::Node &AN = *CG.lookup(lookupFunction(*M, "a"));
 1484   LazyCallGraph::Node &BN = *CG.lookup(lookupFunction(*M, "b"));
 1485   LazyCallGraph::Node &CN = *CG.lookup(lookupFunction(*M, "c"));
 1494   SmallVector<LazyCallGraph::RefSCC *, 1> NewRCs =
 1549   LazyCallGraph CG = buildCG(*M);
 1554   LazyCallGraph::RefSCC &RC = *I++;
 1558   LazyCallGraph::SCC &AC = *RC.begin();
 1560   LazyCallGraph::Node &AN = *CG.lookup(lookupFunction(*M, "a"));
 1561   LazyCallGraph::Node &BN = *CG.lookup(lookupFunction(*M, "b"));
 1562   LazyCallGraph::Node &CN = *CG.lookup(lookupFunction(*M, "c"));
 1583   LazyCallGraph::SCC &BC = *CG.lookupSCC(BN);
 1600   LazyCallGraph::SCC &CC = *CG.lookupSCC(CN);
 1642   LazyCallGraph CG = buildCG(*M);
 1647   LazyCallGraph::RefSCC &RC = *I++;
 1650   LazyCallGraph::Node &A = *CG.lookup(lookupFunction(*M, "a"));
 1651   LazyCallGraph::Node &B = *CG.lookup(lookupFunction(*M, "b"));
 1652   LazyCallGraph::Node &C = *CG.lookup(lookupFunction(*M, "c"));
 1653   LazyCallGraph::Node &D = *CG.lookup(lookupFunction(*M, "d"));
 1654   LazyCallGraph::SCC &AC = *CG.lookupSCC(A);
 1655   LazyCallGraph::SCC &BC = *CG.lookupSCC(B);
 1656   LazyCallGraph::SCC &CC = *CG.lookupSCC(C);
 1657   LazyCallGraph::SCC &DC = *CG.lookupSCC(D);
 1754   LazyCallGraph CG = buildCG(*M);
 1759   LazyCallGraph::RefSCC &RC = *I++;
 1762   LazyCallGraph::Node &A = *CG.lookup(lookupFunction(*M, "a"));
 1763   LazyCallGraph::Node &B1 = *CG.lookup(lookupFunction(*M, "b1"));
 1764   LazyCallGraph::Node &B2 = *CG.lookup(lookupFunction(*M, "b2"));
 1765   LazyCallGraph::Node &B3 = *CG.lookup(lookupFunction(*M, "b3"));
 1766   LazyCallGraph::Node &C1 = *CG.lookup(lookupFunction(*M, "c1"));
 1767   LazyCallGraph::Node &C2 = *CG.lookup(lookupFunction(*M, "c2"));
 1768   LazyCallGraph::Node &C3 = *CG.lookup(lookupFunction(*M, "c3"));
 1769   LazyCallGraph::Node &D = *CG.lookup(lookupFunction(*M, "d"));
 1770   LazyCallGraph::SCC &AC = *CG.lookupSCC(A);
 1771   LazyCallGraph::SCC &B1C = *CG.lookupSCC(B1);
 1772   LazyCallGraph::SCC &B2C = *CG.lookupSCC(B2);
 1773   LazyCallGraph::SCC &B3C = *CG.lookupSCC(B3);
 1774   LazyCallGraph::SCC &C1C = *CG.lookupSCC(C1);
 1775   LazyCallGraph::SCC &C2C = *CG.lookupSCC(C2);
 1776   LazyCallGraph::SCC &C3C = *CG.lookupSCC(C3);
 1777   LazyCallGraph::SCC &DC = *CG.lookupSCC(D);
 1884   LazyCallGraph CG = buildCG(*M);
 1889   LazyCallGraph::RefSCC &RC = *I++;
 1892   LazyCallGraph::Node &A = *CG.lookup(lookupFunction(*M, "a"));
 1893   LazyCallGraph::Node &B = *CG.lookup(lookupFunction(*M, "b"));
 1894   LazyCallGraph::Node &C = *CG.lookup(lookupFunction(*M, "c"));
 1895   LazyCallGraph::Node &D = *CG.lookup(lookupFunction(*M, "d"));
 1896   LazyCallGraph::Node &E = *CG.lookup(lookupFunction(*M, "e"));
 1897   LazyCallGraph::Node &F = *CG.lookup(lookupFunction(*M, "f"));
 1898   LazyCallGraph::Node &G = *CG.lookup(lookupFunction(*M, "g"));
 1899   LazyCallGraph::SCC &AC = *CG.lookupSCC(A);
 1900   LazyCallGraph::SCC &BC = *CG.lookupSCC(B);
 1901   LazyCallGraph::SCC &CC = *CG.lookupSCC(C);
 1902   LazyCallGraph::SCC &DC = *CG.lookupSCC(D);
 1903   LazyCallGraph::SCC &EC = *CG.lookupSCC(E);
 1904   LazyCallGraph::SCC &FC = *CG.lookupSCC(F);
 1905   LazyCallGraph::SCC &GC = *CG.lookupSCC(G);
 1967   LazyCallGraph CG = buildCG(*M);
 1971   LazyCallGraph::RefSCC &FRC = *I++;
 1972   LazyCallGraph::RefSCC &GRC = *I++;
 1975   LazyCallGraph::Node &F = *CG.lookup(lookupFunction(*M, "f"));
 1976   LazyCallGraph::Node &G = *CG.lookup(lookupFunction(*M, "g"));
 1995   LazyCallGraph CG = buildCG(*M);
 1999   LazyCallGraph::RefSCC &GRC = *I++;
 2000   LazyCallGraph::RefSCC &FRC = *I++;
 2003   LazyCallGraph::Node &F = *CG.lookup(lookupFunction(*M, "f"));
 2004   LazyCallGraph::Node &G = *CG.lookup(lookupFunction(*M, "g"));
 2044   LazyCallGraph CG = buildCG(*M);
 2049   LazyCallGraph::RefSCC &RC1 = *I++;
 2050   LazyCallGraph::RefSCC &RC2 = *I++;
 2054   LazyCallGraph::SCC &C1 = RC1[0];
 2055   LazyCallGraph::SCC &C2 = RC1[1];
 2057   LazyCallGraph::Node &AN = *CG.lookup(lookupFunction(*M, "a"));
 2058   LazyCallGraph::Node &BN = *CG.lookup(lookupFunction(*M, "b"));
 2059   LazyCallGraph::Node &CN = *CG.lookup(lookupFunction(*M, "c"));
 2060   LazyCallGraph::Node &DN = *CG.lookup(lookupFunction(*M, "d"));
 2122   LazyCallGraph CG = buildCG(*M);
 2125   LazyCallGraph::Node &AN = CG.get(lookupFunction(*M, "a"));
 2126   LazyCallGraph::Node &BN = CG.get(lookupFunction(*M, "b"));
 2127   LazyCallGraph::Node &CN = CG.get(lookupFunction(*M, "c"));
 2128   LazyCallGraph::Node &DN = CG.get(lookupFunction(*M, "d"));
 2129   LazyCallGraph::Node &DeadN = CG.get(lookupFunction(*M, "dead"));
 2135   CG.insertEdge(AN, DeadN, LazyCallGraph::Edge::Ref);
 2136   CG.insertEdge(BN, DeadN, LazyCallGraph::Edge::Ref);
 2137   CG.insertEdge(CN, DeadN, LazyCallGraph::Edge::Ref);
 2138   CG.insertEdge(DN, DeadN, LazyCallGraph::Edge::Ref);
 2143   LazyCallGraph::RefSCC &DeadRC = *I++;
 2144   LazyCallGraph::RefSCC &RC1 = *I++;
 2145   LazyCallGraph::RefSCC &RC2 = *I++;
 2149   LazyCallGraph::SCC &C1 = RC1[0];
 2150   LazyCallGraph::SCC &C2 = RC1[1];
unittests/IR/PassBuilderCallbacksTest.cpp
  187     : MockPassHandleBase<MockPassHandle<LazyCallGraph::SCC>, LazyCallGraph::SCC,
  187     : MockPassHandleBase<MockPassHandle<LazyCallGraph::SCC>, LazyCallGraph::SCC,
  188                          CGSCCAnalysisManager, LazyCallGraph &,
  194   static void invalidateSCC(LazyCallGraph::SCC &C, CGSCCAnalysisManager &,
  195                             LazyCallGraph &, CGSCCUpdateResult &UR) {
  242     : MockAnalysisHandleBase<MockAnalysisHandle<LazyCallGraph::SCC>,
  243                              LazyCallGraph::SCC, CGSCCAnalysisManager,
  244                              LazyCallGraph &> {
  285   if (any_isa<const LazyCallGraph::SCC *>(WrappedIR))
  286     return any_cast<const LazyCallGraph::SCC *>(WrappedIR)->getName();
  396                                              ExtraAnalysisArgTs &&... Args) {
usr/include/c++/7.4.0/bits/move.h
   72     constexpr _Tp&&
   73     forward(typename std::remove_reference<_Tp>::type& __t) noexcept
   83     constexpr _Tp&&
   84     forward(typename std::remove_reference<_Tp>::type&& __t) noexcept
   98     move(_Tp&& __t) noexcept
usr/include/c++/7.4.0/bits/std_function.h
  299       _M_invoke(const _Any_data& __functor, _ArgTypes&&... __args)
  628       using _Invoker_type = _Res (*)(const _Any_data&, _ArgTypes&&...);
usr/include/c++/7.4.0/bits/unique_ptr.h
  825     { return unique_ptr<_Tp>(new _Tp(std::forward<_Args>(__args)...)); }
usr/include/c++/7.4.0/tuple
  125       constexpr _Head_base(const _Head& __h)
  132         constexpr _Head_base(_UHead&& __h)
  159       static constexpr _Head&
  162       static constexpr const _Head&
  194       static constexpr _Head&
  197       static constexpr const _Head&
  210       constexpr _Tuple_impl(const _Head& __head, const _Tail&... __tail)
  210       constexpr _Tuple_impl(const _Head& __head, const _Tail&... __tail)
  216         constexpr _Tuple_impl(_UHead&& __head, _UTail&&... __tail)
  216         constexpr _Tuple_impl(_UHead&& __head, _UTail&&... __tail)
  242 	_Tuple_impl(allocator_arg_t __tag, const _Alloc& __a)
  248 		    const _Head& __head, const _Tail&... __tail)
  248 		    const _Head& __head, const _Tail&... __tail)
  262         _Tuple_impl(allocator_arg_t __tag, const _Alloc& __a,
  268 	_Tuple_impl(allocator_arg_t __tag, const _Alloc& __a,
  350       static constexpr _Head&
  353       static constexpr const _Head&
  360       constexpr _Tuple_impl(const _Head& __head)
  365         constexpr _Tuple_impl(_UHead&& __head)
  390 		    const _Head& __head)
  473       return __and_<is_constructible<_Elements, const _UElements&>...>::value;
  479       return __and_<is_convertible<const _UElements&, _Elements>...>::value;
  485       return __and_<is_constructible<_Elements, _UElements&&>...>::value;
  491       return __and_<is_convertible<_UElements&&, _Elements>...>::value;
  608         constexpr tuple(const _Elements&... __elements)
  619       explicit constexpr tuple(const _Elements&... __elements)
  646         constexpr tuple(_UElements&&... __elements)
  730 	      const _Elements&... __elements)
  741                        const _Elements&... __elements)
  947         constexpr tuple(const _T1& __a1, const _T2& __a2)
  956         explicit constexpr tuple(const _T1& __a1, const _T2& __a2)
  971         constexpr tuple(_U1&& __a1, _U2&& __a2)
 1078 	      const _T1& __a1, const _T2& __a2)
 1090 	      const _T1& __a1, const _T2& __a2)
 1302     constexpr _Head&
 1307     constexpr const _Head&
 1313     constexpr __tuple_element_t<__i, tuple<_Elements...>>&
 1319     constexpr const __tuple_element_t<__i, tuple<_Elements...>>&
 1325     constexpr __tuple_element_t<__i, tuple<_Elements...>>&&
usr/include/c++/7.4.0/type_traits
  215     : public __is_void_helper<typename remove_cv<_Tp>::type>::type
  581     : public __or_<is_lvalue_reference<_Tp>,
  582                    is_rvalue_reference<_Tp>>::type
  601     : public __not_<__or_<is_function<_Tp>, is_reference<_Tp>,
  601     : public __not_<__or_<is_function<_Tp>, is_reference<_Tp>,
  602                           is_void<_Tp>>>::type
  638     : public __or_<is_object<_Tp>, is_reference<_Tp>>::type
  638     : public __or_<is_object<_Tp>, is_reference<_Tp>>::type
 1246     : public is_nothrow_constructible<_Tp, _Tp&&>
 1554     { typedef _Tp     type; };
 1563     { typedef _Tp     type; };
 1574       remove_const<typename remove_volatile<_Tp>::type>::type     type;
 1629     { typedef _Tp   type; };
 1633     { typedef _Tp   type; };
 1659     { typedef _Tp&&   type; };
 1664     : public __add_rvalue_reference_helper<_Tp>
 2104     { typedef typename remove_cv<_Up>::type __type; };
 2253     inline typename add_rvalue_reference<_Tp>::type
utils/unittest/googletest/include/gtest/gtest-printers.h
  140   static void PrintValue(const T& value, ::std::ostream* os) {
  205     ::std::basic_ostream<Char, CharTraits>& os, const T& x) {
  206   TypeWithoutFormatter<T,
  207       (internal::IsAProtocolMessage<T>::value ? kProtobuf :
  208        internal::ImplicitlyConvertible<const T&, internal::BiggestInt>::value ?
  223 void DefaultPrintNonContainerTo(const T& value, ::std::ostream* os) {
  366 void UniversalPrint(const T& value, ::std::ostream* os);
  373                     const C& container, ::std::ostream* os) {
  439                     const T& value, ::std::ostream* os) {
  455 void PrintTo(const T& value, ::std::ostream* os) {
  478   DefaultPrintTo(IsContainerTest<T>(0), is_pointer<T>(), value, os);
  699   static void Print(const T& value, ::std::ostream* os) {
  765   static void Print(const T& value, ::std::ostream* os) {
  856   typedef T T1;
utils/unittest/googletest/include/gtest/internal/custom/raw-ostream.h
   29   static const T& printable(const T& V) { return V; }
   29   static const T& printable(const T& V) { return V; }
   35 auto printable(const T &V) -> decltype(StreamSwitch<T>::printable(V)) {
   35 auto printable(const T &V) -> decltype(StreamSwitch<T>::printable(V)) {
   37   return StreamSwitch<T>::printable(V);