Lines Matching refs:IntegerRelation

33 std::unique_ptr<IntegerRelation> IntegerRelation::clone() const {  in clone()
34 return std::make_unique<IntegerRelation>(*this); in clone()
41 void IntegerRelation::setSpace(const PresburgerSpace &oSpace) { in setSpace()
46 void IntegerRelation::setSpaceExceptLocals(const PresburgerSpace &oSpace) { in setSpaceExceptLocals()
54 void IntegerRelation::append(const IntegerRelation &other) { in append()
69 IntegerRelation IntegerRelation::intersect(IntegerRelation other) const { in intersect()
70 IntegerRelation result = *this; in intersect()
76 bool IntegerRelation::isEqual(const IntegerRelation &other) const { in isEqual()
81 bool IntegerRelation::isSubsetOf(const IntegerRelation &other) const { in isSubsetOf()
87 IntegerRelation::findRationalLexMin() const { in findRationalLexMin()
107 IntegerRelation::findIntegerLexMin() const { in findIntegerLexMin()
130 static void removeConstraintsInvolvingVarRange(IntegerRelation &poly, in removeConstraintsInvolvingVarRange()
144 IntegerRelation::CountsSnapshot IntegerRelation::getCounts() const { in getCounts()
148 void IntegerRelation::truncateVarKind(VarKind kind, unsigned num) { in truncateVarKind()
154 void IntegerRelation::truncateVarKind(VarKind kind, in truncateVarKind()
159 void IntegerRelation::truncate(const CountsSnapshot &counts) { in truncate()
168 PresburgerRelation IntegerRelation::computeReprWithOnlyDivLocals() const { in computeReprWithOnlyDivLocals()
177 IntegerRelation copy = *this; in computeReprWithOnlyDivLocals()
229 SymbolicLexMin IntegerRelation::findSymbolicIntegerLexMin() const { in findSymbolicIntegerLexMin()
256 IntegerRelation::subtract(const PresburgerRelation &set) const { in subtract()
260 unsigned IntegerRelation::insertVar(VarKind kind, unsigned pos, unsigned num) { in insertVar()
269 unsigned IntegerRelation::appendVar(VarKind kind, unsigned num) { in appendVar()
274 void IntegerRelation::addEquality(ArrayRef<int64_t> eq) { in addEquality()
281 void IntegerRelation::addInequality(ArrayRef<int64_t> inEq) { in addInequality()
288 void IntegerRelation::removeVar(VarKind kind, unsigned pos) { in removeVar()
292 void IntegerRelation::removeVar(unsigned pos) { removeVarRange(pos, pos + 1); } in removeVar()
294 void IntegerRelation::removeVarRange(VarKind kind, unsigned varStart, in removeVarRange()
310 void IntegerRelation::removeVarRange(unsigned varStart, unsigned varLimit) { in removeVarRange()
348 void IntegerRelation::removeEquality(unsigned pos) { in removeEquality()
352 void IntegerRelation::removeInequality(unsigned pos) { in removeInequality()
356 void IntegerRelation::removeEqualityRange(unsigned start, unsigned end) { in removeEqualityRange()
362 void IntegerRelation::removeInequalityRange(unsigned start, unsigned end) { in removeInequalityRange()
368 void IntegerRelation::swapVar(unsigned posA, unsigned posB) { in swapVar()
379 void IntegerRelation::clearConstraints() { in clearConstraints()
387 void IntegerRelation::getLowerAndUpperBoundIndices( in getLowerAndUpperBoundIndices()
438 bool IntegerRelation::hasConsistentState() const { in hasConsistentState()
446 void IntegerRelation::setAndEliminate(unsigned pos, ArrayRef<int64_t> values) { in setAndEliminate()
462 void IntegerRelation::clearAndCopyFrom(const IntegerRelation &other) { in clearAndCopyFrom()
469 bool IntegerRelation::findConstraintWithNonZeroAt(unsigned colIdx, bool isEq, in findConstraintWithNonZeroAt()
484 void IntegerRelation::normalizeConstraintsByGCD() { in normalizeConstraintsByGCD()
491 bool IntegerRelation::hasInvalidConstraint() const { in hasInvalidConstraint()
524 static void eliminateFromConstraint(IntegerRelation *constraints, in eliminateFromConstraint()
561 static unsigned getBestVarToEliminate(const IntegerRelation &cst, in getBestVarToEliminate()
594 bool IntegerRelation::isEmpty() const { in isEmpty()
598 IntegerRelation tmpCst(*this); in isEmpty()
655 bool IntegerRelation::isEmptyByGCDTest() const { in isEmptyByGCDTest()
678 Matrix IntegerRelation::getBoundedDirections() const { in getBoundedDirections()
719 bool IntegerRelation::isIntegerEmpty() const { return !findIntegerSample(); } in isIntegerEmpty()
766 Optional<SmallVector<int64_t, 8>> IntegerRelation::findIntegerSample() const { in findIntegerSample()
793 IntegerRelation transformedSet = transform.applyTo(*this); in findIntegerSample()
797 IntegerRelation boundedSet(transformedSet); in findIntegerSample()
815 IntegerRelation &cone = transformedSet; in findIntegerSample()
884 bool IntegerRelation::containsPoint(ArrayRef<int64_t> point) const { in containsPoint()
905 IntegerRelation::containsPointNoLocal(ArrayRef<int64_t> point) const { in containsPointNoLocal()
910 IntegerRelation copy = *this; in containsPointNoLocal()
916 IntegerRelation::getLocalReprs(std::vector<MaybeLocalRepr> *repr) const { in getLocalReprs()
958 void IntegerRelation::gcdTightenInequalities() { in gcdTightenInequalities()
970 unsigned IntegerRelation::gaussianEliminateVars(unsigned posStart, in gaussianEliminateVars()
1020 void IntegerRelation::removeRedundantInequalities() { in removeRedundantInequalities()
1025 IntegerRelation tmpCst(*this); in removeRedundantInequalities()
1052 void IntegerRelation::removeRedundantConstraints() { in removeRedundantConstraints()
1083 Optional<uint64_t> IntegerRelation::computeVolume() const { in computeVolume()
1140 void IntegerRelation::eliminateRedundantLocalVar(unsigned posA, unsigned posB) { in eliminateRedundantLocalVar()
1165 unsigned IntegerRelation::mergeLocalVars(IntegerRelation &other) { in mergeLocalVars()
1166 IntegerRelation &relA = *this; in mergeLocalVars()
1167 IntegerRelation &relB = other; in mergeLocalVars()
1196 bool IntegerRelation::hasOnlyDivLocals() const { in hasOnlyDivLocals()
1200 void IntegerRelation::removeDuplicateDivs() { in removeDuplicateDivs()
1215 void IntegerRelation::removeRedundantLocalVars() { in removeRedundantLocalVars()
1257 void IntegerRelation::convertVarKind(VarKind srcKind, unsigned varStart, in convertVarKind()
1284 void IntegerRelation::addBound(BoundType type, unsigned pos, int64_t value) { in addBound()
1298 void IntegerRelation::addBound(BoundType type, ArrayRef<int64_t> expr, in addBound()
1314 void IntegerRelation::addLocalFloorDiv(ArrayRef<int64_t> dividend, in addLocalFloorDiv()
1334 static int findEqualityToConstant(const IntegerRelation &cst, unsigned pos, in findEqualityToConstant()
1359 LogicalResult IntegerRelation::constantFoldVar(unsigned pos) { in constantFoldVar()
1372 void IntegerRelation::constantFoldVarRange(unsigned pos, unsigned num) { in constantFoldVarRange()
1393 Optional<int64_t> IntegerRelation::getConstantBoundOnDimSize( in getConstantBoundOnDimSize()
1521 IntegerRelation::computeConstantLowerOrUpperBound(unsigned pos) { in computeConstantLowerOrUpperBound()
1577 Optional<int64_t> IntegerRelation::getConstantBound(BoundType type, in getConstantBound()
1580 return IntegerRelation(*this) in getConstantBound()
1583 return IntegerRelation(*this) in getConstantBound()
1588 IntegerRelation(*this).computeConstantLowerOrUpperBound</*isLower=*/true>( in getConstantBound()
1591 IntegerRelation(*this) in getConstantBound()
1597 bool IntegerRelation::isHyperRectangular(unsigned pos, unsigned num) const { in isHyperRectangular()
1627 void IntegerRelation::removeTrivialRedundancy() { in removeTrivialRedundancy()
1738 void IntegerRelation::fourierMotzkinEliminate(unsigned pos, bool darkShadow, in fourierMotzkinEliminate()
1801 IntegerRelation newRel(lbIndices.size() * ubIndices.size() + nbIndices.size(), in fourierMotzkinEliminate()
1892 void IntegerRelation::projectOut(unsigned pos, unsigned num) { in projectOut()
1951 static void getCommonConstraints(const IntegerRelation &a, in getCommonConstraints()
1952 const IntegerRelation &b, IntegerRelation &c) { in getCommonConstraints()
1953 c = IntegerRelation(a.getSpace()); in getCommonConstraints()
1976 IntegerRelation::unionBoundingBox(const IntegerRelation &otherCst) { in unionBoundingBox()
1982 IntegerRelation commonCst(PresburgerSpace::getRelationSpace()); in unionBoundingBox()
2086 bool IntegerRelation::isColZero(unsigned pos) const { in isColZero()
2094 static void getIndependentConstraints(const IntegerRelation &cst, unsigned pos, in getIndependentConstraints()
2124 void IntegerRelation::removeIndependentConstraints(unsigned pos, unsigned num) { in removeIndependentConstraints()
2140 IntegerPolyhedron IntegerRelation::getDomainSet() const { in getDomainSet()
2141 IntegerRelation copyRel = *this; in getDomainSet()
2154 IntegerPolyhedron IntegerRelation::getRangeSet() const { in getRangeSet()
2155 IntegerRelation copyRel = *this; in getRangeSet()
2167 void IntegerRelation::intersectDomain(const IntegerPolyhedron &poly) { in intersectDomain()
2172 IntegerRelation rel = poly; in intersectDomain()
2183 void IntegerRelation::intersectRange(const IntegerPolyhedron &poly) { in intersectRange()
2187 IntegerRelation rel = poly; in intersectRange()
2196 void IntegerRelation::inverse() { in inverse()
2203 void IntegerRelation::compose(const IntegerRelation &rel) { in compose()
2207 IntegerRelation copyRel = rel; in compose()
2229 void IntegerRelation::applyDomain(const IntegerRelation &rel) { in applyDomain()
2235 void IntegerRelation::applyRange(const IntegerRelation &rel) { compose(rel); } in applyRange()
2237 void IntegerRelation::printSpace(raw_ostream &os) const { in printSpace()
2242 void IntegerRelation::print(raw_ostream &os) const { in print()
2260 void IntegerRelation::dump() const { print(llvm::errs()); } in dump()
2266 return IntegerRelation::insertVar(kind, pos, num); in insertVar()
2270 return IntegerPolyhedron(IntegerRelation::intersect(other)); in intersect()
2274 return PresburgerSet(IntegerRelation::subtract(other)); in subtract()