diff options
Diffstat (limited to 'mlir')
-rw-r--r-- | mlir/lib/Target/LLVMIR/ModuleTranslation.cpp | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/mlir/lib/Target/LLVMIR/ModuleTranslation.cpp b/mlir/lib/Target/LLVMIR/ModuleTranslation.cpp index 70171e77eab9..864095fa3464 100644 --- a/mlir/lib/Target/LLVMIR/ModuleTranslation.cpp +++ b/mlir/lib/Target/LLVMIR/ModuleTranslation.cpp @@ -1274,19 +1274,23 @@ SmallVector<llvm::Value *> ModuleTranslation::lookupValues(ValueRange values) { llvm::OpenMPIRBuilder *ModuleTranslation::getOpenMPBuilder() { if (!ompBuilder) { ompBuilder = std::make_unique<llvm::OpenMPIRBuilder>(*llvmModule); - ompBuilder->initialize(); bool isDevice = false; + llvm::StringRef hostIRFilePath = ""; if (auto offloadMod = - dyn_cast<mlir::omp::OffloadModuleInterface>(mlirModule)) + dyn_cast<mlir::omp::OffloadModuleInterface>(mlirModule)) { isDevice = offloadMod.getIsDevice(); + hostIRFilePath = offloadMod.getHostIRFilePath(); + } + + ompBuilder->initialize(hostIRFilePath); // TODO: set the flags when available - llvm::OpenMPIRBuilderConfig Config( + llvm::OpenMPIRBuilderConfig config( isDevice, /* IsTargetCodegen */ false, /* HasRequiresUnifiedSharedMemory */ false, /* OpenMPOffloadMandatory */ false); - ompBuilder->setConfig(Config); + ompBuilder->setConfig(config); } return ompBuilder.get(); } |