diff options
author | Alexey Bataev <a.bataev@hotmail.com> | 2019-11-07 11:03:10 -0500 |
---|---|---|
committer | Alexey Bataev <a.bataev@hotmail.com> | 2019-11-11 14:41:10 -0500 |
commit | fde11e9f23a3bf6c78ec0bcfa92e9759ee8b5054 (patch) | |
tree | ea24a8651f3da140e40ffdd9ce5bf001cb53ec78 /clang/lib/Basic | |
parent | f8c12edd1a5200abbbb2c8da754d6a3bfa7545a0 (diff) | |
download | bcm5719-llvm-fde11e9f23a3bf6c78ec0bcfa92e9759ee8b5054.tar.gz bcm5719-llvm-fde11e9f23a3bf6c78ec0bcfa92e9759ee8b5054.zip |
[OPENMP50]Generalize handling of context matching/scoring.
Summary:
Untie context matching/scoring from the attribute for declare variant
directive to simplify future uses in other context-dependent directives.
Reviewers: jdoerfert
Subscribers: guansong, kkwli0, caomhin, cfe-commits
Tags: #clang
Differential Revision: https://reviews.llvm.org/D69952
Diffstat (limited to 'clang/lib/Basic')
-rw-r--r-- | clang/lib/Basic/OpenMPKinds.cpp | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/clang/lib/Basic/OpenMPKinds.cpp b/clang/lib/Basic/OpenMPKinds.cpp index 75199fbceac..4e6c677f11d 100644 --- a/clang/lib/Basic/OpenMPKinds.cpp +++ b/clang/lib/Basic/OpenMPKinds.cpp @@ -19,6 +19,49 @@ using namespace clang; +OpenMPContextSelectorSetKind +clang::getOpenMPContextSelectorSet(llvm::StringRef Str) { + return llvm::StringSwitch<OpenMPContextSelectorSetKind>(Str) +#define OPENMP_CONTEXT_SELECTOR_SET(Name) .Case(#Name, OMP_CTX_SET_##Name) +#include "clang/Basic/OpenMPKinds.def" + .Default(OMP_CTX_SET_unknown); +} + +llvm::StringRef +clang::getOpenMPContextSelectorSetName(OpenMPContextSelectorSetKind Kind) { + switch (Kind) { + case OMP_CTX_SET_unknown: + return "unknown"; +#define OPENMP_CONTEXT_SELECTOR_SET(Name) \ + case OMP_CTX_SET_##Name: \ + return #Name; +#include "clang/Basic/OpenMPKinds.def" + break; + } + llvm_unreachable("Invalid OpenMP context selector set kind"); +} + +OpenMPContextSelectorKind clang::getOpenMPContextSelector(llvm::StringRef Str) { + return llvm::StringSwitch<OpenMPContextSelectorKind>(Str) +#define OPENMP_CONTEXT_SELECTOR(Name) .Case(#Name, OMP_CTX_##Name) +#include "clang/Basic/OpenMPKinds.def" + .Default(OMP_CTX_unknown); +} + +llvm::StringRef +clang::getOpenMPContextSelectorName(OpenMPContextSelectorKind Kind) { + switch (Kind) { + case OMP_CTX_unknown: + return "unknown"; +#define OPENMP_CONTEXT_SELECTOR(Name) \ + case OMP_CTX_##Name: \ + return #Name; +#include "clang/Basic/OpenMPKinds.def" + break; + } + llvm_unreachable("Invalid OpenMP context selector kind"); +} + OpenMPDirectiveKind clang::getOpenMPDirectiveKind(StringRef Str) { return llvm::StringSwitch<OpenMPDirectiveKind>(Str) #define OPENMP_DIRECTIVE(Name) .Case(#Name, OMPD_##Name) |