[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