13 #ifndef MLIR_IR_BLOCK_SUPPORT_H 14 #define MLIR_IR_BLOCK_SUPPORT_H 17 #include "llvm/ADT/PointerUnion.h" 18 #include "llvm/ADT/ilist.h" 19 #include "llvm/ADT/ilist_node.h" 33 :
public llvm::mapped_iterator<ValueUseIterator<BlockOperand>,
34 Block *(*)(BlockOperand &)> {
58 Block *, Block *, Block *> {
67 return object + index;
71 return object[index].get();
86 namespace ilist_detail {
92 struct SpecificNodeAccess<
95 using OptionsT =
typename compute_node_options<mlir::Operation>::type;
96 using pointer =
typename OptionsT::pointer;
115 void transferNodesFromList(ilist_traits<Operation> &otherList,
127 struct ilist_traits<::
mlir::Block> :
public ilist_alloc_traits<::mlir::Block> {
131 void addNodeToList(
Block *block);
132 void removeNodeFromList(
Block *block);
133 void transferNodesFromList(ilist_traits<Block> &otherList,
142 #endif // MLIR_IR_BLOCK_SUPPORT_H Definition: InferTypeOpInterface.cpp:20
typename OptionsT::const_pointer const_pointer
Definition: BlockSupport.h:97
Definition: PassRegistry.cpp:413
Definition: Operation.h:27
Block represents an ordered list of Operations.
Definition: Block.h:21
PredecessorIterator(BlockOperand *operand)
Definition: BlockSupport.h:44
An iterator over all of the uses of an IR object.
Definition: UseDefLists.h:25
Terminator operations can have Block operands to represent successors.
Definition: UseDefLists.h:288
Definition: STLExtras.h:196
ilist_node_impl< OptionsT > node_type
Definition: BlockSupport.h:98
simple_ilist< Operation >::iterator op_iterator
Definition: BlockSupport.h:110
typename OptionsT::pointer pointer
Definition: BlockSupport.h:96
typename compute_node_options< mlir::Operation >::type OptionsT
Definition: BlockSupport.h:95
This class implements the successor iterators for Block.
Definition: BlockSupport.h:56
simple_ilist<::mlir::Block >::iterator block_iterator
Definition: BlockSupport.h:129
unsigned getSuccessorIndex() const
Get the successor number in the predecessor terminator.
Definition: Block.cpp:271
Definition: BlockSupport.h:32
PredecessorIterator(ValueUseIterator< BlockOperand > it)
Initializes the operand type iterator to the specified operand iterator.
Definition: BlockSupport.h:41