[llvm-branch-commits] [clang] [llvm] [mlir] [MLIR][OpenMP] Add LLVM translation support for OpenMP UserDefinedMappers (PR #124746)
Sergio Afonso via llvm-branch-commits
llvm-branch-commits at lists.llvm.org
Mon Feb 10 09:03:48 PST 2025
================
@@ -3745,17 +3840,30 @@ convertOmpTargetData(Operation *op, llvm::IRBuilderBase &builder,
return builder.saveIP();
};
+ auto customMapperCB = [&](unsigned int i) {
+ llvm::Function *mapperFunc = nullptr;
+ if (combinedInfo.Mappers[i]) {
+ info.HasMapper = true;
+ llvm::Expected<llvm::Function *> newFn = getOrCreateUserDefinedMapperFunc(
+ combinedInfo.Mappers[i], builder, moduleTranslation);
+ assert(newFn && "Expect a valid mapper function is available");
+ mapperFunc = *newFn;
+ }
+ return mapperFunc;
+ };
+
llvm::OpenMPIRBuilder::LocationDescription ompLoc(builder);
llvm::OpenMPIRBuilder::InsertPointTy allocaIP =
findAllocaInsertPoint(builder, moduleTranslation);
llvm::OpenMPIRBuilder::InsertPointOrErrorTy afterIP = [&]() {
if (isa<omp::TargetDataOp>(op))
return ompBuilder->createTargetData(
ompLoc, allocaIP, builder.saveIP(), builder.getInt64(deviceID),
- ifCond, info, genMapInfoCB, nullptr, bodyGenCB);
- return ompBuilder->createTargetData(ompLoc, allocaIP, builder.saveIP(),
- builder.getInt64(deviceID), ifCond,
- info, genMapInfoCB, &RTLFn);
+ ifCond, info, genMapInfoCB, customMapperCB, nullptr, bodyGenCB,
----------------
skatrak wrote:
Nit: Document `nullptr` argument, like it's done for `DeviceAddrCB`.
https://github.com/llvm/llvm-project/pull/124746
More information about the llvm-branch-commits
mailing list