clang 20.0.0git
Public Member Functions | Public Attributes | Friends | List of all members
clang::OMPTraitInfo Class Reference

Helper data structure representing the traits in a match clause of an declare variant or metadirective. More...

#include "clang/AST/OpenMPClause.h"

Public Member Functions

 OMPTraitInfo (StringRef MangledName)
 Reconstruct a (partial) OMPTraitInfo object from a mangled name.
 
bool anyScoreOrCondition (llvm::function_ref< bool(Expr *&, bool)> Cond)
 
void getAsVariantMatchInfo (ASTContext &ASTCtx, llvm::omp::VariantMatchInfo &VMI) const
 Create a variant match info object from this trait info object.
 
std::string getMangledName () const
 Return a string representation identifying this context selector.
 
bool isExtensionActive (llvm::omp::TraitProperty TP)
 Check the extension trait TP is active.
 
void print (llvm::raw_ostream &OS, const PrintingPolicy &Policy) const
 Print a human readable representation into OS.
 

Public Attributes

llvm::SmallVector< OMPTraitSet, 2 > Sets
 The outermost level of selector sets.
 

Friends

class ASTContext
 

Detailed Description

Helper data structure representing the traits in a match clause of an declare variant or metadirective.

The outer level is an ordered collection of selector sets, each with an associated kind and an ordered collection of selectors. A selector has a kind, an optional score/condition, and an ordered collection of properties.

Definition at line 9197 of file OpenMPClause.h.

Constructor & Destructor Documentation

◆ OMPTraitInfo()

OMPTraitInfo::OMPTraitInfo ( StringRef  MangledName)

Reconstruct a (partial) OMPTraitInfo object from a mangled name.

Definition at line 2821 of file OpenMPClause.cpp.

References clang::Property, clang::Set, and Sets.

Member Function Documentation

◆ anyScoreOrCondition()

bool clang::OMPTraitInfo::anyScoreOrCondition ( llvm::function_ref< bool(Expr *&, bool)>  Cond)
inline

◆ getAsVariantMatchInfo()

void OMPTraitInfo::getAsVariantMatchInfo ( ASTContext ASTCtx,
llvm::omp::VariantMatchInfo &  VMI 
) const

Create a variant match info object from this trait info object.

While the former is a flat representation the actual main difference is that the latter uses clang::Expr to store the score/condition while the former is independent of clang. Thus, expressions and conditions are evaluated in this method.

Definition at line 2692 of file OpenMPClause.cpp.

References clang::Property, clang::Set, and Sets.

Referenced by clang::SemaOpenMP::ActOnOpenMPCall(), and clang::SemaOpenMP::ActOnOpenMPDeclareVariantDirective().

◆ getMangledName()

std::string OMPTraitInfo::getMangledName ( ) const

Return a string representation identifying this context selector.

Definition at line 2795 of file OpenMPClause.cpp.

References clang::Property, clang::Set, and Sets.

◆ isExtensionActive()

bool clang::OMPTraitInfo::isExtensionActive ( llvm::omp::TraitProperty  TP)
inline

Check the extension trait TP is active.

Definition at line 9233 of file OpenMPClause.h.

References clang::Property, clang::Set, and Sets.

◆ print()

void OMPTraitInfo::print ( llvm::raw_ostream &  OS,
const PrintingPolicy Policy 
) const

Print a human readable representation into OS.

Definition at line 2742 of file OpenMPClause.cpp.

References clang::Property, clang::Set, and Sets.

Referenced by clang::operator<<().

Friends And Related Function Documentation

◆ ASTContext

friend class ASTContext
friend

Definition at line 9200 of file OpenMPClause.h.

Member Data Documentation

◆ Sets

llvm::SmallVector<OMPTraitSet, 2> clang::OMPTraitInfo::Sets

The documentation for this class was generated from the following files: