50 #ifndef MLIR_DIALECT_OPENACC_ANALYSIS_OPENACCSUPPORT_H
51 #define MLIR_DIALECT_OPENACC_ANALYSIS_OPENACCSUPPORT_H
62 enum class RecipeKind : uint32_t;
87 template <
typename ImplT>
94 return impl.getVariableName(v);
98 return impl.getRecipeName(
kind, type, var);
102 return impl.emitNYI(loc, message);
117 template <
typename ImplT>
127 template <
typename AnalysisT>
130 std::make_unique<Model<AnalysisT>>(std::forward<AnalysisT>(
analysis));
165 std::unique_ptr<Concept>
impl;
union mlir::linalg::@1257::ArityGroupAndKind::Kind kind
This class represents a diagnostic that is inflight and set to be reported.
This class defines the main interface for locations in MLIR and acts as a non-nullable wrapper around...
Operation is the basic unit of execution within MLIR.
Instances of the Type class are uniqued, have an immutable identifier and an optional mutable compone...
This class represents an instance of an SSA value in the MLIR system, representing a computable value...
void setImplementation(AnalysisT &&analysis)
Register a custom OpenACCSupport implementation.
InFlightDiagnostic emitNYI(Location loc, const Twine &message)
Report a case that is not yet supported by the implementation.
OpenACCSupport(Operation *op)
bool isInvalidated(const AnalysisManager::PreservedAnalyses &pa)
Signal that this analysis should always be preserved so that underlying implementation registration i...
std::string getVariableName(Value v)
Get the variable name for a given value.
std::string getRecipeName(RecipeKind kind, Type type, Value var)
Get the recipe name for a given type and value.
virtual std::string getRecipeName(RecipeKind kind, Type type, Value var)=0
Get the recipe name for a given kind, type and value.
virtual std::string getVariableName(Value v)=0
Get the variable name for a given MLIR value.
virtual InFlightDiagnostic emitNYI(Location loc, const Twine &message)=0
virtual ~Concept()=default
This class wraps a concrete OpenACCSupport implementation and forwards interface calls to it.
InFlightDiagnostic emitNYI(Location loc, const Twine &message) final
std::string getRecipeName(RecipeKind kind, Type type, Value var) final
Get the recipe name for a given kind, type and value.
~Model() override=default
std::string getVariableName(Value v) final
Get the variable name for a given MLIR value.
A utility class to represent the analyses that are known to be preserved.
Include the generated interface declarations.
This class contains internal trait classes used by OpenACCSupport.