@@ -266,7 +266,8 @@ struct AllocaOpConversion : public fir::FIROpConversion<fir::AllocaOp> {
266266 << scalarType << " with type parameters" ;
267267 }
268268 }
269- if (auto scaleSize = fir::genAllocationScaleSize (alloc, ity, rewriter))
269+ if (auto scaleSize = fir::genAllocationScaleSize (
270+ alloc.getLoc (), alloc.getInType (), ity, rewriter))
270271 size =
271272 rewriter.createOrFold <mlir::LLVM::MulOp>(loc, ity, size, scaleSize);
272273 if (alloc.hasShapeOperands ()) {
@@ -1068,7 +1069,8 @@ struct AllocMemOpConversion : public fir::FIROpConversion<fir::AllocMemOp> {
10681069 if (fir::isRecordWithTypeParameters (fir::unwrapSequenceType (dataTy)))
10691070 TODO (loc, " fir.allocmem codegen of derived type with length parameters" );
10701071 mlir::Value size = genTypeSizeInBytes (loc, ity, rewriter, llvmObjectTy);
1071- if (auto scaleSize = fir::genAllocationScaleSize (heap, ity, rewriter))
1072+ if (auto scaleSize =
1073+ fir::genAllocationScaleSize (loc, heap.getInType (), ity, rewriter))
10721074 size = rewriter.create <mlir::LLVM::MulOp>(loc, ity, size, scaleSize);
10731075 for (mlir::Value opnd : adaptor.getOperands ())
10741076 size = mlir::LLVM::MulOp::create (rewriter, loc, ity, size,
@@ -4310,20 +4312,22 @@ void fir::populateFIRToLLVMConversionPatterns(
43104312 BoxTypeCodeOpConversion, BoxTypeDescOpConversion, CallOpConversion,
43114313 CmpcOpConversion, VolatileCastOpConversion, ConvertOpConversion,
43124314 CoordinateOpConversion, CopyOpConversion, DTEntryOpConversion,
4313- DeclareOpConversion, DivcOpConversion, EmboxOpConversion,
4314- EmboxCharOpConversion, EmboxProcOpConversion, ExtractValueOpConversion,
4315- FieldIndexOpConversion, FirEndOpConversion, FreeMemOpConversion,
4316- GlobalLenOpConversion, GlobalOpConversion, InsertOnRangeOpConversion,
4317- IsPresentOpConversion, LenParamIndexOpConversion, LoadOpConversion,
4318- LocalitySpecifierOpConversion, MulcOpConversion, NegcOpConversion,
4319- NoReassocOpConversion, SelectCaseOpConversion, SelectOpConversion,
4320- SelectRankOpConversion, SelectTypeOpConversion, ShapeOpConversion,
4321- ShapeShiftOpConversion, ShiftOpConversion, SliceOpConversion,
4322- StoreOpConversion, StringLitOpConversion, SubcOpConversion,
4323- TypeDescOpConversion, TypeInfoOpConversion, UnboxCharOpConversion,
4324- UnboxProcOpConversion, UndefOpConversion, UnreachableOpConversion,
4325- XArrayCoorOpConversion, XEmboxOpConversion, XReboxOpConversion,
4326- ZeroOpConversion>(converter, options);
4315+ DeclareOpConversion,
4316+ DoConcurrentSpecifierOpConversion<fir::LocalitySpecifierOp>,
4317+ DoConcurrentSpecifierOpConversion<fir::DeclareReductionOp>,
4318+ DivcOpConversion, EmboxOpConversion, EmboxCharOpConversion,
4319+ EmboxProcOpConversion, ExtractValueOpConversion, FieldIndexOpConversion,
4320+ FirEndOpConversion, FreeMemOpConversion, GlobalLenOpConversion,
4321+ GlobalOpConversion, InsertOnRangeOpConversion, IsPresentOpConversion,
4322+ LenParamIndexOpConversion, LoadOpConversion, MulcOpConversion,
4323+ NegcOpConversion, NoReassocOpConversion, SelectCaseOpConversion,
4324+ SelectOpConversion, SelectRankOpConversion, SelectTypeOpConversion,
4325+ ShapeOpConversion, ShapeShiftOpConversion, ShiftOpConversion,
4326+ SliceOpConversion, StoreOpConversion, StringLitOpConversion,
4327+ SubcOpConversion, TypeDescOpConversion, TypeInfoOpConversion,
4328+ UnboxCharOpConversion, UnboxProcOpConversion, UndefOpConversion,
4329+ UnreachableOpConversion, XArrayCoorOpConversion, XEmboxOpConversion,
4330+ XReboxOpConversion, ZeroOpConversion>(converter, options);
43274331
43284332 // Patterns that are populated without a type converter do not trigger
43294333 // target materializations for the operands of the root op.
0 commit comments