MLIR 22.0.0git
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< BufferLikeType > getBufferType (Operation *op, Value value, const BufferizationOptions &options, const BufferizationState &state, SmallVector< Value > &invocationStack) const
LogicalResult bufferize (Operation *op, RewriterBase &rewriter, const BufferizationOptions &options, BufferizationState &state) const
 Rewrite function bbArgs and return values into buffer form.
bool isWritable (Operation *op, Value value, const AnalysisState &state) const
 Return true if the given function argument is writable.
Public Member Functions inherited from mlir::bufferization::OpWithUnstructuredControlFlowBufferizableOpInterfaceExternalModel< FuncOpInterface, FuncOp >
FailureOr< BufferLikeType > getBufferType (Operation *op, Value value, const BufferizationOptions &options, const BufferizationState &state, 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.

Detailed Description

Definition at line 379 of file FuncBufferizableOpInterfaceImpl.cpp.

Member Function Documentation

◆ bufferize()

LogicalResult mlir::bufferization::func_ext::FuncOpInterface::bufferize ( Operation * op,
RewriterBase & rewriter,
const BufferizationOptions & options,
BufferizationState & state ) 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 436 of file FuncBufferizableOpInterfaceImpl.cpp.

References mlir::bufferization::bufferizeBlockSignature(), mlir::bufferization::func_ext::getBufferizedFunctionArgType(), mlir::Operation::getContext(), mlir::bufferization::func_ext::getDefaultMemorySpace(), mlir::bufferization::getReturnOps(), options, mlir::OpBuilder::setInsertionPoint(), and success().

◆ getAliasingOpOperands()

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

◆ getBufferType()

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

◆ hasTensorSemantics()

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

Definition at line 385 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 514 of file FuncBufferizableOpInterfaceImpl.cpp.

References mlir::Block::front(), mlir::BlockArgument::getArgNumber(), and mlir::BlockArgument::getOwner().

◆ supportsUnstructuredControlFlow()

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

Definition at line 383 of file FuncBufferizableOpInterfaceImpl.cpp.


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