[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