13 #ifndef MLIR_IR_MODULE_H 14 #define MLIR_IR_MODULE_H 19 class ModuleTerminatorOp;
31 ModuleOp, OpTrait::ZeroOperands, OpTrait::ZeroResult,
32 OpTrait::IsIsolatedFromAbove, OpTrait::SymbolTable,
33 OpTrait::SingleBlockImplicitTerminator<ModuleTerminatorOp>::Impl> {
91 if (insertPt == body->end())
93 body->getOperations().insert(insertPt, op);
104 :
public Op<ModuleTerminatorOp, OpTrait::ZeroOperands, OpTrait::ZeroResult,
105 OpTrait::HasParent<ModuleOp>::Impl, OpTrait::IsTerminator> {
136 explicit operator bool()
const {
return module; }
141 std::swap(released, module);
154 template <>
struct PointerLikeTypeTraits<
mlir::ModuleOp> {
162 enum { NumLowBitsAvailable = 3 };
167 #endif // MLIR_IR_MODULE_H Definition: InferTypeOpInterface.cpp:20
static ParseResult parse(OpAsmParser &parser, OperationState &result)
Operation hooks.
Definition: Module.cpp:35
iterator begin()
Definition: Block.h:110
Block::iterator iterator
Iteration over the operations in the module.
Definition: Module.h:67
OwningModuleRef & operator=(OwningModuleRef &&other)
Definition: Module.h:125
static void build(Builder *builder, OperationState &result, Optional< StringRef > name=llvm::None)
Definition: SPIRVOps.cpp:2225
Definition: PassRegistry.cpp:413
Definition: Operation.h:27
iterator end()
Definition: Module.h:70
void insert(Block::iterator insertPt, Operation *op)
Definition: Module.h:89
Block represents an ordered list of Operations.
Definition: Block.h:21
ModuleOp * operator->()
Definition: Module.h:135
void print(raw_ostream &os, OpPrintingFlags flags=llvm::None)
Print the operation to the given stream.
Definition: OpDefinition.h:122
~OwningModuleRef()
Definition: Module.h:119
static StringRef getOperationName()
Definition: Module.h:108
Definition: OpImplementation.h:214
LogicalResult verify()
Definition: Module.cpp:72
Definition: Location.h:52
Optional< StringRef > getName()
Return the name of this module if present.
Definition: Module.cpp:101
Definition: LogicalResult.h:18
OpListType::iterator iterator
Definition: Block.h:107
iterator begin()
Definition: Module.h:69
OwningModuleRef(OwningModuleRef &&other)
Definition: Module.h:118
ModuleOp release()
Release the referenced module.
Definition: Module.h:139
iterator end()
Definition: Block.h:111
void insert(Operation *insertPt, Operation *op)
Definition: Module.h:86
static ModuleOp create(Location loc, Optional< StringRef > name=llvm::None)
Construct a module from the given location with an optional name.
Definition: Module.cpp:28
OwningModuleRef(ModuleOp module)
Definition: Module.h:117
static void build(Builder *, OperationState &)
Definition: Module.h:109
Definition: OpImplementation.h:32
Definition: OperationSupport.h:261
OwningModuleRef(std::nullptr_t=nullptr)
Definition: Module.h:116
Block * getBody()
Definition: Module.cpp:99
Operation & front()
Definition: Module.h:71
Op()
This is a public constructor. Any op can be initialized to null.
Definition: OpDefinition.h:1029
static void * getAsVoidPointer(mlir::ModuleOp I)
Definition: Module.h:156
Definition: OperationSupport.h:474
static StringRef getOperationName()
Definition: Module.h:38
Definition: Builders.h:47
static mlir::ModuleOp getFromVoidPointer(void *P)
Definition: Module.h:159
iterator_range< op_iterator< OpT > > getOps()
Definition: Block.h:190
static ConcreteOpType getFromOpaquePointer(const void *pointer)
Definition: OpDefinition.h:1040
Definition: OpDefinition.h:949
ModuleOp operator*() const
Definition: Module.h:134
Region & getBodyRegion()
Return body of this module.
Definition: Module.cpp:98
Definition: StandardTypes.h:63
void push_back(Operation *op)
Insert the operation into the back of the body, before the terminator.
Definition: Module.h:80
Definition: OpDefinition.h:36
void print(OpAsmPrinter &p)
Definition: Module.cpp:55
void dump()
Definition: AsmPrinter.cpp:2193
const void * getAsOpaquePointer() const
Methods for supporting PointerLikeTypeTraits.
Definition: OpDefinition.h:1037
iterator_range< Block::op_iterator< T > > getOps()
Definition: Module.h:75