[Mlir-commits] [mlir] d58c793 - Pass: Do not use llvm::array_pod_sort to sort OpPassManagers.
llvmlistbot at llvm.org
llvmlistbot at llvm.org
Thu Mar 6 11:20:26 PST 2025
Author: Peter Collingbourne
Date: 2025-03-06T11:20:23-08:00
New Revision: d58c793673095195c46366fe19f151a68a029820
URL: https://github.com/llvm/llvm-project/commit/d58c793673095195c46366fe19f151a68a029820
DIFF: https://github.com/llvm/llvm-project/commit/d58c793673095195c46366fe19f151a68a029820.diff
LOG: Pass: Do not use llvm::array_pod_sort to sort OpPassManagers.
OpPassManager contains a field of type std::unique_ptr which
is not guaranteed to be trivially relocatable so we cannot use
llvm::array_pod_sort.
Reviewers: River707, joker-eph
Reviewed By: joker-eph
Pull Request: https://github.com/llvm/llvm-project/pull/129968
Added:
Modified:
mlir/lib/Pass/Pass.cpp
Removed:
################################################################################
diff --git a/mlir/lib/Pass/Pass.cpp b/mlir/lib/Pass/Pass.cpp
index 6fd51c1e3cb53..67c18189b85e0 100644
--- a/mlir/lib/Pass/Pass.cpp
+++ b/mlir/lib/Pass/Pass.cpp
@@ -678,16 +678,16 @@ LogicalResult OpToOpPassAdaptor::tryMergeInto(MLIRContext *ctx,
mgrs.clear();
// After coalescing, sort the pass managers within rhs by name.
- auto compareFn = [](const OpPassManager *lhs, const OpPassManager *rhs) {
+ auto compareFn = [](const OpPassManager &lhs, const OpPassManager &rhs) {
// Order op-specific pass managers first and op-agnostic pass managers last.
- if (std::optional<StringRef> lhsName = lhs->getOpName()) {
- if (std::optional<StringRef> rhsName = rhs->getOpName())
- return lhsName->compare(*rhsName);
- return -1; // lhs(op-specific) < rhs(op-agnostic)
+ if (std::optional<StringRef> lhsName = lhs.getOpName()) {
+ if (std::optional<StringRef> rhsName = rhs.getOpName())
+ return *lhsName < *rhsName;
+ return true; // lhs(op-specific) < rhs(op-agnostic)
}
- return 1; // lhs(op-agnostic) > rhs(op-specific)
+ return false; // lhs(op-agnostic) > rhs(op-specific)
};
- llvm::array_pod_sort(rhs.mgrs.begin(), rhs.mgrs.end(), compareFn);
+ std::sort(rhs.mgrs.begin(), rhs.mgrs.end(), compareFn);
return success();
}
More information about the Mlir-commits
mailing list