Lines Matching refs:Bound
1047 const SCEV *Bound = SE->getMinusSCEV(S, Size); in isKnownLessThan() local
1048 if (const SCEVAddRecExpr *AddRec = dyn_cast<SCEVAddRecExpr>(Bound)) { in isKnownLessThan()
2553 BoundInfo *Bound = new BoundInfo[MaxLevels + 1]; in banerjeeMIVtest() local
2560 Bound[K].Iterations = A[K].Iterations ? A[K].Iterations : B[K].Iterations; in banerjeeMIVtest()
2561 Bound[K].Direction = Dependence::DVEntry::ALL; in banerjeeMIVtest()
2562 Bound[K].DirSet = Dependence::DVEntry::NONE; in banerjeeMIVtest()
2563 findBoundsALL(A, B, Bound, K); in banerjeeMIVtest()
2566 if (Bound[K].Lower[Dependence::DVEntry::ALL]) in banerjeeMIVtest()
2567 LLVM_DEBUG(dbgs() << *Bound[K].Lower[Dependence::DVEntry::ALL] << '\t'); in banerjeeMIVtest()
2570 if (Bound[K].Upper[Dependence::DVEntry::ALL]) in banerjeeMIVtest()
2571 LLVM_DEBUG(dbgs() << *Bound[K].Upper[Dependence::DVEntry::ALL] << '\n'); in banerjeeMIVtest()
2579 if (testBounds(Dependence::DVEntry::ALL, 0, Bound, Delta)) { in banerjeeMIVtest()
2582 unsigned NewDeps = exploreDirections(1, A, B, Bound, in banerjeeMIVtest()
2589 Result.DV[K - 1].Direction = Old & Bound[K].DirSet; in banerjeeMIVtest()
2610 delete [] Bound; in banerjeeMIVtest()
2623 CoefficientInfo *B, BoundInfo *Bound, in exploreDirections() argument
2636 Bound[K].DirSet = Dependence::DVEntry::ALL; in exploreDirections()
2645 Bound[K].DirSet |= Bound[K].Direction; in exploreDirections()
2647 switch (Bound[K].Direction) { in exploreDirections()
2673 findBoundsLT(A, B, Bound, Level); in exploreDirections()
2674 findBoundsGT(A, B, Bound, Level); in exploreDirections()
2675 findBoundsEQ(A, B, Bound, Level); in exploreDirections()
2679 if (Bound[Level].Lower[Dependence::DVEntry::LT]) in exploreDirections()
2680 LLVM_DEBUG(dbgs() << *Bound[Level].Lower[Dependence::DVEntry::LT] in exploreDirections()
2684 if (Bound[Level].Upper[Dependence::DVEntry::LT]) in exploreDirections()
2685 LLVM_DEBUG(dbgs() << *Bound[Level].Upper[Dependence::DVEntry::LT] in exploreDirections()
2690 if (Bound[Level].Lower[Dependence::DVEntry::EQ]) in exploreDirections()
2691 LLVM_DEBUG(dbgs() << *Bound[Level].Lower[Dependence::DVEntry::EQ] in exploreDirections()
2695 if (Bound[Level].Upper[Dependence::DVEntry::EQ]) in exploreDirections()
2696 LLVM_DEBUG(dbgs() << *Bound[Level].Upper[Dependence::DVEntry::EQ] in exploreDirections()
2701 if (Bound[Level].Lower[Dependence::DVEntry::GT]) in exploreDirections()
2702 LLVM_DEBUG(dbgs() << *Bound[Level].Lower[Dependence::DVEntry::GT] in exploreDirections()
2706 if (Bound[Level].Upper[Dependence::DVEntry::GT]) in exploreDirections()
2707 LLVM_DEBUG(dbgs() << *Bound[Level].Upper[Dependence::DVEntry::GT] in exploreDirections()
2717 if (testBounds(Dependence::DVEntry::LT, Level, Bound, Delta)) in exploreDirections()
2718 NewDeps += exploreDirections(Level + 1, A, B, Bound, in exploreDirections()
2722 if (testBounds(Dependence::DVEntry::EQ, Level, Bound, Delta)) in exploreDirections()
2723 NewDeps += exploreDirections(Level + 1, A, B, Bound, in exploreDirections()
2727 if (testBounds(Dependence::DVEntry::GT, Level, Bound, Delta)) in exploreDirections()
2728 NewDeps += exploreDirections(Level + 1, A, B, Bound, in exploreDirections()
2731 Bound[Level].Direction = Dependence::DVEntry::ALL; in exploreDirections()
2735 return exploreDirections(Level + 1, A, B, Bound, Loops, DepthExpanded, Delta); in exploreDirections()
2741 BoundInfo *Bound, const SCEV *Delta) const { in testBounds() argument
2742 Bound[Level].Direction = DirKind; in testBounds()
2743 if (const SCEV *LowerBound = getLowerBound(Bound)) in testBounds()
2746 if (const SCEV *UpperBound = getUpperBound(Bound)) in testBounds()
2769 BoundInfo *Bound, unsigned K) const { in findBoundsALL() argument
2770 Bound[K].Lower[Dependence::DVEntry::ALL] = nullptr; // Default value = -infinity. in findBoundsALL()
2771 Bound[K].Upper[Dependence::DVEntry::ALL] = nullptr; // Default value = +infinity. in findBoundsALL()
2772 if (Bound[K].Iterations) { in findBoundsALL()
2773 Bound[K].Lower[Dependence::DVEntry::ALL] = in findBoundsALL()
2775 Bound[K].Iterations); in findBoundsALL()
2776 Bound[K].Upper[Dependence::DVEntry::ALL] = in findBoundsALL()
2778 Bound[K].Iterations); in findBoundsALL()
2783 Bound[K].Lower[Dependence::DVEntry::ALL] = in findBoundsALL()
2786 Bound[K].Upper[Dependence::DVEntry::ALL] = in findBoundsALL()
2808 BoundInfo *Bound, unsigned K) const { in findBoundsEQ() argument
2809 Bound[K].Lower[Dependence::DVEntry::EQ] = nullptr; // Default value = -infinity. in findBoundsEQ()
2810 Bound[K].Upper[Dependence::DVEntry::EQ] = nullptr; // Default value = +infinity. in findBoundsEQ()
2811 if (Bound[K].Iterations) { in findBoundsEQ()
2814 Bound[K].Lower[Dependence::DVEntry::EQ] = in findBoundsEQ()
2815 SE->getMulExpr(NegativePart, Bound[K].Iterations); in findBoundsEQ()
2817 Bound[K].Upper[Dependence::DVEntry::EQ] = in findBoundsEQ()
2818 SE->getMulExpr(PositivePart, Bound[K].Iterations); in findBoundsEQ()
2826 Bound[K].Lower[Dependence::DVEntry::EQ] = NegativePart; // Zero in findBoundsEQ()
2829 Bound[K].Upper[Dependence::DVEntry::EQ] = PositivePart; // Zero in findBoundsEQ()
2848 BoundInfo *Bound, unsigned K) const { in findBoundsLT() argument
2849 Bound[K].Lower[Dependence::DVEntry::LT] = nullptr; // Default value = -infinity. in findBoundsLT()
2850 Bound[K].Upper[Dependence::DVEntry::LT] = nullptr; // Default value = +infinity. in findBoundsLT()
2851 if (Bound[K].Iterations) { in findBoundsLT()
2853 Bound[K].Iterations, SE->getOne(Bound[K].Iterations->getType())); in findBoundsLT()
2856 Bound[K].Lower[Dependence::DVEntry::LT] = in findBoundsLT()
2860 Bound[K].Upper[Dependence::DVEntry::LT] = in findBoundsLT()
2869 Bound[K].Lower[Dependence::DVEntry::LT] = SE->getNegativeSCEV(B[K].Coeff); in findBoundsLT()
2873 Bound[K].Upper[Dependence::DVEntry::LT] = SE->getNegativeSCEV(B[K].Coeff); in findBoundsLT()
2892 BoundInfo *Bound, unsigned K) const { in findBoundsGT() argument
2893 Bound[K].Lower[Dependence::DVEntry::GT] = nullptr; // Default value = -infinity. in findBoundsGT()
2894 Bound[K].Upper[Dependence::DVEntry::GT] = nullptr; // Default value = +infinity. in findBoundsGT()
2895 if (Bound[K].Iterations) { in findBoundsGT()
2897 Bound[K].Iterations, SE->getOne(Bound[K].Iterations->getType())); in findBoundsGT()
2900 Bound[K].Lower[Dependence::DVEntry::GT] = in findBoundsGT()
2904 Bound[K].Upper[Dependence::DVEntry::GT] = in findBoundsGT()
2912 Bound[K].Lower[Dependence::DVEntry::GT] = A[K].Coeff; in findBoundsGT()
2915 Bound[K].Upper[Dependence::DVEntry::GT] = A[K].Coeff; in findBoundsGT()
2981 const SCEV *DependenceInfo::getLowerBound(BoundInfo *Bound) const { in getLowerBound()
2982 const SCEV *Sum = Bound[1].Lower[Bound[1].Direction]; in getLowerBound()
2984 if (Bound[K].Lower[Bound[K].Direction]) in getLowerBound()
2985 Sum = SE->getAddExpr(Sum, Bound[K].Lower[Bound[K].Direction]); in getLowerBound()
2997 const SCEV *DependenceInfo::getUpperBound(BoundInfo *Bound) const { in getUpperBound()
2998 const SCEV *Sum = Bound[1].Upper[Bound[1].Direction]; in getUpperBound()
3000 if (Bound[K].Upper[Bound[K].Direction]) in getUpperBound()
3001 Sum = SE->getAddExpr(Sum, Bound[K].Upper[Bound[K].Direction]); in getUpperBound()