[PATCH] D84260: [OpenMP][AMDGCN] Support OpenMP offloading for AMDGCN architecture - Part 3

Alexey Bataev via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Thu Jul 30 08:27:16 PDT 2020


ABataev added inline comments.


================
Comment at: clang/lib/CodeGen/CGOpenMPRuntimeGPU.h:201-205
   /// Declare generalized virtual functions which need to be defined
-  /// by all specializations of OpenMPGPURuntime Targets.
+  /// by all specializations of OpenMPGPURuntime Targets like AMDGCN
+  /// and NVPTX.
+
+  /// Get the GPU warp size.
----------------
Add these notes to the specialized functions too. It is required for better doxygen docs


================
Comment at: clang/test/OpenMP/amdgcn_target_codegen.cpp:17-19
+// CHECK-DAG: [[VAR:%.+]] = trunc i64 [[NUM_THREADS]] to i32
+// CHECK-DAG: sub nuw i32 [[VAR]], 64
+// CHECK-DAG: call i32 @llvm.amdgcn.workitem.id.x()
----------------
Same, the order of these checks should be strict


================
Comment at: clang/test/OpenMP/amdgcn_target_codegen.cpp:34-35
+// CHECK: [[NUM_THREADS:%.+]] = call i64 @__ockl_get_local_size(i32 0)
+// CHECK-DAG: [[VAR:%.+]] = trunc i64 [[NUM_THREADS]] to i32
+// CHECK-DAG: call void @__kmpc_spmd_kernel_init(i32 [[VAR]], i16 0, i16 0)
+#pragma omp target simd
----------------
It should not be `CHECK-DAG`, the order of these 2 instructions is defined and the second one should definitely follow the first one


================
Comment at: clang/test/OpenMP/amdgcn_target_init_temp_alloca.cpp:11
+  // CHECK-LABEL: test_amdgcn_target_temp_alloca
+  // CHECK-LABEL: entry:
+
----------------
`entry:` again


================
Comment at: clang/test/OpenMP/amdgcn_target_init_temp_alloca.cpp:15-17
+  // CHECK:      [[VAR:%.+]].addr = alloca [100 x i32]*, align 8, addrspace(5)
+  // CHECK-NEXT: [[VAR]].addr.ascast = addrspacecast [100 x i32]* addrspace(5)* [[VAR]].addr to [100 x i32]**
+  // CHECK-DAG:  store [100 x i32]* [[VAR]], [100 x i32]** [[VAR]].addr.ascast, align 8
----------------
Do not rely on the names again. Even as part of regexps


================
Comment at: clang/test/OpenMP/amdgcn_target_init_temp_alloca.cpp:17
+  // CHECK-NEXT: [[VAR]].addr.ascast = addrspacecast [100 x i32]* addrspace(5)* [[VAR]].addr to [100 x i32]**
+  // CHECK-DAG:  store [100 x i32]* [[VAR]], [100 x i32]** [[VAR]].addr.ascast, align 8
+
----------------
Just `CHECK`


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D84260/new/

https://reviews.llvm.org/D84260



More information about the cfe-commits mailing list