My Project
Public Member Functions | Static Public Member Functions | List of all members
mlir::AffineValueMap Class Reference

#include <AffineStructures.h>

Public Member Functions

 AffineValueMap ()
 
 AffineValueMap (AffineMap map, ArrayRef< Value > operands, ArrayRef< Value > results=llvm::None)
 
 AffineValueMap (AffineApplyOp applyOp)
 
 AffineValueMap (AffineBound bound)
 
 ~AffineValueMap ()
 
void reset (AffineMap map, ArrayRef< Value > operands, ArrayRef< Value > results=llvm::None)
 
bool isMultipleOf (unsigned idx, int64_t factor) const
 
bool isFunctionOf (unsigned idx, Value value) const
 Return true if the idx^th result depends on 'value', false otherwise. More...
 
bool isConstant (unsigned idx) const
 
bool isIdentity () const
 Return true if this is an identity map. More...
 
void setResult (unsigned i, AffineExpr e)
 
AffineExpr getResult (unsigned i)
 
unsigned getNumOperands () const
 
unsigned getNumDims () const
 
unsigned getNumSymbols () const
 
unsigned getNumResults () const
 
Value getOperand (unsigned i) const
 
ArrayRef< ValuegetOperands () const
 
AffineMap getAffineMap () const
 

Static Public Member Functions

static void difference (const AffineValueMap &a, const AffineValueMap &b, AffineValueMap *res)
 

Detailed Description

An AffineValueMap is an affine map plus its ML value operands and results for analysis purposes. The structure is still a tree form that is same as that of an affine map or an AffineApplyOp. However, its operands, results, and its map can themselves change as a result of substitutions, simplifications, and other analysis.

Constructor & Destructor Documentation

◆ AffineValueMap() [1/4]

mlir::AffineValueMap::AffineValueMap ( )
inline

◆ AffineValueMap() [2/4]

AffineValueMap::AffineValueMap ( AffineMap  map,
ArrayRef< Value operands,
ArrayRef< Value results = llvm::None 
)

◆ AffineValueMap() [3/4]

AffineValueMap::AffineValueMap ( AffineApplyOp  applyOp)
explicit

◆ AffineValueMap() [4/4]

AffineValueMap::AffineValueMap ( AffineBound  bound)
explicit

◆ ~AffineValueMap()

AffineValueMap::~AffineValueMap ( )

Member Function Documentation

◆ difference()

void AffineValueMap::difference ( const AffineValueMap a,
const AffineValueMap b,
AffineValueMap res 
)
static

Return the value map that is the difference of value maps 'a' and 'b', represented as an affine map and its operands. The output map + operands are canonicalized and simplified.

◆ getAffineMap()

AffineMap AffineValueMap::getAffineMap ( ) const

◆ getNumDims()

unsigned mlir::AffineValueMap::getNumDims ( ) const
inline

◆ getNumOperands()

unsigned mlir::AffineValueMap::getNumOperands ( ) const
inline

◆ getNumResults()

unsigned mlir::AffineValueMap::getNumResults ( ) const
inline

◆ getNumSymbols()

unsigned mlir::AffineValueMap::getNumSymbols ( ) const
inline

◆ getOperand()

Value AffineValueMap::getOperand ( unsigned  i) const

◆ getOperands()

ArrayRef< Value > AffineValueMap::getOperands ( ) const

◆ getResult()

AffineExpr mlir::AffineValueMap::getResult ( unsigned  i)
inline

◆ isConstant()

bool mlir::AffineValueMap::isConstant ( unsigned  idx) const

Return true if the result at 'idx' is a constant, false otherwise.

◆ isFunctionOf()

bool AffineValueMap::isFunctionOf ( unsigned  idx,
Value  value 
) const

Return true if the idx^th result depends on 'value', false otherwise.

This method uses the invariant that operands are always positionally aligned with the AffineDimExpr in the underlying AffineMap.

◆ isIdentity()

bool mlir::AffineValueMap::isIdentity ( ) const

Return true if this is an identity map.

◆ isMultipleOf()

bool AffineValueMap::isMultipleOf ( unsigned  idx,
int64_t  factor 
) const
inline

Return true if the idx^th result can be proved to be a multiple of 'factor', false otherwise.

◆ reset()

void AffineValueMap::reset ( AffineMap  map,
ArrayRef< Value operands,
ArrayRef< Value results = llvm::None 
)

◆ setResult()

void mlir::AffineValueMap::setResult ( unsigned  i,
AffineExpr  e 
)
inline

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