[llvm] [OpenMPOpt] Initialize OpenMPIRBuilderConfig::IsGPU flag (PR #104456)
via llvm-commits
llvm-commits at lists.llvm.org
Thu Aug 15 08:12:35 PDT 2024
llvmbot wrote:
<!--LLVM PR SUMMARY COMMENT-->
@llvm/pr-subscribers-llvm-transforms
Author: Sergio Afonso (skatrak)
<details>
<summary>Changes</summary>
This patch ensures the `IsGPU` flag is set by the OpenMPOpt pass, so that it can be relied upon by `OpenMPIRBuilder` methods when called by that pass as well.
Since currently there are very limited callers for the `OpenMPIRBuilder::isGPU()` method, no assertions are being triggered by the lack of initialization of this flag. However, when more offloading-related features are implemented, it will eventually start happening.
---
Full diff: https://github.com/llvm/llvm-project/pull/104456.diff
1 Files Affected:
- (modified) llvm/lib/Transforms/IPO/OpenMPOpt.cpp (+13)
``````````diff
diff --git a/llvm/lib/Transforms/IPO/OpenMPOpt.cpp b/llvm/lib/Transforms/IPO/OpenMPOpt.cpp
index 798bcb77328fc..8c2e8e5039510 100644
--- a/llvm/lib/Transforms/IPO/OpenMPOpt.cpp
+++ b/llvm/lib/Transforms/IPO/OpenMPOpt.cpp
@@ -286,6 +286,19 @@ struct OMPInformationCache : public InformationCache {
OpenMPPostLink(OpenMPPostLink) {
OMPBuilder.Config.IsTargetDevice = isOpenMPDevice(OMPBuilder.M);
+ const Triple T(OMPBuilder.M.getTargetTriple());
+ switch (T.getArch()) {
+ case llvm::Triple::nvptx:
+ case llvm::Triple::nvptx64:
+ case llvm::Triple::amdgcn:
+ assert(OMPBuilder.Config.IsTargetDevice &&
+ "OpenMP AMDGPU/NVPTX is only prepared to deal with device code.");
+ OMPBuilder.Config.IsGPU = true;
+ break;
+ default:
+ OMPBuilder.Config.IsGPU = false;
+ break;
+ }
OMPBuilder.initialize();
initializeRuntimeFunctions(M);
initializeInternalControlVars();
``````````
</details>
https://github.com/llvm/llvm-project/pull/104456
More information about the llvm-commits
mailing list