OpenMPKinds.h revision 263508
155714Skris//===--- OpenMPKinds.h - OpenMP enums ---------------------------*- C++ -*-===// 255714Skris// 355714Skris// The LLVM Compiler Infrastructure 455714Skris// 555714Skris// This file is distributed under the University of Illinois Open Source 655714Skris// License. See LICENSE.TXT for details. 755714Skris// 8280304Sjkim//===----------------------------------------------------------------------===// 955714Skris/// 1055714Skris/// \file 1155714Skris/// \brief Defines some OpenMP-specific enums and functions. 1255714Skris/// 1355714Skris//===----------------------------------------------------------------------===// 1455714Skris 15280304Sjkim#ifndef LLVM_CLANG_BASIC_OPENMPKINDS_H 1655714Skris#define LLVM_CLANG_BASIC_OPENMPKINDS_H 1755714Skris 1855714Skris#include "llvm/ADT/StringRef.h" 1955714Skris 2055714Skrisnamespace clang { 2155714Skris 22280304Sjkim/// \brief OpenMP directives. 2355714Skrisenum OpenMPDirectiveKind { 2455714Skris OMPD_unknown = 0, 2555714Skris#define OPENMP_DIRECTIVE(Name) \ 2655714Skris OMPD_##Name, 2755714Skris#include "clang/Basic/OpenMPKinds.def" 2855714Skris NUM_OPENMP_DIRECTIVES 2955714Skris}; 3055714Skris 3155714Skris/// \brief OpenMP clauses. 3255714Skrisenum OpenMPClauseKind { 3355714Skris OMPC_unknown = 0, 3455714Skris#define OPENMP_CLAUSE(Name, Class) \ 3555714Skris OMPC_##Name, 3655714Skris#include "clang/Basic/OpenMPKinds.def" 37280304Sjkim OMPC_threadprivate, 3855714Skris NUM_OPENMP_CLAUSES 3955714Skris}; 40280304Sjkim 4155714Skris/// \brief OpenMP attributes for 'default' clause. 4255714Skrisenum OpenMPDefaultClauseKind { 4355714Skris OMPC_DEFAULT_unknown = 0, 4455714Skris#define OPENMP_DEFAULT_KIND(Name) \ 4555714Skris OMPC_DEFAULT_##Name, 4655714Skris#include "clang/Basic/OpenMPKinds.def" 4755714Skris NUM_OPENMP_DEFAULT_KINDS 4855714Skris}; 4955714Skris 5055714SkrisOpenMPDirectiveKind getOpenMPDirectiveKind(llvm::StringRef Str); 5155714Skrisconst char *getOpenMPDirectiveName(OpenMPDirectiveKind Kind); 52280304Sjkim 5355714SkrisOpenMPClauseKind getOpenMPClauseKind(llvm::StringRef Str); 5455714Skrisconst char *getOpenMPClauseName(OpenMPClauseKind Kind); 5555714Skris 5655714Skrisunsigned getOpenMPSimpleClauseType(OpenMPClauseKind Kind, llvm::StringRef Str); 5755714Skrisconst char *getOpenMPSimpleClauseTypeName(OpenMPClauseKind Kind, unsigned Type); 5855714Skris 59280304Sjkimbool isAllowedClauseForDirective(OpenMPDirectiveKind DKind, 60280304Sjkim OpenMPClauseKind CKind); 61280304Sjkim 62280304Sjkim} 6355714Skris 64109998Smarkm#endif 65280304Sjkim 6655714Skris