MLIR  16.0.0git
Public Types | Public Member Functions | Static Public Member Functions | Protected Attributes | List of all members
mlir::bufferization::BufferPlacementTransformationBase Class Reference

The base class for all BufferPlacement transformations. More...

#include "mlir/Dialect/Bufferization/Transforms/BufferUtils.h"

+ Collaboration diagram for mlir::bufferization::BufferPlacementTransformationBase:

Public Types

using ValueSetT = BufferViewFlowAnalysis::ValueSetT
 

Public Member Functions

 BufferPlacementTransformationBase (Operation *op)
 Constructs a new operation base using the given root operation. More...
 

Static Public Member Functions

template<typename DominatorT >
static BlockfindCommonDominator (Value value, const ValueSetT &values, const DominatorT &doms)
 Finds a common dominator for the given value while taking the positions of the values in the value set into account. More...
 
static bool isLoop (Operation *op)
 Returns true if the given operation represents a loop by testing whether it implements the LoopLikeOpInterface or the RegionBranchOpInterface. More...
 

Protected Attributes

BufferViewFlowAnalysis aliases
 Alias information that can be updated during the insertion of copies. More...
 
BufferPlacementAllocs allocs
 Stores all internally managed allocations. More...
 
Liveness liveness
 The underlying liveness analysis to compute fine grained information about alloc and dealloc positions. More...
 

Detailed Description

The base class for all BufferPlacement transformations.

Definition at line 77 of file BufferUtils.h.

Member Typedef Documentation

◆ ValueSetT

Definition at line 79 of file BufferUtils.h.

Constructor & Destructor Documentation

◆ BufferPlacementTransformationBase()

BufferPlacementTransformationBase::BufferPlacementTransformationBase ( Operation op)

Constructs a new operation base using the given root operation.

Constructs a new transformation base using the given root operation.

Definition at line 94 of file BufferUtils.cpp.

Member Function Documentation

◆ findCommonDominator()

template<typename DominatorT >
static Block* mlir::bufferization::BufferPlacementTransformationBase::findCommonDominator ( Value  value,
const ValueSetT values,
const DominatorT &  doms 
)
inlinestatic

Finds a common dominator for the given value while taking the positions of the values in the value set into account.

It supports dominator and post-dominator analyses via template arguments.

Definition at line 85 of file BufferUtils.h.

References mlir::Value::getParentBlock(), and mlir::Operation::getUsers().

◆ isLoop()

bool BufferPlacementTransformationBase::isLoop ( Operation op)
static

Returns true if the given operation represents a loop by testing whether it implements the LoopLikeOpInterface or the RegionBranchOpInterface.

In the case of a RegionBranchOpInterface, it checks all region-based control-flow edges for cycles.

In the case of a RegionBranchOpInterface, it checks all region-based control- flow edges for cycles.

Definition at line 102 of file BufferUtils.cpp.

References mlir::bufferization::None.

Referenced by hasAllocationScope().

Member Data Documentation

◆ aliases

BufferViewFlowAnalysis mlir::bufferization::BufferPlacementTransformationBase::aliases
protected

Alias information that can be updated during the insertion of copies.

Definition at line 114 of file BufferUtils.h.

◆ allocs

BufferPlacementAllocs mlir::bufferization::BufferPlacementTransformationBase::allocs
protected

Stores all internally managed allocations.

Definition at line 117 of file BufferUtils.h.

◆ liveness

Liveness mlir::bufferization::BufferPlacementTransformationBase::liveness
protected

The underlying liveness analysis to compute fine grained information about alloc and dealloc positions.

Definition at line 121 of file BufferUtils.h.


The documentation for this class was generated from the following files: