MLIR 22.0.0git
mlir::acc::detail::OpenACCSupportTraits::Model< ImplT > Class Template Referencefinal

This class wraps a concrete OpenACCSupport implementation and forwards interface calls to it. More...

#include "mlir/Dialect/OpenACC/Analysis/OpenACCSupport.h"

Inheritance diagram for mlir::acc::detail::OpenACCSupportTraits::Model< ImplT >:

Public Member Functions

 Model (ImplT &&impl)
 ~Model () override=default
std::string getVariableName (Value v) final
 Get the variable name for a given MLIR value.
std::string getRecipeName (RecipeKind kind, Type type, Value var) final
 Get the recipe name for a given kind, type and value.
InFlightDiagnostic emitNYI (Location loc, const Twine &message) final
remark::detail::InFlightRemark emitRemark (Operation *op, const Twine &message, llvm::StringRef category) final
bool isValidSymbolUse (Operation *user, SymbolRefAttr symbol, Operation **definingOpPtr) final
 Check if a symbol use is valid for use in an OpenACC region.
bool isValidValueUse (Value v, Region &region) final
 Check if a value use is legal in an OpenACC region.
Public Member Functions inherited from mlir::acc::detail::OpenACCSupportTraits::Concept
virtual ~Concept ()=default

Detailed Description

template<typename ImplT>
class mlir::acc::detail::OpenACCSupportTraits::Model< ImplT >

This class wraps a concrete OpenACCSupport implementation and forwards interface calls to it.

This provides type erasure, allowing different implementation types to be used interchangeably without inheritance. Methods can be optionally implemented; if not present, default behavior is used.

Definition at line 138 of file OpenACCSupport.h.

Constructor & Destructor Documentation

◆ Model()

template<typename ImplT>
mlir::acc::detail::OpenACCSupportTraits::Model< ImplT >::Model ( ImplT && impl)
inlineexplicit

Definition at line 140 of file OpenACCSupport.h.

◆ ~Model()

template<typename ImplT>
mlir::acc::detail::OpenACCSupportTraits::Model< ImplT >::~Model ( )
overridedefault

Member Function Documentation

◆ emitNYI()

template<typename ImplT>
InFlightDiagnostic mlir::acc::detail::OpenACCSupportTraits::Model< ImplT >::emitNYI ( Location loc,
const Twine & message )
inlinefinalvirtual

◆ emitRemark()

template<typename ImplT>
remark::detail::InFlightRemark mlir::acc::detail::OpenACCSupportTraits::Model< ImplT >::emitRemark ( Operation * op,
const Twine & message,
llvm::StringRef category )
inlinefinalvirtual

◆ getRecipeName()

template<typename ImplT>
std::string mlir::acc::detail::OpenACCSupportTraits::Model< ImplT >::getRecipeName ( RecipeKind kind,
Type type,
Value var )
inlinefinalvirtual

Get the recipe name for a given kind, type and value.

Implements mlir::acc::detail::OpenACCSupportTraits::Concept.

Definition at line 147 of file OpenACCSupport.h.

◆ getVariableName()

template<typename ImplT>
std::string mlir::acc::detail::OpenACCSupportTraits::Model< ImplT >::getVariableName ( Value v)
inlinefinalvirtual

Get the variable name for a given MLIR value.

Implements mlir::acc::detail::OpenACCSupportTraits::Concept.

Definition at line 143 of file OpenACCSupport.h.

◆ isValidSymbolUse()

template<typename ImplT>
bool mlir::acc::detail::OpenACCSupportTraits::Model< ImplT >::isValidSymbolUse ( Operation * user,
SymbolRefAttr symbol,
Operation ** definingOpPtr )
inlinefinalvirtual

Check if a symbol use is valid for use in an OpenACC region.

Implements mlir::acc::detail::OpenACCSupportTraits::Concept.

Definition at line 164 of file OpenACCSupport.h.

References mlir::acc::isValidSymbolUse().

◆ isValidValueUse()

template<typename ImplT>
bool mlir::acc::detail::OpenACCSupportTraits::Model< ImplT >::isValidValueUse ( Value v,
Region & region )
inlinefinalvirtual

Check if a value use is legal in an OpenACC region.

Implements mlir::acc::detail::OpenACCSupportTraits::Concept.

Definition at line 172 of file OpenACCSupport.h.


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