MLIR  16.0.0git
Macros | Functions
IntegerSet.h File Reference
#include "mlir-c/AffineExpr.h"
+ Include dependency graph for IntegerSet.h:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Macros

#define DEFINE_C_API_STRUCT(name, storage)
 

Functions

 DEFINE_C_API_STRUCT (MlirIntegerSet, const void)
 
MLIR_CAPI_EXPORTED MlirContext mlirIntegerSetGetContext (MlirIntegerSet set)
 Gets the context in which the given integer set lives. More...
 
static bool mlirIntegerSetIsNull (MlirIntegerSet set)
 Checks whether an integer set is a null object. More...
 
MLIR_CAPI_EXPORTED bool mlirIntegerSetEqual (MlirIntegerSet s1, MlirIntegerSet s2)
 Checks if two integer set objects are equal. More...
 
MLIR_CAPI_EXPORTED void mlirIntegerSetPrint (MlirIntegerSet set, MlirStringCallback callback, void *userData)
 Prints an integer set by sending chunks of the string representation and forwarding userData tocallback`. More...
 
MLIR_CAPI_EXPORTED void mlirIntegerSetDump (MlirIntegerSet set)
 Prints an integer set to the standard error stream. More...
 
MLIR_CAPI_EXPORTED MlirIntegerSet mlirIntegerSetEmptyGet (MlirContext context, intptr_t numDims, intptr_t numSymbols)
 Gets or creates a new canonically empty integer set with the give number of dimensions and symbols in the given context. More...
 
MLIR_CAPI_EXPORTED MlirIntegerSet mlirIntegerSetGet (MlirContext context, intptr_t numDims, intptr_t numSymbols, intptr_t numConstraints, const MlirAffineExpr *constraints, const bool *eqFlags)
 Gets or creates a new integer set in the given context. More...
 
MLIR_CAPI_EXPORTED MlirIntegerSet mlirIntegerSetReplaceGet (MlirIntegerSet set, const MlirAffineExpr *dimReplacements, const MlirAffineExpr *symbolReplacements, intptr_t numResultDims, intptr_t numResultSymbols)
 Gets or creates a new integer set in which the values and dimensions of the given set are replaced with the given affine expressions. More...
 
MLIR_CAPI_EXPORTED bool mlirIntegerSetIsCanonicalEmpty (MlirIntegerSet set)
 Checks whether the given set is a canonical empty set, e.g., the set returned by mlirIntegerSetEmptyGet. More...
 
MLIR_CAPI_EXPORTED intptr_t mlirIntegerSetGetNumDims (MlirIntegerSet set)
 Returns the number of dimensions in the given set. More...
 
MLIR_CAPI_EXPORTED intptr_t mlirIntegerSetGetNumSymbols (MlirIntegerSet set)
 Returns the number of symbols in the given set. More...
 
MLIR_CAPI_EXPORTED intptr_t mlirIntegerSetGetNumInputs (MlirIntegerSet set)
 Returns the number of inputs (dimensions + symbols) in the given set. More...
 
MLIR_CAPI_EXPORTED intptr_t mlirIntegerSetGetNumConstraints (MlirIntegerSet set)
 Returns the number of constraints (equalities + inequalities) in the given set. More...
 
MLIR_CAPI_EXPORTED intptr_t mlirIntegerSetGetNumEqualities (MlirIntegerSet set)
 Returns the number of equalities in the given set. More...
 
MLIR_CAPI_EXPORTED intptr_t mlirIntegerSetGetNumInequalities (MlirIntegerSet set)
 Returns the number of inequalities in the given set. More...
 
MLIR_CAPI_EXPORTED MlirAffineExpr mlirIntegerSetGetConstraint (MlirIntegerSet set, intptr_t pos)
 Returns pos-th constraint of the set. More...
 
MLIR_CAPI_EXPORTED bool mlirIntegerSetIsConstraintEq (MlirIntegerSet set, intptr_t pos)
 Returns true of the pos-th constraint of the set is an equality constraint, false otherwise. More...
 

Macro Definition Documentation

◆ DEFINE_C_API_STRUCT

#define DEFINE_C_API_STRUCT (   name,
  storage 
)
Value:
struct name { \
storage *ptr; \
}; \
typedef struct name name

Definition at line 32 of file IntegerSet.h.

Function Documentation

◆ DEFINE_C_API_STRUCT()

DEFINE_C_API_STRUCT ( MlirIntegerSet  ,
const void   
)

◆ mlirIntegerSetDump()

MLIR_CAPI_EXPORTED void mlirIntegerSetDump ( MlirIntegerSet  set)

Prints an integer set to the standard error stream.

Definition at line 33 of file IntegerSet.cpp.

References unwrap().

Referenced by mlirIntegerSetIsNull().

◆ mlirIntegerSetEmptyGet()

MLIR_CAPI_EXPORTED MlirIntegerSet mlirIntegerSetEmptyGet ( MlirContext  context,
intptr_t  numDims,
intptr_t  numSymbols 
)

Gets or creates a new canonically empty integer set with the give number of dimensions and symbols in the given context.

Definition at line 35 of file IntegerSet.cpp.

References mlir::IntegerSet::getEmptySet(), unwrap(), and wrap().

Referenced by mlirIntegerSetIsNull().

◆ mlirIntegerSetEqual()

MLIR_CAPI_EXPORTED bool mlirIntegerSetEqual ( MlirIntegerSet  s1,
MlirIntegerSet  s2 
)

Checks if two integer set objects are equal.

This is a "shallow" comparison of two objects. Only the sets with some small number of constraints are uniqued and compare equal here. Set objects that represent the same integer set with different constraints may be considered non-equal by this check. Set difference followed by an (expensive) emptiness check should be used to check equivalence of the underlying integer sets.

Definition at line 23 of file IntegerSet.cpp.

References unwrap().

Referenced by mlirIntegerSetIsNull(), and mlir::python::PyIntegerSet::operator==().

◆ mlirIntegerSetGet()

MLIR_CAPI_EXPORTED MlirIntegerSet mlirIntegerSetGet ( MlirContext  context,
intptr_t  numDims,
intptr_t  numSymbols,
intptr_t  numConstraints,
const MlirAffineExpr *  constraints,
const bool *  eqFlags 
)

Gets or creates a new integer set in the given context.

The set is defined by a list of affine constraints, with the given number of input dimensions and symbols, which are treated as either equalities (eqFlags is 1) or inequalities (eqFlags is 0). Both constraints and eqFlags are expected to point to at least numConstraint consecutive values.

Definition at line 42 of file IntegerSet.cpp.

References mlir::IntegerSet::get(), unwrapList(), and wrap().

Referenced by mlirIntegerSetIsNull().

◆ mlirIntegerSetGetConstraint()

MLIR_CAPI_EXPORTED MlirAffineExpr mlirIntegerSetGetConstraint ( MlirIntegerSet  set,
intptr_t  pos 
)

Returns pos-th constraint of the set.

Definition at line 97 of file IntegerSet.cpp.

References unwrap(), and wrap().

Referenced by mlir::python::PyAffineMap::createFromCapsule(), and mlirIntegerSetIsNull().

◆ mlirIntegerSetGetContext()

MLIR_CAPI_EXPORTED MlirContext mlirIntegerSetGetContext ( MlirIntegerSet  set)

Gets the context in which the given integer set lives.

Definition at line 19 of file IntegerSet.cpp.

References unwrap(), and wrap().

Referenced by mlir::python::PyIntegerSet::createFromCapsule().

◆ mlirIntegerSetGetNumConstraints()

MLIR_CAPI_EXPORTED intptr_t mlirIntegerSetGetNumConstraints ( MlirIntegerSet  set)

Returns the number of constraints (equalities + inequalities) in the given set.

Definition at line 85 of file IntegerSet.cpp.

References unwrap().

Referenced by mlir::python::PyAffineMap::createFromCapsule(), and mlirIntegerSetIsNull().

◆ mlirIntegerSetGetNumDims()

MLIR_CAPI_EXPORTED intptr_t mlirIntegerSetGetNumDims ( MlirIntegerSet  set)

Returns the number of dimensions in the given set.

Definition at line 73 of file IntegerSet.cpp.

References unwrap().

Referenced by mlirIntegerSetIsNull().

◆ mlirIntegerSetGetNumEqualities()

MLIR_CAPI_EXPORTED intptr_t mlirIntegerSetGetNumEqualities ( MlirIntegerSet  set)

Returns the number of equalities in the given set.

Definition at line 89 of file IntegerSet.cpp.

References unwrap().

Referenced by mlirIntegerSetIsNull().

◆ mlirIntegerSetGetNumInequalities()

MLIR_CAPI_EXPORTED intptr_t mlirIntegerSetGetNumInequalities ( MlirIntegerSet  set)

Returns the number of inequalities in the given set.

Definition at line 93 of file IntegerSet.cpp.

References unwrap().

Referenced by mlirIntegerSetIsNull().

◆ mlirIntegerSetGetNumInputs()

MLIR_CAPI_EXPORTED intptr_t mlirIntegerSetGetNumInputs ( MlirIntegerSet  set)

Returns the number of inputs (dimensions + symbols) in the given set.

Definition at line 81 of file IntegerSet.cpp.

References unwrap().

Referenced by mlirIntegerSetIsNull().

◆ mlirIntegerSetGetNumSymbols()

MLIR_CAPI_EXPORTED intptr_t mlirIntegerSetGetNumSymbols ( MlirIntegerSet  set)

Returns the number of symbols in the given set.

Definition at line 77 of file IntegerSet.cpp.

References unwrap().

Referenced by mlirIntegerSetIsNull().

◆ mlirIntegerSetIsCanonicalEmpty()

MLIR_CAPI_EXPORTED bool mlirIntegerSetIsCanonicalEmpty ( MlirIntegerSet  set)

Checks whether the given set is a canonical empty set, e.g., the set returned by mlirIntegerSetEmptyGet.

Definition at line 69 of file IntegerSet.cpp.

References unwrap().

Referenced by mlirIntegerSetIsNull().

◆ mlirIntegerSetIsConstraintEq()

MLIR_CAPI_EXPORTED bool mlirIntegerSetIsConstraintEq ( MlirIntegerSet  set,
intptr_t  pos 
)

Returns true of the pos-th constraint of the set is an equality constraint, false otherwise.

Definition at line 101 of file IntegerSet.cpp.

References unwrap().

Referenced by mlir::python::PyAffineMap::createFromCapsule(), and mlirIntegerSetIsNull().

◆ mlirIntegerSetIsNull()

static bool mlirIntegerSetIsNull ( MlirIntegerSet  set)
inlinestatic

◆ mlirIntegerSetPrint()

MLIR_CAPI_EXPORTED void mlirIntegerSetPrint ( MlirIntegerSet  set,
MlirStringCallback  callback,
void userData 
)

Prints an integer set by sending chunks of the string representation and forwarding userData tocallback`.

Note that the callback may be called several times with consecutive chunks of the string.

Definition at line 27 of file IntegerSet.cpp.

References mlir::Diagnostic::print(), and unwrap().

Referenced by mlirIntegerSetIsNull().

◆ mlirIntegerSetReplaceGet()

MLIR_CAPI_EXPORTED MlirIntegerSet mlirIntegerSetReplaceGet ( MlirIntegerSet  set,
const MlirAffineExpr *  dimReplacements,
const MlirAffineExpr *  symbolReplacements,
intptr_t  numResultDims,
intptr_t  numResultSymbols 
)

Gets or creates a new integer set in which the values and dimensions of the given set are replaced with the given affine expressions.

dimReplacements and symbolReplacements are expected to point to at least as many consecutive expressions as the given set has dimensions and symbols, respectively. The new set will have numResultDims and numResultSymbols dimensions and symbols, respectively.

Definition at line 56 of file IntegerSet.cpp.

References unwrap(), unwrapList(), and wrap().

Referenced by mlirIntegerSetIsNull().