Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
18 changes: 9 additions & 9 deletions mlir/lib/Dialect/ArmSME/IR/Utils.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -75,21 +75,21 @@ scf::ForOp createLoopOverTileSlices(
PatternRewriter &rewriter, Location loc, Value initTile,
std::function<Value(OpBuilder &, Location, Value, Value)> makeLoopBody) {
OpBuilder::InsertionGuard g(rewriter);
auto step = rewriter.create<arith::ConstantIndexOp>(loc, 1);
auto minTileSlices = rewriter.create<arith::ConstantIndexOp>(
loc, llvm::cast<VectorType>(initTile.getType()).getDimSize(0));
auto step = arith::ConstantIndexOp::create(rewriter, loc, 1);
auto minTileSlices = arith::ConstantIndexOp::create(
rewriter, loc, llvm::cast<VectorType>(initTile.getType()).getDimSize(0));
auto vscale =
rewriter.create<vector::VectorScaleOp>(loc, rewriter.getIndexType());
auto lowerBound = rewriter.create<arith::ConstantIndexOp>(loc, 0);
vector::VectorScaleOp::create(rewriter, loc, rewriter.getIndexType());
auto lowerBound = arith::ConstantIndexOp::create(rewriter, loc, 0);
auto numTileSlices =
rewriter.create<arith::MulIOp>(loc, minTileSlices, vscale);
auto forOp = rewriter.create<scf::ForOp>(loc, lowerBound, numTileSlices, step,
ValueRange{initTile});
arith::MulIOp::create(rewriter, loc, minTileSlices, vscale);
auto forOp = scf::ForOp::create(rewriter, loc, lowerBound, numTileSlices,
step, ValueRange{initTile});
rewriter.setInsertionPointToStart(forOp.getBody());
Value nextTile =
makeLoopBody(rewriter, loc, /*tileSliceIndex=*/forOp.getInductionVar(),
/*currentTile=*/forOp.getRegionIterArg(0));
rewriter.create<scf::YieldOp>(loc, nextTile);
scf::YieldOp::create(rewriter, loc, nextTile);
return forOp;
}

Expand Down
13 changes: 7 additions & 6 deletions mlir/lib/Dialect/ArmSME/Transforms/OuterProductFusion.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -136,7 +136,7 @@ class OuterProductFusion2Way

auto loc = op.getLoc();
auto packInputs = [&](Value lhs, Value rhs) {
return rewriter.create<vector::InterleaveOp>(loc, lhs, rhs);
return vector::InterleaveOp::create(rewriter, loc, lhs, rhs);
};

auto lhs = packInputs(op1.getLhs().getDefiningOp()->getOperand(0),
Expand Down Expand Up @@ -284,7 +284,7 @@ class OuterProductFusion4Way

auto loc = op.getLoc();
auto packInputs = [&](Value lhs, Value rhs) {
return rewriter.create<vector::InterleaveOp>(loc, lhs, rhs);
return vector::InterleaveOp::create(rewriter, loc, lhs, rhs);
};

auto lhs0 = packInputs(op1.getLhs().getDefiningOp()->getOperand(0),
Expand Down Expand Up @@ -456,8 +456,8 @@ struct SwapVectorExtractOfArithExtend
Value extendSource = extendOp->getOperand(0);

// Create new extract from source of extend.
Value newExtract = rewriter.create<vector::ExtractOp>(
loc, extendSource, extractOp.getMixedPosition());
Value newExtract = vector::ExtractOp::create(rewriter, loc, extendSource,
extractOp.getMixedPosition());

// Extend new extract to original result type.
Operation *newExtend =
Expand Down Expand Up @@ -503,8 +503,9 @@ struct SwapVectorScalableExtractOfArithExtend
// Create new extract from source of extend.
VectorType extractResultVectorType =
resultType.clone(extendSourceVectorType.getElementType());
Value newExtract = rewriter.create<vector::ScalableExtractOp>(
loc, extractResultVectorType, extendSource, extractOp.getPos());
Value newExtract = vector::ScalableExtractOp::create(
rewriter, loc, extractResultVectorType, extendSource,
extractOp.getPos());

// Extend new extract to original result type.
Operation *newExtend =
Expand Down
4 changes: 2 additions & 2 deletions mlir/lib/Dialect/ArmSME/Transforms/TileAllocation.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -210,7 +210,7 @@ void splitCondBranches(IRRewriter &rewriter, FunctionOpInterface function) {

auto insertJump = [&](Location loc, Block *source, Block *dest, auto args) {
rewriter.setInsertionPointToEnd(source);
rewriter.create<cf::BranchOp>(loc, dest, args);
cf::BranchOp::create(rewriter, loc, dest, args);
};

for (auto condBranch : worklist) {
Expand Down Expand Up @@ -253,7 +253,7 @@ void insertCopiesAtBranches(IRRewriter &rewriter,
for (OpOperand &operand : terminator->getOpOperands()) {
if (isValidSMETileVectorType(operand.get().getType())) {
auto copy =
rewriter.create<CopyTileOp>(terminator->getLoc(), operand.get());
CopyTileOp::create(rewriter, terminator->getLoc(), operand.get());
rewriter.modifyOpInPlace(terminator, [&] { operand.assign(copy); });
}
}
Expand Down
179 changes: 91 additions & 88 deletions mlir/lib/Dialect/ArmSME/Transforms/VectorLegalization.cpp

Large diffs are not rendered by default.

28 changes: 14 additions & 14 deletions mlir/lib/Dialect/ArmSVE/Transforms/LegalizeForLLVMExport.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -87,8 +87,8 @@ struct SvboolConversionOpLowering : public ConvertOpToLLVMPattern<Op> {
VectorType sourceType = source.getType();
VectorType resultType = convertOp.getResult().getType();

Value result = rewriter.create<arith::ConstantOp>(
loc, resultType, rewriter.getZeroAttr(resultType));
Value result = arith::ConstantOp::create(rewriter, loc, resultType,
rewriter.getZeroAttr(resultType));

// We want to iterate over the input vector in steps of the trailing
// dimension. So this creates tile shape where all leading dimensions are 1,
Expand All @@ -100,15 +100,15 @@ struct SvboolConversionOpLowering : public ConvertOpToLLVMPattern<Op> {
for (SmallVector<int64_t> index :
StaticTileOffsetRange(sourceType.getShape(), tileShape)) {
auto extractOrInsertPosition = ArrayRef(index).drop_back();
auto sourceVector = rewriter.create<vector::ExtractOp>(
loc, source, extractOrInsertPosition);
auto sourceVector = vector::ExtractOp::create(rewriter, loc, source,
extractOrInsertPosition);
VectorType convertedType =
VectorType::Builder(llvm::cast<VectorType>(sourceVector.getType()))
.setDim(0, resultType.getShape().back());
auto convertedVector =
rewriter.create<IntrOp>(loc, TypeRange{convertedType}, sourceVector);
result = rewriter.create<vector::InsertOp>(loc, convertedVector, result,
extractOrInsertPosition);
IntrOp::create(rewriter, loc, TypeRange{convertedType}, sourceVector);
result = vector::InsertOp::create(rewriter, loc, convertedVector, result,
extractOrInsertPosition);
}

rewriter.replaceOp(convertOp, result);
Expand All @@ -135,12 +135,12 @@ struct PselOpLowering : public ConvertOpToLLVMPattern<PselOp> {
ConversionPatternRewriter &rewriter) const override {
auto svboolType = VectorType::get(16, rewriter.getI1Type(), true);
auto loc = pselOp.getLoc();
auto svboolP1 = rewriter.create<ConvertToSvboolIntrOp>(loc, svboolType,
adaptor.getP1());
auto indexI32 = rewriter.create<arith::IndexCastOp>(
loc, rewriter.getI32Type(), pselOp.getIndex());
auto pselIntr = rewriter.create<PselIntrOp>(loc, svboolType, svboolP1,
pselOp.getP2(), indexI32);
auto svboolP1 = ConvertToSvboolIntrOp::create(rewriter, loc, svboolType,
adaptor.getP1());
auto indexI32 = arith::IndexCastOp::create(
rewriter, loc, rewriter.getI32Type(), pselOp.getIndex());
auto pselIntr = PselIntrOp::create(rewriter, loc, svboolType, svboolP1,
pselOp.getP2(), indexI32);
rewriter.replaceOpWithNewOp<ConvertFromSvboolIntrOp>(
pselOp, adaptor.getP1().getType(), pselIntr);
return success();
Expand Down Expand Up @@ -174,7 +174,7 @@ struct CreateMaskOpLowering
"not SVE predicate-sized");

auto loc = createMaskOp.getLoc();
auto zero = rewriter.create<LLVM::ZeroOp>(loc, rewriter.getI64Type());
auto zero = LLVM::ZeroOp::create(rewriter, loc, rewriter.getI64Type());
rewriter.replaceOpWithNewOp<WhileLTIntrOp>(createMaskOp, maskType, zero,
adaptor.getOperands()[0]);
return success();
Expand Down
24 changes: 12 additions & 12 deletions mlir/lib/Dialect/ArmSVE/Transforms/LegalizeVectorStorage.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -71,8 +71,8 @@ void replaceOpWithUnrealizedConversion(PatternRewriter &rewriter, TOp op,
TLegalizerCallback callback) {
replaceOpWithLegalizedOp(rewriter, op, [&](TOp newOp) {
// Mark our `unrealized_conversion_casts` with a pass label.
return rewriter.create<UnrealizedConversionCastOp>(
op.getLoc(), TypeRange{op.getResult().getType()},
return UnrealizedConversionCastOp::create(
rewriter, op.getLoc(), TypeRange{op.getResult().getType()},
ValueRange{callback(newOp)},
NamedAttribute(rewriter.getStringAttr(kSVELegalizerTag),
rewriter.getUnitAttr()));
Expand Down Expand Up @@ -239,8 +239,8 @@ struct LegalizeSVEMaskStoreConversion

auto legalMaskType = widenScalableMaskTypeToSvbool(
llvm::cast<VectorType>(valueToStore.getType()));
auto convertToSvbool = rewriter.create<arm_sve::ConvertToSvboolOp>(
loc, legalMaskType, valueToStore);
auto convertToSvbool = arm_sve::ConvertToSvboolOp::create(
rewriter, loc, legalMaskType, valueToStore);
// Replace this store with a conversion to a storable svbool mask [1],
// followed by a wider store.
replaceOpWithLegalizedOp(rewriter, storeOp,
Expand Down Expand Up @@ -290,8 +290,8 @@ struct LegalizeSVEMaskLoadConversion : public OpRewritePattern<memref::LoadOp> {
replaceOpWithLegalizedOp(rewriter, loadOp, [&](memref::LoadOp newLoadOp) {
newLoadOp.setMemRef(*legalMemref);
newLoadOp.getResult().setType(legalMaskType);
return rewriter.create<arm_sve::ConvertFromSvboolOp>(
loc, loadedMask.getType(), newLoadOp);
return arm_sve::ConvertFromSvboolOp::create(
rewriter, loc, loadedMask.getType(), newLoadOp);
});

return success();
Expand Down Expand Up @@ -408,8 +408,8 @@ struct LegalizeTransferRead : public OpRewritePattern<vector::TransferReadOp> {
reassoc.back().push_back(i);
if (!memref::CollapseShapeOp::isGuaranteedCollapsible(memTy, reassoc))
return failure();
Value collapsedMem = rewriter.create<memref::CollapseShapeOp>(
readOp.getLoc(), readOp.getBase(), reassoc);
Value collapsedMem = memref::CollapseShapeOp::create(
rewriter, readOp.getLoc(), readOp.getBase(), reassoc);

// Get a vector type with collapsed trailing dimensions.
SmallVector<int64_t> shape(origVT.getShape());
Expand All @@ -424,14 +424,14 @@ struct LegalizeTransferRead : public OpRewritePattern<vector::TransferReadOp> {
auto indices = readOp.getIndices().drop_back(numCollapseDims - 1);

// Create the new `transfer_read`.
auto newReadOp = rewriter.create<vector::TransferReadOp>(
readOp.getLoc(), collapsedVT, collapsedMem, indices,
auto newReadOp = vector::TransferReadOp::create(
rewriter, readOp.getLoc(), collapsedVT, collapsedMem, indices,
readOp.getPadding(),
ArrayRef<bool>(origInBounds).drop_back(numCollapseDims - 1));

// Cast back to the original vector type.
auto toOrigShape = rewriter.create<vector::ShapeCastOp>(readOp.getLoc(),
origVT, newReadOp);
auto toOrigShape = vector::ShapeCastOp::create(rewriter, readOp.getLoc(),
origVT, newReadOp);

rewriter.replaceOp(readOp, toOrigShape);
return success();
Expand Down
2 changes: 1 addition & 1 deletion mlir/lib/Dialect/Async/IR/Async.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -97,7 +97,7 @@ void ExecuteOp::build(OpBuilder &builder, OperationState &result,
// expected result is empty. Otherwise, leave this to the caller
// because we don't know which values to return from the execute op.
if (resultTypes.empty() && !bodyBuilder) {
builder.create<async::YieldOp>(result.location, ValueRange());
async::YieldOp::create(builder, result.location, ValueRange());
} else if (bodyBuilder) {
bodyBuilder(builder, result.location, bodyBlock->getArguments());
}
Expand Down
Loading