[llvm-branch-commits] [llvm] [mlir] [OpenMP]Update use_device_clause lowering (PR #101707)
Akash Banerjee via llvm-branch-commits
llvm-branch-commits at lists.llvm.org
Wed Aug 21 10:10:14 PDT 2024
================
@@ -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
More information about the llvm-branch-commits
mailing list