Lines Matching refs:Level

189             for (unsigned Level = 1; Level <= D->getLevels(); Level++) {  in dumpExampleDependence()  local
190 if (D->isSplitable(Level)) { in dumpExampleDependence()
191 OS << " da analyze - split level = " << Level; in dumpExampleDependence()
192 OS << ", iteration = " << *DA->getSplitIteration(*D, Level); in dumpExampleDependence()
269 unsigned FullDependence::getDirection(unsigned Level) const { in getDirection()
270 assert(0 < Level && Level <= Levels && "Level out of range"); in getDirection()
271 return DV[Level - 1].Direction; in getDirection()
276 const SCEV *FullDependence::getDistance(unsigned Level) const { in getDistance()
277 assert(0 < Level && Level <= Levels && "Level out of range"); in getDistance()
278 return DV[Level - 1].Distance; in getDistance()
285 bool FullDependence::isScalar(unsigned Level) const { in isScalar()
286 assert(0 < Level && Level <= Levels && "Level out of range"); in isScalar()
287 return DV[Level - 1].Scalar; in isScalar()
293 bool FullDependence::isPeelFirst(unsigned Level) const { in isPeelFirst()
294 assert(0 < Level && Level <= Levels && "Level out of range"); in isPeelFirst()
295 return DV[Level - 1].PeelFirst; in isPeelFirst()
301 bool FullDependence::isPeelLast(unsigned Level) const { in isPeelLast()
302 assert(0 < Level && Level <= Levels && "Level out of range"); in isPeelLast()
303 return DV[Level - 1].PeelLast; in isPeelLast()
308 bool FullDependence::isSplitable(unsigned Level) const { in isSplitable()
309 assert(0 < Level && Level <= Levels && "Level out of range"); in isSplitable()
310 return DV[Level - 1].Splitable; in isSplitable()
807 unsigned Level = LoopNest->getLoopDepth(); in collectCommonLoops() local
808 if (Level <= CommonLevels && !SE->isLoopInvariant(Expression, LoopNest)) in collectCommonLoops()
809 Loops.set(Level); in collectCommonLoops()
1147 unsigned Level, FullDependence &Result, in strongSIVtest() argument
1157 assert(0 < Level && Level <= CommonLevels && "level out of range"); in strongSIVtest()
1158 Level--; in strongSIVtest()
1197 Result.DV[Level].Distance = SE->getConstant(Distance); in strongSIVtest()
1200 Result.DV[Level].Direction &= Dependence::DVEntry::LT; in strongSIVtest()
1202 Result.DV[Level].Direction &= Dependence::DVEntry::GT; in strongSIVtest()
1204 Result.DV[Level].Direction &= Dependence::DVEntry::EQ; in strongSIVtest()
1209 Result.DV[Level].Distance = Delta; in strongSIVtest()
1211 Result.DV[Level].Direction &= Dependence::DVEntry::EQ; in strongSIVtest()
1217 Result.DV[Level].Distance = Delta; // since X/1 == X in strongSIVtest()
1245 if (NewDirection < Result.DV[Level].Direction) in strongSIVtest()
1247 Result.DV[Level].Direction &= NewDirection; in strongSIVtest()
1283 const Loop *CurLoop, unsigned Level, FullDependence &Result, in weakCrossingSIVtest() argument
1290 assert(0 < Level && Level <= CommonLevels && "Level out of range"); in weakCrossingSIVtest()
1291 Level--; in weakCrossingSIVtest()
1297 Result.DV[Level].Direction &= unsigned(~Dependence::DVEntry::LT); in weakCrossingSIVtest()
1298 Result.DV[Level].Direction &= unsigned(~Dependence::DVEntry::GT); in weakCrossingSIVtest()
1300 if (!Result.DV[Level].Direction) { in weakCrossingSIVtest()
1304 Result.DV[Level].Distance = Delta; // = 0 in weakCrossingSIVtest()
1311 Result.DV[Level].Splitable = true; in weakCrossingSIVtest()
1357 Result.DV[Level].Direction &= unsigned(~Dependence::DVEntry::LT); in weakCrossingSIVtest()
1358 Result.DV[Level].Direction &= unsigned(~Dependence::DVEntry::GT); in weakCrossingSIVtest()
1360 if (!Result.DV[Level].Direction) { in weakCrossingSIVtest()
1364 Result.DV[Level].Splitable = false; in weakCrossingSIVtest()
1365 Result.DV[Level].Distance = SE->getZero(Delta->getType()); in weakCrossingSIVtest()
1391 Result.DV[Level].Direction &= unsigned(~Dependence::DVEntry::EQ); in weakCrossingSIVtest()
1483 const Loop *CurLoop, unsigned Level, in exactSIVtest() argument
1492 assert(0 < Level && Level <= CommonLevels && "Level out of range"); in exactSIVtest()
1493 Level--; in exactSIVtest()
1624 Result.DV[Level].Direction &= NewDirection; in exactSIVtest()
1625 if (Result.DV[Level].Direction == Dependence::DVEntry::NONE) in exactSIVtest()
1629 return Result.DV[Level].Direction == Dependence::DVEntry::NONE; in exactSIVtest()
1677 const Loop *CurLoop, unsigned Level, in weakZeroSrcSIVtest() argument
1688 assert(0 < Level && Level <= MaxLevels && "Level out of range"); in weakZeroSrcSIVtest()
1689 Level--; in weakZeroSrcSIVtest()
1696 if (Level < CommonLevels) { in weakZeroSrcSIVtest()
1697 Result.DV[Level].Direction &= Dependence::DVEntry::GE; in weakZeroSrcSIVtest()
1698 Result.DV[Level].PeelFirst = true; in weakZeroSrcSIVtest()
1724 if (Level < CommonLevels) { in weakZeroSrcSIVtest()
1725 Result.DV[Level].Direction &= Dependence::DVEntry::LE; in weakZeroSrcSIVtest()
1726 Result.DV[Level].PeelLast = true; in weakZeroSrcSIVtest()
1787 const Loop *CurLoop, unsigned Level, in weakZeroDstSIVtest() argument
1797 assert(0 < Level && Level <= SrcLevels && "Level out of range"); in weakZeroDstSIVtest()
1798 Level--; in weakZeroDstSIVtest()
1805 if (Level < CommonLevels) { in weakZeroDstSIVtest()
1806 Result.DV[Level].Direction &= Dependence::DVEntry::LE; in weakZeroDstSIVtest()
1807 Result.DV[Level].PeelFirst = true; in weakZeroDstSIVtest()
1833 if (Level < CommonLevels) { in weakZeroDstSIVtest()
1834 Result.DV[Level].Direction &= Dependence::DVEntry::GE; in weakZeroDstSIVtest()
1835 Result.DV[Level].PeelLast = true; in weakZeroDstSIVtest()
2141 bool DependenceInfo::testSIV(const SCEV *Src, const SCEV *Dst, unsigned &Level, in testSIV() argument
2156 Level = mapSrcLoop(CurLoop); in testSIV()
2160 Level, Result, NewConstraint); in testSIV()
2163 Level, Result, NewConstraint, SplitIter); in testSIV()
2166 Level, Result, NewConstraint); in testSIV()
2176 Level = mapSrcLoop(CurLoop); in testSIV()
2178 Level, Result, NewConstraint) || in testSIV()
2186 Level = mapDstLoop(CurLoop); in testSIV()
2188 CurLoop, Level, Result, NewConstraint) || in testSIV()
2474 unsigned Level = mapSrcLoop(CurLoop); in gcdMIVtest() local
2475 Result.DV[Level - 1].Direction &= unsigned(~Dependence::DVEntry::EQ); in gcdMIVtest()
2600 unsigned DependenceInfo::exploreDirections(unsigned Level, CoefficientInfo *A, in exploreDirections() argument
2605 if (Level > CommonLevels) { in exploreDirections()
2634 if (Loops[Level]) { in exploreDirections()
2635 if (Level > DepthExpanded) { in exploreDirections()
2636 DepthExpanded = Level; in exploreDirections()
2638 findBoundsLT(A, B, Bound, Level); in exploreDirections()
2639 findBoundsGT(A, B, Bound, Level); in exploreDirections()
2640 findBoundsEQ(A, B, Bound, Level); in exploreDirections()
2642 LLVM_DEBUG(dbgs() << "\tBound for level = " << Level << '\n'); in exploreDirections()
2644 if (Bound[Level].Lower[Dependence::DVEntry::LT]) in exploreDirections()
2645 LLVM_DEBUG(dbgs() << *Bound[Level].Lower[Dependence::DVEntry::LT] in exploreDirections()
2649 if (Bound[Level].Upper[Dependence::DVEntry::LT]) in exploreDirections()
2650 LLVM_DEBUG(dbgs() << *Bound[Level].Upper[Dependence::DVEntry::LT] in exploreDirections()
2655 if (Bound[Level].Lower[Dependence::DVEntry::EQ]) in exploreDirections()
2656 LLVM_DEBUG(dbgs() << *Bound[Level].Lower[Dependence::DVEntry::EQ] in exploreDirections()
2660 if (Bound[Level].Upper[Dependence::DVEntry::EQ]) in exploreDirections()
2661 LLVM_DEBUG(dbgs() << *Bound[Level].Upper[Dependence::DVEntry::EQ] in exploreDirections()
2666 if (Bound[Level].Lower[Dependence::DVEntry::GT]) in exploreDirections()
2667 LLVM_DEBUG(dbgs() << *Bound[Level].Lower[Dependence::DVEntry::GT] in exploreDirections()
2671 if (Bound[Level].Upper[Dependence::DVEntry::GT]) in exploreDirections()
2672 LLVM_DEBUG(dbgs() << *Bound[Level].Upper[Dependence::DVEntry::GT] in exploreDirections()
2682 if (testBounds(Dependence::DVEntry::LT, Level, Bound, Delta)) in exploreDirections()
2683 NewDeps += exploreDirections(Level + 1, A, B, Bound, in exploreDirections()
2687 if (testBounds(Dependence::DVEntry::EQ, Level, Bound, Delta)) in exploreDirections()
2688 NewDeps += exploreDirections(Level + 1, A, B, Bound, in exploreDirections()
2692 if (testBounds(Dependence::DVEntry::GT, Level, Bound, Delta)) in exploreDirections()
2693 NewDeps += exploreDirections(Level + 1, A, B, Bound, in exploreDirections()
2696 Bound[Level].Direction = Dependence::DVEntry::ALL; in exploreDirections()
2700 return exploreDirections(Level + 1, A, B, Bound, Loops, DepthExpanded, Delta); in exploreDirections()
2705 bool DependenceInfo::testBounds(unsigned char DirKind, unsigned Level, in testBounds() argument
2707 Bound[Level].Direction = DirKind; in testBounds()
3199 void DependenceInfo::updateDirection(Dependence::DVEntry &Level, in updateDirection() argument
3207 Level.Scalar = false; in updateDirection()
3208 Level.Distance = CurConstraint.getD(); in updateDirection()
3210 if (!SE->isKnownNonZero(Level.Distance)) // if may be zero in updateDirection()
3212 if (!SE->isKnownNonPositive(Level.Distance)) // if may be positive in updateDirection()
3214 if (!SE->isKnownNonNegative(Level.Distance)) // if may be negative in updateDirection()
3216 Level.Direction &= NewDirection; in updateDirection()
3219 Level.Scalar = false; in updateDirection()
3220 Level.Distance = nullptr; in updateDirection()
3224 Level.Scalar = false; in updateDirection()
3225 Level.Distance = nullptr; in updateDirection()
3242 Level.Direction &= NewDirection; in updateDirection()
3716 unsigned Level; in depends() local
3718 if (testSIV(Pair[SI].Src, Pair[SI].Dst, Level, Result, NewConstraint, in depends()
3767 unsigned Level; in depends() local
3770 if (testSIV(Pair[SJ].Src, Pair[SJ].Dst, Level, Result, NewConstraint, in depends()
3773 ConstrainedLevels.set(Level); in depends()
3774 if (intersectConstraints(&Constraints[Level], &NewConstraint)) { in depends()
3775 if (Constraints[Level].isEmpty()) { in depends()
4035 unsigned Level; in getSplitIteration() local
4037 (void) testSIV(Pair[SI].Src, Pair[SI].Dst, Level, in getSplitIteration()
4039 if (Level == SplitLevel) { in getSplitIteration()
4074 unsigned Level; in getSplitIteration() local
4076 (void) testSIV(Pair[SJ].Src, Pair[SJ].Dst, Level, in getSplitIteration()
4078 if (Level == SplitLevel && SplitIter) in getSplitIteration()
4080 ConstrainedLevels.set(Level); in getSplitIteration()
4081 if (intersectConstraints(&Constraints[Level], &NewConstraint)) in getSplitIteration()