}
mlir::Type funcPointerType = tuple.getType(0);
mlir::Type lenType = tuple.getType(1);
- fir::FirOpBuilder builder(*rewriter, fir::getKindMapping(module));
+ fir::KindMapping kindMap = fir::getKindMapping(module);
+ fir::FirOpBuilder builder(*rewriter, kindMap);
auto [funcPointer, len] =
fir::factory::extractCharacterProcedureTuple(builder, loc,
oper);
func.front().addArgument(trailingTys[fixup.second], loc);
auto tupleType = oldArgTys[fixup.index - offset];
rewriter->setInsertionPointToStart(&func.front());
- fir::FirOpBuilder builder(*rewriter,
- fir::getKindMapping(getModule()));
+ fir::KindMapping kindMap = fir::getKindMapping(getModule());
+ fir::FirOpBuilder builder(*rewriter, kindMap);
auto tuple = fir::factory::createCharacterProcedureTuple(
builder, loc, tupleType, newProcPointerArg, newLenArg);
func.getArgument(fixup.index + 1).replaceAllUsesWith(tuple);
auto triples = sliceOp.getTriples();
const std::size_t tripleSize = triples.size();
auto module = arrLoad->getParentOfType<mlir::ModuleOp>();
- FirOpBuilder builder(rewriter, getKindMapping(module));
+ fir::KindMapping kindMap = getKindMapping(module);
+ FirOpBuilder builder(rewriter, kindMap);
size = builder.genExtentFromTriplet(loc, triples[tripleSize - 3],
triples[tripleSize - 2],
triples[tripleSize - 1], idxTy);
assert(seqTy && seqTy.isa<SequenceType>());
const auto dimension = seqTy.cast<SequenceType>().getDimension();
auto module = load->getParentOfType<mlir::ModuleOp>();
- FirOpBuilder builder(rewriter, getKindMapping(module));
+ fir::KindMapping kindMap = getKindMapping(module);
+ FirOpBuilder builder(rewriter, kindMap);
auto typeparams = getTypeParamsIfRawData(loc, builder, load, alloc.getType());
mlir::Value result = rewriter.create<ArrayCoorOp>(
loc, eleTy, alloc, shape, slice,
// Reverse the indices so they are in column-major order.
std::reverse(indices.begin(), indices.end());
auto module = arrLoad->getParentOfType<mlir::ModuleOp>();
- FirOpBuilder builder(rewriter, getKindMapping(module));
+ fir::KindMapping kindMap = getKindMapping(module);
+ FirOpBuilder builder(rewriter, kindMap);
auto fromAddr = rewriter.create<ArrayCoorOp>(
loc, getEleTy(src.getType()), src, shapeOp,
CopyIn && copyUsingSlice ? sliceOp : mlir::Value{},
if (auto charTy = eleTy.dyn_cast<CharacterType>()) {
assert(load.getMemref().getType().isa<BoxType>());
auto module = load->getParentOfType<mlir::ModuleOp>();
- FirOpBuilder builder(rewriter, getKindMapping(module));
+ fir::KindMapping kindMap = getKindMapping(module);
+ FirOpBuilder builder(rewriter, kindMap);
return {getCharacterLen(loc, builder, load, charTy)};
}
TODO(loc, "unhandled dynamic type parameters");
loc, fir::BoxType::get(baseType), allocmem, shape,
/*slice=*/mlir::Value{}, typeParams);
auto module = load->getParentOfType<mlir::ModuleOp>();
- FirOpBuilder builder(rewriter, getKindMapping(module));
+ fir::KindMapping kindMap = getKindMapping(module);
+ FirOpBuilder builder(rewriter, kindMap);
runtime::genDerivedTypeInitialize(builder, loc, box);
// Any allocatable component that may have been allocated must be
// deallocated during the clean-up.
auto cleanup = [=](mlir::PatternRewriter &r) {
- FirOpBuilder builder(r, getKindMapping(module));
+ fir::KindMapping kindMap = getKindMapping(module);
+ FirOpBuilder builder(r, kindMap);
runtime::genDerivedTypeDestroy(builder, loc, box);
r.create<FreeMemOp>(loc, allocmem);
};