@@ -266,7 +266,8 @@ struct AllocaOpConversion : public fir::FIROpConversion<fir::AllocaOp> {
266
266
<< scalarType << " with type parameters" ;
267
267
}
268
268
}
269
- if (auto scaleSize = fir::genAllocationScaleSize (alloc, ity, rewriter))
269
+ if (auto scaleSize = fir::genAllocationScaleSize (
270
+ alloc.getLoc (), alloc.getInType (), ity, rewriter))
270
271
size =
271
272
rewriter.createOrFold <mlir::LLVM::MulOp>(loc, ity, size, scaleSize);
272
273
if (alloc.hasShapeOperands ()) {
@@ -1068,7 +1069,8 @@ struct AllocMemOpConversion : public fir::FIROpConversion<fir::AllocMemOp> {
1068
1069
if (fir::isRecordWithTypeParameters (fir::unwrapSequenceType (dataTy)))
1069
1070
TODO (loc, " fir.allocmem codegen of derived type with length parameters" );
1070
1071
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))
1072
1074
size = rewriter.create <mlir::LLVM::MulOp>(loc, ity, size, scaleSize);
1073
1075
for (mlir::Value opnd : adaptor.getOperands ())
1074
1076
size = mlir::LLVM::MulOp::create (rewriter, loc, ity, size,
@@ -4310,20 +4312,22 @@ void fir::populateFIRToLLVMConversionPatterns(
4310
4312
BoxTypeCodeOpConversion, BoxTypeDescOpConversion, CallOpConversion,
4311
4313
CmpcOpConversion, VolatileCastOpConversion, ConvertOpConversion,
4312
4314
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);
4327
4331
4328
4332
// Patterns that are populated without a type converter do not trigger
4329
4333
// target materializations for the operands of the root op.
0 commit comments