[PATCH] D24219: [LCG] Redesign the lazy post-order iteration mechanism for the LazyCallGraph to support repeated, stable iterations, even in the face of graph updates.

Easwaran Raman via llvm-commits llvm-commits at lists.llvm.org
Wed Sep 7 17:56:56 PDT 2016


eraman added a subscriber: eraman.

================
Comment at: lib/Analysis/LazyCallGraph.cpp:804
@@ -803,2 +803,3 @@
 LazyCallGraph::RefSCC::insertIncomingRefEdge(Node &SourceN, Node &TargetN) {
   assert(G->lookupRefSCC(TargetN) == this && "Target must be in this SCC.");
+  RefSCC &SourceC = *G->lookupRefSCC(SourceN);
----------------
Nit: RefSCC in place of SCC in assert messages here and below.

================
Comment at: lib/Analysis/LazyCallGraph.cpp:830
@@ +829,3 @@
+        for (Node &N : C)
+          for (Edge &E : N.calls()) {
+            assert(E.getNode() && "Must have formed a node within an SCC!");
----------------
Why are ref edges excluded here?

================
Comment at: lib/Analysis/LazyCallGraph.cpp:906
@@ -919,3 +905,3 @@
       for (Node &N : InnerC) {
         G->SCCMap[&N] = &InnerC;
         for (Edge &E : N) {
----------------
The node to SCC mapping doesn't change right?


https://reviews.llvm.org/D24219





More information about the llvm-commits mailing list