[PATCH] D74801: [ADT] SCCIterator: Change hasLoop() to hasCycle()
Stefanos Baziotis via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Tue Feb 18 15:15:52 PST 2020
baziotis created this revision.
baziotis added reviewers: dexonsmith, lattner, timshen, chandlerc.
Herald added subscribers: llvm-commits, cfe-commits, arphaman, hiraditya.
Herald added projects: clang, LLVM.
Not a super important change but yesterday I had to look in this function and initially it was misleading. I thought it tests if there's a loop that satisfies the criteria in the loop terminology (https://llvm.org/docs/LoopTerminology.html). Loop is a special term I think so maybe the term cycle is better.
P.S.: I hope I added the correct reviewers, which were those I found in the git blame.
Repository:
rG LLVM Github Monorepo
https://reviews.llvm.org/D74801
Files:
clang-tools-extra/clang-tidy/misc/NoRecursionCheck.cpp
llvm/include/llvm/ADT/SCCIterator.h
llvm/lib/IR/ModuleSummaryIndex.cpp
llvm/tools/opt/PrintSCC.cpp
Index: llvm/tools/opt/PrintSCC.cpp
===================================================================
--- llvm/tools/opt/PrintSCC.cpp
+++ llvm/tools/opt/PrintSCC.cpp
@@ -79,8 +79,8 @@
for (std::vector<BasicBlock*>::const_iterator I = nextSCC.begin(),
E = nextSCC.end(); I != E; ++I)
errs() << (*I)->getName() << ", ";
- if (nextSCC.size() == 1 && SCCI.hasLoop())
- errs() << " (Has self-loop).";
+ if (nextSCC.size() == 1 && SCCI.hasCycle())
+ errs() << " (Has self-cycle).";
}
errs() << "\n";
@@ -101,8 +101,8 @@
E = nextSCC.end(); I != E; ++I)
errs() << ((*I)->getFunction() ? (*I)->getFunction()->getName()
: "external node") << ", ";
- if (nextSCC.size() == 1 && SCCI.hasLoop())
- errs() << " (Has self-loop).";
+ if (nextSCC.size() == 1 && SCCI.hasCycle())
+ errs() << " (Has self-cycle).";
}
errs() << "\n";
Index: llvm/lib/IR/ModuleSummaryIndex.cpp
===================================================================
--- llvm/lib/IR/ModuleSummaryIndex.cpp
+++ llvm/lib/IR/ModuleSummaryIndex.cpp
@@ -300,7 +300,7 @@
if (V.getSummaryList().size())
F = cast<FunctionSummary>(V.getSummaryList().front().get());
O << " " << (F == nullptr ? "External" : "") << " " << utostr(V.getGUID())
- << (I.hasLoop() ? " (has loop)" : "") << "\n";
+ << (I.hasCycle() ? " (has cycle)" : "") << "\n";
}
O << "}\n";
}
Index: llvm/include/llvm/ADT/SCCIterator.h
===================================================================
--- llvm/include/llvm/ADT/SCCIterator.h
+++ llvm/include/llvm/ADT/SCCIterator.h
@@ -124,11 +124,11 @@
return CurrentSCC;
}
- /// Test if the current SCC has a loop.
+ /// Test if the current SCC has a cycle.
///
/// If the SCC has more than one node, this is trivially true. If not, it may
- /// still contain a loop if the node has an edge back to itself.
- bool hasLoop() const;
+ /// still contain a cycle if the node has an edge back to itself.
+ bool hasCycle() const;
/// This informs the \c scc_iterator that the specified \c Old node
/// has been deleted, and \c New is to be used in its place.
@@ -212,7 +212,7 @@
}
template <class GraphT, class GT>
-bool scc_iterator<GraphT, GT>::hasLoop() const {
+bool scc_iterator<GraphT, GT>::hasCycle() const {
assert(!CurrentSCC.empty() && "Dereferencing END SCC iterator!");
if (CurrentSCC.size() > 1)
return true;
Index: clang-tools-extra/clang-tidy/misc/NoRecursionCheck.cpp
===================================================================
--- clang-tools-extra/clang-tidy/misc/NoRecursionCheck.cpp
+++ clang-tools-extra/clang-tidy/misc/NoRecursionCheck.cpp
@@ -265,7 +265,7 @@
for (llvm::scc_iterator<CallGraph *> SCCI = llvm::scc_begin(&CG),
SCCE = llvm::scc_end(&CG);
SCCI != SCCE; ++SCCI) {
- if (!SCCI.hasLoop()) // We only care about cycles, not standalone nodes.
+ if (!SCCI.hasCycle()) // We only care about cycles, not standalone nodes.
continue;
handleSCC(*SCCI);
}
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D74801.245289.patch
Type: text/x-patch
Size: 3152 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20200218/f3af205e/attachment.bin>
More information about the llvm-commits
mailing list