Lines Matching defs:sI
372 IntegerRelation sI;
383 const IntegerRelation &sI, ArrayRef<unsigned> ineqsToProcess = {},
385 : simplexSnapshot(simplexSnapshot), bCounts(bCounts), sI(sI),
404 IntegerRelation sI = s.getDisjunct(level - 1);
407 sI.removeDuplicateDivs();
417 // Add sI's locals to b, after b's locals. Only those locals of sI which
419 // will not be added.) Also add b's locals to sI, in such a way that both
421 b.mergeLocalVars(sI);
423 // Find out which inequalities of sI correspond to division inequalities
424 // for the local variables of sI.
428 std::vector<MaybeLocalRepr> repr(sI.getNumLocalVars());
429 DivisionRepr divs = sI.getLocalReprs(&repr);
431 // Mark which inequalities of sI are division inequalities and add all
433 llvm::SmallBitVector canIgnoreIneq(sI.getNumInequalities() +
434 2 * sI.getNumEqualities());
436 e = sI.getNumLocalVars();
447 b.addInequality(sI.getInequality(lb));
448 b.addInequality(sI.getInequality(ub));
471 // not be because they were never a part of sI; we just infer them
475 sI.getVarKindOffset(VarKind::Local) + i));
478 sI.getVarKindOffset(VarKind::Local) + i));
488 simplex.intersectIntegerRelation(sI);
501 frames.emplace_back(Frame{initialSnapshot, initBCounts, sI});
508 2 * sI.getNumEqualities() + sI.getNumInequalities();
509 // Look for redundant constraints among the constraints of sI. We don't
513 // constraints of `b` and `sI`, only one of them can be marked redundant.
516 // In a case where there is one copy in `b` and one in `sI`, we want the
517 // one in `sI` to be marked, not the one in `b`. Therefore, it's not
520 // `detectRedundant` to only mark constraints from `sI` as being
541 frames.emplace_back(Frame{simplexSnapshot, bCounts, sI, ineqsToProcess});
562 getIneqCoeffsFromIdx(frame.sI, *frame.lastIneqProcessed);
580 getComplementIneq(getIneqCoeffsFromIdx(frame.sI, idx));