[Mlir-commits] [mlir] [MLIR] Fix dangling llvm::function_ref references (PR #114950)
Haojian Wu
llvmlistbot at llvm.org
Tue Nov 5 08:30:03 PST 2024
https://github.com/hokein updated https://github.com/llvm/llvm-project/pull/114950
>From 19aaf618402a2073f7939c3021f3889664952371 Mon Sep 17 00:00:00 2001
From: Haojian Wu <hokein.wu at gmail.com>
Date: Tue, 5 Nov 2024 09:11:59 +0100
Subject: [PATCH 1/2] [MLIR] Fix dangling llvm::function_ref references
---
.../mlir/Dialect/Bufferization/Transforms/Passes.h | 2 +-
mlir/lib/Dialect/SCF/IR/SCF.cpp | 11 +++++------
mlir/lib/Interfaces/Utils/InferIntRangeCommon.cpp | 10 +++++-----
3 files changed, 11 insertions(+), 12 deletions(-)
diff --git a/mlir/include/mlir/Dialect/Bufferization/Transforms/Passes.h b/mlir/include/mlir/Dialect/Bufferization/Transforms/Passes.h
index 72abb5b3f1f94e..ab9a48f3473c27 100644
--- a/mlir/include/mlir/Dialect/Bufferization/Transforms/Passes.h
+++ b/mlir/include/mlir/Dialect/Bufferization/Transforms/Passes.h
@@ -163,7 +163,7 @@ struct BufferResultsToOutParamsOpts {
// Filter function; returns true if the function should be converted.
// Defaults to true, i.e. all functions are converted.
- llvm::function_ref<bool(func::FuncOp *)> filterFn = [](func::FuncOp *func) {
+ std::function<bool(func::FuncOp *)> filterFn = [](func::FuncOp *func) {
return true;
};
diff --git a/mlir/lib/Dialect/SCF/IR/SCF.cpp b/mlir/lib/Dialect/SCF/IR/SCF.cpp
index 6678878215c11f..a07593be2fc5eb 100644
--- a/mlir/lib/Dialect/SCF/IR/SCF.cpp
+++ b/mlir/lib/Dialect/SCF/IR/SCF.cpp
@@ -1084,13 +1084,12 @@ struct ForOpTensorCastFolder : public OpRewritePattern<ForOp> {
continue;
// Create a new ForOp with that iter operand replaced.
- ValueTypeCastFnTy castFn = [](OpBuilder &b, Location loc, Type type,
- Value source) {
- return b.create<tensor::CastOp>(loc, type, source);
- };
rewriter.replaceOp(
- op, replaceAndCastForOpIterArg(rewriter, op, iterOpOperand,
- incomingCast.getSource(), castFn));
+ op, replaceAndCastForOpIterArg(
+ rewriter, op, iterOpOperand, incomingCast.getSource(),
+ [](OpBuilder &b, Location loc, Type type, Value source) {
+ return b.create<tensor::CastOp>(loc, type, source);
+ }));
return success();
}
return failure();
diff --git a/mlir/lib/Interfaces/Utils/InferIntRangeCommon.cpp b/mlir/lib/Interfaces/Utils/InferIntRangeCommon.cpp
index a2acf3e732adab..0639a1087a4a4f 100644
--- a/mlir/lib/Interfaces/Utils/InferIntRangeCommon.cpp
+++ b/mlir/lib/Interfaces/Utils/InferIntRangeCommon.cpp
@@ -319,7 +319,7 @@ ConstantIntRanges
mlir::intrange::inferCeilDivU(ArrayRef<ConstantIntRanges> argRanges) {
const ConstantIntRanges &lhs = argRanges[0], &rhs = argRanges[1];
- DivisionFixupFn ceilDivUIFix =
+ auto ceilDivUIFix =
[](const APInt &lhs, const APInt &rhs,
const APInt &result) -> std::optional<APInt> {
if (!lhs.urem(rhs).isZero()) {
@@ -368,7 +368,7 @@ ConstantIntRanges
mlir::intrange::inferCeilDivS(ArrayRef<ConstantIntRanges> argRanges) {
const ConstantIntRanges &lhs = argRanges[0], &rhs = argRanges[1];
- DivisionFixupFn ceilDivSIFix =
+ auto ceilDivSIFix =
[](const APInt &lhs, const APInt &rhs,
const APInt &result) -> std::optional<APInt> {
if (!lhs.srem(rhs).isZero() && lhs.isNonNegative() == rhs.isNonNegative()) {
@@ -386,7 +386,7 @@ ConstantIntRanges
mlir::intrange::inferFloorDivS(ArrayRef<ConstantIntRanges> argRanges) {
const ConstantIntRanges &lhs = argRanges[0], &rhs = argRanges[1];
- DivisionFixupFn floorDivSIFix =
+ auto floorDivSIFix =
[](const APInt &lhs, const APInt &rhs,
const APInt &result) -> std::optional<APInt> {
if (!lhs.srem(rhs).isZero() && lhs.isNonNegative() != rhs.isNonNegative()) {
@@ -603,7 +603,7 @@ ConstantIntRanges
mlir::intrange::inferShrS(ArrayRef<ConstantIntRanges> argRanges) {
const ConstantIntRanges &lhs = argRanges[0], &rhs = argRanges[1];
- ConstArithFn ashr = [](const APInt &l,
+ auto ashr = [](const APInt &l,
const APInt &r) -> std::optional<APInt> {
return r.uge(r.getBitWidth()) ? std::optional<APInt>() : l.ashr(r);
};
@@ -616,7 +616,7 @@ ConstantIntRanges
mlir::intrange::inferShrU(ArrayRef<ConstantIntRanges> argRanges) {
const ConstantIntRanges &lhs = argRanges[0], &rhs = argRanges[1];
- ConstArithFn lshr = [](const APInt &l,
+ auto lshr = [](const APInt &l,
const APInt &r) -> std::optional<APInt> {
return r.uge(r.getBitWidth()) ? std::optional<APInt>() : l.lshr(r);
};
>From bfb9eb16a7d1c1dd641455836ebcc59854162340 Mon Sep 17 00:00:00 2001
From: Haojian Wu <hokein.wu at gmail.com>
Date: Tue, 5 Nov 2024 17:29:40 +0100
Subject: [PATCH 2/2] clang-format
---
.../Interfaces/Utils/InferIntRangeCommon.cpp | 21 +++++++------------
1 file changed, 8 insertions(+), 13 deletions(-)
diff --git a/mlir/lib/Interfaces/Utils/InferIntRangeCommon.cpp b/mlir/lib/Interfaces/Utils/InferIntRangeCommon.cpp
index 0639a1087a4a4f..c5610ba5d3c0bc 100644
--- a/mlir/lib/Interfaces/Utils/InferIntRangeCommon.cpp
+++ b/mlir/lib/Interfaces/Utils/InferIntRangeCommon.cpp
@@ -319,9 +319,8 @@ ConstantIntRanges
mlir::intrange::inferCeilDivU(ArrayRef<ConstantIntRanges> argRanges) {
const ConstantIntRanges &lhs = argRanges[0], &rhs = argRanges[1];
- auto ceilDivUIFix =
- [](const APInt &lhs, const APInt &rhs,
- const APInt &result) -> std::optional<APInt> {
+ auto ceilDivUIFix = [](const APInt &lhs, const APInt &rhs,
+ const APInt &result) -> std::optional<APInt> {
if (!lhs.urem(rhs).isZero()) {
bool overflowed = false;
APInt corrected =
@@ -368,9 +367,8 @@ ConstantIntRanges
mlir::intrange::inferCeilDivS(ArrayRef<ConstantIntRanges> argRanges) {
const ConstantIntRanges &lhs = argRanges[0], &rhs = argRanges[1];
- auto ceilDivSIFix =
- [](const APInt &lhs, const APInt &rhs,
- const APInt &result) -> std::optional<APInt> {
+ auto ceilDivSIFix = [](const APInt &lhs, const APInt &rhs,
+ const APInt &result) -> std::optional<APInt> {
if (!lhs.srem(rhs).isZero() && lhs.isNonNegative() == rhs.isNonNegative()) {
bool overflowed = false;
APInt corrected =
@@ -386,9 +384,8 @@ ConstantIntRanges
mlir::intrange::inferFloorDivS(ArrayRef<ConstantIntRanges> argRanges) {
const ConstantIntRanges &lhs = argRanges[0], &rhs = argRanges[1];
- auto floorDivSIFix =
- [](const APInt &lhs, const APInt &rhs,
- const APInt &result) -> std::optional<APInt> {
+ auto floorDivSIFix = [](const APInt &lhs, const APInt &rhs,
+ const APInt &result) -> std::optional<APInt> {
if (!lhs.srem(rhs).isZero() && lhs.isNonNegative() != rhs.isNonNegative()) {
bool overflowed = false;
APInt corrected =
@@ -603,8 +600,7 @@ ConstantIntRanges
mlir::intrange::inferShrS(ArrayRef<ConstantIntRanges> argRanges) {
const ConstantIntRanges &lhs = argRanges[0], &rhs = argRanges[1];
- auto ashr = [](const APInt &l,
- const APInt &r) -> std::optional<APInt> {
+ auto ashr = [](const APInt &l, const APInt &r) -> std::optional<APInt> {
return r.uge(r.getBitWidth()) ? std::optional<APInt>() : l.ashr(r);
};
@@ -616,8 +612,7 @@ ConstantIntRanges
mlir::intrange::inferShrU(ArrayRef<ConstantIntRanges> argRanges) {
const ConstantIntRanges &lhs = argRanges[0], &rhs = argRanges[1];
- auto lshr = [](const APInt &l,
- const APInt &r) -> std::optional<APInt> {
+ auto lshr = [](const APInt &l, const APInt &r) -> std::optional<APInt> {
return r.uge(r.getBitWidth()) ? std::optional<APInt>() : l.lshr(r);
};
return minMaxBy(lshr, {lhs.umin(), lhs.umax()}, {rhs.umin(), rhs.umax()},
More information about the Mlir-commits
mailing list