@@ -180,13 +180,13 @@ class MapInfoFinalizationPass
180
180
// Member of the descriptor pointing at the allocated data
181
181
return builder.create <mlir::omp::MapInfoOp>(
182
182
loc, baseAddrAddr.getType (), descriptor,
183
- mlir::TypeAttr::get (underlyingVarType), baseAddrAddr,
184
- /* members=*/ mlir::SmallVector<mlir::Value>{},
185
- /* membersIndex=*/ mlir::ArrayAttr{}, bounds,
183
+ mlir::TypeAttr::get (underlyingVarType),
186
184
builder.getIntegerAttr (builder.getIntegerType (64 , false ), mapType),
187
- /* mapperId*/ mlir::FlatSymbolRefAttr (),
188
185
builder.getAttr <mlir::omp::VariableCaptureKindAttr>(
189
186
mlir::omp::VariableCaptureKind::ByRef),
187
+ baseAddrAddr, /* members=*/ mlir::SmallVector<mlir::Value>{},
188
+ /* membersIndex=*/ mlir::ArrayAttr{}, bounds,
189
+ /* mapperId*/ mlir::FlatSymbolRefAttr (),
190
190
/* name=*/ builder.getStringAttr (" " ),
191
191
/* partial_map=*/ builder.getBoolAttr (false ));
192
192
}
@@ -311,8 +311,8 @@ class MapInfoFinalizationPass
311
311
assert (mapMemberUsers.size () == 1 &&
312
312
" OMPMapInfoFinalization currently only supports single users of a "
313
313
" MapInfoOp" );
314
- auto baseAddr = genBaseAddrMap (descriptor, op. getBounds (),
315
- op.getMapType (). value_or ( 0 ), builder);
314
+ auto baseAddr =
315
+ genBaseAddrMap (descriptor, op.getBounds (), op. getMapType ( ), builder);
316
316
ParentAndPlacement mapUser = mapMemberUsers[0 ];
317
317
adjustMemberIndices (memberIndices, mapUser.index );
318
318
llvm::SmallVector<mlir::Value> newMemberOps;
@@ -325,8 +325,8 @@ class MapInfoFinalizationPass
325
325
mapUser.parent .setMembersIndexAttr (
326
326
builder.create2DI64ArrayAttr (memberIndices));
327
327
} else if (!IsHasDeviceAddr) {
328
- auto baseAddr = genBaseAddrMap (descriptor, op. getBounds (),
329
- op.getMapType (). value_or ( 0 ), builder);
328
+ auto baseAddr =
329
+ genBaseAddrMap (descriptor, op.getBounds (), op. getMapType ( ), builder);
330
330
newMembers.push_back (baseAddr);
331
331
if (!op.getMembers ().empty ()) {
332
332
for (auto &indices : memberIndices)
@@ -346,22 +346,21 @@ class MapInfoFinalizationPass
346
346
// one place in the code may differ from that address in another place.
347
347
// The contents of the descriptor (the base address in particular) will
348
348
// remain unchanged though.
349
- uint64_t MapType = op.getMapType (). value_or ( 0 );
349
+ uint64_t mapType = op.getMapType ();
350
350
if (IsHasDeviceAddr) {
351
- MapType |= llvm::to_underlying (
351
+ mapType |= llvm::to_underlying (
352
352
llvm::omp::OpenMPOffloadMappingFlags::OMP_MAP_ALWAYS);
353
353
}
354
354
355
355
mlir::omp::MapInfoOp newDescParentMapOp =
356
356
builder.create <mlir::omp::MapInfoOp>(
357
357
op->getLoc (), op.getResult ().getType (), descriptor,
358
358
mlir::TypeAttr::get (fir::unwrapRefType (descriptor.getType ())),
359
- /* varPtrPtr=*/ mlir::Value{}, newMembers, newMembersAttr,
360
- /* bounds=*/ mlir::SmallVector<mlir::Value>{},
361
359
builder.getIntegerAttr (builder.getIntegerType (64 , false ),
362
- getDescriptorMapType (MapType, target)),
363
- /* mapperId*/ mlir::FlatSymbolRefAttr (), op.getMapCaptureTypeAttr (),
364
- op.getNameAttr (),
360
+ getDescriptorMapType (mapType, target)),
361
+ op.getMapCaptureTypeAttr (), /* varPtrPtr=*/ mlir::Value{}, newMembers,
362
+ newMembersAttr, /* bounds=*/ mlir::SmallVector<mlir::Value>{},
363
+ /* mapperId*/ mlir::FlatSymbolRefAttr (), op.getNameAttr (),
365
364
/* partial_map=*/ builder.getBoolAttr (false ));
366
365
op.replaceAllUsesWith (newDescParentMapOp.getResult ());
367
366
op->erase ();
@@ -656,13 +655,12 @@ class MapInfoFinalizationPass
656
655
fieldCoord.getResult (),
657
656
mlir::TypeAttr::get (
658
657
fir::unwrapRefType (fieldCoord.getResult ().getType ())),
659
- /* varPtrPtr=*/ mlir::Value{},
660
- /* members=*/ mlir::ValueRange{},
661
- /* members_index=*/ mlir::ArrayAttr{},
662
- /* bounds=*/ bounds, op.getMapTypeAttr (),
663
- /* mapperId*/ mlir::FlatSymbolRefAttr (),
658
+ op.getMapTypeAttr (),
664
659
builder.getAttr <mlir::omp::VariableCaptureKindAttr>(
665
660
mlir::omp::VariableCaptureKind::ByRef),
661
+ /* varPtrPtr=*/ mlir::Value{}, /* members=*/ mlir::ValueRange{},
662
+ /* members_index=*/ mlir::ArrayAttr{}, bounds,
663
+ /* mapperId=*/ mlir::FlatSymbolRefAttr (),
666
664
builder.getStringAttr (op.getNameAttr ().strref () + " ." +
667
665
field + " .implicit_map" ),
668
666
/* partial_map=*/ builder.getBoolAttr (false ));
0 commit comments