Home | History | Annotate | Download | only in Analysis

Lines Matching defs:Coeff

1008 bool DependenceAnalysis::strongSIVtest(const SCEV *Coeff,
1016 DEBUG(dbgs() << "\t Coeff = " << *Coeff);
1017 DEBUG(dbgs() << ", " << *Coeff->getType() << "\n");
1037 SE->isKnownNonNegative(Coeff) ? Coeff : SE->getNegativeSCEV(Coeff);
1048 if (isa<SCEVConstant>(Delta) && isa<SCEVConstant>(Coeff)) {
1050 APInt ConstCoeff = cast<SCEVConstant>(Coeff)->getValue()->getValue();
1056 // Make sure Coeff divides Delta exactly
1058 // Coeff doesn't divide Distance, no dependence
1081 if (Coeff->isOne()) {
1088 NewConstraint.setLine(Coeff,
1089 SE->getNegativeSCEV(Coeff),
1097 bool CoeffMaybePositive = !SE->isKnownNonPositive(Coeff);
1098 bool CoeffMaybeNegative = !SE->isKnownNonNegative(Coeff);
1147 bool DependenceAnalysis::weakCrossingSIVtest(const SCEV *Coeff,
1156 DEBUG(dbgs() << "\t Coeff = " << *Coeff << "\n");
1165 NewConstraint.setLine(Coeff, Coeff, Delta, CurLoop);
1177 const SCEVConstant *ConstCoeff = dyn_cast<SCEVConstant>(Coeff);
1242 // check that Coeff divides Delta
1250 // Coeff doesn't divide Delta, no dependence
1257 // if 2*Coeff doesn't divide Delta, then the equal direction isn't possible
2234 const SCEV *Coeff = AddRec->getStepRecurrence(*SE);
2235 const SCEVConstant *Constant = dyn_cast<SCEVConstant>(Coeff);
2236 if (const SCEVMulExpr *Product = dyn_cast<SCEVMulExpr>(Coeff))
2255 const SCEV *Coeff = AddRec->getStepRecurrence(*SE);
2256 const SCEVConstant *Constant = dyn_cast<SCEVConstant>(Coeff);
2257 if (const SCEVMulExpr *Product = dyn_cast<SCEVMulExpr>(Coeff))
2335 const SCEV *Coeff = AddRec->getStepRecurrence(*SE);
2337 ; // SrcCoeff == Coeff
2339 if (const SCEVMulExpr *Product = dyn_cast<SCEVMulExpr>(Coeff))
2344 Constant = cast<SCEVConstant>(Coeff);
2353 const SCEV *Coeff = AddRec->getStepRecurrence(*SE);
2355 DstCoeff = Coeff;
2357 if (const SCEVMulExpr *Product = dyn_cast<SCEVMulExpr>(Coeff))
2362 Constant = cast<SCEVConstant>(Coeff);
2663 SE->getConstant(A[K].Coeff->getType(), 0);
2666 SE->getConstant(A[K].Coeff->getType(), 0);
2693 const SCEV *Delta = SE->getMinusSCEV(A[K].Coeff, B[K].Coeff);
2704 const SCEV *Delta = SE->getMinusSCEV(A[K].Coeff, B[K].Coeff);
2739 getNegativePart(SE->getMinusSCEV(A[K].NegPart, B[K].Coeff));
2741 SE->getMinusSCEV(SE->getMulExpr(NegPart, Iter_1), B[K].Coeff);
2743 getPositivePart(SE->getMinusSCEV(A[K].PosPart, B[K].Coeff));
2745 SE->getMinusSCEV(SE->getMulExpr(PosPart, Iter_1), B[K].Coeff);
2751 getNegativePart(SE->getMinusSCEV(A[K].NegPart, B[K].Coeff));
2753 Bound[K].Lower[Dependence::DVEntry::LT] = SE->getNegativeSCEV(B[K].Coeff);
2755 getPositivePart(SE->getMinusSCEV(A[K].PosPart, B[K].Coeff));
2757 Bound[K].Upper[Dependence::DVEntry::LT] = SE->getNegativeSCEV(B[K].Coeff);
2786 getNegativePart(SE->getMinusSCEV(A[K].Coeff, B[K].PosPart));
2788 SE->getAddExpr(SE->getMulExpr(NegPart, Iter_1), A[K].Coeff);
2790 getPositivePart(SE->getMinusSCEV(A[K].Coeff, B[K].NegPart));
2792 SE->getAddExpr(SE->getMulExpr(PosPart, Iter_1), A[K].Coeff);
2797 const SCEV *NegPart = getNegativePart(SE->getMinusSCEV(A[K].Coeff, B[K].PosPart));
2799 Bound[K].Lower[Dependence::DVEntry::GT] = A[K].Coeff;
2800 const SCEV *PosPart = getPositivePart(SE->getMinusSCEV(A[K].Coeff, B[K].NegPart));
2802 Bound[K].Upper[Dependence::DVEntry::GT] = A[K].Coeff;
2829 CI[K].Coeff = Zero;
2837 CI[K].Coeff = AddRec->getStepRecurrence(*SE);
2838 CI[K].PosPart = getPositivePart(CI[K].Coeff);
2839 CI[K].NegPart = getNegativePart(CI[K].Coeff);
2847 DEBUG(dbgs() << "\t " << K << "\t" << *CI[K].Coeff);