[PATCH] D83492: [OpenMP] Use common interface to access GPU Grid Values
Jon Chesterfield via Phabricator via cfe-commits
cfe-commits at lists.llvm.org
Thu Jul 9 10:15:58 PDT 2020
JonChesterfield added a comment.
Changing to getGridValue would be useful for sharing parts of this with amdgcn.
The aomp toolchain handles codegen for amdgcn by adding if (isAMDGCN) to this file. Until such time as tregions obsoletes this code, I think we should go with layers instead of scattered conditionals.
I.e. rename CGOpenMPRuntimeNVPTX to CGOpenMPRuntimeGPU which contains code that is common to nvptx and amdgcn. That probably uses getGridValue() as a way to abstract over minor differences. Derive CGOpenMPRuntimeAMDGCN and CGOpenMPRuntimeNVPTX from CGOpenMPRuntimeGPU to implement (virtual) functions which are different between the two.
================
Comment at: clang/lib/CodeGen/CGOpenMPRuntimeNVPTX.cpp:628
static llvm::Value *getNVPTXWarpSize(CodeGenFunction &CGF) {
+ if (CGF.getTarget().getTriple().isAMDGCN()) {
+ CGBuilderTy &Bld = CGF.Builder;
----------------
This looks unrelated to using the constants. Amdgcn doesn't have an nvvm_read_ptx_sreg_warpsize so does need a different means of accessing the wave size, but that's not directly related to using OMPGridValues
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D83492/new/
https://reviews.llvm.org/D83492
More information about the cfe-commits
mailing list