Lines Matching refs:rewriter
41 mlir::PatternRewriter &rewriter) const override { in matchAndRewrite()
46 auto *initBlock = rewriter.getInsertionBlock(); in matchAndRewrite()
47 auto initPos = rewriter.getInsertionPoint(); in matchAndRewrite()
48 auto *endBlock = rewriter.splitBlock(initBlock, initPos); in matchAndRewrite()
54 conditionalBlock->addArgument(rewriter.getIndexType(), loc); in matchAndRewrite()
56 rewriter.splitBlock(conditionalBlock, conditionalBlock->begin()); in matchAndRewrite()
60 rewriter.inlineRegionBefore(loop.getRegion(), endBlock); in matchAndRewrite()
69 rewriter.setInsertionPointToEnd(initBlock); in matchAndRewrite()
70 auto diff = rewriter.create<mlir::arith::SubIOp>(loc, high, low); in matchAndRewrite()
71 auto distance = rewriter.create<mlir::arith::AddIOp>(loc, diff, step); in matchAndRewrite()
73 rewriter.create<mlir::arith::DivSIOp>(loc, distance, step); in matchAndRewrite()
76 auto zero = rewriter.create<mlir::arith::ConstantIndexOp>(loc, 0); in matchAndRewrite()
77 auto cond = rewriter.create<mlir::arith::CmpIOp>( in matchAndRewrite()
79 auto one = rewriter.create<mlir::arith::ConstantIndexOp>(loc, 1); in matchAndRewrite()
80 iters = rewriter.create<mlir::arith::SelectOp>(loc, cond, one, iters); in matchAndRewrite()
89 rewriter.create<mlir::cf::BranchOp>(loc, conditionalBlock, loopOperands); in matchAndRewrite()
93 rewriter.setInsertionPointToEnd(lastBlock); in matchAndRewrite()
96 rewriter.create<mlir::arith::AddIOp>(loc, iv, step); in matchAndRewrite()
100 auto one = rewriter.create<mlir::arith::ConstantIndexOp>(loc, 1); in matchAndRewrite()
102 rewriter.create<mlir::arith::SubIOp>(loc, itersLeft, one); in matchAndRewrite()
110 rewriter.create<mlir::cf::BranchOp>(loc, conditionalBlock, loopCarried); in matchAndRewrite()
111 rewriter.eraseOp(terminator); in matchAndRewrite()
114 rewriter.setInsertionPointToEnd(conditionalBlock); in matchAndRewrite()
115 auto zero = rewriter.create<mlir::arith::ConstantIndexOp>(loc, 0); in matchAndRewrite()
116 auto comparison = rewriter.create<mlir::arith::CmpIOp>( in matchAndRewrite()
119 rewriter.create<mlir::cf::CondBranchOp>( in matchAndRewrite()
128 rewriter.replaceOp(loop, args.drop_back()); in matchAndRewrite()
145 matchAndRewrite(IfOp ifOp, mlir::PatternRewriter &rewriter) const override { in matchAndRewrite()
151 auto *condBlock = rewriter.getInsertionBlock(); in matchAndRewrite()
152 auto opPosition = rewriter.getInsertionPoint(); in matchAndRewrite()
153 auto *remainingOpsBlock = rewriter.splitBlock(condBlock, opPosition); in matchAndRewrite()
158 continueBlock = rewriter.createBlock( in matchAndRewrite()
161 rewriter.create<mlir::cf::BranchOp>(loc, remainingOpsBlock); in matchAndRewrite()
170 rewriter.setInsertionPointToEnd(&ifOpRegion.back()); in matchAndRewrite()
171 rewriter.create<mlir::cf::BranchOp>(loc, continueBlock, in matchAndRewrite()
173 rewriter.eraseOp(ifOpTerminator); in matchAndRewrite()
174 rewriter.inlineRegionBefore(ifOpRegion, continueBlock); in matchAndRewrite()
185 rewriter.setInsertionPointToEnd(&otherwiseRegion.back()); in matchAndRewrite()
186 rewriter.create<mlir::cf::BranchOp>(loc, continueBlock, in matchAndRewrite()
188 rewriter.eraseOp(otherwiseTerm); in matchAndRewrite()
189 rewriter.inlineRegionBefore(otherwiseRegion, continueBlock); in matchAndRewrite()
192 rewriter.setInsertionPointToEnd(condBlock); in matchAndRewrite()
193 rewriter.create<mlir::cf::CondBranchOp>( in matchAndRewrite()
196 rewriter.replaceOp(ifOp, continueBlock->getArguments()); in matchAndRewrite()
211 mlir::PatternRewriter &rewriter) const override { in matchAndRewrite()
217 auto *initBlock = rewriter.getInsertionBlock(); in matchAndRewrite()
218 auto initPosition = rewriter.getInsertionPoint(); in matchAndRewrite()
219 auto *endBlock = rewriter.splitBlock(initBlock, initPosition); in matchAndRewrite()
228 rewriter.splitBlock(conditionBlock, conditionBlock->begin()); in matchAndRewrite()
230 rewriter.inlineRegionBefore(whileOp.getRegion(), endBlock); in matchAndRewrite()
238 rewriter.setInsertionPointToEnd(lastBodyBlock); in matchAndRewrite()
240 mlir::Value stepped = rewriter.create<mlir::arith::AddIOp>(loc, iv, step); in matchAndRewrite()
249 rewriter.create<mlir::cf::BranchOp>(loc, conditionBlock, loopCarried); in matchAndRewrite()
250 rewriter.eraseOp(terminator); in matchAndRewrite()
253 rewriter.setInsertionPointToEnd(initBlock); in matchAndRewrite()
264 rewriter.create<mlir::cf::BranchOp>(loc, conditionBlock, destOperands); in matchAndRewrite()
267 rewriter.setInsertionPointToEnd(conditionBlock); in matchAndRewrite()
271 auto zero = rewriter.create<mlir::arith::ConstantIndexOp>(loc, 0); in matchAndRewrite()
272 auto compl0 = rewriter.create<mlir::arith::CmpIOp>( in matchAndRewrite()
274 auto compl1 = rewriter.create<mlir::arith::CmpIOp>( in matchAndRewrite()
276 auto compl2 = rewriter.create<mlir::arith::CmpIOp>( in matchAndRewrite()
278 auto compl3 = rewriter.create<mlir::arith::CmpIOp>( in matchAndRewrite()
280 auto cmp0 = rewriter.create<mlir::arith::AndIOp>(loc, compl0, compl1); in matchAndRewrite()
281 auto cmp1 = rewriter.create<mlir::arith::AndIOp>(loc, compl2, compl3); in matchAndRewrite()
282 auto cmp2 = rewriter.create<mlir::arith::OrIOp>(loc, cmp0, cmp1); in matchAndRewrite()
285 rewriter.create<mlir::arith::AndIOp>(loc, iterateVar, cmp2); in matchAndRewrite()
286 rewriter.create<mlir::cf::CondBranchOp>( in matchAndRewrite()
294 rewriter.replaceOp(whileOp, args); in matchAndRewrite()