MLIR  17.0.0git
Public Types | Public Member Functions | List of all members
mlir::AffineBinaryOpExpr Class Reference

Affine binary operation expression. More...

#include "mlir/IR/AffineExpr.h"

+ Inheritance diagram for mlir::AffineBinaryOpExpr:
+ Collaboration diagram for mlir::AffineBinaryOpExpr:

Public Types

using ImplType = detail::AffineBinaryOpExprStorage
- Public Types inherited from mlir::AffineExpr
using ImplType = detail::AffineExprStorage

Public Member Functions

 AffineBinaryOpExpr (AffineExpr::ImplType *ptr)
AffineExpr getLHS () const
AffineExpr getRHS () const
- Public Member Functions inherited from mlir::AffineExpr
constexpr AffineExpr ()
 AffineExpr (const ImplType *expr)
bool operator== (AffineExpr other) const
bool operator!= (AffineExpr other) const
bool operator== (int64_t v) const
bool operator!= (int64_t v) const
 operator bool () const
bool operator! () const
template<typename U >
constexpr bool isa () const
template<typename U >
dyn_cast () const
template<typename U >
dyn_cast_or_null () const
template<typename U >
cast () const
MLIRContextgetContext () const
AffineExprKind getKind () const
 Return the classification for this type. More...
void print (raw_ostream &os) const
void dump () const
bool isSymbolicOrConstant () const
 Returns true if this expression is made out of only symbols and constants, i.e., it does not involve dimensional identifiers. More...
bool isPureAffine () const
 Returns true if this is a pure affine expression, i.e., multiplication, floordiv, ceildiv, and mod is only allowed w.r.t constants. More...
int64_t getLargestKnownDivisor () const
 Returns the greatest known integral divisor of this affine expression. More...
bool isMultipleOf (int64_t factor) const
 Return true if the affine expression is a multiple of 'factor'. More...
bool isFunctionOfDim (unsigned position) const
 Return true if the affine expression involves AffineDimExpr position. More...
bool isFunctionOfSymbol (unsigned position) const
 Return true if the affine expression involves AffineSymbolExpr position. More...
void walk (std::function< void(AffineExpr)> callback) const
 Walk all of the AffineExpr's in this expression in postorder. More...
AffineExpr replaceDimsAndSymbols (ArrayRef< AffineExpr > dimReplacements, ArrayRef< AffineExpr > symReplacements) const
 This method substitutes any uses of dimensions and symbols (e.g. More...
AffineExpr replaceDims (ArrayRef< AffineExpr > dimReplacements) const
 Dim-only version of replaceDimsAndSymbols. More...
AffineExpr replaceSymbols (ArrayRef< AffineExpr > symReplacements) const
 Symbol-only version of replaceDimsAndSymbols. More...
AffineExpr replace (AffineExpr expr, AffineExpr replacement) const
 Sparse replace method. More...
AffineExpr replace (const DenseMap< AffineExpr, AffineExpr > &map) const
 Sparse replace method. More...
AffineExpr shiftDims (unsigned numDims, unsigned shift, unsigned offset=0) const
 Replace dims[offset ... More...
AffineExpr shiftSymbols (unsigned numSymbols, unsigned shift, unsigned offset=0) const
 Replace symbols[offset ... More...
AffineExpr operator+ (int64_t v) const
AffineExpr operator+ (AffineExpr other) const
AffineExpr operator- () const
AffineExpr operator- (int64_t v) const
AffineExpr operator- (AffineExpr other) const
AffineExpr operator* (int64_t v) const
AffineExpr operator* (AffineExpr other) const
AffineExpr floorDiv (uint64_t v) const
AffineExpr floorDiv (AffineExpr other) const
AffineExpr ceilDiv (uint64_t v) const
AffineExpr ceilDiv (AffineExpr other) const
AffineExpr operator% (uint64_t v) const
AffineExpr operator% (AffineExpr other) const
AffineExpr compose (AffineMap map) const
 Compose with an AffineMap. More...
const void * getAsOpaquePointer () const
 Methods supporting C API. More...

Additional Inherited Members

- Static Public Member Functions inherited from mlir::AffineExpr
static AffineExpr getFromOpaquePointer (const void *pointer)
- Protected Attributes inherited from mlir::AffineExpr
ImplTypeexpr {nullptr}

Detailed Description

Affine binary operation expression.

An affine binary operation could be an add, mul, floordiv, ceildiv, or a modulo operation. (Subtraction is represented through a multiply by -1 and add.) These expressions are always constructed in a simplified form. For eg., the LHS and RHS operands can't both be constants. There are additional canonicalizing rules depending on the op type: see checks in the constructor.

Definition at line 207 of file AffineExpr.h.

Member Typedef Documentation

◆ ImplType

Definition at line 209 of file AffineExpr.h.

Constructor & Destructor Documentation

◆ AffineBinaryOpExpr()

AffineBinaryOpExpr::AffineBinaryOpExpr ( AffineExpr::ImplType ptr)

Definition at line 315 of file AffineExpr.cpp.

Member Function Documentation

◆ getLHS()

AffineExpr AffineBinaryOpExpr::getLHS ( ) const

◆ getRHS()

AffineExpr AffineBinaryOpExpr::getRHS ( ) const

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