My Project
Classes | Namespaces | Typedefs | Functions | Variables
Visitors.h File Reference
#include "mlir/Support/LLVM.h"
#include "mlir/Support/LogicalResult.h"
#include "llvm/ADT/STLExtras.h"
Include dependency graph for Visitors.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  mlir::WalkResult
 

Namespaces

 mlir
 
 mlir::detail
 Check if a Callable type can be invoked with the given set of arg types.
 

Typedefs

template<typename T >
using mlir::detail::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 mlir::detail::walkResultType = decltype(walkOperations(nullptr, std::declval< FnT >()))
 Utility to provide the return type of a templated walk method. More...
 

Functions

template<typename Ret , typename Arg >
Arg mlir::detail::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 mlir::detail::first_argument_type (Ret(F::*)(Arg))
 
void mlir::detail::walkOperations (Operation *op, function_ref< void(Operation *op)> callback)
 Walk all of the operations nested under and including the given operation. More...
 
WalkResult mlir::detail::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 mlir::detail::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 mlir::detail::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 mlir::detail::walkOperations (Operation *op, FuncTy &&callback)
 

Variables

template<typename F >
decltype(first_argument_type(&F::operator())) mlir::detail::first_argument_type (F)