[llvm-branch-commits] [OpenMP][MLIR] Extend record member map support for omp dialect to LLVM-IR (PR #82852)
Sergio Afonso via llvm-branch-commits
llvm-branch-commits at lists.llvm.org
Tue May 7 06:14:41 PDT 2024
================
@@ -2122,6 +2124,66 @@ void collectMapDataFromMapOperands(MapInfoData &mapData,
}
}
+static int getMapDataMemberIdx(MapInfoData &mapData,
+ mlir::omp::MapInfoOp memberOp) {
+ auto *res = llvm::find(mapData.MapClause, memberOp);
+ assert(res != mapData.MapClause.end() &&
+ "MapInfoOp for member not found in MapData, cannot return index");
+ return std::distance(mapData.MapClause.begin(), res);
+}
+
+static mlir::omp::MapInfoOp
+getFirstOrLastMappedMemberPtr(mlir::omp::MapInfoOp mapInfo, bool first) {
+ mlir::DenseIntElementsAttr indexAttr = mapInfo.getMembersIndexAttr();
+
+ // Only 1 member has been mapped, we can return it.
+ if (indexAttr.size() == 1)
+ if (auto mapOp = mlir::dyn_cast<mlir::omp::MapInfoOp>(
+ mapInfo.getMembers()[0].getDefiningOp()))
+ return mapOp;
+
+ llvm::ArrayRef<int64_t> shape = indexAttr.getShapedType().getShape();
+ std::vector<size_t> indices(shape[0]);
----------------
skatrak wrote:
Nit: Wouldn't `SmallVector` be preferred in this case?
```suggestion
llvm::SmallVector<size_t> indices(shape[0]);
```
https://github.com/llvm/llvm-project/pull/82852
More information about the llvm-branch-commits
mailing list