Lines Matching refs:Bound
2445 BoundInfo *Bound = new BoundInfo[MaxLevels + 1]; in banerjeeMIVtest() local
2452 Bound[K].Iterations = A[K].Iterations ? A[K].Iterations : B[K].Iterations; in banerjeeMIVtest()
2453 Bound[K].Direction = Dependence::DVEntry::ALL; in banerjeeMIVtest()
2454 Bound[K].DirSet = Dependence::DVEntry::NONE; in banerjeeMIVtest()
2455 findBoundsALL(A, B, Bound, K); in banerjeeMIVtest()
2458 if (Bound[K].Lower[Dependence::DVEntry::ALL]) in banerjeeMIVtest()
2459 DEBUG(dbgs() << *Bound[K].Lower[Dependence::DVEntry::ALL] << '\t'); in banerjeeMIVtest()
2462 if (Bound[K].Upper[Dependence::DVEntry::ALL]) in banerjeeMIVtest()
2463 DEBUG(dbgs() << *Bound[K].Upper[Dependence::DVEntry::ALL] << '\n'); in banerjeeMIVtest()
2471 if (testBounds(Dependence::DVEntry::ALL, 0, Bound, Delta)) { in banerjeeMIVtest()
2474 unsigned NewDeps = exploreDirections(1, A, B, Bound, in banerjeeMIVtest()
2481 Result.DV[K - 1].Direction = Old & Bound[K].DirSet; in banerjeeMIVtest()
2502 delete [] Bound; in banerjeeMIVtest()
2517 BoundInfo *Bound, in exploreDirections() argument
2526 Bound[K].DirSet |= Bound[K].Direction; in exploreDirections()
2528 switch (Bound[K].Direction) { in exploreDirections()
2554 findBoundsLT(A, B, Bound, Level); in exploreDirections()
2555 findBoundsGT(A, B, Bound, Level); in exploreDirections()
2556 findBoundsEQ(A, B, Bound, Level); in exploreDirections()
2560 if (Bound[Level].Lower[Dependence::DVEntry::LT]) in exploreDirections()
2561 DEBUG(dbgs() << *Bound[Level].Lower[Dependence::DVEntry::LT] << '\t'); in exploreDirections()
2564 if (Bound[Level].Upper[Dependence::DVEntry::LT]) in exploreDirections()
2565 DEBUG(dbgs() << *Bound[Level].Upper[Dependence::DVEntry::LT] << '\n'); in exploreDirections()
2569 if (Bound[Level].Lower[Dependence::DVEntry::EQ]) in exploreDirections()
2570 DEBUG(dbgs() << *Bound[Level].Lower[Dependence::DVEntry::EQ] << '\t'); in exploreDirections()
2573 if (Bound[Level].Upper[Dependence::DVEntry::EQ]) in exploreDirections()
2574 DEBUG(dbgs() << *Bound[Level].Upper[Dependence::DVEntry::EQ] << '\n'); in exploreDirections()
2578 if (Bound[Level].Lower[Dependence::DVEntry::GT]) in exploreDirections()
2579 DEBUG(dbgs() << *Bound[Level].Lower[Dependence::DVEntry::GT] << '\t'); in exploreDirections()
2582 if (Bound[Level].Upper[Dependence::DVEntry::GT]) in exploreDirections()
2583 DEBUG(dbgs() << *Bound[Level].Upper[Dependence::DVEntry::GT] << '\n'); in exploreDirections()
2592 if (testBounds(Dependence::DVEntry::LT, Level, Bound, Delta)) in exploreDirections()
2593 NewDeps += exploreDirections(Level + 1, A, B, Bound, in exploreDirections()
2597 if (testBounds(Dependence::DVEntry::EQ, Level, Bound, Delta)) in exploreDirections()
2598 NewDeps += exploreDirections(Level + 1, A, B, Bound, in exploreDirections()
2602 if (testBounds(Dependence::DVEntry::GT, Level, Bound, Delta)) in exploreDirections()
2603 NewDeps += exploreDirections(Level + 1, A, B, Bound, in exploreDirections()
2606 Bound[Level].Direction = Dependence::DVEntry::ALL; in exploreDirections()
2610 return exploreDirections(Level + 1, A, B, Bound, Loops, DepthExpanded, Delta); in exploreDirections()
2617 BoundInfo *Bound, in testBounds() argument
2619 Bound[Level].Direction = DirKind; in testBounds()
2620 if (const SCEV *LowerBound = getLowerBound(Bound)) in testBounds()
2623 if (const SCEV *UpperBound = getUpperBound(Bound)) in testBounds()
2647 BoundInfo *Bound, in findBoundsALL() argument
2649 Bound[K].Lower[Dependence::DVEntry::ALL] = nullptr; // Default value = -infinity. in findBoundsALL()
2650 Bound[K].Upper[Dependence::DVEntry::ALL] = nullptr; // Default value = +infinity. in findBoundsALL()
2651 if (Bound[K].Iterations) { in findBoundsALL()
2652 Bound[K].Lower[Dependence::DVEntry::ALL] = in findBoundsALL()
2654 Bound[K].Iterations); in findBoundsALL()
2655 Bound[K].Upper[Dependence::DVEntry::ALL] = in findBoundsALL()
2657 Bound[K].Iterations); in findBoundsALL()
2662 Bound[K].Lower[Dependence::DVEntry::ALL] = in findBoundsALL()
2665 Bound[K].Upper[Dependence::DVEntry::ALL] = in findBoundsALL()
2688 BoundInfo *Bound, in findBoundsEQ() argument
2690 Bound[K].Lower[Dependence::DVEntry::EQ] = nullptr; // Default value = -infinity. in findBoundsEQ()
2691 Bound[K].Upper[Dependence::DVEntry::EQ] = nullptr; // Default value = +infinity. in findBoundsEQ()
2692 if (Bound[K].Iterations) { in findBoundsEQ()
2695 Bound[K].Lower[Dependence::DVEntry::EQ] = in findBoundsEQ()
2696 SE->getMulExpr(NegativePart, Bound[K].Iterations); in findBoundsEQ()
2698 Bound[K].Upper[Dependence::DVEntry::EQ] = in findBoundsEQ()
2699 SE->getMulExpr(PositivePart, Bound[K].Iterations); in findBoundsEQ()
2707 Bound[K].Lower[Dependence::DVEntry::EQ] = NegativePart; // Zero in findBoundsEQ()
2710 Bound[K].Upper[Dependence::DVEntry::EQ] = PositivePart; // Zero in findBoundsEQ()
2730 BoundInfo *Bound, in findBoundsLT() argument
2732 Bound[K].Lower[Dependence::DVEntry::LT] = nullptr; // Default value = -infinity. in findBoundsLT()
2733 Bound[K].Upper[Dependence::DVEntry::LT] = nullptr; // Default value = +infinity. in findBoundsLT()
2734 if (Bound[K].Iterations) { in findBoundsLT()
2736 SE->getMinusSCEV(Bound[K].Iterations, in findBoundsLT()
2737 SE->getConstant(Bound[K].Iterations->getType(), 1)); in findBoundsLT()
2740 Bound[K].Lower[Dependence::DVEntry::LT] = in findBoundsLT()
2744 Bound[K].Upper[Dependence::DVEntry::LT] = in findBoundsLT()
2753 Bound[K].Lower[Dependence::DVEntry::LT] = SE->getNegativeSCEV(B[K].Coeff); in findBoundsLT()
2757 Bound[K].Upper[Dependence::DVEntry::LT] = SE->getNegativeSCEV(B[K].Coeff); in findBoundsLT()
2777 BoundInfo *Bound, in findBoundsGT() argument
2779 Bound[K].Lower[Dependence::DVEntry::GT] = nullptr; // Default value = -infinity. in findBoundsGT()
2780 Bound[K].Upper[Dependence::DVEntry::GT] = nullptr; // Default value = +infinity. in findBoundsGT()
2781 if (Bound[K].Iterations) { in findBoundsGT()
2783 SE->getMinusSCEV(Bound[K].Iterations, in findBoundsGT()
2784 SE->getConstant(Bound[K].Iterations->getType(), 1)); in findBoundsGT()
2787 Bound[K].Lower[Dependence::DVEntry::GT] = in findBoundsGT()
2791 Bound[K].Upper[Dependence::DVEntry::GT] = in findBoundsGT()
2799 Bound[K].Lower[Dependence::DVEntry::GT] = A[K].Coeff; in findBoundsGT()
2802 Bound[K].Upper[Dependence::DVEntry::GT] = A[K].Coeff; in findBoundsGT()
2869 const SCEV *DependenceAnalysis::getLowerBound(BoundInfo *Bound) const { in getLowerBound()
2870 const SCEV *Sum = Bound[1].Lower[Bound[1].Direction]; in getLowerBound()
2872 if (Bound[K].Lower[Bound[K].Direction]) in getLowerBound()
2873 Sum = SE->getAddExpr(Sum, Bound[K].Lower[Bound[K].Direction]); in getLowerBound()
2885 const SCEV *DependenceAnalysis::getUpperBound(BoundInfo *Bound) const { in getUpperBound()
2886 const SCEV *Sum = Bound[1].Upper[Bound[1].Direction]; in getUpperBound()
2888 if (Bound[K].Upper[Bound[K].Direction]) in getUpperBound()
2889 Sum = SE->getAddExpr(Sum, Bound[K].Upper[Bound[K].Direction]); in getUpperBound()