Home | History | Annotate | Download | only in Analysis

Lines Matching refs:Coeff

1077 bool DependenceAnalysis::strongSIVtest(const SCEV *Coeff,
1085 DEBUG(dbgs() << "\t Coeff = " << *Coeff);
1086 DEBUG(dbgs() << ", " << *Coeff->getType() << "\n");
1106 SE->isKnownNonNegative(Coeff) ? Coeff : SE->getNegativeSCEV(Coeff);
1117 if (isa<SCEVConstant>(Delta) && isa<SCEVConstant>(Coeff)) {
1119 APInt ConstCoeff = cast<SCEVConstant>(Coeff)->getAPInt();
1125 // Make sure Coeff divides Delta exactly
1127 // Coeff doesn't divide Distance, no dependence
1150 if (Coeff->isOne()) {
1157 NewConstraint.setLine(Coeff,
1158 SE->getNegativeSCEV(Coeff),
1166 bool CoeffMaybePositive = !SE->isKnownNonPositive(Coeff);
1167 bool CoeffMaybeNegative = !SE->isKnownNonNegative(Coeff);
1216 bool DependenceAnalysis::weakCrossingSIVtest(const SCEV *Coeff,
1225 DEBUG(dbgs() << "\t Coeff = " << *Coeff << "\n");
1234 NewConstraint.setLine(Coeff, Coeff, Delta, CurLoop);
1246 const SCEVConstant *ConstCoeff = dyn_cast<SCEVConstant>(Coeff);
1309 // check that Coeff divides Delta
1317 // Coeff doesn't divide Delta, no dependence
1324 // if 2*Coeff doesn't divide Delta, then the equal direction isn't possible
2301 const SCEV *Coeff = AddRec->getStepRecurrence(*SE);
2302 const SCEVConstant *Constant = dyn_cast<SCEVConstant>(Coeff);
2303 if (const SCEVMulExpr *Product = dyn_cast<SCEVMulExpr>(Coeff))
2322 const SCEV *Coeff = AddRec->getStepRecurrence(*SE);
2323 const SCEVConstant *Constant = dyn_cast<SCEVConstant>(Coeff);
2324 if (const SCEVMulExpr *Product = dyn_cast<SCEVMulExpr>(Coeff))
2402 const SCEV *Coeff = AddRec->getStepRecurrence(*SE);
2404 ; // SrcCoeff == Coeff
2406 if (const SCEVMulExpr *Product = dyn_cast<SCEVMulExpr>(Coeff))
2411 Constant = cast<SCEVConstant>(Coeff);
2420 const SCEV *Coeff = AddRec->getStepRecurrence(*SE);
2422 DstCoeff = Coeff;
2424 if (const SCEVMulExpr *Product = dyn_cast<SCEVMulExpr>(Coeff))
2429 Constant = cast<SCEVConstant>(Coeff);
2730 SE->getZero(A[K].Coeff->getType());
2733 SE->getZero(A[K].Coeff->getType());
2760 const SCEV *Delta = SE->getMinusSCEV(A[K].Coeff, B[K].Coeff);
2771 const SCEV *Delta = SE->getMinusSCEV(A[K].Coeff, B[K].Coeff);
2805 getNegativePart(SE->getMinusSCEV(A[K].NegPart, B[K].Coeff));
2807 SE->getMinusSCEV(SE->getMulExpr(NegPart, Iter_1), B[K].Coeff);
2809 getPositivePart(SE->getMinusSCEV(A[K].PosPart, B[K].Coeff));
2811 SE->getMinusSCEV(SE->getMulExpr(PosPart, Iter_1), B[K].Coeff);
2817 getNegativePart(SE->getMinusSCEV(A[K].NegPart, B[K].Coeff));
2819 Bound[K].Lower[Dependence::DVEntry::LT] = SE->getNegativeSCEV(B[K].Coeff);
2821 getPositivePart(SE->getMinusSCEV(A[K].PosPart, B[K].Coeff));
2823 Bound[K].Upper[Dependence::DVEntry::LT] = SE->getNegativeSCEV(B[K].Coeff);
2851 getNegativePart(SE->getMinusSCEV(A[K].Coeff, B[K].PosPart));
2853 SE->getAddExpr(SE->getMulExpr(NegPart, Iter_1), A[K].Coeff);
2855 getPositivePart(SE->getMinusSCEV(A[K].Coeff, B[K].NegPart));
2857 SE->getAddExpr(SE->getMulExpr(PosPart, Iter_1), A[K].Coeff);
2862 const SCEV *NegPart = getNegativePart(SE->getMinusSCEV(A[K].Coeff, B[K].PosPart));
2864 Bound[K].Lower[Dependence::DVEntry::GT] = A[K].Coeff;
2865 const SCEV *PosPart = getPositivePart(SE->getMinusSCEV(A[K].Coeff, B[K].NegPart));
2867 Bound[K].Upper[Dependence::DVEntry::GT] = A[K].Coeff;
2894 CI[K].Coeff = Zero;
2902 CI[K].Coeff = AddRec->getStepRecurrence(*SE);
2903 CI[K].PosPart = getPositivePart(CI[K].Coeff);
2904 CI[K].NegPart = getNegativePart(CI[K].Coeff);
2912 DEBUG(dbgs() << "\t " << K << "\t" << *CI[K].Coeff);