MLIR  20.0.0git
Public Member Functions | Static Public Member Functions | List of all members
mlir::bufferization::func_ext::FuncOpInterface Struct Reference
+ Inheritance diagram for mlir::bufferization::func_ext::FuncOpInterface:

Public Member Functions

bool hasTensorSemantics (Operation *op) const
 
AliasingOpOperandList getAliasingOpOperands (Operation *op, Value value, const AnalysisState &state) const
 
FailureOr< BaseMemRefTypegetBufferType (Operation *op, Value value, const BufferizationOptions &options, SmallVector< Value > &invocationStack) const
 
LogicalResult bufferize (Operation *op, RewriterBase &rewriter, const BufferizationOptions &options) const
 Rewrite function bbArgs and return values into buffer form. More...
 
bool isWritable (Operation *op, Value value, const AnalysisState &state) const
 Return true if the given function argument is writable. More...
 
- Public Member Functions inherited from mlir::bufferization::OpWithUnstructuredControlFlowBufferizableOpInterfaceExternalModel< FuncOpInterface, FuncOp >
FailureOr< BaseMemRefTypegetBufferType (Operation *op, Value value, const BufferizationOptions &options, SmallVector< Value > &invocationStack) const
 

Static Public Member Functions

static bool supportsUnstructuredControlFlow ()
 

Additional Inherited Members

- Protected Member Functions inherited from mlir::bufferization::OpWithUnstructuredControlFlowBufferizableOpInterfaceExternalModel< FuncOpInterface, FuncOp >
AliasingOpOperandList getAliasingBranchOpOperands (Operation *op, BlockArgument bbArg, const AnalysisState &state) const
 Assuming that bbArg is a block argument of a block that belongs to the given op, return all OpOperands of users of this block that are aliasing with the given block argument. More...
 

Detailed Description

Definition at line 340 of file FuncBufferizableOpInterfaceImpl.cpp.

Member Function Documentation

◆ bufferize()

LogicalResult mlir::bufferization::func_ext::FuncOpInterface::bufferize ( Operation op,
RewriterBase rewriter,
const BufferizationOptions options 
) const
inline

Rewrite function bbArgs and return values into buffer form.

This function bufferizes the function signature and the ReturnOp. When the entire function body has been bufferized, function return types can be switched to more concise memref types as part of foldMemRefCasts.

All function bbArgs are writable unless they are explicitly marked as read-only. Callers must insert copies when needed.

Definition at line 396 of file FuncBufferizableOpInterfaceImpl.cpp.

References mlir::bufferization::bufferizeBlockSignature(), mlir::OpBuilder::create(), mlir::detail::enumerate(), mlir::get(), mlir::bufferization::func_ext::getBufferizedFunctionArgType(), mlir::Operation::getContext(), mlir::bufferization::getReturnOps(), options, and mlir::OpBuilder::setInsertionPoint().

◆ getAliasingOpOperands()

AliasingOpOperandList mlir::bufferization::func_ext::FuncOpInterface::getAliasingOpOperands ( Operation op,
Value  value,
const AnalysisState state 
) const
inline

Definition at line 369 of file FuncBufferizableOpInterfaceImpl.cpp.

◆ getBufferType()

FailureOr<BaseMemRefType> mlir::bufferization::func_ext::FuncOpInterface::getBufferType ( Operation op,
Value  value,
const BufferizationOptions options,
SmallVector< Value > &  invocationStack 
) const
inline

◆ hasTensorSemantics()

bool mlir::bufferization::func_ext::FuncOpInterface::hasTensorSemantics ( Operation op) const
inline

Definition at line 346 of file FuncBufferizableOpInterfaceImpl.cpp.

References isaTensor().

◆ isWritable()

bool mlir::bufferization::func_ext::FuncOpInterface::isWritable ( Operation op,
Value  value,
const AnalysisState state 
) const
inline

Return true if the given function argument is writable.

Definition at line 473 of file FuncBufferizableOpInterfaceImpl.cpp.

◆ supportsUnstructuredControlFlow()

static bool mlir::bufferization::func_ext::FuncOpInterface::supportsUnstructuredControlFlow ( )
inlinestatic

Definition at line 344 of file FuncBufferizableOpInterfaceImpl.cpp.


The documentation for this struct was generated from the following file: