diff options
| author | Nick Sarnie <nick.sarnie@intel.com> | 2025-11-22 00:40:20 +0900 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-11-21 15:40:20 +0000 |
| commit | 4538818c797a486edf48cbdf047a354210c3843b (patch) | |
| tree | 083f98125698fd60670a766c8e3a6b73421239d6 /mlir/lib/Target/LLVMIR/ModuleTranslation.cpp | |
| parent | 89bb99dd0ed9c7e5dbbc80c6cfb369768bfee96b (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.cpp | 5 |
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(); } |
