The definition of 'false' here was already pretty vague and debatable,
and I'm about to add another potential 'false' that would actually make
much more sense in a bool operator. Especially given how rarely this is
used, a nicely named method seems better.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@310165
91177308-0d34-0410-b5e6-
96231b3b80d8
bool operator!=(const Node &N) const { return !operator==(N); }
/// Tests whether the node has been populated with edges.
- operator bool() const { return Edges.hasValue(); }
+ bool isPopulated() const { return Edges.hasValue(); }
// We allow accessing the edges by dereferencing or using the arrow
// operator, essentially wrapping the internal optional.
assert(N->LowLink == -1 &&
"Must set low link to -1 when adding a node to an SCC!");
for (Edge &E : **N)
- assert(E.getNode() && "Can't have an unpopulated node!");
+ assert(E.getNode().isPopulated() && "Can't have an unpopulated node!");
}
}
#endif
for (RefSCC &ParentRC : RC.parents())
for (SCC &ParentC : ParentRC)
for (Node &ParentN : ParentC)
- if (ParentN)
+ if (ParentN.isPopulated())
ParentN->removeEdgeInternal(N);
// Now remove this RefSCC from any parents sets and the leaf list.