My Project
Public Types | Public Member Functions | Static Public Member Functions | Protected Attributes | List of all members
mlir::SDBMExpr Class Reference

#include <SDBMExpr.h>

Inheritance diagram for mlir::SDBMExpr:
Inheritance graph
[legend]
Collaboration diagram for mlir::SDBMExpr:
Collaboration graph
[legend]

Public Types

using ImplType = detail::SDBMExprStorage
 

Public Member Functions

 SDBMExpr ()
 
 SDBMExpr (ImplType *expr)
 
 SDBMExpr (const SDBMExpr &)=default
 
SDBMExproperator= (const SDBMExpr &)=default
 
bool operator== (const SDBMExpr &other) const
 SDBM expressions can be compared straight-forwardly. More...
 
bool operator!= (const SDBMExpr &other) const
 
 operator bool () const
 
bool operator! () const
 
SDBMExpr operator- ()
 Negate the given SDBM expression. More...
 
void print (raw_ostream &os) const
 Prints the SDBM expression. More...
 
void dump () const
 
template<typename U >
bool isa () const
 LLVM-style casts. More...
 
template<typename U >
dyn_cast () const
 
template<typename U >
cast () const
 
::llvm::hash_code hash_value () const
 Support for LLVM hashing. More...
 
SDBMExprKind getKind () const
 Returns the kind of the SDBM expression. More...
 
MLIRContextgetContext () const
 Returns the MLIR context in which this expression lives. More...
 
SDBMDialectgetDialect () const
 Returns the SDBM dialect instance. More...
 
AffineExpr getAsAffineExpr () const
 

Static Public Member Functions

static Optional< SDBMExprtryConvertAffineExpr (AffineExpr affine)
 

Protected Attributes

ImplTypeimpl
 

Detailed Description

Striped Difference-Bounded Matrix (SDBM) expression is a base left-hand side expression for the SDBM framework. SDBM expressions are a subset of affine expressions supporting low-complexity algorithms for the operations used in loop transformations. In particular, are supported:

SDBM expressions are grouped into the following structure

SDBMExpr and derived classes are thin wrappers around a pointer owned by an MLIRContext, and should be used by-value. They are uniqued in the MLIRContext and immortal.

Member Typedef Documentation

◆ ImplType

Constructor & Destructor Documentation

◆ SDBMExpr() [1/3]

mlir::SDBMExpr::SDBMExpr ( )
inline

◆ SDBMExpr() [2/3]

mlir::SDBMExpr::SDBMExpr ( ImplType expr)
inline

◆ SDBMExpr() [3/3]

mlir::SDBMExpr::SDBMExpr ( const SDBMExpr )
default

SDBM expressions are thin wrappers around a unique'ed immutable pointer, which makes them trivially assignable and trivially copyable.

Member Function Documentation

◆ cast()

template<typename U >
U mlir::SDBMExpr::cast ( ) const
inline

◆ dump()

void SDBMExpr::dump ( ) const

◆ dyn_cast()

template<typename U >
U mlir::SDBMExpr::dyn_cast ( ) const
inline

◆ getAsAffineExpr()

AffineExpr SDBMExpr::getAsAffineExpr ( ) const

Convert the SDBM expression into an Affine expression. This always succeeds because SDBM are a subset of affine.

◆ getContext()

MLIRContext * SDBMExpr::getContext ( ) const

Returns the MLIR context in which this expression lives.

◆ getDialect()

SDBMDialect * SDBMExpr::getDialect ( ) const

Returns the SDBM dialect instance.

◆ getKind()

SDBMExprKind SDBMExpr::getKind ( ) const

Returns the kind of the SDBM expression.

◆ hash_value()

::llvm::hash_code mlir::SDBMExpr::hash_value ( ) const
inline

Support for LLVM hashing.

◆ isa()

template<typename U >
bool mlir::SDBMExpr::isa ( ) const
inline

LLVM-style casts.

◆ operator bool()

mlir::SDBMExpr::operator bool ( ) const
inlineexplicit

SDBM expressions are convertible to bool: null expressions are converted to false, non-null expressions are converted to true.

◆ operator!()

bool mlir::SDBMExpr::operator! ( ) const
inline

◆ operator!=()

bool mlir::SDBMExpr::operator!= ( const SDBMExpr other) const
inline

◆ operator-()

SDBMExpr SDBMExpr::operator- ( )

Negate the given SDBM expression.

◆ operator=()

SDBMExpr& mlir::SDBMExpr::operator= ( const SDBMExpr )
default

◆ operator==()

bool mlir::SDBMExpr::operator== ( const SDBMExpr other) const
inline

SDBM expressions can be compared straight-forwardly.

◆ print()

void SDBMExpr::print ( raw_ostream &  os) const

Prints the SDBM expression.

◆ tryConvertAffineExpr()

Optional< SDBMExpr > SDBMExpr::tryConvertAffineExpr ( AffineExpr  affine)
static

Try constructing an SDBM expression from the given affine expression. This may fail if the affine expression is not representable as SDBM, in which case llvm::None is returned. The conversion procedure recognizes (nested) multiplicative ((x floordiv B) * B) and additive (x - x mod B) patterns for the stripe expression.

Member Data Documentation

◆ impl

ImplType* mlir::SDBMExpr::impl
protected

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