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