]> CyberLeo.Net >> Repos - FreeBSD/releng/10.2.git/blob - contrib/llvm/tools/clang/include/clang/Basic/OpenMPKinds.h
- Copy stable/10@285827 to releng/10.2 in preparation for 10.2-RC1
[FreeBSD/releng/10.2.git] / contrib / llvm / tools / clang / include / clang / Basic / OpenMPKinds.h
1 //===--- OpenMPKinds.h - OpenMP enums ---------------------------*- C++ -*-===//
2 //
3 //                     The LLVM Compiler Infrastructure
4 //
5 // This file is distributed under the University of Illinois Open Source
6 // License. See LICENSE.TXT for details.
7 //
8 //===----------------------------------------------------------------------===//
9 ///
10 /// \file
11 /// \brief Defines some OpenMP-specific enums and functions.
12 ///
13 //===----------------------------------------------------------------------===//
14
15 #ifndef LLVM_CLANG_BASIC_OPENMPKINDS_H
16 #define LLVM_CLANG_BASIC_OPENMPKINDS_H
17
18 #include "llvm/ADT/StringRef.h"
19
20 namespace clang {
21
22 /// \brief OpenMP directives.
23 enum OpenMPDirectiveKind {
24   OMPD_unknown = 0,
25 #define OPENMP_DIRECTIVE(Name) \
26   OMPD_##Name,
27 #include "clang/Basic/OpenMPKinds.def"
28   NUM_OPENMP_DIRECTIVES
29 };
30
31 /// \brief OpenMP clauses.
32 enum OpenMPClauseKind {
33   OMPC_unknown = 0,
34 #define OPENMP_CLAUSE(Name, Class) \
35   OMPC_##Name,
36 #include "clang/Basic/OpenMPKinds.def"
37   OMPC_threadprivate,
38   NUM_OPENMP_CLAUSES
39 };
40
41 /// \brief OpenMP attributes for 'default' clause.
42 enum OpenMPDefaultClauseKind {
43   OMPC_DEFAULT_unknown = 0,
44 #define OPENMP_DEFAULT_KIND(Name) \
45   OMPC_DEFAULT_##Name,
46 #include "clang/Basic/OpenMPKinds.def"
47   NUM_OPENMP_DEFAULT_KINDS
48 };
49
50 OpenMPDirectiveKind getOpenMPDirectiveKind(llvm::StringRef Str);
51 const char *getOpenMPDirectiveName(OpenMPDirectiveKind Kind);
52
53 OpenMPClauseKind getOpenMPClauseKind(llvm::StringRef Str);
54 const char *getOpenMPClauseName(OpenMPClauseKind Kind);
55
56 unsigned getOpenMPSimpleClauseType(OpenMPClauseKind Kind, llvm::StringRef Str);
57 const char *getOpenMPSimpleClauseTypeName(OpenMPClauseKind Kind, unsigned Type);
58
59 bool isAllowedClauseForDirective(OpenMPDirectiveKind DKind,
60                                  OpenMPClauseKind CKind);
61
62 }
63
64 #endif
65