1249261Sdim//===--- OpenMPKinds.h - OpenMP enums ---------------------------*- C++ -*-===// 2249261Sdim// 3249261Sdim// The LLVM Compiler Infrastructure 4249261Sdim// 5249261Sdim// This file is distributed under the University of Illinois Open Source 6249261Sdim// License. See LICENSE.TXT for details. 7249261Sdim// 8249261Sdim//===----------------------------------------------------------------------===// 9249261Sdim/// 10249261Sdim/// \file 11249261Sdim/// \brief Defines some OpenMP-specific enums and functions. 12249261Sdim/// 13249261Sdim//===----------------------------------------------------------------------===// 14249261Sdim 15249261Sdim#ifndef LLVM_CLANG_BASIC_OPENMPKINDS_H 16249261Sdim#define LLVM_CLANG_BASIC_OPENMPKINDS_H 17249261Sdim 18249261Sdim#include "llvm/ADT/StringRef.h" 19249261Sdim 20249261Sdimnamespace clang { 21249261Sdim 22249261Sdim/// \brief OpenMP directives. 23249261Sdimenum OpenMPDirectiveKind { 24249261Sdim OMPD_unknown = 0, 25249261Sdim#define OPENMP_DIRECTIVE(Name) \ 26249261Sdim OMPD_##Name, 27249261Sdim#include "clang/Basic/OpenMPKinds.def" 28249261Sdim NUM_OPENMP_DIRECTIVES 29249261Sdim}; 30249261Sdim 31263508Sdim/// \brief OpenMP clauses. 32263508Sdimenum OpenMPClauseKind { 33263508Sdim OMPC_unknown = 0, 34263508Sdim#define OPENMP_CLAUSE(Name, Class) \ 35263508Sdim OMPC_##Name, 36263508Sdim#include "clang/Basic/OpenMPKinds.def" 37263508Sdim OMPC_threadprivate, 38263508Sdim NUM_OPENMP_CLAUSES 39263508Sdim}; 40263508Sdim 41263508Sdim/// \brief OpenMP attributes for 'default' clause. 42263508Sdimenum OpenMPDefaultClauseKind { 43263508Sdim OMPC_DEFAULT_unknown = 0, 44263508Sdim#define OPENMP_DEFAULT_KIND(Name) \ 45263508Sdim OMPC_DEFAULT_##Name, 46263508Sdim#include "clang/Basic/OpenMPKinds.def" 47263508Sdim NUM_OPENMP_DEFAULT_KINDS 48263508Sdim}; 49263508Sdim 50249261SdimOpenMPDirectiveKind getOpenMPDirectiveKind(llvm::StringRef Str); 51249261Sdimconst char *getOpenMPDirectiveName(OpenMPDirectiveKind Kind); 52249261Sdim 53263508SdimOpenMPClauseKind getOpenMPClauseKind(llvm::StringRef Str); 54263508Sdimconst char *getOpenMPClauseName(OpenMPClauseKind Kind); 55263508Sdim 56263508Sdimunsigned getOpenMPSimpleClauseType(OpenMPClauseKind Kind, llvm::StringRef Str); 57263508Sdimconst char *getOpenMPSimpleClauseTypeName(OpenMPClauseKind Kind, unsigned Type); 58263508Sdim 59263508Sdimbool isAllowedClauseForDirective(OpenMPDirectiveKind DKind, 60263508Sdim OpenMPClauseKind CKind); 61263508Sdim 62249261Sdim} 63249261Sdim 64249261Sdim#endif 65249261Sdim 66