summaryrefslogtreecommitdiff
path: root/mlir/lib/Target/LLVMIR/ModuleTranslation.cpp
diff options
context:
space:
mode:
authorNick Sarnie <nick.sarnie@intel.com>2025-11-22 00:40:20 +0900
committerGitHub <noreply@github.com>2025-11-21 15:40:20 +0000
commit4538818c797a486edf48cbdf047a354210c3843b (patch)
tree083f98125698fd60670a766c8e3a6b73421239d6 /mlir/lib/Target/LLVMIR/ModuleTranslation.cpp
parent89bb99dd0ed9c7e5dbbc80c6cfb369768bfee96b (diff)
[OpenMP][OMPIRBuilder] Use runtime CC for runtime calls (#168608)
Some targets have a specific calling convention that should be used for generated calls to runtime functions. Pass that down and use it. Signed-off-by: Nick Sarnie <nick.sarnie@intel.com>
Diffstat (limited to 'mlir/lib/Target/LLVMIR/ModuleTranslation.cpp')
-rw-r--r--mlir/lib/Target/LLVMIR/ModuleTranslation.cpp5
1 files changed, 4 insertions, 1 deletions
diff --git a/mlir/lib/Target/LLVMIR/ModuleTranslation.cpp b/mlir/lib/Target/LLVMIR/ModuleTranslation.cpp
index 4107e9c14507..caecc0f77415 100644
--- a/mlir/lib/Target/LLVMIR/ModuleTranslation.cpp
+++ b/mlir/lib/Target/LLVMIR/ModuleTranslation.cpp
@@ -2263,8 +2263,11 @@ llvm::OpenMPIRBuilder *ModuleTranslation::getOpenMPBuilder() {
/* HasRequiresUnifiedSharedMemory = */ false,
/* HasRequiresDynamicAllocators = */ false);
unsigned int defaultAS =
- getLLVMModule()->getDataLayout().getProgramAddressSpace();
+ llvmModule->getDataLayout().getProgramAddressSpace();
config.setDefaultTargetAS(defaultAS);
+ config.setRuntimeCC(llvmModule->getTargetTriple().isSPIRV()
+ ? llvm::CallingConv::SPIR_FUNC
+ : llvm::CallingConv::C);
ompBuilder->setConfig(std::move(config));
ompBuilder->initialize();
}