13 #ifndef MLIR_IR_FUNCTION_H 14 #define MLIR_IR_FUNCTION_H 32 class FuncOp :
public Op<FuncOp, OpTrait::ZeroOperands, OpTrait::ZeroResult,
33 OpTrait::IsIsolatedFromAbove, OpTrait::Symbol,
34 OpTrait::FunctionLike, CallableOpInterface::Trait> {
83 for (
int i = newType.
getNumInputs(), e = oldType.getNumInputs(); i < e;
87 for (
int i = newType.
getNumResults(), e = oldType.getNumResults(); i < e;
130 return isExternal() ? nullptr : &getBody();
136 callables.push_back(&getBody());
142 assert(!isExternal() && region == &getBody() &&
"invalid callable");
160 auto type = getTypeAttr().getValue();
163 "' attribute of function type");
188 template <>
struct PointerLikeTypeTraits<
mlir::FuncOp> {
196 enum { NumLowBitsAvailable = 3 };
201 #endif // MLIR_IR_FUNCTION_H Definition: Attributes.h:456
Definition: InferTypeOpInterface.cpp:20
StringRef getResultAttrName(unsigned arg, SmallVectorImpl< char > &out)
Return the name of the attribute used for function results.
Definition: FunctionSupport.h:34
static void * getAsVoidPointer(mlir::FuncOp I)
Definition: Function.h:190
void cloneInto(FuncOp dest, BlockAndValueMapping &mapper)
Definition: Function.cpp:162
Definition: PassRegistry.cpp:413
Block represents an ordered list of Operations.
Definition: Block.h:21
ArrayRef< Type > getResults() const
Definition: Types.cpp:47
void getCallableRegions(SmallVectorImpl< Region *> &callables)
Returns all of the callable regions of this operation.
Definition: Function.h:134
void print(raw_ostream &os, OpPrintingFlags flags=llvm::None)
Print the operation to the given stream.
Definition: OpDefinition.h:122
static mlir::FuncOp getTombstoneKey()
Definition: Function.h:177
Region * getCallableRegion(CallInterfaceCallable callable)
Definition: Function.h:128
Function types map from a list of inputs to a list of results.
Definition: Types.h:190
static void build(Builder *builder, OperationState &result, StringRef name, FunctionType type, ArrayRef< NamedAttribute > attrs)
Definition: Function.cpp:49
Definition: OpImplementation.h:214
Definition: Location.h:52
FuncOp clone()
Definition: Function.cpp:210
static TypeAttr get(Type value)
Definition: Attributes.cpp:349
LogicalResult success(bool isSuccess=true)
Definition: LogicalResult.h:25
Definition: LogicalResult.h:18
void setAttr(Identifier name, Attribute value)
Definition: OpDefinition.h:157
Definition: Function.h:32
static mlir::FuncOp getFromVoidPointer(void *P)
Definition: Function.h:193
static bool isEqual(mlir::FuncOp LHS, mlir::FuncOp RHS)
Definition: Function.h:184
Definition: CallInterfaces.h:24
unsigned getNumResults() const
Definition: Types.cpp:45
static mlir::FuncOp getEmptyKey()
Definition: Function.h:173
static FuncOp create(Location location, StringRef name, FunctionType type, ArrayRef< NamedAttribute > attrs={})
Definition: Function.cpp:29
Definition: OpImplementation.h:32
NamedAttributeList::RemoveResult removeAttr(Identifier name)
Definition: OpDefinition.h:177
Definition: OperationSupport.h:261
static unsigned getHashValue(mlir::FuncOp val)
Definition: Function.h:181
ArrayRef< Type > getCallableResults(Region *region)
Definition: Function.h:141
unsigned getNumInputs() const
Definition: Types.h:199
Block * addBlock()
Definition: Function.cpp:154
static ParseResult parse(OpAsmParser &parser, OperationState &result)
Operation hooks.
Definition: Function.cpp:71
void setType(FunctionType newType)
Definition: Function.h:80
Op()
This is a public constructor. Any op can be initialized to null.
Definition: OpDefinition.h:1029
StringRef getLeafReference() const
Definition: Attributes.cpp:254
void eraseArguments(ArrayRef< unsigned > argIndices)
Definition: Function.cpp:108
Definition: BlockAndValueMapping.h:26
inline ::llvm::hash_code hash_value(AffineExpr arg)
Make AffineExpr hashable.
Definition: AffineExpr.h:201
StringRef getTypeAttrName()
Return the name of the attribute used for function types.
Definition: FunctionSupport.h:25
static StringRef getOperationName()
Definition: Function.h:39
Definition: Builders.h:47
FunctionType getType()
Returns the type of this function.
Definition: Function.h:67
StringRef getArgAttrName(unsigned arg, SmallVectorImpl< char > &out)
Return the name of the attribute used for function arguments.
Definition: FunctionSupport.h:28
static ConcreteOpType getFromOpaquePointer(const void *pointer)
Definition: OpDefinition.h:1040
InFlightDiagnostic emitOpError(const Twine &message={})
Definition: Operation.cpp:727
Definition: OpDefinition.h:949
LogicalResult verify()
Definition: Function.cpp:88
ArrayRef< Type > getInputs() const
Definition: Types.cpp:41
void print(OpAsmPrinter &p)
Definition: Function.cpp:82
Definition: OpDefinition.h:36
Definition: FunctionSupport.h:100
Block * addEntryBlock()
Definition: Function.cpp:144
void eraseArgument(unsigned argIndex)
Erase a single argument at argIndex.
Definition: Function.h:61
const void * getAsOpaquePointer() const
Methods for supporting PointerLikeTypeTraits.
Definition: OpDefinition.h:1037