#include "llvm/Frontend/OpenMP/OMPContext.h"
#include "llvm/ADT/StringRef.h"
#include "llvm/ADT/StringSwitch.h"
#include "llvm/Support/Debug.h"
#include "llvm/Support/raw_ostream.h"
#include "llvm/TargetParser/Triple.h"
#define DEBUG_TYPE …
usingnamespacellvm;
usingnamespaceomp;
OMPContext::OMPContext(bool IsDeviceCompilation, Triple TargetTriple) { … }
template <typename T> static bool isSubset(ArrayRef<T> C0, ArrayRef<T> C1) { … }
template <typename T>
static bool isStrictSubset(ArrayRef<T> C0, ArrayRef<T> C1) { … }
static bool isStrictSubset(const VariantMatchInfo &VMI0,
const VariantMatchInfo &VMI1) { … }
static int isVariantApplicableInContextHelper(
const VariantMatchInfo &VMI, const OMPContext &Ctx,
SmallVectorImpl<unsigned> *ConstructMatches, bool DeviceSetOnly) { … }
bool llvm::omp::isVariantApplicableInContext(const VariantMatchInfo &VMI,
const OMPContext &Ctx,
bool DeviceSetOnly) { … }
static APInt getVariantMatchScore(const VariantMatchInfo &VMI,
const OMPContext &Ctx,
SmallVectorImpl<unsigned> &ConstructMatches) { … }
int llvm::omp::getBestVariantMatchForContext(
const SmallVectorImpl<VariantMatchInfo> &VMIs, const OMPContext &Ctx) { … }
TraitSet llvm::omp::getOpenMPContextTraitSetKind(StringRef S) { … }
TraitSet
llvm::omp::getOpenMPContextTraitSetForSelector(TraitSelector Selector) { … }
TraitSet
llvm::omp::getOpenMPContextTraitSetForProperty(TraitProperty Property) { … }
StringRef llvm::omp::getOpenMPContextTraitSetName(TraitSet Kind) { … }
TraitSelector llvm::omp::getOpenMPContextTraitSelectorKind(StringRef S) { … }
TraitSelector
llvm::omp::getOpenMPContextTraitSelectorForProperty(TraitProperty Property) { … }
StringRef llvm::omp::getOpenMPContextTraitSelectorName(TraitSelector Kind) { … }
TraitProperty llvm::omp::getOpenMPContextTraitPropertyKind(
TraitSet Set, TraitSelector Selector, StringRef S) { … }
TraitProperty
llvm::omp::getOpenMPContextTraitPropertyForSelector(TraitSelector Selector) { … }
StringRef llvm::omp::getOpenMPContextTraitPropertyName(TraitProperty Kind,
StringRef RawString) { … }
StringRef llvm::omp::getOpenMPContextTraitPropertyFullName(TraitProperty Kind) { … }
bool llvm::omp::isValidTraitSelectorForTraitSet(TraitSelector Selector,
TraitSet Set,
bool &AllowsTraitScore,
bool &RequiresProperty) { … }
bool llvm::omp::isValidTraitPropertyForTraitSetAndSelector(
TraitProperty Property, TraitSelector Selector, TraitSet Set) { … }
std::string llvm::omp::listOpenMPContextTraitSets() { … }
std::string llvm::omp::listOpenMPContextTraitSelectors(TraitSet Set) { … }
std::string
llvm::omp::listOpenMPContextTraitProperties(TraitSet Set,
TraitSelector Selector) { … }