Lines Matching defs:Bound

1111   const SCEV *Bound = SE->getMinusSCEV(S, Size);
1112 if (const SCEVAddRecExpr *AddRec = dyn_cast<SCEVAddRecExpr>(Bound)) {
2616 BoundInfo *Bound = new BoundInfo[MaxLevels + 1];
2623 Bound[K].Iterations = A[K].Iterations ? A[K].Iterations : B[K].Iterations;
2624 Bound[K].Direction = Dependence::DVEntry::ALL;
2625 Bound[K].DirSet = Dependence::DVEntry::NONE;
2626 findBoundsALL(A, B, Bound, K);
2629 if (Bound[K].Lower[Dependence::DVEntry::ALL])
2630 LLVM_DEBUG(dbgs() << *Bound[K].Lower[Dependence::DVEntry::ALL] << '\t');
2633 if (Bound[K].Upper[Dependence::DVEntry::ALL])
2634 LLVM_DEBUG(dbgs() << *Bound[K].Upper[Dependence::DVEntry::ALL] << '\n');
2642 if (testBounds(Dependence::DVEntry::ALL, 0, Bound, Delta)) {
2645 unsigned NewDeps = exploreDirections(1, A, B, Bound,
2652 Result.DV[K - 1].Direction = Old & Bound[K].DirSet;
2673 delete [] Bound;
2682 // in the DirSet field of Bound. Returns the number of distinct
2686 CoefficientInfo *B, BoundInfo *Bound,
2699 Bound[K].DirSet = Dependence::DVEntry::ALL;
2708 Bound[K].DirSet |= Bound[K].Direction;
2710 switch (Bound[K].Direction) {
2724 llvm_unreachable("unexpected Bound[K].Direction");
2736 findBoundsLT(A, B, Bound, Level);
2737 findBoundsGT(A, B, Bound, Level);
2738 findBoundsEQ(A, B, Bound, Level);
2742 if (Bound[Level].Lower[Dependence::DVEntry::LT])
2743 LLVM_DEBUG(dbgs() << *Bound[Level].Lower[Dependence::DVEntry::LT]
2747 if (Bound[Level].Upper[Dependence::DVEntry::LT])
2748 LLVM_DEBUG(dbgs() << *Bound[Level].Upper[Dependence::DVEntry::LT]
2753 if (Bound[Level].Lower[Dependence::DVEntry::EQ])
2754 LLVM_DEBUG(dbgs() << *Bound[Level].Lower[Dependence::DVEntry::EQ]
2758 if (Bound[Level].Upper[Dependence::DVEntry::EQ])
2759 LLVM_DEBUG(dbgs() << *Bound[Level].Upper[Dependence::DVEntry::EQ]
2764 if (Bound[Level].Lower[Dependence::DVEntry::GT])
2765 LLVM_DEBUG(dbgs() << *Bound[Level].Lower[Dependence::DVEntry::GT]
2769 if (Bound[Level].Upper[Dependence::DVEntry::GT])
2770 LLVM_DEBUG(dbgs() << *Bound[Level].Upper[Dependence::DVEntry::GT]
2780 if (testBounds(Dependence::DVEntry::LT, Level, Bound, Delta))
2781 NewDeps += exploreDirections(Level + 1, A, B, Bound,
2785 if (testBounds(Dependence::DVEntry::EQ, Level, Bound, Delta))
2786 NewDeps += exploreDirections(Level + 1, A, B, Bound,
2790 if (testBounds(Dependence::DVEntry::GT, Level, Bound, Delta))
2791 NewDeps += exploreDirections(Level + 1, A, B, Bound,
2794 Bound[Level].Direction = Dependence::DVEntry::ALL;
2798 return exploreDirections(Level + 1, A, B, Bound, Loops, DepthExpanded, Delta);
2804 BoundInfo *Bound, const SCEV *Delta) const {
2805 Bound[Level].Direction = DirKind;
2806 if (const SCEV *LowerBound = getLowerBound(Bound))
2809 if (const SCEV *UpperBound = getUpperBound(Bound))
2817 // using the * direction. Records them in Bound.
2832 BoundInfo *Bound, unsigned K) const {
2833 Bound[K].Lower[Dependence::DVEntry::ALL] = nullptr; // Default value = -infinity.
2834 Bound[K].Upper[Dependence::DVEntry::ALL] = nullptr; // Default value = +infinity.
2835 if (Bound[K].Iterations) {
2836 Bound[K].Lower[Dependence::DVEntry::ALL] =
2838 Bound[K].Iterations);
2839 Bound[K].Upper[Dependence::DVEntry::ALL] =
2841 Bound[K].Iterations);
2846 Bound[K].Lower[Dependence::DVEntry::ALL] =
2849 Bound[K].Upper[Dependence::DVEntry::ALL] =
2856 // using the = direction. Records them in Bound.
2871 BoundInfo *Bound, unsigned K) const {
2872 Bound[K].Lower[Dependence::DVEntry::EQ] = nullptr; // Default value = -infinity.
2873 Bound[K].Upper[Dependence::DVEntry::EQ] = nullptr; // Default value = +infinity.
2874 if (Bound[K].Iterations) {
2877 Bound[K].Lower[Dependence::DVEntry::EQ] =
2878 SE->getMulExpr(NegativePart, Bound[K].Iterations);
2880 Bound[K].Upper[Dependence::DVEntry::EQ] =
2881 SE->getMulExpr(PositivePart, Bound[K].Iterations);
2889 Bound[K].Lower[Dependence::DVEntry::EQ] = NegativePart; // Zero
2892 Bound[K].Upper[Dependence::DVEntry::EQ] = PositivePart; // Zero
2898 // using the < direction. Records them in Bound.
2911 BoundInfo *Bound, unsigned K) const {
2912 Bound[K].Lower[Dependence::DVEntry::LT] = nullptr; // Default value = -infinity.
2913 Bound[K].Upper[Dependence::DVEntry::LT] = nullptr; // Default value = +infinity.
2914 if (Bound[K].Iterations) {
2916 Bound[K].Iterations, SE->getOne(Bound[K].Iterations->getType()));
2919 Bound[K].Lower[Dependence::DVEntry::LT] =
2923 Bound[K].Upper[Dependence::DVEntry::LT] =
2932 Bound[K].Lower[Dependence::DVEntry::LT] = SE->getNegativeSCEV(B[K].Coeff);
2936 Bound[K].Upper[Dependence::DVEntry::LT] = SE->getNegativeSCEV(B[K].Coeff);
2942 // using the > direction. Records them in Bound.
2955 BoundInfo *Bound, unsigned K) const {
2956 Bound[K].Lower[Dependence::DVEntry::GT] = nullptr; // Default value = -infinity.
2957 Bound[K].Upper[Dependence::DVEntry::GT] = nullptr; // Default value = +infinity.
2958 if (Bound[K].Iterations) {
2960 Bound[K].Iterations, SE->getOne(Bound[K].Iterations->getType()));
2963 Bound[K].Lower[Dependence::DVEntry::GT] =
2967 Bound[K].Upper[Dependence::DVEntry::GT] =
2975 Bound[K].Lower[Dependence::DVEntry::GT] = A[K].Coeff;
2978 Bound[K].Upper[Dependence::DVEntry::GT] = A[K].Coeff;
3027 LLVM_DEBUG(dbgs() << "\tUpper Bound = ");
3044 const SCEV *DependenceInfo::getLowerBound(BoundInfo *Bound) const {
3045 const SCEV *Sum = Bound[1].Lower[Bound[1].Direction];
3047 if (Bound[K].Lower[Bound[K].Direction])
3048 Sum = SE->getAddExpr(Sum, Bound[K].Lower[Bound[K].Direction]);
3060 const SCEV *DependenceInfo::getUpperBound(BoundInfo *Bound) const {
3061 const SCEV *Sum = Bound[1].Upper[Bound[1].Direction];
3063 if (Bound[K].Upper[Bound[K].Direction])
3064 Sum = SE->getAddExpr(Sum, Bound[K].Upper[Bound[K].Direction]);