-
Notifications
You must be signed in to change notification settings - Fork 14.6k
[mlir][NFC] update flang
create APIs (13/n)
#149913
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[mlir][NFC] update flang
create APIs (13/n)
#149913
Conversation
✅ With the latest revision this PR passed the C/C++ code formatter. |
See llvm#147168 for more info.
c280535
to
00fb7a0
Compare
flang
create APIs (13/n) (#149687)flang
create APIs (13/n)
9cb671d
to
a6d4ce0
Compare
@llvm/pr-subscribers-flang-driver @llvm/pr-subscribers-flang-fir-hlfir Author: Maksim Levental (makslevental) ChangesSee #147168 for more info. Patch is 53.80 KiB, truncated to 20.00 KiB below, full version: https://github.com/llvm/llvm-project/pull/149913.diff 15 Files Affected:
diff --git a/flang/include/flang/Lower/DirectivesCommon.h b/flang/include/flang/Lower/DirectivesCommon.h
index 93ab2e350d035..6ed3c1b7d61ee 100644
--- a/flang/include/flang/Lower/DirectivesCommon.h
+++ b/flang/include/flang/Lower/DirectivesCommon.h
@@ -193,26 +193,27 @@ genBoundsOps(fir::FirOpBuilder &builder, mlir::Location loc,
mlir::Value box =
!fir::isBoxAddress(info.addr.getType())
? info.addr
- : builder.create<fir::LoadOp>(loc, info.addr);
+ : fir::LoadOp::create(builder, loc, info.addr);
mlir::Value d =
builder.createIntegerConstant(loc, idxTy, dimension);
- auto dimInfo = builder.create<fir::BoxDimsOp>(
- loc, idxTy, idxTy, idxTy, box, d);
- builder.create<fir::ResultOp>(loc, dimInfo.getByteStride());
+ auto dimInfo = fir::BoxDimsOp::create(builder, loc, idxTy,
+ idxTy, idxTy, box, d);
+ fir::ResultOp::create(builder, loc,
+ dimInfo.getByteStride());
})
.genElse([&] {
mlir::Value zero =
builder.createIntegerConstant(loc, idxTy, 0);
- builder.create<fir::ResultOp>(loc, zero);
+ fir::ResultOp::create(builder, loc, zero);
})
.getResults()[0];
} else {
mlir::Value box = !fir::isBoxAddress(info.addr.getType())
? info.addr
- : builder.create<fir::LoadOp>(loc, info.addr);
+ : fir::LoadOp::create(builder, loc, info.addr);
mlir::Value d = builder.createIntegerConstant(loc, idxTy, dimension);
auto dimInfo =
- builder.create<fir::BoxDimsOp>(loc, idxTy, idxTy, idxTy, box, d);
+ fir::BoxDimsOp::create(builder, loc, idxTy, idxTy, idxTy, box, d);
stride = dimInfo.getByteStride();
}
strideInBytes = true;
@@ -242,14 +243,14 @@ genBoundsOps(fir::FirOpBuilder &builder, mlir::Location loc,
lbound = builder.createIntegerConstant(loc, idxTy, *lval - 1);
} else {
mlir::Value lb = builder.createIntegerConstant(loc, idxTy, *lval);
- lbound = builder.create<mlir::arith::SubIOp>(loc, lb, baseLb);
+ lbound = mlir::arith::SubIOp::create(builder, loc, lb, baseLb);
}
asFortran << *lval;
} else {
mlir::Value lb =
fir::getBase(converter.genExprValue(loc, *lower, stmtCtx));
lb = builder.createConvert(loc, baseLb.getType(), lb);
- lbound = builder.create<mlir::arith::SubIOp>(loc, lb, baseLb);
+ lbound = mlir::arith::SubIOp::create(builder, loc, lb, baseLb);
asFortran << detail::peelOuterConvert(*lower).AsFortran();
}
} else {
@@ -276,14 +277,14 @@ genBoundsOps(fir::FirOpBuilder &builder, mlir::Location loc,
ubound = builder.createIntegerConstant(loc, idxTy, *uval - 1);
} else {
mlir::Value ub = builder.createIntegerConstant(loc, idxTy, *uval);
- ubound = builder.create<mlir::arith::SubIOp>(loc, ub, baseLb);
+ ubound = mlir::arith::SubIOp::create(builder, loc, ub, baseLb);
}
asFortran << *uval;
} else {
mlir::Value ub =
fir::getBase(converter.genExprValue(loc, *upper, stmtCtx));
ub = builder.createConvert(loc, baseLb.getType(), ub);
- ubound = builder.create<mlir::arith::SubIOp>(loc, ub, baseLb);
+ ubound = mlir::arith::SubIOp::create(builder, loc, ub, baseLb);
asFortran << detail::peelOuterConvert(*upper).AsFortran();
}
}
@@ -310,12 +311,12 @@ genBoundsOps(fir::FirOpBuilder &builder, mlir::Location loc,
.genThen([&]() {
mlir::Value ext = fir::factory::readExtent(
builder, loc, dataExv, dimension);
- builder.create<fir::ResultOp>(loc, ext);
+ fir::ResultOp::create(builder, loc, ext);
})
.genElse([&] {
mlir::Value zero =
builder.createIntegerConstant(loc, idxTy, 0);
- builder.create<fir::ResultOp>(loc, zero);
+ fir::ResultOp::create(builder, loc, zero);
})
.getResults()[0];
} else {
@@ -326,8 +327,8 @@ genBoundsOps(fir::FirOpBuilder &builder, mlir::Location loc,
extent = zero;
if (ubound && lbound) {
mlir::Value diff =
- builder.create<mlir::arith::SubIOp>(loc, ubound, lbound);
- extent = builder.create<mlir::arith::AddIOp>(loc, diff, one);
+ mlir::arith::SubIOp::create(builder, loc, ubound, lbound);
+ extent = mlir::arith::AddIOp::create(builder, loc, diff, one);
}
if (!ubound)
ubound = lbound;
@@ -335,7 +336,7 @@ genBoundsOps(fir::FirOpBuilder &builder, mlir::Location loc,
if (!ubound) {
// ub = extent - 1
- ubound = builder.create<mlir::arith::SubIOp>(loc, extent, one);
+ ubound = mlir::arith::SubIOp::create(builder, loc, extent, one);
}
}
@@ -347,8 +348,9 @@ genBoundsOps(fir::FirOpBuilder &builder, mlir::Location loc,
loc, cumulativeExtent, extent);
}
- mlir::Value bound = builder.create<BoundsOp>(
- loc, boundTy, lbound, ubound, extent, stride, strideInBytes, baseLb);
+ mlir::Value bound =
+ BoundsOp::create(builder, loc, boundTy, lbound, ubound, extent,
+ stride, strideInBytes, baseLb);
bounds.push_back(bound);
++dimension;
}
@@ -461,8 +463,8 @@ fir::factory::AddrAndBoundsInfo gatherDataOperandAddrAndBounds(
asFortran << designator.AsFortran();
if (semantics::IsOptional(compRef->GetLastSymbol())) {
- info.isPresent = builder.create<fir::IsPresentOp>(
- operandLocation, builder.getI1Type(), info.rawInput);
+ info.isPresent = fir::IsPresentOp::create(
+ builder, operandLocation, builder.getI1Type(), info.rawInput);
}
if (unwrapFirBox) {
@@ -472,7 +474,7 @@ fir::factory::AddrAndBoundsInfo gatherDataOperandAddrAndBounds(
fir::isPointerType(loadOp.getType())) {
info.boxType = info.addr.getType();
info.addr =
- builder.create<fir::BoxAddrOp>(operandLocation, info.addr);
+ fir::BoxAddrOp::create(builder, operandLocation, info.addr);
}
info.rawInput = info.addr;
}
diff --git a/flang/include/flang/Lower/Support/ReductionProcessor.h b/flang/include/flang/Lower/Support/ReductionProcessor.h
index 72d8a0096f511..e97ebeca4ebc7 100644
--- a/flang/include/flang/Lower/Support/ReductionProcessor.h
+++ b/flang/include/flang/Lower/Support/ReductionProcessor.h
@@ -142,8 +142,8 @@ ReductionProcessor::getReductionOperation(fir::FirOpBuilder &builder,
assert(type.isIntOrIndexOrFloat() &&
"only integer, float and complex types are currently supported");
if (type.isIntOrIndex())
- return builder.create<IntegerOp>(loc, op1, op2);
- return builder.create<FloatOp>(loc, op1, op2);
+ return IntegerOp::create(builder, loc, op1, op2);
+ return FloatOp::create(builder, loc, op1, op2);
}
template <typename FloatOp, typename IntegerOp, typename ComplexOp>
@@ -154,10 +154,10 @@ ReductionProcessor::getReductionOperation(fir::FirOpBuilder &builder,
assert((type.isIntOrIndexOrFloat() || fir::isa_complex(type)) &&
"only integer, float and complex types are currently supported");
if (type.isIntOrIndex())
- return builder.create<IntegerOp>(loc, op1, op2);
+ return IntegerOp::create(builder, loc, op1, op2);
if (fir::isa_real(type))
- return builder.create<FloatOp>(loc, op1, op2);
- return builder.create<ComplexOp>(loc, op1, op2);
+ return FloatOp::create(builder, loc, op1, op2);
+ return ComplexOp::create(builder, loc, op1, op2);
}
} // namespace omp
diff --git a/flang/include/flang/Optimizer/Builder/Complex.h b/flang/include/flang/Optimizer/Builder/Complex.h
index cd0a876a4cef0..29395ac562dab 100644
--- a/flang/include/flang/Optimizer/Builder/Complex.h
+++ b/flang/include/flang/Optimizer/Builder/Complex.h
@@ -58,16 +58,16 @@ class Complex {
protected:
template <Part partId>
mlir::Value extract(mlir::Value cplx) {
- return builder.create<fir::ExtractValueOp>(
- loc, getComplexPartType(cplx), cplx,
+ return fir::ExtractValueOp::create(
+ builder, loc, getComplexPartType(cplx), cplx,
builder.getArrayAttr({builder.getIntegerAttr(
builder.getIndexType(), static_cast<int>(partId))}));
}
template <Part partId>
mlir::Value insert(mlir::Value cplx, mlir::Value part) {
- return builder.create<fir::InsertValueOp>(
- loc, cplx.getType(), cplx, part,
+ return fir::InsertValueOp::create(
+ builder, loc, cplx.getType(), cplx, part,
builder.getArrayAttr({builder.getIntegerAttr(
builder.getIndexType(), static_cast<int>(partId))}));
}
diff --git a/flang/include/flang/Optimizer/Builder/DirectivesCommon.h b/flang/include/flang/Optimizer/Builder/DirectivesCommon.h
index 78c1bb359c804..7413e4e229b00 100644
--- a/flang/include/flang/Optimizer/Builder/DirectivesCommon.h
+++ b/flang/include/flang/Optimizer/Builder/DirectivesCommon.h
@@ -71,7 +71,7 @@ inline AddrAndBoundsInfo getDataOperandBaseAddr(fir::FirOpBuilder &builder,
mlir::Value isPresent;
if (isOptional)
isPresent =
- builder.create<fir::IsPresentOp>(loc, builder.getI1Type(), rawInput);
+ fir::IsPresentOp::create(builder, loc, builder.getI1Type(), rawInput);
if (auto boxTy = mlir::dyn_cast<fir::BaseBoxType>(
fir::unwrapRefType(symAddr.getType()))) {
@@ -82,7 +82,7 @@ inline AddrAndBoundsInfo getDataOperandBaseAddr(fir::FirOpBuilder &builder,
// if branches.
if (unwrapFirBox && mlir::isa<fir::ReferenceType>(symAddr.getType()) &&
!isOptional) {
- mlir::Value addr = builder.create<fir::LoadOp>(loc, symAddr);
+ mlir::Value addr = fir::LoadOp::create(builder, loc, symAddr);
return AddrAndBoundsInfo(addr, rawInput, isPresent, boxTy);
}
@@ -94,7 +94,7 @@ inline AddrAndBoundsInfo getDataOperandBaseAddr(fir::FirOpBuilder &builder,
if (auto boxCharType = mlir::dyn_cast<fir::BoxCharType>(
fir::unwrapRefType((symAddr.getType())))) {
if (!isOptional && mlir::isa<fir::ReferenceType>(symAddr.getType())) {
- mlir::Value boxChar = builder.create<fir::LoadOp>(loc, symAddr);
+ mlir::Value boxChar = fir::LoadOp::create(builder, loc, symAddr);
return AddrAndBoundsInfo(boxChar, rawInput, isPresent);
}
}
@@ -117,10 +117,10 @@ gatherBoundsOrBoundValues(fir::FirOpBuilder &builder, mlir::Location loc,
mlir::Value baseLb =
fir::factory::readLowerBound(builder, loc, dataExv, dim, one);
auto dimInfo =
- builder.create<fir::BoxDimsOp>(loc, idxTy, idxTy, idxTy, box, d);
+ fir::BoxDimsOp::create(builder, loc, idxTy, idxTy, idxTy, box, d);
mlir::Value lb = builder.createIntegerConstant(loc, idxTy, 0);
mlir::Value ub =
- builder.create<mlir::arith::SubIOp>(loc, dimInfo.getExtent(), one);
+ mlir::arith::SubIOp::create(builder, loc, dimInfo.getExtent(), one);
if (dim == 0) // First stride is the element size.
byteStride = dimInfo.getByteStride();
if (collectValuesOnly) {
@@ -130,13 +130,14 @@ gatherBoundsOrBoundValues(fir::FirOpBuilder &builder, mlir::Location loc,
values.push_back(byteStride);
values.push_back(baseLb);
} else {
- mlir::Value bound = builder.create<BoundsOp>(
- loc, boundTy, lb, ub, dimInfo.getExtent(), byteStride, true, baseLb);
+ mlir::Value bound =
+ BoundsOp::create(builder, loc, boundTy, lb, ub, dimInfo.getExtent(),
+ byteStride, true, baseLb);
values.push_back(bound);
}
// Compute the stride for the next dimension.
- byteStride = builder.create<mlir::arith::MulIOp>(loc, byteStride,
- dimInfo.getExtent());
+ byteStride = mlir::arith::MulIOp::create(builder, loc, byteStride,
+ dimInfo.getExtent());
}
return values;
}
@@ -162,20 +163,20 @@ genBoundsOpFromBoxChar(fir::FirOpBuilder &builder, mlir::Location loc,
.genThen([&]() {
mlir::Value boxChar =
fir::isa_ref_type(info.addr.getType())
- ? builder.create<fir::LoadOp>(loc, info.addr)
+ ? fir::LoadOp::create(builder, loc, info.addr)
: info.addr;
fir::BoxCharType boxCharType =
mlir::cast<fir::BoxCharType>(boxChar.getType());
mlir::Type refType = builder.getRefType(boxCharType.getEleTy());
- auto unboxed = builder.create<fir::UnboxCharOp>(
- loc, refType, lenType, boxChar);
+ auto unboxed = fir::UnboxCharOp::create(builder, loc, refType,
+ lenType, boxChar);
mlir::SmallVector<mlir::Value> results = {unboxed.getResult(1),
one};
- builder.create<fir::ResultOp>(loc, results);
+ fir::ResultOp::create(builder, loc, results);
})
.genElse([&]() {
mlir::SmallVector<mlir::Value> results = {zero, zero};
- builder.create<fir::ResultOp>(loc, results);
+ fir::ResultOp::create(builder, loc, results);
})
.getResults();
return {ifRes[0], ifRes[1]};
@@ -183,25 +184,25 @@ genBoundsOpFromBoxChar(fir::FirOpBuilder &builder, mlir::Location loc,
// We have already established that info.addr.getType() is a boxchar
// or a boxchar address. If an address, load the boxchar.
mlir::Value boxChar = fir::isa_ref_type(info.addr.getType())
- ? builder.create<fir::LoadOp>(loc, info.addr)
+ ? fir::LoadOp::create(builder, loc, info.addr)
: info.addr;
fir::BoxCharType boxCharType =
mlir::cast<fir::BoxCharType>(boxChar.getType());
mlir::Type refType = builder.getRefType(boxCharType.getEleTy());
auto unboxed =
- builder.create<fir::UnboxCharOp>(loc, refType, lenType, boxChar);
+ fir::UnboxCharOp::create(builder, loc, refType, lenType, boxChar);
return {unboxed.getResult(1), one};
}();
- mlir::Value ub = builder.create<mlir::arith::SubIOp>(loc, extent, one);
+ mlir::Value ub = mlir::arith::SubIOp::create(builder, loc, extent, one);
mlir::Type boundTy = builder.getType<BoundsType>();
- return builder.create<BoundsOp>(loc, boundTy,
- /*lower_bound=*/zero,
- /*upper_bound=*/ub,
- /*extent=*/extent,
- /*stride=*/stride,
- /*stride_in_bytes=*/true,
- /*start_idx=*/zero);
+ return BoundsOp::create(builder, loc, boundTy,
+ /*lower_bound=*/zero,
+ /*upper_bound=*/ub,
+ /*extent=*/extent,
+ /*stride=*/stride,
+ /*stride_in_bytes=*/true,
+ /*start_idx=*/zero);
}
/// Generate the bounds operation from the descriptor information.
@@ -230,12 +231,12 @@ genBoundsOpsFromBox(fir::FirOpBuilder &builder, mlir::Location loc,
mlir::Value box =
!fir::isBoxAddress(info.addr.getType())
? info.addr
- : builder.create<fir::LoadOp>(loc, info.addr);
+ : fir::LoadOp::create(builder, loc, info.addr);
llvm::SmallVector<mlir::Value> boundValues =
gatherBoundsOrBoundValues<BoundsOp, BoundsType>(
builder, loc, dataExv, box,
/*collectValuesOnly=*/true);
- builder.create<fir::ResultOp>(loc, boundValues);
+ fir::ResultOp::create(builder, loc, boundValues);
})
.genElse([&] {
// Box is not present. Populate bound values with default values.
@@ -249,21 +250,21 @@ genBoundsOpsFromBox(fir::FirOpBuilder &builder, mlir::Location loc,
boundValues.push_back(zero); // byteStride
boundValues.push_back(zero); // baseLb
}
- builder.create<fir::ResultOp>(loc, boundValues);
+ fir::ResultOp::create(builder, loc, boundValues);
})
.getResults();
// Create the bound operations outside the if-then-else with the if op
// results.
for (unsigned i = 0; i < ifRes.size(); i += nbValuesPerBound) {
- mlir::Value bound = builder.create<BoundsOp>(
- loc, boundTy, ifRes[i], ifRes[i + 1], ifRes[i + 2], ifRes[i + 3],
- true, ifRes[i + 4]);
+ mlir::Value bound =
+ BoundsOp::create(builder, loc, boundTy, ifRes[i], ifRes[i + 1],
+ ifRes[i + 2], ifRes[i + 3], true, ifRes[i + 4]);
bounds.push_back(bound);
}
} else {
mlir::Value box = !fir::isBoxAddress(info.addr.getType())
? info.addr
- : builder.create<fir::LoadOp>(loc, info.addr);
+ : fir::LoadOp::create(builder, loc, info.addr);
bounds = gatherBoundsOrBoundValues<BoundsOp, BoundsType>(builder, loc,
dataExv, box);
}
@@ -299,7 +300,7 @@ genBaseBoundsOps(fir::FirOpBuilder &builder, mlir::Location loc,
ub = lb;
} else {
// ub = extent - 1
- ub = builder.create<mlir::arith::SubIOp>(loc, extent, one);
+ ub = mlir::arith::SubIOp::create(builder, loc, extent, one);
}
mlir::Value stride = one;
if (strideIncludeLowerExtent) {
@@ -308,8 +309,8 @@ genBaseBoundsOps(fir::FirOpBuilder &builder, mlir::Location loc,
loc, cumulativeExtent, extent);
}
- mlir::Value bound = builder.create<BoundsOp>(loc, boundTy, lb, ub, extent,
- stride, false, baseLb);
+ mlir::Value bound = BoundsOp::create(builder, loc, boundTy, lb, ub, extent,
+ stride, false, baseLb);
bounds.push_back(bound);
}
return bounds;
diff --git a/flang/include/flang/Optimizer/CodeGen/FIROpPatterns.h b/flang/include/flang/Optimizer/CodeGen/FIROpPatterns.h
index cbdcf6b501b8e..b7fa8fc3848f2 100644
--- a/flang/include/flang/Optimizer/CodeGen/FIROpPatterns.h
+++ b/flang/include/flang/Optimizer/CodeGen/FIROpPatterns.h
@@ -144,7 +144,7 @@ class ConvertFIRToLLVMPattern : public mlir::ConvertToLLVMPattern {
llvm::SmallVector<mlir::LLVM::GEPArg> cv = {args...};
auto llvmPtrTy =
mlir::LLVM::LLVMPointerType::get(ty.getContext(), /*addressSpace=*/0);
- return rewriter.create<mlir::LLVM::GEPOp>(loc, llvmPtrTy, ty, base, cv);
+ return mlir::LLVM::GEPOp::create(rewriter, loc, llvmPtrTy, ty, base, cv);
}
// Find the Block in which the alloca should be inserted.
diff --git a/flang/unittests/Frontend/CodeGenActionTest.cpp b/flang/unittests/Frontend/CodeGenActionTest.cpp
index 6020abc463eda..e606456663eec 100644
--- a/flang/unittests/Frontend/CodeGenActionTest.cpp
+++ b/flang/unittests/Frontend/CodeGenActionTest.cpp
@@ -50,6 +50,15 @@ class FakeOp : public ::mlir::Op<FakeOp> {
static void build(
::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState) {}
+
+ static FakeOp create(
+ ::mlir::OpBuilder &odsBuild...
[truncated]
|
@llvm/pr-subscribers-flang-codegen Author: Maksim Levental (makslevental) ChangesSee #147168 for more info. Patch is 53.80 KiB, truncated to 20.00 KiB below, full version: https://github.com/llvm/llvm-project/pull/149913.diff 15 Files Affected:
diff --git a/flang/include/flang/Lower/DirectivesCommon.h b/flang/include/flang/Lower/DirectivesCommon.h
index 93ab2e350d035..6ed3c1b7d61ee 100644
--- a/flang/include/flang/Lower/DirectivesCommon.h
+++ b/flang/include/flang/Lower/DirectivesCommon.h
@@ -193,26 +193,27 @@ genBoundsOps(fir::FirOpBuilder &builder, mlir::Location loc,
mlir::Value box =
!fir::isBoxAddress(info.addr.getType())
? info.addr
- : builder.create<fir::LoadOp>(loc, info.addr);
+ : fir::LoadOp::create(builder, loc, info.addr);
mlir::Value d =
builder.createIntegerConstant(loc, idxTy, dimension);
- auto dimInfo = builder.create<fir::BoxDimsOp>(
- loc, idxTy, idxTy, idxTy, box, d);
- builder.create<fir::ResultOp>(loc, dimInfo.getByteStride());
+ auto dimInfo = fir::BoxDimsOp::create(builder, loc, idxTy,
+ idxTy, idxTy, box, d);
+ fir::ResultOp::create(builder, loc,
+ dimInfo.getByteStride());
})
.genElse([&] {
mlir::Value zero =
builder.createIntegerConstant(loc, idxTy, 0);
- builder.create<fir::ResultOp>(loc, zero);
+ fir::ResultOp::create(builder, loc, zero);
})
.getResults()[0];
} else {
mlir::Value box = !fir::isBoxAddress(info.addr.getType())
? info.addr
- : builder.create<fir::LoadOp>(loc, info.addr);
+ : fir::LoadOp::create(builder, loc, info.addr);
mlir::Value d = builder.createIntegerConstant(loc, idxTy, dimension);
auto dimInfo =
- builder.create<fir::BoxDimsOp>(loc, idxTy, idxTy, idxTy, box, d);
+ fir::BoxDimsOp::create(builder, loc, idxTy, idxTy, idxTy, box, d);
stride = dimInfo.getByteStride();
}
strideInBytes = true;
@@ -242,14 +243,14 @@ genBoundsOps(fir::FirOpBuilder &builder, mlir::Location loc,
lbound = builder.createIntegerConstant(loc, idxTy, *lval - 1);
} else {
mlir::Value lb = builder.createIntegerConstant(loc, idxTy, *lval);
- lbound = builder.create<mlir::arith::SubIOp>(loc, lb, baseLb);
+ lbound = mlir::arith::SubIOp::create(builder, loc, lb, baseLb);
}
asFortran << *lval;
} else {
mlir::Value lb =
fir::getBase(converter.genExprValue(loc, *lower, stmtCtx));
lb = builder.createConvert(loc, baseLb.getType(), lb);
- lbound = builder.create<mlir::arith::SubIOp>(loc, lb, baseLb);
+ lbound = mlir::arith::SubIOp::create(builder, loc, lb, baseLb);
asFortran << detail::peelOuterConvert(*lower).AsFortran();
}
} else {
@@ -276,14 +277,14 @@ genBoundsOps(fir::FirOpBuilder &builder, mlir::Location loc,
ubound = builder.createIntegerConstant(loc, idxTy, *uval - 1);
} else {
mlir::Value ub = builder.createIntegerConstant(loc, idxTy, *uval);
- ubound = builder.create<mlir::arith::SubIOp>(loc, ub, baseLb);
+ ubound = mlir::arith::SubIOp::create(builder, loc, ub, baseLb);
}
asFortran << *uval;
} else {
mlir::Value ub =
fir::getBase(converter.genExprValue(loc, *upper, stmtCtx));
ub = builder.createConvert(loc, baseLb.getType(), ub);
- ubound = builder.create<mlir::arith::SubIOp>(loc, ub, baseLb);
+ ubound = mlir::arith::SubIOp::create(builder, loc, ub, baseLb);
asFortran << detail::peelOuterConvert(*upper).AsFortran();
}
}
@@ -310,12 +311,12 @@ genBoundsOps(fir::FirOpBuilder &builder, mlir::Location loc,
.genThen([&]() {
mlir::Value ext = fir::factory::readExtent(
builder, loc, dataExv, dimension);
- builder.create<fir::ResultOp>(loc, ext);
+ fir::ResultOp::create(builder, loc, ext);
})
.genElse([&] {
mlir::Value zero =
builder.createIntegerConstant(loc, idxTy, 0);
- builder.create<fir::ResultOp>(loc, zero);
+ fir::ResultOp::create(builder, loc, zero);
})
.getResults()[0];
} else {
@@ -326,8 +327,8 @@ genBoundsOps(fir::FirOpBuilder &builder, mlir::Location loc,
extent = zero;
if (ubound && lbound) {
mlir::Value diff =
- builder.create<mlir::arith::SubIOp>(loc, ubound, lbound);
- extent = builder.create<mlir::arith::AddIOp>(loc, diff, one);
+ mlir::arith::SubIOp::create(builder, loc, ubound, lbound);
+ extent = mlir::arith::AddIOp::create(builder, loc, diff, one);
}
if (!ubound)
ubound = lbound;
@@ -335,7 +336,7 @@ genBoundsOps(fir::FirOpBuilder &builder, mlir::Location loc,
if (!ubound) {
// ub = extent - 1
- ubound = builder.create<mlir::arith::SubIOp>(loc, extent, one);
+ ubound = mlir::arith::SubIOp::create(builder, loc, extent, one);
}
}
@@ -347,8 +348,9 @@ genBoundsOps(fir::FirOpBuilder &builder, mlir::Location loc,
loc, cumulativeExtent, extent);
}
- mlir::Value bound = builder.create<BoundsOp>(
- loc, boundTy, lbound, ubound, extent, stride, strideInBytes, baseLb);
+ mlir::Value bound =
+ BoundsOp::create(builder, loc, boundTy, lbound, ubound, extent,
+ stride, strideInBytes, baseLb);
bounds.push_back(bound);
++dimension;
}
@@ -461,8 +463,8 @@ fir::factory::AddrAndBoundsInfo gatherDataOperandAddrAndBounds(
asFortran << designator.AsFortran();
if (semantics::IsOptional(compRef->GetLastSymbol())) {
- info.isPresent = builder.create<fir::IsPresentOp>(
- operandLocation, builder.getI1Type(), info.rawInput);
+ info.isPresent = fir::IsPresentOp::create(
+ builder, operandLocation, builder.getI1Type(), info.rawInput);
}
if (unwrapFirBox) {
@@ -472,7 +474,7 @@ fir::factory::AddrAndBoundsInfo gatherDataOperandAddrAndBounds(
fir::isPointerType(loadOp.getType())) {
info.boxType = info.addr.getType();
info.addr =
- builder.create<fir::BoxAddrOp>(operandLocation, info.addr);
+ fir::BoxAddrOp::create(builder, operandLocation, info.addr);
}
info.rawInput = info.addr;
}
diff --git a/flang/include/flang/Lower/Support/ReductionProcessor.h b/flang/include/flang/Lower/Support/ReductionProcessor.h
index 72d8a0096f511..e97ebeca4ebc7 100644
--- a/flang/include/flang/Lower/Support/ReductionProcessor.h
+++ b/flang/include/flang/Lower/Support/ReductionProcessor.h
@@ -142,8 +142,8 @@ ReductionProcessor::getReductionOperation(fir::FirOpBuilder &builder,
assert(type.isIntOrIndexOrFloat() &&
"only integer, float and complex types are currently supported");
if (type.isIntOrIndex())
- return builder.create<IntegerOp>(loc, op1, op2);
- return builder.create<FloatOp>(loc, op1, op2);
+ return IntegerOp::create(builder, loc, op1, op2);
+ return FloatOp::create(builder, loc, op1, op2);
}
template <typename FloatOp, typename IntegerOp, typename ComplexOp>
@@ -154,10 +154,10 @@ ReductionProcessor::getReductionOperation(fir::FirOpBuilder &builder,
assert((type.isIntOrIndexOrFloat() || fir::isa_complex(type)) &&
"only integer, float and complex types are currently supported");
if (type.isIntOrIndex())
- return builder.create<IntegerOp>(loc, op1, op2);
+ return IntegerOp::create(builder, loc, op1, op2);
if (fir::isa_real(type))
- return builder.create<FloatOp>(loc, op1, op2);
- return builder.create<ComplexOp>(loc, op1, op2);
+ return FloatOp::create(builder, loc, op1, op2);
+ return ComplexOp::create(builder, loc, op1, op2);
}
} // namespace omp
diff --git a/flang/include/flang/Optimizer/Builder/Complex.h b/flang/include/flang/Optimizer/Builder/Complex.h
index cd0a876a4cef0..29395ac562dab 100644
--- a/flang/include/flang/Optimizer/Builder/Complex.h
+++ b/flang/include/flang/Optimizer/Builder/Complex.h
@@ -58,16 +58,16 @@ class Complex {
protected:
template <Part partId>
mlir::Value extract(mlir::Value cplx) {
- return builder.create<fir::ExtractValueOp>(
- loc, getComplexPartType(cplx), cplx,
+ return fir::ExtractValueOp::create(
+ builder, loc, getComplexPartType(cplx), cplx,
builder.getArrayAttr({builder.getIntegerAttr(
builder.getIndexType(), static_cast<int>(partId))}));
}
template <Part partId>
mlir::Value insert(mlir::Value cplx, mlir::Value part) {
- return builder.create<fir::InsertValueOp>(
- loc, cplx.getType(), cplx, part,
+ return fir::InsertValueOp::create(
+ builder, loc, cplx.getType(), cplx, part,
builder.getArrayAttr({builder.getIntegerAttr(
builder.getIndexType(), static_cast<int>(partId))}));
}
diff --git a/flang/include/flang/Optimizer/Builder/DirectivesCommon.h b/flang/include/flang/Optimizer/Builder/DirectivesCommon.h
index 78c1bb359c804..7413e4e229b00 100644
--- a/flang/include/flang/Optimizer/Builder/DirectivesCommon.h
+++ b/flang/include/flang/Optimizer/Builder/DirectivesCommon.h
@@ -71,7 +71,7 @@ inline AddrAndBoundsInfo getDataOperandBaseAddr(fir::FirOpBuilder &builder,
mlir::Value isPresent;
if (isOptional)
isPresent =
- builder.create<fir::IsPresentOp>(loc, builder.getI1Type(), rawInput);
+ fir::IsPresentOp::create(builder, loc, builder.getI1Type(), rawInput);
if (auto boxTy = mlir::dyn_cast<fir::BaseBoxType>(
fir::unwrapRefType(symAddr.getType()))) {
@@ -82,7 +82,7 @@ inline AddrAndBoundsInfo getDataOperandBaseAddr(fir::FirOpBuilder &builder,
// if branches.
if (unwrapFirBox && mlir::isa<fir::ReferenceType>(symAddr.getType()) &&
!isOptional) {
- mlir::Value addr = builder.create<fir::LoadOp>(loc, symAddr);
+ mlir::Value addr = fir::LoadOp::create(builder, loc, symAddr);
return AddrAndBoundsInfo(addr, rawInput, isPresent, boxTy);
}
@@ -94,7 +94,7 @@ inline AddrAndBoundsInfo getDataOperandBaseAddr(fir::FirOpBuilder &builder,
if (auto boxCharType = mlir::dyn_cast<fir::BoxCharType>(
fir::unwrapRefType((symAddr.getType())))) {
if (!isOptional && mlir::isa<fir::ReferenceType>(symAddr.getType())) {
- mlir::Value boxChar = builder.create<fir::LoadOp>(loc, symAddr);
+ mlir::Value boxChar = fir::LoadOp::create(builder, loc, symAddr);
return AddrAndBoundsInfo(boxChar, rawInput, isPresent);
}
}
@@ -117,10 +117,10 @@ gatherBoundsOrBoundValues(fir::FirOpBuilder &builder, mlir::Location loc,
mlir::Value baseLb =
fir::factory::readLowerBound(builder, loc, dataExv, dim, one);
auto dimInfo =
- builder.create<fir::BoxDimsOp>(loc, idxTy, idxTy, idxTy, box, d);
+ fir::BoxDimsOp::create(builder, loc, idxTy, idxTy, idxTy, box, d);
mlir::Value lb = builder.createIntegerConstant(loc, idxTy, 0);
mlir::Value ub =
- builder.create<mlir::arith::SubIOp>(loc, dimInfo.getExtent(), one);
+ mlir::arith::SubIOp::create(builder, loc, dimInfo.getExtent(), one);
if (dim == 0) // First stride is the element size.
byteStride = dimInfo.getByteStride();
if (collectValuesOnly) {
@@ -130,13 +130,14 @@ gatherBoundsOrBoundValues(fir::FirOpBuilder &builder, mlir::Location loc,
values.push_back(byteStride);
values.push_back(baseLb);
} else {
- mlir::Value bound = builder.create<BoundsOp>(
- loc, boundTy, lb, ub, dimInfo.getExtent(), byteStride, true, baseLb);
+ mlir::Value bound =
+ BoundsOp::create(builder, loc, boundTy, lb, ub, dimInfo.getExtent(),
+ byteStride, true, baseLb);
values.push_back(bound);
}
// Compute the stride for the next dimension.
- byteStride = builder.create<mlir::arith::MulIOp>(loc, byteStride,
- dimInfo.getExtent());
+ byteStride = mlir::arith::MulIOp::create(builder, loc, byteStride,
+ dimInfo.getExtent());
}
return values;
}
@@ -162,20 +163,20 @@ genBoundsOpFromBoxChar(fir::FirOpBuilder &builder, mlir::Location loc,
.genThen([&]() {
mlir::Value boxChar =
fir::isa_ref_type(info.addr.getType())
- ? builder.create<fir::LoadOp>(loc, info.addr)
+ ? fir::LoadOp::create(builder, loc, info.addr)
: info.addr;
fir::BoxCharType boxCharType =
mlir::cast<fir::BoxCharType>(boxChar.getType());
mlir::Type refType = builder.getRefType(boxCharType.getEleTy());
- auto unboxed = builder.create<fir::UnboxCharOp>(
- loc, refType, lenType, boxChar);
+ auto unboxed = fir::UnboxCharOp::create(builder, loc, refType,
+ lenType, boxChar);
mlir::SmallVector<mlir::Value> results = {unboxed.getResult(1),
one};
- builder.create<fir::ResultOp>(loc, results);
+ fir::ResultOp::create(builder, loc, results);
})
.genElse([&]() {
mlir::SmallVector<mlir::Value> results = {zero, zero};
- builder.create<fir::ResultOp>(loc, results);
+ fir::ResultOp::create(builder, loc, results);
})
.getResults();
return {ifRes[0], ifRes[1]};
@@ -183,25 +184,25 @@ genBoundsOpFromBoxChar(fir::FirOpBuilder &builder, mlir::Location loc,
// We have already established that info.addr.getType() is a boxchar
// or a boxchar address. If an address, load the boxchar.
mlir::Value boxChar = fir::isa_ref_type(info.addr.getType())
- ? builder.create<fir::LoadOp>(loc, info.addr)
+ ? fir::LoadOp::create(builder, loc, info.addr)
: info.addr;
fir::BoxCharType boxCharType =
mlir::cast<fir::BoxCharType>(boxChar.getType());
mlir::Type refType = builder.getRefType(boxCharType.getEleTy());
auto unboxed =
- builder.create<fir::UnboxCharOp>(loc, refType, lenType, boxChar);
+ fir::UnboxCharOp::create(builder, loc, refType, lenType, boxChar);
return {unboxed.getResult(1), one};
}();
- mlir::Value ub = builder.create<mlir::arith::SubIOp>(loc, extent, one);
+ mlir::Value ub = mlir::arith::SubIOp::create(builder, loc, extent, one);
mlir::Type boundTy = builder.getType<BoundsType>();
- return builder.create<BoundsOp>(loc, boundTy,
- /*lower_bound=*/zero,
- /*upper_bound=*/ub,
- /*extent=*/extent,
- /*stride=*/stride,
- /*stride_in_bytes=*/true,
- /*start_idx=*/zero);
+ return BoundsOp::create(builder, loc, boundTy,
+ /*lower_bound=*/zero,
+ /*upper_bound=*/ub,
+ /*extent=*/extent,
+ /*stride=*/stride,
+ /*stride_in_bytes=*/true,
+ /*start_idx=*/zero);
}
/// Generate the bounds operation from the descriptor information.
@@ -230,12 +231,12 @@ genBoundsOpsFromBox(fir::FirOpBuilder &builder, mlir::Location loc,
mlir::Value box =
!fir::isBoxAddress(info.addr.getType())
? info.addr
- : builder.create<fir::LoadOp>(loc, info.addr);
+ : fir::LoadOp::create(builder, loc, info.addr);
llvm::SmallVector<mlir::Value> boundValues =
gatherBoundsOrBoundValues<BoundsOp, BoundsType>(
builder, loc, dataExv, box,
/*collectValuesOnly=*/true);
- builder.create<fir::ResultOp>(loc, boundValues);
+ fir::ResultOp::create(builder, loc, boundValues);
})
.genElse([&] {
// Box is not present. Populate bound values with default values.
@@ -249,21 +250,21 @@ genBoundsOpsFromBox(fir::FirOpBuilder &builder, mlir::Location loc,
boundValues.push_back(zero); // byteStride
boundValues.push_back(zero); // baseLb
}
- builder.create<fir::ResultOp>(loc, boundValues);
+ fir::ResultOp::create(builder, loc, boundValues);
})
.getResults();
// Create the bound operations outside the if-then-else with the if op
// results.
for (unsigned i = 0; i < ifRes.size(); i += nbValuesPerBound) {
- mlir::Value bound = builder.create<BoundsOp>(
- loc, boundTy, ifRes[i], ifRes[i + 1], ifRes[i + 2], ifRes[i + 3],
- true, ifRes[i + 4]);
+ mlir::Value bound =
+ BoundsOp::create(builder, loc, boundTy, ifRes[i], ifRes[i + 1],
+ ifRes[i + 2], ifRes[i + 3], true, ifRes[i + 4]);
bounds.push_back(bound);
}
} else {
mlir::Value box = !fir::isBoxAddress(info.addr.getType())
? info.addr
- : builder.create<fir::LoadOp>(loc, info.addr);
+ : fir::LoadOp::create(builder, loc, info.addr);
bounds = gatherBoundsOrBoundValues<BoundsOp, BoundsType>(builder, loc,
dataExv, box);
}
@@ -299,7 +300,7 @@ genBaseBoundsOps(fir::FirOpBuilder &builder, mlir::Location loc,
ub = lb;
} else {
// ub = extent - 1
- ub = builder.create<mlir::arith::SubIOp>(loc, extent, one);
+ ub = mlir::arith::SubIOp::create(builder, loc, extent, one);
}
mlir::Value stride = one;
if (strideIncludeLowerExtent) {
@@ -308,8 +309,8 @@ genBaseBoundsOps(fir::FirOpBuilder &builder, mlir::Location loc,
loc, cumulativeExtent, extent);
}
- mlir::Value bound = builder.create<BoundsOp>(loc, boundTy, lb, ub, extent,
- stride, false, baseLb);
+ mlir::Value bound = BoundsOp::create(builder, loc, boundTy, lb, ub, extent,
+ stride, false, baseLb);
bounds.push_back(bound);
}
return bounds;
diff --git a/flang/include/flang/Optimizer/CodeGen/FIROpPatterns.h b/flang/include/flang/Optimizer/CodeGen/FIROpPatterns.h
index cbdcf6b501b8e..b7fa8fc3848f2 100644
--- a/flang/include/flang/Optimizer/CodeGen/FIROpPatterns.h
+++ b/flang/include/flang/Optimizer/CodeGen/FIROpPatterns.h
@@ -144,7 +144,7 @@ class ConvertFIRToLLVMPattern : public mlir::ConvertToLLVMPattern {
llvm::SmallVector<mlir::LLVM::GEPArg> cv = {args...};
auto llvmPtrTy =
mlir::LLVM::LLVMPointerType::get(ty.getContext(), /*addressSpace=*/0);
- return rewriter.create<mlir::LLVM::GEPOp>(loc, llvmPtrTy, ty, base, cv);
+ return mlir::LLVM::GEPOp::create(rewriter, loc, llvmPtrTy, ty, base, cv);
}
// Find the Block in which the alloca should be inserted.
diff --git a/flang/unittests/Frontend/CodeGenActionTest.cpp b/flang/unittests/Frontend/CodeGenActionTest.cpp
index 6020abc463eda..e606456663eec 100644
--- a/flang/unittests/Frontend/CodeGenActionTest.cpp
+++ b/flang/unittests/Frontend/CodeGenActionTest.cpp
@@ -50,6 +50,15 @@ class FakeOp : public ::mlir::Op<FakeOp> {
static void build(
::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState) {}
+
+ static FakeOp create(
+ ::mlir::OpBuilder &odsBuild...
[truncated]
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thank you! LGTM
See llvm#147168 for more info.
Taken from git history: 9e7834c Maksim Levental [mlir][NFC] update `mlir/lib` create APIs (35/n) (#150708) 284a5c2 Maksim Levental [mlir][NFC] update `mlir/examples` create APIs (31/n) (#150652) c090ed5 Maksim Levental [mlir][NFC] update `mlir/Dialect` create APIs (33/n) (#150659) fcbcfe4 Maksim Levental [mlir][NFC] update `mlir/Dialect` create APIs (32/n) (#150657) 258daf5 Maksim Levental [mlir][NFC] update `mlir` create APIs (34/n) (#150660) c610b24 Maksim Levental [mlir][NFC] update `mlir/Dialect` create APIs (27/n) (#150638) b58ad36 Maksim Levental [mlir][NFC] update `mlir/Dialect` create APIs (30/n) (#150643) 258d04c Maksim Levental [mlir][NFC] update `mlir/Dialect` create APIs (28/n) (#150641) a6bf40d Maksim Levental [mlir][NFC] update `mlir/Dialect` create APIs (29/n) (#150642) dcfc853 Maksim Levental [mlir][NFC] update `flang/lib` create APIs (12/n) (#149914) 3f74334 Maksim Levental [mlir][NFC] update `flang` create APIs (13/n) (#149913) a636b7b Maksim Levental [mlir][NFC] update `mlir/Dialect` create APIs (18/n) (#149925) 75aa706 Maksim Levental [mlir][NFC] update `mlir/Dialect` create APIs (17/n) (#149924) 2f53125 Maksim Levental [mlir][NFC] update `mlir/Dialect` create APIs (15/n) (#149921) 967626b Maksim Levental [mlir][NFC] update `mlir/Dialect` create APIs (14/n) (#149920) 588845d Maksim Levental [mlir][NFC] update `mlir/Dialect` create APIs (20/n) (#149927) b043492 Maksim Levental [mlir][NFC] update `Conversion` create APIs (4/n) (#149879) 8fff238 Maksim Levental [mlir][NFC] update `mlir/Dialect` create APIs (23/n) (#149930) 38976a0 Maksim Levental [mlir][NFC] update `Conversion` create APIs (7/n) (#149889) eaa67a3 Maksim Levental [mlir][NFC] update `Conversion` create APIs (5/n) (#149887) b0312be Maksim Levental [mlir][NFC] update `mlir/Dialect` create APIs (19/n) (#149926) 2736fbd Maksim Levental [mlir][NFC] update `mlir/lib` create APIs (26/n) (#149933) 4ae9fdc Maksim Levental [mlir][NFC] update `Conversion` create APIs (6/n) (#149888) f904cdd Maksim Levental [mlir][NFC] update `mlir/Dialect` create APIs (24/n) (#149931) 972ac59 Maksim Levental [mlir][NFC] update `mlir/Dialect` create APIs (21/n) (#149928) 7b78796 Maksim Levental [mlir][NFC] update `mlir/Dialect` create APIs (25/n) (#149932) c3823af Maksim Levental [mlir][NFC] update `mlir/Dialect` create APIs (22/n) (#149929) dce6679 Maksim Levental [mlir][NFC] update `mlir/Dialect` create APIs (16/n) (#149922) 9844ba6 Maksim Levental [mlir][NFC] update `flang/Optimizer/Builder` create APIs (9/n) (#149917) 5547c6c Maksim Levental [mlir][NFC] update `flang/Optimizer/Builder/Runtime` create APIs (10/n) (#149916) a3a007a Maksim Levental [mlir][NFC] update `flang/Lower` create APIs (8/n) (#149912) 46f6df0 Maksim Levental [mlir][NFC] update `flang/Optimizer/Transforms` create APIs (11/n) (#149915) b7e332d Maksim Levental [mlir][NFC] update `include` create APIs (3/n) (#149687) 6056f94 Maksim Levental [mlir][NFC] update LLVM create APIs (2/n) (#149667) 906295b Maksim Levental [mlir] update affine+arith create APIs (1/n) (#149656)
The update is most likely not what someone wants when looking at the blame for one of these lines. Taken from git history: ``` 9e7834c Maksim Levental [mlir][NFC] update `mlir/lib` create APIs (35/n) (#150708) 284a5c2 Maksim Levental [mlir][NFC] update `mlir/examples` create APIs (31/n) (#150652) c090ed5 Maksim Levental [mlir][NFC] update `mlir/Dialect` create APIs (33/n) (#150659) fcbcfe4 Maksim Levental [mlir][NFC] update `mlir/Dialect` create APIs (32/n) (#150657) 258daf5 Maksim Levental [mlir][NFC] update `mlir` create APIs (34/n) (#150660) c610b24 Maksim Levental [mlir][NFC] update `mlir/Dialect` create APIs (27/n) (#150638) b58ad36 Maksim Levental [mlir][NFC] update `mlir/Dialect` create APIs (30/n) (#150643) 258d04c Maksim Levental [mlir][NFC] update `mlir/Dialect` create APIs (28/n) (#150641) a6bf40d Maksim Levental [mlir][NFC] update `mlir/Dialect` create APIs (29/n) (#150642) dcfc853 Maksim Levental [mlir][NFC] update `flang/lib` create APIs (12/n) (#149914) 3f74334 Maksim Levental [mlir][NFC] update `flang` create APIs (13/n) (#149913) a636b7b Maksim Levental [mlir][NFC] update `mlir/Dialect` create APIs (18/n) (#149925) 75aa706 Maksim Levental [mlir][NFC] update `mlir/Dialect` create APIs (17/n) (#149924) 2f53125 Maksim Levental [mlir][NFC] update `mlir/Dialect` create APIs (15/n) (#149921) 967626b Maksim Levental [mlir][NFC] update `mlir/Dialect` create APIs (14/n) (#149920) 588845d Maksim Levental [mlir][NFC] update `mlir/Dialect` create APIs (20/n) (#149927) b043492 Maksim Levental [mlir][NFC] update `Conversion` create APIs (4/n) (#149879) 8fff238 Maksim Levental [mlir][NFC] update `mlir/Dialect` create APIs (23/n) (#149930) 38976a0 Maksim Levental [mlir][NFC] update `Conversion` create APIs (7/n) (#149889) eaa67a3 Maksim Levental [mlir][NFC] update `Conversion` create APIs (5/n) (#149887) b0312be Maksim Levental [mlir][NFC] update `mlir/Dialect` create APIs (19/n) (#149926) 2736fbd Maksim Levental [mlir][NFC] update `mlir/lib` create APIs (26/n) (#149933) 4ae9fdc Maksim Levental [mlir][NFC] update `Conversion` create APIs (6/n) (#149888) f904cdd Maksim Levental [mlir][NFC] update `mlir/Dialect` create APIs (24/n) (#149931) 972ac59 Maksim Levental [mlir][NFC] update `mlir/Dialect` create APIs (21/n) (#149928) 7b78796 Maksim Levental [mlir][NFC] update `mlir/Dialect` create APIs (25/n) (#149932) c3823af Maksim Levental [mlir][NFC] update `mlir/Dialect` create APIs (22/n) (#149929) dce6679 Maksim Levental [mlir][NFC] update `mlir/Dialect` create APIs (16/n) (#149922) 9844ba6 Maksim Levental [mlir][NFC] update `flang/Optimizer/Builder` create APIs (9/n) (#149917) 5547c6c Maksim Levental [mlir][NFC] update `flang/Optimizer/Builder/Runtime` create APIs (10/n) (#149916) a3a007a Maksim Levental [mlir][NFC] update `flang/Lower` create APIs (8/n) (#149912) 46f6df0 Maksim Levental [mlir][NFC] update `flang/Optimizer/Transforms` create APIs (11/n) (#149915) b7e332d Maksim Levental [mlir][NFC] update `include` create APIs (3/n) (#149687) 6056f94 Maksim Levental [mlir][NFC] update LLVM create APIs (2/n) (#149667) 906295b Maksim Levental [mlir] update affine+arith create APIs (1/n) (#149656) ```
See llvm#147168 for more info.
The update is most likely not what someone wants when looking at the blame for one of these lines. Taken from git history: ``` 9e7834c Maksim Levental [mlir][NFC] update `mlir/lib` create APIs (35/n) (llvm#150708) 284a5c2 Maksim Levental [mlir][NFC] update `mlir/examples` create APIs (31/n) (llvm#150652) c090ed5 Maksim Levental [mlir][NFC] update `mlir/Dialect` create APIs (33/n) (llvm#150659) fcbcfe4 Maksim Levental [mlir][NFC] update `mlir/Dialect` create APIs (32/n) (llvm#150657) 258daf5 Maksim Levental [mlir][NFC] update `mlir` create APIs (34/n) (llvm#150660) c610b24 Maksim Levental [mlir][NFC] update `mlir/Dialect` create APIs (27/n) (llvm#150638) b58ad36 Maksim Levental [mlir][NFC] update `mlir/Dialect` create APIs (30/n) (llvm#150643) 258d04c Maksim Levental [mlir][NFC] update `mlir/Dialect` create APIs (28/n) (llvm#150641) a6bf40d Maksim Levental [mlir][NFC] update `mlir/Dialect` create APIs (29/n) (llvm#150642) dcfc853 Maksim Levental [mlir][NFC] update `flang/lib` create APIs (12/n) (llvm#149914) 3f74334 Maksim Levental [mlir][NFC] update `flang` create APIs (13/n) (llvm#149913) a636b7b Maksim Levental [mlir][NFC] update `mlir/Dialect` create APIs (18/n) (llvm#149925) 75aa706 Maksim Levental [mlir][NFC] update `mlir/Dialect` create APIs (17/n) (llvm#149924) 2f53125 Maksim Levental [mlir][NFC] update `mlir/Dialect` create APIs (15/n) (llvm#149921) 967626b Maksim Levental [mlir][NFC] update `mlir/Dialect` create APIs (14/n) (llvm#149920) 588845d Maksim Levental [mlir][NFC] update `mlir/Dialect` create APIs (20/n) (llvm#149927) b043492 Maksim Levental [mlir][NFC] update `Conversion` create APIs (4/n) (llvm#149879) 8fff238 Maksim Levental [mlir][NFC] update `mlir/Dialect` create APIs (23/n) (llvm#149930) 38976a0 Maksim Levental [mlir][NFC] update `Conversion` create APIs (7/n) (llvm#149889) eaa67a3 Maksim Levental [mlir][NFC] update `Conversion` create APIs (5/n) (llvm#149887) b0312be Maksim Levental [mlir][NFC] update `mlir/Dialect` create APIs (19/n) (llvm#149926) 2736fbd Maksim Levental [mlir][NFC] update `mlir/lib` create APIs (26/n) (llvm#149933) 4ae9fdc Maksim Levental [mlir][NFC] update `Conversion` create APIs (6/n) (llvm#149888) f904cdd Maksim Levental [mlir][NFC] update `mlir/Dialect` create APIs (24/n) (llvm#149931) 972ac59 Maksim Levental [mlir][NFC] update `mlir/Dialect` create APIs (21/n) (llvm#149928) 7b78796 Maksim Levental [mlir][NFC] update `mlir/Dialect` create APIs (25/n) (llvm#149932) c3823af Maksim Levental [mlir][NFC] update `mlir/Dialect` create APIs (22/n) (llvm#149929) dce6679 Maksim Levental [mlir][NFC] update `mlir/Dialect` create APIs (16/n) (llvm#149922) 9844ba6 Maksim Levental [mlir][NFC] update `flang/Optimizer/Builder` create APIs (9/n) (llvm#149917) 5547c6c Maksim Levental [mlir][NFC] update `flang/Optimizer/Builder/Runtime` create APIs (10/n) (llvm#149916) a3a007a Maksim Levental [mlir][NFC] update `flang/Lower` create APIs (8/n) (llvm#149912) 46f6df0 Maksim Levental [mlir][NFC] update `flang/Optimizer/Transforms` create APIs (11/n) (llvm#149915) b7e332d Maksim Levental [mlir][NFC] update `include` create APIs (3/n) (llvm#149687) 6056f94 Maksim Levental [mlir][NFC] update LLVM create APIs (2/n) (llvm#149667) 906295b Maksim Levental [mlir] update affine+arith create APIs (1/n) (llvm#149656) ```
See #147168 for more info.