MLIR
17.0.0git
|
#include "mlir/Analysis/Presburger/PresburgerRelation.h"
Public Member Functions | |
PresburgerSet (const IntegerPolyhedron &disjunct) | |
Create a set from a relation. More... | |
PresburgerSet (const PresburgerRelation &set) | |
PresburgerSet | unionSet (const PresburgerRelation &set) const |
These operations are the same as the ones in PresburgeRelation, they just forward the arguement and return the result as a set instead of a relation. More... | |
PresburgerSet | intersect (const PresburgerRelation &set) const |
PresburgerSet | complement () const |
PresburgerSet | subtract (const PresburgerRelation &set) const |
PresburgerSet | coalesce () const |
![]() | |
PresburgerRelation (const IntegerRelation &disjunct) | |
unsigned | getNumDomainVars () const |
unsigned | getNumRangeVars () const |
unsigned | getNumSymbolVars () const |
unsigned | getNumLocalVars () const |
unsigned | getNumVars () const |
unsigned | getNumDisjuncts () const |
Return the number of disjuncts in the union. More... | |
const PresburgerSpace & | getSpace () const |
void | setSpace (const PresburgerSpace &oSpace) |
Set the space to oSpace . More... | |
ArrayRef< IntegerRelation > | getAllDisjuncts () const |
Return a reference to the list of disjuncts. More... | |
const IntegerRelation & | getDisjunct (unsigned index) const |
Return the disjunct at the specified index. More... | |
void | unionInPlace (const IntegerRelation &disjunct) |
Mutate this set, turning it into the union of this set and the given disjunct. More... | |
void | unionInPlace (const PresburgerRelation &set) |
Mutate this set, turning it into the union of this set and the given set. More... | |
PresburgerRelation | unionSet (const PresburgerRelation &set) const |
Return the union of this set and the given set. More... | |
PresburgerRelation | intersect (const PresburgerRelation &set) const |
Return the intersection of this set and the given set. More... | |
bool | containsPoint (ArrayRef< MPInt > point) const |
Return true if the set contains the given point, and false otherwise. More... | |
bool | containsPoint (ArrayRef< int64_t > point) const |
PresburgerRelation | complement () const |
Return the complement of this set. More... | |
PresburgerRelation | subtract (const PresburgerRelation &set) const |
Return the set difference of this set and the given set, i.e., return this \ set . More... | |
bool | isSubsetOf (const PresburgerRelation &set) const |
Return true if this set is a subset of the given set, and false otherwise. More... | |
bool | isEqual (const PresburgerRelation &set) const |
Return true if this set is equal to the given set, and false otherwise. More... | |
bool | isIntegerEmpty () const |
Return true if all the sets in the union are known to be integer empty false otherwise. More... | |
bool | findIntegerSample (SmallVectorImpl< MPInt > &sample) |
Find an integer sample from the given set. More... | |
std::optional< MPInt > | computeVolume () const |
Compute an overapproximation of the number of integer points in the disjunct. More... | |
PresburgerRelation | coalesce () const |
Simplifies the representation of a PresburgerRelation. More... | |
bool | hasOnlyDivLocals () const |
Check whether all local ids in all disjuncts have a div representation. More... | |
PresburgerRelation | computeReprWithOnlyDivLocals () const |
Compute an equivalent representation of the same relation, such that all local ids in all disjuncts have division representations. More... | |
void | print (raw_ostream &os) const |
Print the set's internal state. More... | |
void | dump () const |
Static Public Member Functions | |
static PresburgerSet | getUniverse (const PresburgerSpace &space) |
Return a universe set of the specified type that contains all points. More... | |
static PresburgerSet | getEmpty (const PresburgerSpace &space) |
Return an empty set of the specified type that contains no points. More... | |
![]() | |
static PresburgerRelation | getUniverse (const PresburgerSpace &space) |
Return a universe set of the specified type that contains all points. More... | |
static PresburgerRelation | getEmpty (const PresburgerSpace &space) |
Return an empty set of the specified type that contains no points. More... | |
Protected Member Functions | |
PresburgerSet (const PresburgerSpace &space) | |
Construct an empty PresburgerRelation with the specified number of dimension and symbols. More... | |
![]() | |
PresburgerRelation (const PresburgerSpace &space) | |
Construct an empty PresburgerRelation with the specified number of dimension and symbols. More... | |
Additional Inherited Members | |
![]() | |
PresburgerSpace | space |
SmallVector< IntegerRelation, 2 > | disjuncts |
The list of disjuncts that this set is the union of. More... | |
Definition at line 161 of file PresburgerRelation.h.
|
explicit |
Create a set from a relation.
Definition at line 843 of file PresburgerRelation.cpp.
Referenced by coalesce(), complement(), getEmpty(), intersect(), subtract(), and unionSet().
|
explicit |
Definition at line 846 of file PresburgerRelation.cpp.
|
inlineexplicitprotected |
Construct an empty PresburgerRelation with the specified number of dimension and symbols.
Definition at line 185 of file PresburgerRelation.h.
References mlir::presburger::PresburgerSpace::getNumDomainVars(), mlir::presburger::PresburgerSpace::getNumLocalVars(), and mlir::presburger::PresburgerRelation::space.
PresburgerSet PresburgerSet::coalesce | ( | ) | const |
Definition at line 865 of file PresburgerRelation.cpp.
References mlir::presburger::PresburgerRelation::coalesce(), and PresburgerSet().
PresburgerSet PresburgerSet::complement | ( | ) | const |
Definition at line 857 of file PresburgerRelation.cpp.
References mlir::presburger::PresburgerRelation::complement(), and PresburgerSet().
|
static |
Return an empty set of the specified type that contains no points.
Definition at line 839 of file PresburgerRelation.cpp.
References PresburgerSet(), and mlir::presburger::PresburgerRelation::space.
Referenced by mlir::presburger::PWMAFunction::getDomain(), and mlir::presburger::MultiAffineFunction::getLexSet().
|
static |
Return a universe set of the specified type that contains all points.
Definition at line 833 of file PresburgerRelation.cpp.
References mlir::presburger::IntegerPolyhedron::getUniverse(), mlir::presburger::PresburgerRelation::space, and mlir::presburger::PresburgerRelation::unionInPlace().
PresburgerSet PresburgerSet::intersect | ( | const PresburgerRelation & | set | ) | const |
Definition at line 853 of file PresburgerRelation.cpp.
References mlir::presburger::PresburgerRelation::intersect(), and PresburgerSet().
Referenced by mlir::presburger::PWMAFunction::addPiece(), and tiebreakLex().
PresburgerSet PresburgerSet::subtract | ( | const PresburgerRelation & | set | ) | const |
Definition at line 861 of file PresburgerRelation.cpp.
References PresburgerSet(), and mlir::presburger::PresburgerRelation::subtract().
Referenced by mlir::affine::ComputationSliceState::isMaximal(), and mlir::affine::ComputationSliceState::isSliceValid().
PresburgerSet PresburgerSet::unionSet | ( | const PresburgerRelation & | set | ) | const |
These operations are the same as the ones in PresburgeRelation, they just forward the arguement and return the result as a set instead of a relation.
Definition at line 849 of file PresburgerRelation.cpp.
References PresburgerSet(), and mlir::presburger::PresburgerRelation::unionSet().
Referenced by mlir::presburger::IntegerRelation::computeReprWithOnlyDivLocals().