Home | History | Annotate | Download | only in Analysis

Lines Matching defs:Coeff

1003 bool DependenceAnalysis::strongSIVtest(const SCEV *Coeff,
1011 DEBUG(dbgs() << "\t Coeff = " << *Coeff);
1012 DEBUG(dbgs() << ", " << *Coeff->getType() << "\n");
1032 SE->isKnownNonNegative(Coeff) ? Coeff : SE->getNegativeSCEV(Coeff);
1043 if (isa<SCEVConstant>(Delta) && isa<SCEVConstant>(Coeff)) {
1045 APInt ConstCoeff = cast<SCEVConstant>(Coeff)->getValue()->getValue();
1051 // Make sure Coeff divides Delta exactly
1053 // Coeff doesn't divide Distance, no dependence
1076 if (Coeff->isOne()) {
1083 NewConstraint.setLine(Coeff,
1084 SE->getNegativeSCEV(Coeff),
1092 bool CoeffMaybePositive = !SE->isKnownNonPositive(Coeff);
1093 bool CoeffMaybeNegative = !SE->isKnownNonNegative(Coeff);
1142 bool DependenceAnalysis::weakCrossingSIVtest(const SCEV *Coeff,
1151 DEBUG(dbgs() << "\t Coeff = " << *Coeff << "\n");
1160 NewConstraint.setLine(Coeff, Coeff, Delta, CurLoop);
1172 const SCEVConstant *ConstCoeff = dyn_cast<SCEVConstant>(Coeff);
1237 // check that Coeff divides Delta
1245 // Coeff doesn't divide Delta, no dependence
1252 // if 2*Coeff doesn't divide Delta, then the equal direction isn't possible
2229 const SCEV *Coeff = AddRec->getStepRecurrence(*SE);
2230 const SCEVConstant *Constant = dyn_cast<SCEVConstant>(Coeff);
2231 if (const SCEVMulExpr *Product = dyn_cast<SCEVMulExpr>(Coeff))
2250 const SCEV *Coeff = AddRec->getStepRecurrence(*SE);
2251 const SCEVConstant *Constant = dyn_cast<SCEVConstant>(Coeff);
2252 if (const SCEVMulExpr *Product = dyn_cast<SCEVMulExpr>(Coeff))
2330 const SCEV *Coeff = AddRec->getStepRecurrence(*SE);
2332 ; // SrcCoeff == Coeff
2334 if (const SCEVMulExpr *Product = dyn_cast<SCEVMulExpr>(Coeff))
2339 Constant = cast<SCEVConstant>(Coeff);
2348 const SCEV *Coeff = AddRec->getStepRecurrence(*SE);
2350 DstCoeff = Coeff;
2352 if (const SCEVMulExpr *Product = dyn_cast<SCEVMulExpr>(Coeff))
2357 Constant = cast<SCEVConstant>(Coeff);
2658 SE->getConstant(A[K].Coeff->getType(), 0);
2661 SE->getConstant(A[K].Coeff->getType(), 0);
2688 const SCEV *Delta = SE->getMinusSCEV(A[K].Coeff, B[K].Coeff);
2699 const SCEV *Delta = SE->getMinusSCEV(A[K].Coeff, B[K].Coeff);
2734 getNegativePart(SE->getMinusSCEV(A[K].NegPart, B[K].Coeff));
2736 SE->getMinusSCEV(SE->getMulExpr(NegPart, Iter_1), B[K].Coeff);
2738 getPositivePart(SE->getMinusSCEV(A[K].PosPart, B[K].Coeff));
2740 SE->getMinusSCEV(SE->getMulExpr(PosPart, Iter_1), B[K].Coeff);
2746 getNegativePart(SE->getMinusSCEV(A[K].NegPart, B[K].Coeff));
2748 Bound[K].Lower[Dependence::DVEntry::LT] = SE->getNegativeSCEV(B[K].Coeff);
2750 getPositivePart(SE->getMinusSCEV(A[K].PosPart, B[K].Coeff));
2752 Bound[K].Upper[Dependence::DVEntry::LT] = SE->getNegativeSCEV(B[K].Coeff);
2781 getNegativePart(SE->getMinusSCEV(A[K].Coeff, B[K].PosPart));
2783 SE->getAddExpr(SE->getMulExpr(NegPart, Iter_1), A[K].Coeff);
2785 getPositivePart(SE->getMinusSCEV(A[K].Coeff, B[K].NegPart));
2787 SE->getAddExpr(SE->getMulExpr(PosPart, Iter_1), A[K].Coeff);
2792 const SCEV *NegPart = getNegativePart(SE->getMinusSCEV(A[K].Coeff, B[K].PosPart));
2794 Bound[K].Lower[Dependence::DVEntry::GT] = A[K].Coeff;
2795 const SCEV *PosPart = getPositivePart(SE->getMinusSCEV(A[K].Coeff, B[K].NegPart));
2797 Bound[K].Upper[Dependence::DVEntry::GT] = A[K].Coeff;
2824 CI[K].Coeff = Zero;
2832 CI[K].Coeff = AddRec->getStepRecurrence(*SE);
2833 CI[K].PosPart = getPositivePart(CI[K].Coeff);
2834 CI[K].NegPart = getNegativePart(CI[K].Coeff);
2842 DEBUG(dbgs() << "\t " << K << "\t" << *CI[K].Coeff);