|
| template<typename Ret, typename Arg, typename... Rest> |
| Arg | mlir::detail::first_argument_type (Ret(*)(Arg, Rest...)) |
| | Helper templates to deduce the first argument of a callback parameter.
|
| template<typename Ret, typename F, typename Arg, typename... Rest> |
| Arg | mlir::detail::first_argument_type (Ret(F::*)(Arg, Rest...)) |
| template<typename F> |
| decltype(first_argument_type(&F::operator())) | mlir::detail::first_argument_type (F) |
| template<typename Iterator> |
| void | mlir::detail::walk (Operation *op, function_ref< void(Region *)> callback, WalkOrder order) |
| | Walk all of the regions, blocks, or operations nested under (and including) the given operation.
|
| template<typename Iterator> |
| void | mlir::detail::walk (Operation *op, function_ref< void(Block *)> callback, WalkOrder order) |
| template<typename Iterator> |
| void | mlir::detail::walk (Operation *op, function_ref< void(Operation *)> callback, WalkOrder order) |
| template<typename Iterator> |
| WalkResult | mlir::detail::walk (Operation *op, function_ref< WalkResult(Region *)> callback, WalkOrder order) |
| | Walk all of the regions, blocks, or operations nested under (and including) the given operation.
|
| template<typename Iterator> |
| WalkResult | mlir::detail::walk (Operation *op, function_ref< WalkResult(Block *)> callback, WalkOrder order) |
| template<typename Iterator> |
| WalkResult | mlir::detail::walk (Operation *op, function_ref< WalkResult(Operation *)> callback, WalkOrder order) |
| template<WalkOrder Order = WalkOrder::PostOrder, typename Iterator = ForwardIterator, typename FuncTy, typename ArgT = detail::first_argument<FuncTy>, typename RetT = decltype(std::declval<FuncTy>()(std::declval<ArgT>()))> |
| std::enable_if_t< llvm::is_one_of< ArgT, Operation *, Region *, Block * >::value, RetT > | mlir::detail::walk (Operation *op, FuncTy &&callback) |
| | Walk all of the regions, blocks, or operations nested under (and including) the given operation.
|
| template<WalkOrder Order = WalkOrder::PostOrder, typename Iterator = ForwardIterator, typename FuncTy, typename ArgT = detail::first_argument<FuncTy>, typename RetT = decltype(std::declval<FuncTy>()(std::declval<ArgT>()))> |
| std::enable_if_t< !llvm::is_one_of< ArgT, Operation *, Region *, Block * >::value &&std::is_same< RetT, void >::value, RetT > | mlir::detail::walk (Operation *op, FuncTy &&callback) |
| | Walk all of the operations of type 'ArgT' nested under and including the given operation.
|
| template<WalkOrder Order = WalkOrder::PostOrder, typename Iterator = ForwardIterator, typename FuncTy, typename ArgT = detail::first_argument<FuncTy>, typename RetT = decltype(std::declval<FuncTy>()(std::declval<ArgT>()))> |
| std::enable_if_t< !llvm::is_one_of< ArgT, Operation *, Region *, Block * >::value &&std::is_same< RetT, WalkResult >::value, RetT > | mlir::detail::walk (Operation *op, FuncTy &&callback) |
| | Walk all of the operations of type 'ArgT' nested under and including the given operation.
|
| void | mlir::detail::walk (Operation *op, function_ref< void(Operation *, const WalkStage &stage)> callback) |
| | Generic walkers with stage aware callbacks.
|
| WalkResult | mlir::detail::walk (Operation *op, function_ref< WalkResult(Operation *, const WalkStage &stage)> callback) |
| | Walk all the operations nested under (and including) the given operation, with the callback being invoked on each operation N+1 times, where N is the number of regions attached to the operation.
|
| template<typename FuncTy, typename ArgT = detail::first_argument<FuncTy>, typename RetT = decltype(std::declval<FuncTy>()( std::declval<ArgT>(), std::declval<const WalkStage &>()))> |
| std::enable_if_t< std::is_same< ArgT, Operation * >::value, RetT > | mlir::detail::walk (Operation *op, FuncTy &&callback) |
| | Walk all of the operations nested under and including the given operation.
|
| template<typename FuncTy, typename ArgT = detail::first_argument<FuncTy>, typename RetT = decltype(std::declval<FuncTy>()( std::declval<ArgT>(), std::declval<const WalkStage &>()))> |
| std::enable_if_t<!std::is_same< ArgT, Operation * >::value &&std::is_same< RetT, void >::value, RetT > | mlir::detail::walk (Operation *op, FuncTy &&callback) |
| | Walk all of the operations of type 'ArgT' nested under and including the given operation.
|
| template<typename FuncTy, typename ArgT = detail::first_argument<FuncTy>, typename RetT = decltype(std::declval<FuncTy>()( std::declval<ArgT>(), std::declval<const WalkStage &>()))> |
| std::enable_if_t<!std::is_same< ArgT, Operation * >::value &&std::is_same< RetT, WalkResult >::value, RetT > | mlir::detail::walk (Operation *op, FuncTy &&callback) |
| | Walk all of the operations of type 'ArgT' nested under and including the given operation.
|