My Project
|
Check if a Callable type can be invoked with the given set of arg types. More...
Namespaces | |
analysis_impl | |
Classes | |
struct | AffineBinaryOpExprStorage |
A binary operation appearing in an affine expression. More... | |
struct | AffineConstantExprStorage |
An integer constant appearing in affine expression. More... | |
struct | AffineDimExprStorage |
A dimensional or symbolic identifier appearing in an affine expression. More... | |
struct | AffineExprStorage |
Base storage class appearing in an affine expression. More... | |
struct | AffineMapAttributeStorage |
struct | AffineMapStorage |
struct | AnalysisConcept |
The abstract polymorphic base class representing an analysis. More... | |
class | AnalysisMap |
struct | AnalysisModel |
A derived analysis model used to hold a specific analysis object. More... | |
struct | AnyValueMatcher |
Terminal matcher, always returns true. More... | |
struct | ArrayAttributeStorage |
An attribute representing an array of other attributes. More... | |
struct | attr_value_binder |
class | AttributeUniquer |
class | BlockArgumentImpl |
The internal implementation of a BlockArgument. More... | |
struct | BoolAttributeStorage |
An attribute representing a boolean value. More... | |
struct | CallSiteLocationStorage |
struct | ComplexTypeStorage |
Complex Type Storage. More... | |
struct | constant_int_not_value_matcher |
struct | constant_int_op_binder |
struct | constant_int_value_matcher |
struct | constant_op_binder |
struct | ConversionPatternRewriterImpl |
class | DenseElementDataPointerTypeTraits |
class | DenseElementIndexedIteratorImpl |
struct | DenseElementsAttributeStorage |
An attribute representing a reference to a dense vector or tensor object. More... | |
struct | detector |
struct | detector< void_t< Op< Args... > >, Op, Args... > |
struct | DiagnosticEngineImpl |
class | DialectInterfaceBase |
class | DialectInterfaceCollectionBase |
struct | DictionaryAttributeStorage |
An attribute representing a dictionary of sorted named attributes. More... | |
class | DominanceInfoBase |
class | ElementsAttrIterator |
class | ElementsAttrRange |
struct | ExpectedDiag |
struct | FileLineColLocationStorage |
struct | FloatAttributeStorage |
An attribute representing a floating point value. More... | |
struct | FunctionTypeStorage |
Function Type Storage and Uniquing. More... | |
struct | FusedLocationStorage |
class | indexed_accessor_range_base |
struct | IntegerAttributeStorage |
An attribute representing a integral value. More... | |
struct | IntegerSetAttributeStorage |
struct | IntegerSetStorage |
struct | IntegerTypeStorage |
Integer Type Storage and Uniquing. More... | |
struct | MemRefTypeStorage |
struct | NameLocationStorage |
struct | NestedAnalysisMap |
struct | op_matcher |
The matcher that matches a certain kind of op. More... | |
struct | OpaqueAttributeStorage |
Opaque Attribute Storage and Uniquing. More... | |
struct | OpaqueElementsAttributeStorage |
struct | OpaqueLocationStorage |
struct | OpaqueTypeStorage |
Opaque Type Storage and Uniquing. More... | |
class | OpaqueValue |
This class provides an opaque type erased wrapper around a Value . More... | |
class | OperandStorage |
struct | OpPassManagerImpl |
class | OpToOpPassAdaptor |
class | OpToOpPassAdaptorBase |
A base class for Op-to-Op adaptor passes. More... | |
class | OpToOpPassAdaptorParallel |
struct | ParallelDiagnosticHandlerImpl |
struct | PassExecutionState |
struct | PassInstrumentorImpl |
class | PassModel |
class | PassOptions |
Base container class and manager for all pass options. More... | |
struct | PassPipelineCLParserImpl |
struct | PatternMatcherValue |
Binds to a specific value and matches it. More... | |
class | PreservedAnalyses |
A utility class to represent the analyses that are known to be preserved. More... | |
struct | RankedTensorTypeStorage |
struct | RecursivePatternMatcher |
RecursivePatternMatcher that composes. More... | |
struct | ResizableStorage |
struct | SDBMBinaryExprStorage |
struct | SDBMConstantExprStorage |
struct | SDBMDiffExprStorage |
struct | SDBMExprStorage |
struct | SDBMNegExprStorage |
struct | SDBMTermExprStorage |
struct | ShapedTypeStorage |
Shaped Type Storage. More... | |
struct | SourceMgrDiagnosticHandlerImpl |
struct | SourceMgrDiagnosticVerifierHandlerImpl |
struct | SparseElementsAttributeStorage |
An attribute representing a reference to a sparse vector or tensor object. More... | |
struct | StorageUniquerImpl |
This is the implementation of the StorageUniquer class. More... | |
class | StorageUserBase |
struct | StringAttributeStorage |
An attribute representing a string value. More... | |
struct | SymbolRefAttributeStorage |
An attribute representing a symbol reference. More... | |
struct | TrailingOpResult |
This class provides the implementation for a trailing operation result. More... | |
struct | TupleTypeStorage |
A type representing a collection of other types. More... | |
struct | TypeAttributeStorage |
An attribute representing a reference to a type. More... | |
class | TypeSwitchBase |
class | TypeUniquer |
struct | UnrankedMemRefTypeStorage |
struct | UnrankedTensorTypeStorage |
struct | ValueRangeOwner |
class | ValueUseIteratorImpl |
struct | VectorTypeStorage |
Vector Type Storage and Uniquing. More... | |
class | VerifierPass |
Pass to verify an operation and signal failure if necessary. More... | |
Typedefs | |
using | DenseIterPtrAndSplat = llvm::PointerIntPair< const char *, 1, bool, DenseElementDataPointerTypeTraits > |
Pair of raw pointer and a boolean flag of whether the pointer holds a splat,. More... | |
template<typename T , typename OperationOrValue > | |
using | has_operation_or_value_matcher_t = decltype(std::declval< T >().match(std::declval< OperationOrValue >())) |
template<typename T > | |
using | first_argument = decltype(first_argument_type(std::declval< T >())) |
Type definition of the first argument to the given callable 'T'. More... | |
template<typename FnT > | |
using | walkResultType = decltype(walkOperations(nullptr, std::declval< FnT >())) |
Utility to provide the return type of a templated walk method. More... | |
template<typename RangeT > | |
using | ValueOfRange = typename std::remove_reference< decltype(*std::begin(std::declval< RangeT & >()))>::type |
template<typename... > | |
using | void_t = void |
template<typename Callable , typename... Args> | |
using | is_invocable = decltype(std::declval< Callable & >()(std::declval< Args >()...)) |
template<typename ImplTy , typename... Args> | |
using | has_impltype_getkey_t = decltype(ImplTy::getKey(std::declval< Args >()...)) |
Trait to check if ImplTy provides a 'getKey' method with types 'Args'. More... | |
template<typename ImplTy , typename T > | |
using | has_impltype_hash_t = decltype(ImplTy::hashKey(std::declval< T >())) |
Trait to check if ImplTy provides a 'hashKey' method for 'T'. More... | |
Functions | |
OpToOpPassAdaptorBase * | getAdaptorPassBase (Pass *pass) |
bool | isAdaptorPass (Pass *pass) |
template<int N> | |
void | bindDims (MLIRContext *ctx) |
template<int N, typename AffineExprTy , typename... AffineExprTy2> | |
void | bindDims (MLIRContext *ctx, AffineExprTy &e, AffineExprTy2 &... exprs) |
template<typename MatcherClass > | |
std::enable_if_t< is_detected< detail::has_operation_or_value_matcher_t, MatcherClass, Value >::value, bool > | matchOperandOrValueAtIndex (Operation *op, unsigned idx, MatcherClass &matcher) |
Statically switch to a Value matcher. More... | |
template<typename MatcherClass > | |
std::enable_if_t< is_detected< detail::has_operation_or_value_matcher_t, MatcherClass, Operation * >::value, bool > | matchOperandOrValueAtIndex (Operation *op, unsigned idx, MatcherClass &matcher) |
Statically switch to an Operation matcher. More... | |
template<typename TupleT , class CallbackT , std::size_t... Is> | |
constexpr void | enumerateImpl (TupleT &&tuple, CallbackT &&callback, std::index_sequence< Is... >) |
template<typename... Tys, typename CallbackT > | |
constexpr void | enumerate (std::tuple< Tys... > &tuple, CallbackT &&callback) |
template<typename Ret , typename Arg > | |
Arg | first_argument_type (Ret(*)(Arg)) |
Helper templates to deduce the first argument of a callback parameter. More... | |
template<typename Ret , typename F , typename Arg > | |
Arg | first_argument_type (Ret(F::*)(Arg)) |
void | walkOperations (Operation *op, function_ref< void(Operation *op)> callback) |
Walk all of the operations nested under and including the given operation. More... | |
WalkResult | walkOperations (Operation *op, function_ref< WalkResult(Operation *op)> callback) |
template<typename FuncTy , typename ArgT = detail::first_argument<FuncTy>, typename RetT = decltype(std::declval<FuncTy>()(std::declval<ArgT>()))> | |
std::enable_if< std::is_same< ArgT, Operation * >::value, RetT >::type | walkOperations (Operation *op, FuncTy &&callback) |
template<typename FuncTy , typename ArgT = detail::first_argument<FuncTy>, typename RetT = decltype(std::declval<FuncTy>()(std::declval<ArgT>()))> | |
std::enable_if<!std::is_same< ArgT, Operation * >::value &&std::is_same< RetT, void >::value, RetT >::type | walkOperations (Operation *op, FuncTy &&callback) |
template<typename FuncTy , typename ArgT = detail::first_argument<FuncTy>, typename RetT = decltype(std::declval<FuncTy>()(std::declval<ArgT>()))> | |
std::enable_if<!std::is_same< ArgT, Operation * >::value &&std::is_same< RetT, WalkResult >::value, RetT >::type | walkOperations (Operation *op, FuncTy &&callback) |
Variables | |
template<typename F > | |
decltype(first_argument_type(&F::operator())) | first_argument_type (F) |
Check if a Callable type can be invoked with the given set of arg types.
Utilities for detecting if a given trait holds for some set of arguments 'Args'. For example, the given trait could be used to detect if a given type has a copy assignment operator: template<class T> using has_copy_assign_t = decltype(std::declval<T&>() = std::declval<const T&>()); bool fooHasCopyAssign = is_detected<has_copy_assign_t, FooClass>::value;
using mlir::detail::DenseIterPtrAndSplat = typedef llvm::PointerIntPair<const char *, 1, bool, DenseElementDataPointerTypeTraits> |
Pair of raw pointer and a boolean flag of whether the pointer holds a splat,.
using mlir::detail::first_argument = typedef decltype(first_argument_type(std::declval<T>())) |
Type definition of the first argument to the given callable 'T'.
using mlir::detail::has_impltype_getkey_t = typedef decltype(ImplTy::getKey(std::declval<Args>()...)) |
Trait to check if ImplTy provides a 'getKey' method with types 'Args'.
using mlir::detail::has_impltype_hash_t = typedef decltype(ImplTy::hashKey(std::declval<T>())) |
Trait to check if ImplTy provides a 'hashKey' method for 'T'.
using mlir::detail::has_operation_or_value_matcher_t = typedef decltype(std::declval<T>().match(std::declval<OperationOrValue>())) |
Trait to check whether T provides a 'match' method with type OperationOrValue
.
using mlir::detail::is_invocable = typedef decltype(std::declval<Callable &>()(std::declval<Args>()...)) |
using mlir::detail::ValueOfRange = typedef typename std::remove_reference<decltype( *std::begin(std::declval<RangeT &>()))>::type |
using mlir::detail::void_t = typedef void |
using mlir::detail::walkResultType = typedef decltype(walkOperations(nullptr, std::declval<FnT>())) |
Utility to provide the return type of a templated walk method.
void mlir::detail::bindDims | ( | MLIRContext * | ctx | ) |
void mlir::detail::bindDims | ( | MLIRContext * | ctx, |
AffineExprTy & | e, | ||
AffineExprTy2 &... | exprs | ||
) |
constexpr void mlir::detail::enumerate | ( | std::tuple< Tys... > & | tuple, |
CallbackT && | callback | ||
) |
constexpr void mlir::detail::enumerateImpl | ( | TupleT && | tuple, |
CallbackT && | callback, | ||
std::index_sequence< Is... > | |||
) |
Arg mlir::detail::first_argument_type | ( | Ret(*)(Arg) | ) |
Helper templates to deduce the first argument of a callback parameter.
Arg mlir::detail::first_argument_type | ( | Ret(F::*)(Arg) | ) |
OpToOpPassAdaptorBase * mlir::detail::getAdaptorPassBase | ( | Pass * | pass | ) |
Utility function to convert the given class to the base adaptor it is an adaptor pass, returns nullptr otherwise.
|
inline |
Utility function to return if a pass refers to an adaptor pass. Adaptor passes are those that internally execute a pipeline.
std::enable_if_t<is_detected<detail::has_operation_or_value_matcher_t, MatcherClass, Value>::value, bool> mlir::detail::matchOperandOrValueAtIndex | ( | Operation * | op, |
unsigned | idx, | ||
MatcherClass & | matcher | ||
) |
Statically switch to a Value matcher.
std::enable_if_t<is_detected<detail::has_operation_or_value_matcher_t, MatcherClass, Operation *>::value, bool> mlir::detail::matchOperandOrValueAtIndex | ( | Operation * | op, |
unsigned | idx, | ||
MatcherClass & | matcher | ||
) |
Statically switch to an Operation matcher.
void mlir::detail::walkOperations | ( | Operation * | op, |
function_ref< void(Operation *op)> | callback | ||
) |
Walk all of the operations nested under and including the given operation.
Walk all of the operations nested under and including the given operations.
WalkResult mlir::detail::walkOperations | ( | Operation * | op, |
function_ref< WalkResult(Operation *op)> | callback | ||
) |
Walk all of the operations nested under and including the given operation. This methods walks operations until an interrupt result is returned by the callback.
Walk all of the operations nested under and including the given operations. This methods walks operations until an interrupt signal is received.
std::enable_if<std::is_same<ArgT, Operation *>::value, RetT>::type mlir::detail::walkOperations | ( | Operation * | op, |
FuncTy && | callback | ||
) |
Walk all of the operations nested under and including the given operation. This method is selected for callbacks that operation on Operation*.
Example: op->walk([](Operation *op) { ... });
std::enable_if<!std::is_same<ArgT, Operation *>::value && std::is_same<RetT, void>::value, RetT>::type mlir::detail::walkOperations | ( | Operation * | op, |
FuncTy && | callback | ||
) |
Walk all of the operations of type 'ArgT' nested under and including the given operation. This method is selected for void returning callbacks that operate on a specific derived operation type.
Example: op->walk([](ReturnOp op) { ... });
std::enable_if<!std::is_same<ArgT, Operation *>::value && std::is_same<RetT, WalkResult>::value, RetT>::type mlir::detail::walkOperations | ( | Operation * | op, |
FuncTy && | callback | ||
) |
Walk all of the operations of type 'ArgT' nested under and including the given operation. This method is selected for WalkReturn returning interruptible callbacks that operate on a specific derived operation type.
Example: op->walk([](ReturnOp op) { if (some_invariant) return WalkResult::interrupt(); return WalkResult::advance(); });
decltype(first_argument_type(&F::operator())) mlir::detail::first_argument_type(F) |