18#define GEN_OMP_CLAUSE_DESCRIPTORS
20#undef GEN_OMP_CLAUSE_DESCRIPTORS
27#define GEN_OMP_MODIFIER_DESCRIPTORS
29#undef GEN_OMP_MODIFIER_DESCRIPTORS
36#define GEN_OMP_MODIFIER_GROUP_DESCRIPTORS
38#undef GEN_OMP_MODIFIER_GROUP_DESCRIPTORS
40#define GEN_OMP_MODIFIER_SET_DESCRIPTORS
42#undef GEN_OMP_MODIFIER_SET_DESCRIPTORS
47#define GET_THING_OR_EMPTY(Thing, Member) \
48 template <typename DetailsTy> \
49 static Thing get##Thing##OrEmpty(const DetailsTy &D, Version V) { \
50 V = std::max(V, Version(45)); \
51 if (auto Found = D.find(V); Found != D.end()) \
52 return Found->second.Member; \
62#undef GET_THING_OR_EMPTY
66 return getPropertiesOrEmpty(
Details, V);
69 return getDirectivesOrEmpty(
Details, V);
72 return getModifiersOrEmpty(
Details, V);
75 return getModifierSetsOrEmpty(
Details, V);
79 return getPropertiesOrEmpty(
Details, V);
82 return getClausesOrEmpty(
Details, V);
86 return getPropertiesOrEmpty(
Details, V);
89 return getModifiersOrEmpty(
Details, V);
92 return getClausesOrEmpty(
Details, V);
static GCRegistry::Add< ShadowStackGC > C("shadow-stack", "Very portable GC for uncooperative code generators")
#define GET_THING_OR_EMPTY(Thing, Member)
EnumSet< Modifier, Modifier_enumSize > Modifiers
LLVM_ABI const descriptor::Clause & getDescriptor(llvm::omp::Clause C)
llvm::omp::ClauseSet Clauses
const DescriptorMap< Clause, descriptor::Clause > & getClauseMap()
EnumSet< Property, Property_enumSize > Properties
EnumSet< ModifierSet, ModifierSet_enumSize > ModifierSets
DenseMap< Enum, DescriptorTy > DescriptorMap
LLVM_ABI Properties getProperties(Clause C, Version V)
const DescriptorMap< ModifierSet, descriptor::ModifierSet > & getModifierSetMap()
const DescriptorMap< Modifier, descriptor::Modifier > & getModifierMap()
llvm::omp::DirectiveSet Directives
LLVM_ABI Modifiers getModifiers(Version V) const
LLVM_ABI ModifierSets getModifierSets(Version V) const
LLVM_ABI Directives getDirectives(Version V) const
LLVM_ABI Properties getProperties(Version V) const
DetailsMap< details::Clause > Details
LLVM_ABI Clauses getClauses(Version V) const
LLVM_ABI Modifiers getModifiers(Version V) const
LLVM_ABI Properties getProperties(Version V) const
LLVM_ABI Clauses getClauses(Version V) const
LLVM_ABI Properties getProperties(Version V) const