Lines Matching refs:Dst

190   return Src->mayReadFromMemory() && Dst->mayReadFromMemory();
196 return Src->mayWriteToMemory() && Dst->mayWriteToMemory();
202 return Src->mayWriteToMemory() && Dst->mayReadFromMemory();
208 return Src->mayReadFromMemory() && Dst->mayWriteToMemory();
660 // Examines the loop nesting of the Src and Dst
677 // ... - loops containing Src but not Dst
678 // SrcLevels - innermost loop containing Src but not Dst
679 // ... - loops containing Dst but not Src
680 // MaxLevels - innermost loops containing Dst but not Src
699 // to A (the Src) and the load from A (the Dst), we'll note that they
711 const Instruction *Dst) {
713 const BasicBlock *DstBlock = Dst->getParent();
787 const SCEV *Dst = Pair->Dst;
788 if ((isa<SCEVZeroExtendExpr>(Src) && isa<SCEVZeroExtendExpr>(Dst)) ||
789 (isa<SCEVSignExtendExpr>(Src) && isa<SCEVSignExtendExpr>(Dst))) {
791 const SCEVCastExpr *DstCast = cast<SCEVCastExpr>(Dst);
794 Pair->Dst = DstCast->getOperand();
820 bool DependenceAnalysis::checkDstSubscript(const SCEV *Dst,
823 const SCEVAddRecExpr *AddRec = dyn_cast<SCEVAddRecExpr>(Dst);
825 return isLoopInvariant(Dst, LoopNest);
835 // Examines the subscript pair (the Src and Dst SCEVs)
840 const SCEV *Dst, const Loop *DstLoopNest,
846 if (!checkDstSubscript(Dst, DstLoopNest, DstLoops))
956 const SCEV *Dst,
959 DEBUG(dbgs() << " dst = " << *Dst << "\n");
961 if (isKnownPredicate(CmpInst::ICMP_EQ, Src, Dst)) {
965 if (isKnownPredicate(CmpInst::ICMP_NE, Src, Dst)) {
1584 // the Src and Dst loops. If it isn't, then there's no need to
1695 // Src and Dst loops. If it isn't, then there's no need to record a direction.
2035 const SCEV *Dst,
2041 DEBUG(dbgs() << " dst = " << *Dst << "\n");
2043 const SCEVAddRecExpr *DstAddRec = dyn_cast<SCEVAddRecExpr>(Dst);
2064 gcdMIVtest(Src, Dst, Result) ||
2070 const SCEV *DstConst = Dst;
2075 gcdMIVtest(Src, Dst, Result);
2085 gcdMIVtest(Src, Dst, Result);
2106 const SCEV *Dst,
2119 DEBUG(dbgs() << " dst = " << *Dst << "\n");
2121 const SCEVAddRecExpr *DstAddRec = dyn_cast<SCEVAddRecExpr>(Dst);
2136 DstConst = Dst;
2162 gcdMIVtest(Src, Dst, Result) ||
2169 // Tests the single-subscript MIV pair (Src and Dst) for dependence.
2173 const SCEV *Dst,
2177 DEBUG(dbgs() << " dst = " << *Dst << "\n");
2179 return gcdMIVtest(Src, Dst, Result) ||
2180 banerjeeMIVtest(Src, Dst, Loops, Result);
2215 const SCEV *Dst,
2243 // Examine Dst coefficients.
2247 Coefficients = Dst;
2345 Inner = Dst;
2429 const SCEV *Dst,
2437 DEBUG(dbgs() << " Dst = " << *Dst << '\n');
2439 CoefficientInfo *B = collectCoeffInfo(Dst, false, B0);
2963 // to simplify a subscript pair (Src and Dst).
2973 const SCEV *&Dst,
2982 Result |= propagateDistance(Src, Dst, Constraints[LI], Consistent);
2984 Result |= propagateLine(Src, Dst, Constraints[LI], Consistent);
2986 Result |= propagatePoint(Src, Dst, Constraints[LI]);
2993 // constraint into a subscript pair (Src and Dst).
2998 const SCEV *&Dst,
3010 DEBUG(dbgs() << "\t\tDst is " << *Dst << "\n");
3011 Dst = addToCoefficient(Dst, CurLoop, SE->getNegativeSCEV(A_K));
3012 DEBUG(dbgs() << "\t\tnew Dst is " << *Dst << "\n");
3013 if (!findCoefficient(Dst, CurLoop)->isZero())
3020 // constraint into a subscript pair (Src and Dst).
3025 const SCEV *&Dst,
3034 DEBUG(dbgs() << "\t\tDst = " << *Dst << "\n");
3043 const SCEV *AP_K = findCoefficient(Dst, CurLoop);
3046 Dst = zeroCoefficient(Dst, CurLoop);
3061 if (!findCoefficient(Dst, CurLoop)->isZero())
3075 Dst = addToCoefficient(Dst, CurLoop, A_K);
3076 if (!findCoefficient(Dst, CurLoop)->isZero())
3083 Dst = SE->getMulExpr(Dst, A);
3086 Dst = addToCoefficient(Dst, CurLoop, SE->getMulExpr(A_K, B));
3087 if (!findCoefficient(Dst, CurLoop)->isZero())
3091 DEBUG(dbgs() << "\t\tnew Dst = " << *Dst << "\n");
3097 // constraint into a subscript pair (Src and Dst).
3100 const SCEV *&Dst,
3104 const SCEV *AP_K = findCoefficient(Dst, CurLoop);
3111 DEBUG(dbgs() << "\t\tDst is " << *Dst << "\n");
3112 Dst = zeroCoefficient(Dst, CurLoop);
3113 DEBUG(dbgs() << "\t\tnew Dst is " << *Dst << "\n");
3198 Instruction *Dst,
3200 if (Src == Dst)
3204 (!Dst->mayReadFromMemory() && !Dst->mayWriteToMemory()))
3208 if (!isLoadOrStore(Src) || !isLoadOrStore(Dst)) {
3211 return new Dependence(Src, Dst);
3215 Value *DstPtr = getPointerOperand(Dst);
3222 return new Dependence(Src, Dst);
3232 establishNestingLevels(Src, Dst);
3236 FullDependence Result(Src, Dst, PossiblyLoopIndependent, CommonLevels);
3252 isLoopInvariant(DstPtrSCEV, LI->getLoopFor(Dst->getParent()));
3265 Pair[P].Dst = SE->getSCEV(*DstIdx);
3275 Pair[0].Dst = DstSCEV;
3285 Pair[P].Dst, LI->getLoopFor(Dst->getParent()),
3291 DEBUG(dbgs() << "\tdst = " << *Pair[P].Dst << "\n");
3330 // Src Dst Classification Loops GroupLoops Group
3364 collectCommonLoops(Pair[SI].Dst,
3365 LI->getLoopFor(Dst->getParent()),
3414 if (testZIV(Pair[SI].Src, Pair[SI].Dst, Result))
3421 if (testSIV(Pair[SI].Src, Pair[SI].Dst, Level,
3428 if (testRDIV(Pair[SI].Src, Pair[SI].Dst, Result))
3433 if (testMIV(Pair[SI].Src, Pair[SI].Dst, Pair[SI].Loops, Result))
3470 if (testSIV(Pair[SJ].Src, Pair[SJ].Dst, Level,
3491 if (propagate(Pair[SJ].Src, Pair[SJ].Dst, Pair[SJ].Loops,
3497 Pair[SJ].Dst, LI->getLoopFor(Dst->getParent()),
3502 if (testZIV(Pair[SJ].Src, Pair[SJ].Dst, Result))
3525 if (testRDIV(Pair[SJ].Src, Pair[SJ].Dst, Result))
3538 if (testMIV(Pair[SJ].Src, Pair[SJ].Dst, Pair[SJ].Loops, Result))
3649 Instruction *Dst = Dep->getDst();
3651 assert(Dst->mayReadFromMemory() || Dst->mayWriteToMemory());
3653 assert(isLoadOrStore(Dst));
3655 Value *DstPtr = getPointerOperand(Dst);
3660 establishNestingLevels(Src, Dst);
3662 FullDependence Result(Src, Dst, false, CommonLevels);
3674 isLoopInvariant(DstPtrSCEV, LI->getLoopFor(Dst->getParent()));
3686 Pair[P].Dst = SE->getSCEV(*DstIdx);
3693 Pair[0].Dst = DstSCEV;
3703 Pair[P].Dst, LI->getLoopFor(Dst->getParent()),
3719 collectCommonLoops(Pair[SI].Dst,
3720 LI->getLoopFor(Dst->getParent()),
3758 (void) testSIV(Pair[SI].Src, Pair[SI].Dst, Level,
3797 (void) testSIV(Pair[SJ].Src, Pair[SJ].Dst, Level,
3810 if (propagate(Pair[SJ].Src, Pair[SJ].Dst,
3814 Pair[SJ].Dst, LI->getLoopFor(Dst->getParent()),