| //===--- CGOpenMPRuntimeAMDGCN.h - Interface to OpenMP AMDGCN Runtimes ---===// | 
 | // | 
 | // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. | 
 | // See https://llvm.org/LICENSE.txt for license information. | 
 | // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception | 
 | // | 
 | //===----------------------------------------------------------------------===// | 
 | // | 
 | // This provides a class for OpenMP runtime code generation specialized to | 
 | // AMDGCN targets from generalized CGOpenMPRuntimeGPU class. | 
 | // | 
 | //===----------------------------------------------------------------------===// | 
 |  | 
 | #ifndef LLVM_CLANG_LIB_CODEGEN_CGOPENMPRUNTIMEAMDGCN_H | 
 | #define LLVM_CLANG_LIB_CODEGEN_CGOPENMPRUNTIMEAMDGCN_H | 
 |  | 
 | #include "CGOpenMPRuntime.h" | 
 | #include "CGOpenMPRuntimeGPU.h" | 
 | #include "CodeGenFunction.h" | 
 | #include "clang/AST/StmtOpenMP.h" | 
 |  | 
 | namespace clang { | 
 | namespace CodeGen { | 
 |  | 
 | class CGOpenMPRuntimeAMDGCN final : public CGOpenMPRuntimeGPU { | 
 |  | 
 | public: | 
 |   explicit CGOpenMPRuntimeAMDGCN(CodeGenModule &CGM); | 
 |  | 
 |   /// Get the GPU warp size. | 
 |   llvm::Value *getGPUWarpSize(CodeGenFunction &CGF) override; | 
 |  | 
 |   /// Get the id of the current thread on the GPU. | 
 |   llvm::Value *getGPUThreadID(CodeGenFunction &CGF) override; | 
 |  | 
 |   /// Get the maximum number of threads in a block of the GPU. | 
 |   llvm::Value *getGPUNumThreads(CodeGenFunction &CGF) override; | 
 | }; | 
 |  | 
 | } // namespace CodeGen | 
 | } // namespace clang | 
 |  | 
 | #endif // LLVM_CLANG_LIB_CODEGEN_CGOPENMPRUNTIMEAMDGCN_H |