Lines Matching defs:fir
20 namespace fir {
23 } // namespace fir
30 class CallOpRewriter : public mlir::OpRewritePattern<fir::CallOp> {
41 matchAndRewrite(fir::CallOp callOp,
46 fir::FirOpBuilder builder(rewriter, module);
50 auto alloca = mlir::dyn_cast_or_null<fir::AllocaOp>(a.getDefiningOp());
54 if (!alloca || !alloca->hasAttr(fir::getAdaptToByRefAttrName())) {
60 assert(!fir::hasDynamicSize(varTy) &&
66 if (mlir::isa<fir::StoreOp>(s) && di.dominates(s, callOp)) {
107 fir::GlobalOp global = builder.createGlobalConstant(
109 [&](fir::FirOpBuilder &builder) {
114 builder.create<fir::HasValueOp>(loc, val);
117 mlir::Value addr = builder.create<fir::AddrOfOp>(loc, global.resultType(),
128 fir::CallOp newOp = builder.create<fir::CallOp>(
160 : public fir::impl::ConstantArgumentGlobalisationOptBase<