Lines Matching refs:rewriter

102                                 PatternRewriter &rewriter) const override;
195 PatternRewriter &rewriter) const override;
202 PatternRewriter &rewriter) const override;
209 PatternRewriter &rewriter) const override;
275 PatternRewriter &rewriter) const override;
286 PatternRewriter &rewriter) const override;
291 PatternRewriter &rewriter) const { in matchAndRewrite()
297 auto *initBlock = rewriter.getInsertionBlock(); in matchAndRewrite()
298 auto initPosition = rewriter.getInsertionPoint(); in matchAndRewrite()
299 auto *endBlock = rewriter.splitBlock(initBlock, initPosition); in matchAndRewrite()
307 rewriter.splitBlock(conditionBlock, conditionBlock->begin()); in matchAndRewrite()
309 rewriter.inlineRegionBefore(forOp.getRegion(), endBlock); in matchAndRewrite()
316 rewriter.setInsertionPointToEnd(lastBodyBlock); in matchAndRewrite()
318 auto stepped = rewriter.create<arith::AddIOp>(loc, iv, step).getResult(); in matchAndRewrite()
325 rewriter.create<cf::BranchOp>(loc, conditionBlock, loopCarried); in matchAndRewrite()
326 rewriter.eraseOp(terminator); in matchAndRewrite()
329 rewriter.setInsertionPointToEnd(initBlock); in matchAndRewrite()
341 rewriter.create<cf::BranchOp>(loc, conditionBlock, destOperands); in matchAndRewrite()
344 rewriter.setInsertionPointToEnd(conditionBlock); in matchAndRewrite()
345 auto comparison = rewriter.create<arith::CmpIOp>( in matchAndRewrite()
348 rewriter.create<cf::CondBranchOp>(loc, comparison, firstBodyBlock, in matchAndRewrite()
353 rewriter.replaceOp(forOp, conditionBlock->getArguments().drop_front()); in matchAndRewrite()
358 PatternRewriter &rewriter) const { in matchAndRewrite()
364 auto *condBlock = rewriter.getInsertionBlock(); in matchAndRewrite()
365 auto opPosition = rewriter.getInsertionPoint(); in matchAndRewrite()
366 auto *remainingOpsBlock = rewriter.splitBlock(condBlock, opPosition); in matchAndRewrite()
372 rewriter.createBlock(remainingOpsBlock, ifOp.getResultTypes(), in matchAndRewrite()
374 rewriter.create<cf::BranchOp>(loc, remainingOpsBlock); in matchAndRewrite()
383 rewriter.setInsertionPointToEnd(&thenRegion.back()); in matchAndRewrite()
384 rewriter.create<cf::BranchOp>(loc, continueBlock, thenTerminatorOperands); in matchAndRewrite()
385 rewriter.eraseOp(thenTerminator); in matchAndRewrite()
386 rewriter.inlineRegionBefore(thenRegion, continueBlock); in matchAndRewrite()
397 rewriter.setInsertionPointToEnd(&elseRegion.back()); in matchAndRewrite()
398 rewriter.create<cf::BranchOp>(loc, continueBlock, elseTerminatorOperands); in matchAndRewrite()
399 rewriter.eraseOp(elseTerminator); in matchAndRewrite()
400 rewriter.inlineRegionBefore(elseRegion, continueBlock); in matchAndRewrite()
403 rewriter.setInsertionPointToEnd(condBlock); in matchAndRewrite()
404 rewriter.create<cf::CondBranchOp>(loc, ifOp.getCondition(), thenBlock, in matchAndRewrite()
409 rewriter.replaceOp(ifOp, continueBlock->getArguments()); in matchAndRewrite()
415 PatternRewriter &rewriter) const { in matchAndRewrite()
418 auto *condBlock = rewriter.getInsertionBlock(); in matchAndRewrite()
419 auto opPosition = rewriter.getInsertionPoint(); in matchAndRewrite()
420 auto *remainingOpsBlock = rewriter.splitBlock(condBlock, opPosition); in matchAndRewrite()
423 rewriter.setInsertionPointToEnd(condBlock); in matchAndRewrite()
424 rewriter.create<cf::BranchOp>(loc, &region.front()); in matchAndRewrite()
429 rewriter.setInsertionPointToEnd(&block); in matchAndRewrite()
430 rewriter.create<cf::BranchOp>(loc, remainingOpsBlock, terminatorOperands); in matchAndRewrite()
431 rewriter.eraseOp(terminator); in matchAndRewrite()
435 rewriter.inlineRegionBefore(region, remainingOpsBlock); in matchAndRewrite()
442 rewriter.replaceOp(op, vals); in matchAndRewrite()
448 PatternRewriter &rewriter) const { in matchAndRewrite()
466 ForOp forOp = rewriter.create<ForOp>(loc, lower, upper, step, iterArgs); in matchAndRewrite()
479 rewriter.setInsertionPointToEnd(rewriter.getInsertionBlock()); in matchAndRewrite()
480 rewriter.create<scf::YieldOp>(loc, forOp.getResults()); in matchAndRewrite()
483 rewriter.setInsertionPointToStart(forOp.getBody()); in matchAndRewrite()
497 rewriter.eraseOp(reduceBlock.getTerminator()); in matchAndRewrite()
498 rewriter.mergeBlockBefore(&reduceBlock, &op, {arg, reduce.getOperand()}); in matchAndRewrite()
499 rewriter.eraseOp(reduce); in matchAndRewrite()
503 rewriter.eraseOp(parallelOp.getBody()->getTerminator()); in matchAndRewrite()
504 Block *newBody = rewriter.getInsertionBlock(); in matchAndRewrite()
506 rewriter.mergeBlocks(parallelOp.getBody(), newBody, ivs); in matchAndRewrite()
508 rewriter.mergeBlockBefore(parallelOp.getBody(), newBody->getTerminator(), in matchAndRewrite()
514 rewriter.setInsertionPointToEnd(rewriter.getInsertionBlock()); in matchAndRewrite()
515 rewriter.create<scf::YieldOp>(loc, yieldOperands); in matchAndRewrite()
518 rewriter.replaceOp(parallelOp, loopResults); in matchAndRewrite()
524 PatternRewriter &rewriter) const { in matchAndRewrite()
525 OpBuilder::InsertionGuard guard(rewriter); in matchAndRewrite()
529 Block *currentBlock = rewriter.getInsertionBlock(); in matchAndRewrite()
531 rewriter.splitBlock(currentBlock, rewriter.getInsertionPoint()); in matchAndRewrite()
538 rewriter.inlineRegionBefore(whileOp.getAfter(), continuation); in matchAndRewrite()
539 rewriter.inlineRegionBefore(whileOp.getBefore(), after); in matchAndRewrite()
542 rewriter.setInsertionPointToEnd(currentBlock); in matchAndRewrite()
543 rewriter.create<cf::BranchOp>(loc, before, whileOp.getInits()); in matchAndRewrite()
548 rewriter.setInsertionPointToEnd(beforeLast); in matchAndRewrite()
550 rewriter.replaceOpWithNewOp<cf::CondBranchOp>(condOp, condOp.getCondition(), in matchAndRewrite()
554 rewriter.setInsertionPointToEnd(afterLast); in matchAndRewrite()
556 rewriter.replaceOpWithNewOp<cf::BranchOp>(yieldOp, before, in matchAndRewrite()
561 rewriter.replaceOp(whileOp, condOp.getArgs()); in matchAndRewrite()
568 PatternRewriter &rewriter) const { in matchAndRewrite()
570 return rewriter.notifyMatchFailure(whileOp, in matchAndRewrite()
576 return rewriter.notifyMatchFailure(whileOp, in matchAndRewrite()
582 return rewriter.notifyMatchFailure(whileOp, in matchAndRewrite()
587 OpBuilder::InsertionGuard guard(rewriter); in matchAndRewrite()
588 Block *currentBlock = rewriter.getInsertionBlock(); in matchAndRewrite()
590 rewriter.splitBlock(currentBlock, rewriter.getInsertionPoint()); in matchAndRewrite()
595 rewriter.inlineRegionBefore(whileOp.getBefore(), continuation); in matchAndRewrite()
598 rewriter.setInsertionPointToEnd(currentBlock); in matchAndRewrite()
599 rewriter.create<cf::BranchOp>(whileOp.getLoc(), before, whileOp.getInits()); in matchAndRewrite()
602 rewriter.setInsertionPointToEnd(beforeLast); in matchAndRewrite()
604 rewriter.replaceOpWithNewOp<cf::CondBranchOp>(condOp, condOp.getCondition(), in matchAndRewrite()
610 rewriter.replaceOp(whileOp, condOp.getArgs()); in matchAndRewrite()