Lines Matching defs:fir
37 namespace fir {
40 } // namespace fir
44 using namespace fir;
63 auto coorOp = rewriter.create<fir::CoordinateOp>(
64 op.getLoc(), fir::ReferenceType::get(op.getResult().getType()),
67 rewriter.replaceOpWithNewOp<fir::LoadOp>(op, coorOp.getResult());
86 auto coorOp = rewriter.create<fir::CoordinateOp>(
87 op.getLoc(), fir::ReferenceType::get(op.getValueToStore().getType()),
89 rewriter.replaceOpWithNewOp<fir::StoreOp>(op, adaptor.getValue(),
95 class ConvertConversion : public mlir::OpRewritePattern<fir::ConvertOp> {
99 matchAndRewrite(fir::ConvertOp op,
105 // fir.convert %arg0 : (!fir.ref<!fir.array<5xi32>>) ->
106 // !fir.ref<!fir.array<?xi32>>
108 mlir::dyn_cast<fir::ReferenceType>(op.getValue().getType()))
109 if (auto arrTy = mlir::dyn_cast<fir::SequenceType>(refTy.getEleTy())) {
110 fir::SequenceType::Shape flatShape = {
111 fir::SequenceType::getUnknownExtent()};
112 auto flatArrTy = fir::SequenceType::get(flatShape, arrTy.getEleTy());
113 auto flatTy = fir::ReferenceType::get(flatArrTy);
114 rewriter.replaceOpWithNewOp<fir::ConvertOp>(op, flatTy,
128 return fir::SequenceType::get(SmallVector<int64_t>(type.getShape()),
138 rewriter.replaceOpWithNewOp<fir::AllocaOp>(op, convertMemRef(op.getType()),
145 : public fir::impl::AffineDialectDemotionBase<AffineDialectDemotion> {
160 target.addDynamicallyLegalOp<fir::ConvertOp>([](fir::ConvertOp op) {
180 std::unique_ptr<mlir::Pass> fir::createAffineDemotionPass() {