clang  14.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"

Collaboration diagram for clang::OMPTraitInfo:
Collaboration graph
[legend]

Public Member Functions

 OMPTraitInfo (StringRef MangledName)
 Reconstruct a (partial) OMPTraitInfo object from a mangled name. More...
 
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. More...
 
std::string getMangledName () const
 Return a string representation identifying this context selector. More...
 
bool isExtensionActive (llvm::omp::TraitProperty TP)
 Check the extension trait TP is active. More...
 
void print (llvm::raw_ostream &OS, const PrintingPolicy &Policy) const
 Print a human readable representation into OS. More...
 

Public Attributes

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

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 8490 of file OpenMPClause.h.

Constructor & Destructor Documentation

◆ OMPTraitInfo()

OMPTraitInfo::OMPTraitInfo ( StringRef  MangledName)

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

Definition at line 2429 of file OpenMPClause.cpp.

References clang::OMPTraitSet::Kind, clang::Property, and clang::OMPTraitSet::Selectors.

Member Function Documentation

◆ anyScoreOrCondition()

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

Definition at line 8502 of file OpenMPClause.h.

References clang::OMPTraitSet::Selectors, and Sets.

Referenced by clang::Sema::checkOpenMPDeclareVariantFunction().

◆ 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 2300 of file OpenMPClause.cpp.

References clang::Property.

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

◆ getMangledName()

std::string OMPTraitInfo::getMangledName ( ) const

Return a string representation identifying this context selector.

Definition at line 2403 of file OpenMPClause.cpp.

References clang::Property, and string().

◆ isExtensionActive()

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

Check the extension trait TP is active.

Definition at line 8526 of file OpenMPClause.h.

References clang::Property, and Sets.

◆ print()

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

Print a human readable representation into OS.

Definition at line 2350 of file OpenMPClause.cpp.

References clang::Property.

Referenced by clang::operator<<().

Friends And Related Function Documentation

◆ ASTContext

friend class ASTContext
friend

Definition at line 8493 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: