[llvm] [LoopInterchange] Use ArrayRef in more places (NFC) (PR #146077)
via llvm-commits
llvm-commits at lists.llvm.org
Fri Jun 27 06:46:16 PDT 2025
llvmbot wrote:
<!--LLVM PR SUMMARY COMMENT-->
@llvm/pr-subscribers-llvm-transforms
Author: Ramkumar Ramachandra (artagnon)
<details>
<summary>Changes</summary>
---
Full diff: https://github.com/llvm/llvm-project/pull/146077.diff
1 Files Affected:
- (modified) llvm/lib/Transforms/Scalar/LoopInterchange.cpp (+8-10)
``````````diff
diff --git a/llvm/lib/Transforms/Scalar/LoopInterchange.cpp b/llvm/lib/Transforms/Scalar/LoopInterchange.cpp
index 9e3b4b82cc454..7ea6b72c213a6 100644
--- a/llvm/lib/Transforms/Scalar/LoopInterchange.cpp
+++ b/llvm/lib/Transforms/Scalar/LoopInterchange.cpp
@@ -244,11 +244,9 @@ static void interChangeDependencies(CharMatrix &DepMatrix, unsigned FromIndx,
// [Theorem] A permutation of the loops in a perfect nest is legal if and only
// if the direction matrix, after the same permutation is applied to its
// columns, has no ">" direction as the leftmost non-"=" direction in any row.
-static std::optional<bool> isLexicographicallyPositive(std::vector<char> &DV,
- unsigned Begin,
- unsigned End) {
- ArrayRef<char> DVRef(DV);
- for (unsigned char Direction : DVRef.slice(Begin, End - Begin)) {
+static std::optional<bool>
+isLexicographicallyPositive(ArrayRef<char> DV, unsigned Begin, unsigned End) {
+ for (unsigned char Direction : DV.slice(Begin, End - Begin)) {
if (Direction == '<')
return true;
if (Direction == '>' || Direction == '*')
@@ -309,18 +307,18 @@ static void populateWorklist(Loop &L, LoopVector &LoopList) {
LoopList.push_back(CurrentLoop);
}
-static bool hasSupportedLoopDepth(SmallVectorImpl<Loop *> &LoopList,
+static bool hasSupportedLoopDepth(ArrayRef<Loop *> LoopList,
OptimizationRemarkEmitter &ORE) {
unsigned LoopNestDepth = LoopList.size();
if (LoopNestDepth < MinLoopNestDepth || LoopNestDepth > MaxLoopNestDepth) {
LLVM_DEBUG(dbgs() << "Unsupported depth of loop nest " << LoopNestDepth
<< ", the supported range is [" << MinLoopNestDepth
<< ", " << MaxLoopNestDepth << "].\n");
- Loop **OuterLoop = LoopList.begin();
+ Loop *OuterLoop = LoopList.front();
ORE.emit([&]() {
return OptimizationRemarkMissed(DEBUG_TYPE, "UnsupportedLoopNestDepth",
- (*OuterLoop)->getStartLoc(),
- (*OuterLoop)->getHeader())
+ OuterLoop->getStartLoc(),
+ OuterLoop->getHeader())
<< "Unsupported depth of loop nest, the supported range is ["
<< std::to_string(MinLoopNestDepth) << ", "
<< std::to_string(MaxLoopNestDepth) << "].\n";
@@ -377,7 +375,7 @@ class LoopInterchangeLegality {
return OuterInnerReductions;
}
- const SmallVectorImpl<PHINode *> &getInnerLoopInductions() const {
+ const ArrayRef<PHINode *> getInnerLoopInductions() const {
return InnerLoopInductions;
}
``````````
</details>
https://github.com/llvm/llvm-project/pull/146077
More information about the llvm-commits
mailing list