@@ -28,14 +28,14 @@ namespace mlir::tt::d2m {
2828
2929static std::tuple<SmallVector<Value>, SmallVector<Value>, SmallVector<Value>>
3030getLoopBounds (OpBuilder &builder, Location loc, ArrayRef<int64_t > shardShape) {
31- Value zero = builder. create < arith::ConstantOp>( loc, builder.getIndexType (),
32- builder.getIndexAttr (0 ));
33- Value one = builder. create < arith::ConstantOp>( loc, builder.getIndexType (),
34- builder.getIndexAttr (1 ));
31+ Value zero = arith::ConstantOp::create (builder, loc, builder.getIndexType (),
32+ builder.getIndexAttr (0 ));
33+ Value one = arith::ConstantOp::create (builder, loc, builder.getIndexType (),
34+ builder.getIndexAttr (1 ));
3535 SmallVector<Value> lbs (shardShape.size (), zero);
3636 SmallVector<Value> ubs (llvm::map_range (shardShape, [&](int64_t dim) {
37- return builder. create < arith::ConstantOp>( loc, builder.getIndexType (),
38- builder.getIndexAttr (dim));
37+ return arith::ConstantOp::create (builder, loc, builder.getIndexType (),
38+ builder.getIndexAttr (dim));
3939 }));
4040 SmallVector<Value> step (shardShape.size (), one);
4141 return std::make_tuple (lbs, ubs, step);
@@ -93,7 +93,7 @@ static SmallVector<Value> applyMap(Builder &builder, Location loc,
9393 AffineMap map, ValueRange index,
9494 bool isRemote) {
9595 auto affineApply = [&](AffineMap map, ValueRange index) {
96- return builder. template create < affine::AffineApplyOp>( loc, map, index);
96+ return affine::AffineApplyOp::create (builder, loc, map, index);
9797 };
9898
9999 if (isRemote) {
@@ -217,8 +217,8 @@ static Value generateFullyIndexedDMAOps(
217217 SmallVector<Value> remoteIndices = gridIndices;
218218 SmallVector<Value> localIndices;
219219
220- Value zero = builder. create < arith::ConstantOp>( loc, builder.getIndexType (),
221- builder.getIndexAttr (0 ));
220+ Value zero = arith::ConstantOp::create (builder, loc, builder.getIndexType (),
221+ builder.getIndexAttr (0 ));
222222 for (size_t i = 0 ; i < shardShape.size (); ++i) {
223223 remoteIndices.push_back (zero);
224224 localIndices.push_back (zero);
@@ -234,7 +234,7 @@ static Value generateFullyIndexedDMAOps(
234234
235235 // Strided/non-contiguous: generate loops with guarded DMAs.
236236 auto [lbs, ubs, steps] = getLoopBounds (builder, loc, shardShape);
237- auto nullDmaTx = builder. create < NullTxOp>( loc);
237+ auto nullDmaTx = NullTxOp::create (builder, loc);
238238
239239 scf::LoopNest loopNest = scf::buildLoopNest (
240240 builder, loc, lbs, ubs, steps, ValueRange (nullDmaTx),
@@ -252,50 +252,49 @@ static Value generateFullyIndexedDMAOps(
252252 localIndices, false );
253253
254254 // Create guarded DMA operation based on coalescing factor.
255- Value cfExpr = loopBuilder. create < arith::ConstantOp> (
256- innerLoc, loopBuilder.getIndexType (),
255+ Value cfExpr = arith::ConstantOp::create (
256+ loopBuilder, innerLoc, loopBuilder.getIndexType (),
257257 loopBuilder.getIndexAttr (coalescingFactor));
258- Value zero = loopBuilder. create < arith::ConstantOp> (
259- innerLoc, loopBuilder.getIndexType (),
258+ Value zero = arith::ConstantOp::create (
259+ loopBuilder, innerLoc, loopBuilder.getIndexType (),
260260 loopBuilder.getIntegerAttr (loopBuilder.getIndexType (), 0 ));
261261
262262 // Construct guard function: flat_index(iters) % coalescingFactor == 0
263263 auto totalIterCount = zero;
264264 size_t currStride = 1 ;
265265 for (int i = iters.size () - 1 ; i >= 0 ; i--) {
266- Value currStrideExpr = loopBuilder. create < arith::ConstantOp> (
267- innerLoc, loopBuilder.getIndexType (),
266+ Value currStrideExpr = arith::ConstantOp::create (
267+ loopBuilder, innerLoc, loopBuilder.getIndexType (),
268268 loopBuilder.getIndexAttr (currStride));
269- auto scaledCount =
270- loopBuilder
271- .create <arith::MulIOp>(innerLoc, currStrideExpr, iters[i])
272- .getResult ();
273- totalIterCount =
274- loopBuilder
275- .create <arith::AddIOp>(innerLoc, scaledCount, totalIterCount)
276- .getResult ();
269+ auto scaledCount = arith::MulIOp::create (loopBuilder, innerLoc,
270+ currStrideExpr, iters[i])
271+ .getResult ();
272+ totalIterCount = arith::AddIOp::create (loopBuilder, innerLoc,
273+ scaledCount, totalIterCount)
274+ .getResult ();
277275 currStride *= shardShape[i];
278276 }
279- auto moduloIterCount =
280- loopBuilder.create <arith::RemSIOp>(innerLoc, totalIterCount, cfExpr)
281- .getResult ();
282- auto predicate = loopBuilder.create <arith::CmpIOp>(
283- innerLoc, arith::CmpIPredicate::eq, moduloIterCount, zero);
277+ auto moduloIterCount = arith::RemSIOp::create (loopBuilder, innerLoc,
278+ totalIterCount, cfExpr)
279+ .getResult ();
280+ auto predicate = arith::CmpIOp::create (loopBuilder, innerLoc,
281+ arith::CmpIPredicate::eq,
282+ moduloIterCount, zero);
284283
285- auto nulltx = loopBuilder. create < NullTxOp>( innerLoc);
284+ auto nulltx = NullTxOp::create (loopBuilder, innerLoc);
286285
287286 // Build guarded DMA.
288- auto ifExpr = loopBuilder. create < scf::IfOp> (
289- innerLoc, TypeRange (SmallVector<Value>{nulltx}), predicate ,
290- true /* addThenBlock*/ , true /* addElseBlock*/ );
287+ auto ifExpr = scf::IfOp::create (
288+ loopBuilder, innerLoc, TypeRange (SmallVector<Value>{nulltx}),
289+ predicate, true /* addThenBlock*/ , true /* addElseBlock*/ );
291290
292291 auto thenBuilder = ifExpr.getThenBodyBuilder ();
293292 Value dmaTx = createDMAOp (thenBuilder, innerLoc, remoteIndices,
294293 localIndices, coalescingFactor);
295- thenBuilder. create < scf::YieldOp>( innerLoc, dmaTx);
294+ scf::YieldOp::create (thenBuilder, innerLoc, dmaTx);
296295
297296 auto elseBuilder = ifExpr.getElseBodyBuilder ();
298- elseBuilder. create < scf::YieldOp>( innerLoc, args[0 ]);
297+ scf::YieldOp::create (elseBuilder, innerLoc, args[0 ]);
299298
300299 return SmallVector<Value>{ifExpr.getResult (0 )};
301300 });
@@ -356,8 +355,8 @@ class D2MLowerDMAReadToFullyIndexed : public OpRewritePattern<DMAReadOp> {
356355 coalescingFactor, shardVolume,
357356 [&](OpBuilder &b, Location l, SmallVector<Value> &remoteIdx,
358357 SmallVector<Value> &localIdx, size_t cf) {
359- return b. create < DMAReadOp>( l, remoteMemref, remoteIdx, localMemref,
360- localIdx, b.getI64IntegerAttr (cf));
358+ return DMAReadOp::create (b, l, remoteMemref, remoteIdx, localMemref,
359+ localIdx, b.getI64IntegerAttr (cf));
361360 });
362361
363362 rewriter.replaceOp (op, newTx);
@@ -398,16 +397,16 @@ class D2MLowerDMAWriteToFullyIndexed : public OpRewritePattern<DMAWriteOp> {
398397 size_t shardVolume = ttmlir::utils::volume (shardShape);
399398
400399 SmallVector<Value> localIndices;
401- Value zero = rewriter. create < arith::ConstantOp> (
402- loc, rewriter.getIndexType (), rewriter.getIndexAttr (0 ));
400+ Value zero = arith::ConstantOp::create (
401+ rewriter, loc, rewriter.getIndexType (), rewriter.getIndexAttr (0 ));
403402 for (size_t i = 0 ; i < shardShape.size (); ++i) {
404403 localIndices.push_back (zero);
405404 }
406405 localIndices =
407406 applyMap (rewriter, loc, localMemoryMap, localIndices, false );
408407
409- Value newTx = rewriter. create < DMAWriteOp> (
410- loc, localMemref, localIndices, dstMemref, localIndices,
408+ Value newTx = DMAWriteOp::create (
409+ rewriter, loc, localMemref, localIndices, dstMemref, localIndices,
411410 op.getMcastStartIndex (), op.getMcastShape (), shardVolume);
412411 rewriter.replaceOp (op, newTx);
413412 return success ();
@@ -443,8 +442,8 @@ class D2MLowerDMAWriteToFullyIndexed : public OpRewritePattern<DMAWriteOp> {
443442 coalescingFactor, shardVolume,
444443 [&](OpBuilder &b, Location l, SmallVector<Value> &remoteIdx,
445444 SmallVector<Value> &localIdx, size_t cf) {
446- return b. create < DMAWriteOp>( l, localMemref, localIdx, dstMemref,
447- remoteIdx, cf);
445+ return DMAWriteOp::create (b, l, localMemref, localIdx, dstMemref,
446+ remoteIdx, cf);
448447 });
449448
450449 rewriter.replaceOp (op, newTx);
0 commit comments