Lines Matching refs:Pair
894 for (Subscript *Pair : Pairs) { in unifySubscriptType()
895 const SCEV *Src = Pair->Src; in unifySubscriptType()
896 const SCEV *Dst = Pair->Dst; in unifySubscriptType()
919 for (Subscript *Pair : Pairs) { in unifySubscriptType()
920 const SCEV *Src = Pair->Src; in unifySubscriptType()
921 const SCEV *Dst = Pair->Dst; in unifySubscriptType()
932 Pair->Src = SE->getSignExtendExpr(Src, widestType); in unifySubscriptType()
935 Pair->Dst = SE->getSignExtendExpr(Dst, widestType); in unifySubscriptType()
944 void DependenceInfo::removeMatchingExtensions(Subscript *Pair) { in removeMatchingExtensions() argument
945 const SCEV *Src = Pair->Src; in removeMatchingExtensions()
946 const SCEV *Dst = Pair->Dst; in removeMatchingExtensions()
954 Pair->Src = SrcCastOp; in removeMatchingExtensions()
955 Pair->Dst = DstCastOp; in removeMatchingExtensions()
3351 SmallVectorImpl<Subscript> &Pair) { in tryDelinearize() argument
3390 Pair.resize(Size); in tryDelinearize()
3392 Pair[I].Src = SrcSubscripts[I]; in tryDelinearize()
3393 Pair[I].Dst = DstSubscripts[I]; in tryDelinearize()
3394 unifySubscriptType(&Pair[I]); in tryDelinearize()
3635 SmallVector<Subscript, 2> Pair(Pairs); in depends() local
3650 Pair[0].Src = SrcSCEV; in depends()
3651 Pair[0].Dst = DstSCEV; in depends()
3654 if (tryDelinearize(Src, Dst, Pair)) { in depends()
3656 Pairs = Pair.size(); in depends()
3661 Pair[P].Loops.resize(MaxLevels + 1); in depends()
3662 Pair[P].GroupLoops.resize(MaxLevels + 1); in depends()
3663 Pair[P].Group.resize(Pairs); in depends()
3664 removeMatchingExtensions(&Pair[P]); in depends()
3665 Pair[P].Classification = in depends()
3666 classifyPair(Pair[P].Src, LI->getLoopFor(Src->getParent()), in depends()
3667 Pair[P].Dst, LI->getLoopFor(Dst->getParent()), in depends()
3668 Pair[P].Loops); in depends()
3669 Pair[P].GroupLoops = Pair[P].Loops; in depends()
3670 Pair[P].Group.set(P); in depends()
3672 LLVM_DEBUG(dbgs() << "\tsrc = " << *Pair[P].Src << "\n"); in depends()
3673 LLVM_DEBUG(dbgs() << "\tdst = " << *Pair[P].Dst << "\n"); in depends()
3674 LLVM_DEBUG(dbgs() << "\tclass = " << Pair[P].Classification << "\n"); in depends()
3676 LLVM_DEBUG(dumpSmallBitVector(Pair[P].Loops)); in depends()
3740 if (Pair[SI].Classification == Subscript::NonLinear) { in depends()
3743 collectCommonLoops(Pair[SI].Src, in depends()
3745 Pair[SI].Loops); in depends()
3746 collectCommonLoops(Pair[SI].Dst, in depends()
3748 Pair[SI].Loops); in depends()
3750 } else if (Pair[SI].Classification == Subscript::ZIV) { in depends()
3758 SmallBitVector Intersection = Pair[SI].GroupLoops; in depends()
3759 Intersection &= Pair[SJ].GroupLoops; in depends()
3762 Pair[SJ].GroupLoops |= Pair[SI].GroupLoops; in depends()
3764 Pair[SJ].Group |= Pair[SI].Group; in depends()
3769 if (Pair[SI].Group.count() == 1) { in depends()
3792 switch (Pair[SI].Classification) { in depends()
3795 if (testZIV(Pair[SI].Src, Pair[SI].Dst, Result)) in depends()
3802 if (testSIV(Pair[SI].Src, Pair[SI].Dst, Level, Result, NewConstraint, in depends()
3809 if (testRDIV(Pair[SI].Src, Pair[SI].Dst, Result)) in depends()
3814 if (testMIV(Pair[SI].Src, Pair[SI].Dst, Pair[SI].Loops, Result)) in depends()
3831 SmallBitVector Group(Pair[SI].Group); in depends()
3838 if (Pair[SJ].Classification == Subscript::SIV) in depends()
3842 PairsInGroup.push_back(&Pair[SJ]); in depends()
3854 if (testSIV(Pair[SJ].Src, Pair[SJ].Dst, Level, Result, NewConstraint, in depends()
3875 if (propagate(Pair[SJ].Src, Pair[SJ].Dst, Pair[SJ].Loops, in depends()
3879 Pair[SJ].Classification = in depends()
3880 classifyPair(Pair[SJ].Src, LI->getLoopFor(Src->getParent()), in depends()
3881 Pair[SJ].Dst, LI->getLoopFor(Dst->getParent()), in depends()
3882 Pair[SJ].Loops); in depends()
3883 switch (Pair[SJ].Classification) { in depends()
3886 if (testZIV(Pair[SJ].Src, Pair[SJ].Dst, Result)) in depends()
3907 if (Pair[SJ].Classification == Subscript::RDIV) { in depends()
3909 if (testRDIV(Pair[SJ].Src, Pair[SJ].Dst, Result)) in depends()
3920 if (Pair[SJ].Classification == Subscript::MIV) { in depends()
3922 if (testMIV(Pair[SJ].Src, Pair[SJ].Dst, Pair[SJ].Loops, Result)) in depends()
3944 CompleteLoops |= Pair[SI].Loops; in depends()
4046 SmallVector<Subscript, 2> Pair(Pairs); in getSplitIteration() local
4049 Pair[0].Src = SrcSCEV; in getSplitIteration()
4050 Pair[0].Dst = DstSCEV; in getSplitIteration()
4053 if (tryDelinearize(Src, Dst, Pair)) { in getSplitIteration()
4055 Pairs = Pair.size(); in getSplitIteration()
4060 Pair[P].Loops.resize(MaxLevels + 1); in getSplitIteration()
4061 Pair[P].GroupLoops.resize(MaxLevels + 1); in getSplitIteration()
4062 Pair[P].Group.resize(Pairs); in getSplitIteration()
4063 removeMatchingExtensions(&Pair[P]); in getSplitIteration()
4064 Pair[P].Classification = in getSplitIteration()
4065 classifyPair(Pair[P].Src, LI->getLoopFor(Src->getParent()), in getSplitIteration()
4066 Pair[P].Dst, LI->getLoopFor(Dst->getParent()), in getSplitIteration()
4067 Pair[P].Loops); in getSplitIteration()
4068 Pair[P].GroupLoops = Pair[P].Loops; in getSplitIteration()
4069 Pair[P].Group.set(P); in getSplitIteration()
4077 if (Pair[SI].Classification == Subscript::NonLinear) { in getSplitIteration()
4079 collectCommonLoops(Pair[SI].Src, in getSplitIteration()
4081 Pair[SI].Loops); in getSplitIteration()
4082 collectCommonLoops(Pair[SI].Dst, in getSplitIteration()
4084 Pair[SI].Loops); in getSplitIteration()
4087 else if (Pair[SI].Classification == Subscript::ZIV) in getSplitIteration()
4093 SmallBitVector Intersection = Pair[SI].GroupLoops; in getSplitIteration()
4094 Intersection &= Pair[SJ].GroupLoops; in getSplitIteration()
4097 Pair[SJ].GroupLoops |= Pair[SI].GroupLoops; in getSplitIteration()
4099 Pair[SJ].Group |= Pair[SI].Group; in getSplitIteration()
4104 if (Pair[SI].Group.count() == 1) in getSplitIteration()
4117 switch (Pair[SI].Classification) { in getSplitIteration()
4121 (void) testSIV(Pair[SI].Src, Pair[SI].Dst, Level, in getSplitIteration()
4144 SmallBitVector Group(Pair[SI].Group); in getSplitIteration()
4149 if (Pair[SJ].Classification == Subscript::SIV) in getSplitIteration()
4160 (void) testSIV(Pair[SJ].Src, Pair[SJ].Dst, Level, in getSplitIteration()
4173 if (propagate(Pair[SJ].Src, Pair[SJ].Dst, in getSplitIteration()
4174 Pair[SJ].Loops, Constraints, Result.Consistent)) { in getSplitIteration()
4175 Pair[SJ].Classification = in getSplitIteration()
4176 classifyPair(Pair[SJ].Src, LI->getLoopFor(Src->getParent()), in getSplitIteration()
4177 Pair[SJ].Dst, LI->getLoopFor(Dst->getParent()), in getSplitIteration()
4178 Pair[SJ].Loops); in getSplitIteration()
4179 switch (Pair[SJ].Classification) { in getSplitIteration()