1 //===--- OpenMPKinds.h - OpenMP enums ---------------------------*- C++ -*-===//
3 // The LLVM Compiler Infrastructure
5 // This file is distributed under the University of Illinois Open Source
6 // License. See LICENSE.TXT for details.
8 //===----------------------------------------------------------------------===//
11 /// \brief Defines some OpenMP-specific enums and functions.
13 //===----------------------------------------------------------------------===//
15 #ifndef LLVM_CLANG_BASIC_OPENMPKINDS_H
16 #define LLVM_CLANG_BASIC_OPENMPKINDS_H
18 #include "llvm/ADT/StringRef.h"
22 /// \brief OpenMP directives.
23 enum OpenMPDirectiveKind {
25 #define OPENMP_DIRECTIVE(Name) \
27 #include "clang/Basic/OpenMPKinds.def"
31 /// \brief OpenMP clauses.
32 enum OpenMPClauseKind {
34 #define OPENMP_CLAUSE(Name, Class) \
36 #include "clang/Basic/OpenMPKinds.def"
41 /// \brief OpenMP attributes for 'default' clause.
42 enum OpenMPDefaultClauseKind {
43 OMPC_DEFAULT_unknown = 0,
44 #define OPENMP_DEFAULT_KIND(Name) \
46 #include "clang/Basic/OpenMPKinds.def"
47 NUM_OPENMP_DEFAULT_KINDS
50 OpenMPDirectiveKind getOpenMPDirectiveKind(llvm::StringRef Str);
51 const char *getOpenMPDirectiveName(OpenMPDirectiveKind Kind);
53 OpenMPClauseKind getOpenMPClauseKind(llvm::StringRef Str);
54 const char *getOpenMPClauseName(OpenMPClauseKind Kind);
56 unsigned getOpenMPSimpleClauseType(OpenMPClauseKind Kind, llvm::StringRef Str);
57 const char *getOpenMPSimpleClauseTypeName(OpenMPClauseKind Kind, unsigned Type);
59 bool isAllowedClauseForDirective(OpenMPDirectiveKind DKind,
60 OpenMPClauseKind CKind);