xref: /freebsd/contrib/llvm-project/clang/include/clang/AST/SYCLKernelInfo.h (revision 700637cbb5e582861067a11aaca4d053546871d2)
1 //===--- SYCLKernelInfo.h --- Information about SYCL kernels --------------===//
2 //
3 // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4 // See https://llvm.org/LICENSE.txt for license information.
5 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6 //
7 //===----------------------------------------------------------------------===//
8 /// \file
9 /// This file declares types used to describe SYCL kernels.
10 ///
11 //===----------------------------------------------------------------------===//
12 
13 #ifndef LLVM_CLANG_AST_SYCLKERNELINFO_H
14 #define LLVM_CLANG_AST_SYCLKERNELINFO_H
15 
16 #include "clang/AST/CanonicalType.h"
17 #include "clang/AST/Decl.h"
18 #include "clang/AST/Type.h"
19 
20 namespace clang {
21 
22 class SYCLKernelInfo {
23 public:
SYCLKernelInfo(CanQualType KernelNameType,const FunctionDecl * KernelEntryPointDecl,const std::string & KernelName)24   SYCLKernelInfo(CanQualType KernelNameType,
25                  const FunctionDecl *KernelEntryPointDecl,
26                  const std::string &KernelName)
27       : KernelNameType(KernelNameType),
28         KernelEntryPointDecl(KernelEntryPointDecl), KernelName(KernelName) {}
29 
getKernelNameType()30   CanQualType getKernelNameType() const { return KernelNameType; }
31 
getKernelEntryPointDecl()32   const FunctionDecl *getKernelEntryPointDecl() const {
33     return KernelEntryPointDecl;
34   }
35 
GetKernelName()36   const std::string &GetKernelName() const { return KernelName; }
37 
38 private:
39   CanQualType KernelNameType;
40   const FunctionDecl *KernelEntryPointDecl;
41   std::string KernelName;
42 };
43 
44 } // namespace clang
45 
46 #endif // LLVM_CLANG_AST_SYCLKERNELINFO_H
47