================ @@ -2193,80 +2197,141 @@ llvm::Value *getSizeInBytes(DataLayout &dl, const mlir::Type &type, return builder.getInt64(dl.getTypeSizeInBits(type) / 8); } -void collectMapDataFromMapVars(MapInfoData &mapData, - llvm::SmallVectorImpl<Value> &mapVars, - LLVM::ModuleTranslation &moduleTranslation, - DataLayout &dl, llvm::IRBuilderBase &builder) { - for (mlir::Value mapValue : mapVars) { - if (auto mapOp = mlir::dyn_cast_if_present<mlir::omp::MapInfoOp>( - mapValue.getDefiningOp())) { - mlir::Value offloadPtr = - mapOp.getVarPtrPtr() ? mapOp.getVarPtrPtr() : mapOp.getVarPtr(); - mapData.OriginalValue.push_back( - moduleTranslation.lookupValue(offloadPtr)); - mapData.Pointers.push_back(mapData.OriginalValue.back()); - - if (llvm::Value *refPtr = - getRefPtrIfDeclareTarget(offloadPtr, - moduleTranslation)) { // declare target - mapData.IsDeclareTarget.push_back(true); - mapData.BasePointers.push_back(refPtr); - } else { // regular mapped variable - mapData.IsDeclareTarget.push_back(false); - mapData.BasePointers.push_back(mapData.OriginalValue.back()); - } +static void collectMapDataFromMapOperands( + MapInfoData &mapData, SmallVectorImpl<Value> &mapVars, + LLVM::ModuleTranslation &moduleTranslation, DataLayout &dl, + llvm::IRBuilderBase &builder, const ArrayRef<Value> &useDevPtrOperands = {}, + const ArrayRef<Value> &useDevAddrOperands = {}) { + // Process MapOperands + for (Value mapValue : mapVars) { + auto mapOp = cast<omp::MapInfoOp>(mapValue.getDefiningOp()); ---------------- TIFitis wrote:
Yes, I've replaced the others with cast as well. https://github.com/llvm/llvm-project/pull/101707 _______________________________________________ llvm-branch-commits mailing list llvm-branch-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits