Lines Matching refs:Pair
790 void DependenceAnalysis::removeMatchingExtensions(Subscript *Pair) { in removeMatchingExtensions() argument
791 const SCEV *Src = Pair->Src; in removeMatchingExtensions()
792 const SCEV *Dst = Pair->Dst; in removeMatchingExtensions()
798 Pair->Src = SrcCast->getOperand(); in removeMatchingExtensions()
799 Pair->Dst = DstCast->getOperand(); in removeMatchingExtensions()
3185 SmallVectorImpl<Subscript> &Pair) const { in tryDelinearize()
3213 Pair.resize(size); in tryDelinearize()
3215 Pair[i].Src = SrcSubscripts[i]; in tryDelinearize()
3216 Pair[i].Dst = DstSubscripts[i]; in tryDelinearize()
3314 SmallVector<Subscript, 4> Pair(Pairs); in depends() local
3323 Pair[P].Src = SE->getSCEV(*SrcIdx); in depends()
3324 Pair[P].Dst = SE->getSCEV(*DstIdx); in depends()
3333 Pair[0].Src = SrcSCEV; in depends()
3334 Pair[0].Dst = DstSCEV; in depends()
3338 tryDelinearize(Pair[0].Src, Pair[0].Dst, Pair)) { in depends()
3340 Pairs = Pair.size(); in depends()
3344 Pair[P].Loops.resize(MaxLevels + 1); in depends()
3345 Pair[P].GroupLoops.resize(MaxLevels + 1); in depends()
3346 Pair[P].Group.resize(Pairs); in depends()
3347 removeMatchingExtensions(&Pair[P]); in depends()
3348 Pair[P].Classification = in depends()
3349 classifyPair(Pair[P].Src, LI->getLoopFor(Src->getParent()), in depends()
3350 Pair[P].Dst, LI->getLoopFor(Dst->getParent()), in depends()
3351 Pair[P].Loops); in depends()
3352 Pair[P].GroupLoops = Pair[P].Loops; in depends()
3353 Pair[P].Group.set(P); in depends()
3355 DEBUG(dbgs() << "\tsrc = " << *Pair[P].Src << "\n"); in depends()
3356 DEBUG(dbgs() << "\tdst = " << *Pair[P].Dst << "\n"); in depends()
3357 DEBUG(dbgs() << "\tclass = " << Pair[P].Classification << "\n"); in depends()
3359 DEBUG(dumpSmallBitVector(Pair[P].Loops)); in depends()
3423 if (Pair[SI].Classification == Subscript::NonLinear) { in depends()
3426 collectCommonLoops(Pair[SI].Src, in depends()
3428 Pair[SI].Loops); in depends()
3429 collectCommonLoops(Pair[SI].Dst, in depends()
3431 Pair[SI].Loops); in depends()
3434 else if (Pair[SI].Classification == Subscript::ZIV) { in depends()
3442 SmallBitVector Intersection = Pair[SI].GroupLoops; in depends()
3443 Intersection &= Pair[SJ].GroupLoops; in depends()
3446 Pair[SJ].GroupLoops |= Pair[SI].GroupLoops; in depends()
3448 Pair[SJ].Group |= Pair[SI].Group; in depends()
3453 if (Pair[SI].Group.count() == 1) { in depends()
3476 switch (Pair[SI].Classification) { in depends()
3479 if (testZIV(Pair[SI].Src, Pair[SI].Dst, Result)) in depends()
3486 if (testSIV(Pair[SI].Src, Pair[SI].Dst, Level, in depends()
3493 if (testRDIV(Pair[SI].Src, Pair[SI].Dst, Result)) in depends()
3498 if (testMIV(Pair[SI].Src, Pair[SI].Dst, Pair[SI].Loops, Result)) in depends()
3515 SmallBitVector Group(Pair[SI].Group); in depends()
3521 if (Pair[SJ].Classification == Subscript::SIV) in depends()
3535 if (testSIV(Pair[SJ].Src, Pair[SJ].Dst, Level, in depends()
3556 if (propagate(Pair[SJ].Src, Pair[SJ].Dst, Pair[SJ].Loops, in depends()
3560 Pair[SJ].Classification = in depends()
3561 classifyPair(Pair[SJ].Src, LI->getLoopFor(Src->getParent()), in depends()
3562 Pair[SJ].Dst, LI->getLoopFor(Dst->getParent()), in depends()
3563 Pair[SJ].Loops); in depends()
3564 switch (Pair[SJ].Classification) { in depends()
3567 if (testZIV(Pair[SJ].Src, Pair[SJ].Dst, Result)) in depends()
3588 if (Pair[SJ].Classification == Subscript::RDIV) { in depends()
3590 if (testRDIV(Pair[SJ].Src, Pair[SJ].Dst, Result)) in depends()
3601 if (Pair[SJ].Classification == Subscript::MIV) { in depends()
3603 if (testMIV(Pair[SJ].Src, Pair[SJ].Dst, Pair[SJ].Loops, Result)) in depends()
3624 CompleteLoops |= Pair[SI].Loops; in depends()
3742 SmallVector<Subscript, 4> Pair(Pairs); in getSplitIteration() local
3750 Pair[P].Src = SE->getSCEV(*SrcIdx); in getSplitIteration()
3751 Pair[P].Dst = SE->getSCEV(*DstIdx); in getSplitIteration()
3757 Pair[0].Src = SrcSCEV; in getSplitIteration()
3758 Pair[0].Dst = DstSCEV; in getSplitIteration()
3762 tryDelinearize(Pair[0].Src, Pair[0].Dst, Pair)) { in getSplitIteration()
3764 Pairs = Pair.size(); in getSplitIteration()
3768 Pair[P].Loops.resize(MaxLevels + 1); in getSplitIteration()
3769 Pair[P].GroupLoops.resize(MaxLevels + 1); in getSplitIteration()
3770 Pair[P].Group.resize(Pairs); in getSplitIteration()
3771 removeMatchingExtensions(&Pair[P]); in getSplitIteration()
3772 Pair[P].Classification = in getSplitIteration()
3773 classifyPair(Pair[P].Src, LI->getLoopFor(Src->getParent()), in getSplitIteration()
3774 Pair[P].Dst, LI->getLoopFor(Dst->getParent()), in getSplitIteration()
3775 Pair[P].Loops); in getSplitIteration()
3776 Pair[P].GroupLoops = Pair[P].Loops; in getSplitIteration()
3777 Pair[P].Group.set(P); in getSplitIteration()
3785 if (Pair[SI].Classification == Subscript::NonLinear) { in getSplitIteration()
3787 collectCommonLoops(Pair[SI].Src, in getSplitIteration()
3789 Pair[SI].Loops); in getSplitIteration()
3790 collectCommonLoops(Pair[SI].Dst, in getSplitIteration()
3792 Pair[SI].Loops); in getSplitIteration()
3795 else if (Pair[SI].Classification == Subscript::ZIV) in getSplitIteration()
3801 SmallBitVector Intersection = Pair[SI].GroupLoops; in getSplitIteration()
3802 Intersection &= Pair[SJ].GroupLoops; in getSplitIteration()
3805 Pair[SJ].GroupLoops |= Pair[SI].GroupLoops; in getSplitIteration()
3807 Pair[SJ].Group |= Pair[SI].Group; in getSplitIteration()
3812 if (Pair[SI].Group.count() == 1) in getSplitIteration()
3825 switch (Pair[SI].Classification) { in getSplitIteration()
3829 (void) testSIV(Pair[SI].Src, Pair[SI].Dst, Level, in getSplitIteration()
3852 SmallBitVector Group(Pair[SI].Group); in getSplitIteration()
3857 if (Pair[SJ].Classification == Subscript::SIV) in getSplitIteration()
3868 (void) testSIV(Pair[SJ].Src, Pair[SJ].Dst, Level, in getSplitIteration()
3881 if (propagate(Pair[SJ].Src, Pair[SJ].Dst, in getSplitIteration()
3882 Pair[SJ].Loops, Constraints, Result.Consistent)) { in getSplitIteration()
3883 Pair[SJ].Classification = in getSplitIteration()
3884 classifyPair(Pair[SJ].Src, LI->getLoopFor(Src->getParent()), in getSplitIteration()
3885 Pair[SJ].Dst, LI->getLoopFor(Dst->getParent()), in getSplitIteration()
3886 Pair[SJ].Loops); in getSplitIteration()
3887 switch (Pair[SJ].Classification) { in getSplitIteration()