Lines Matching refs:Dst
195 return Src->mayReadFromMemory() && Dst->mayReadFromMemory(); in isInput()
201 return Src->mayWriteToMemory() && Dst->mayWriteToMemory(); in isOutput()
207 return Src->mayWriteToMemory() && Dst->mayReadFromMemory(); in isFlow()
213 return Src->mayReadFromMemory() && Dst->mayWriteToMemory(); in isAnti()
716 const Instruction *Dst) { in establishNestingLevels() argument
718 const BasicBlock *DstBlock = Dst->getParent(); in establishNestingLevels()
792 const SCEV *Dst = Pair->Dst; in removeMatchingExtensions() local
793 if ((isa<SCEVZeroExtendExpr>(Src) && isa<SCEVZeroExtendExpr>(Dst)) || in removeMatchingExtensions()
794 (isa<SCEVSignExtendExpr>(Src) && isa<SCEVSignExtendExpr>(Dst))) { in removeMatchingExtensions()
796 const SCEVCastExpr *DstCast = cast<SCEVCastExpr>(Dst); in removeMatchingExtensions()
799 Pair->Dst = DstCast->getOperand(); in removeMatchingExtensions()
825 bool DependenceAnalysis::checkDstSubscript(const SCEV *Dst, in checkDstSubscript() argument
828 const SCEVAddRecExpr *AddRec = dyn_cast<SCEVAddRecExpr>(Dst); in checkDstSubscript()
830 return isLoopInvariant(Dst, LoopNest); in checkDstSubscript()
845 const SCEV *Dst, const Loop *DstLoopNest, in classifyPair() argument
851 if (!checkDstSubscript(Dst, DstLoopNest, DstLoops)) in classifyPair()
961 const SCEV *Dst, in testZIV() argument
964 DEBUG(dbgs() << " dst = " << *Dst << "\n"); in testZIV()
966 if (isKnownPredicate(CmpInst::ICMP_EQ, Src, Dst)) { in testZIV()
970 if (isKnownPredicate(CmpInst::ICMP_NE, Src, Dst)) { in testZIV()
2040 const SCEV *Dst, in testSIV() argument
2046 DEBUG(dbgs() << " dst = " << *Dst << "\n"); in testSIV()
2048 const SCEVAddRecExpr *DstAddRec = dyn_cast<SCEVAddRecExpr>(Dst); in testSIV()
2069 gcdMIVtest(Src, Dst, Result) || in testSIV()
2075 const SCEV *DstConst = Dst; in testSIV()
2080 gcdMIVtest(Src, Dst, Result); in testSIV()
2090 gcdMIVtest(Src, Dst, Result); in testSIV()
2111 const SCEV *Dst, in testRDIV() argument
2124 DEBUG(dbgs() << " dst = " << *Dst << "\n"); in testRDIV()
2126 const SCEVAddRecExpr *DstAddRec = dyn_cast<SCEVAddRecExpr>(Dst); in testRDIV()
2141 DstConst = Dst; in testRDIV()
2167 gcdMIVtest(Src, Dst, Result) || in testRDIV()
2178 const SCEV *Dst, in testMIV() argument
2182 DEBUG(dbgs() << " dst = " << *Dst << "\n"); in testMIV()
2184 return gcdMIVtest(Src, Dst, Result) || in testMIV()
2185 banerjeeMIVtest(Src, Dst, Loops, Result); in testMIV()
2220 const SCEV *Dst, in gcdMIVtest() argument
2252 Coefficients = Dst; in gcdMIVtest()
2350 Inner = Dst; in gcdMIVtest()
2434 const SCEV *Dst, in banerjeeMIVtest() argument
2442 DEBUG(dbgs() << " Dst = " << *Dst << '\n'); in banerjeeMIVtest()
2444 CoefficientInfo *B = collectCoeffInfo(Dst, false, B0); in banerjeeMIVtest()
2983 const SCEV *&Dst, in propagate() argument
2992 Result |= propagateDistance(Src, Dst, Constraints[LI], Consistent); in propagate()
2994 Result |= propagateLine(Src, Dst, Constraints[LI], Consistent); in propagate()
2996 Result |= propagatePoint(Src, Dst, Constraints[LI]); in propagate()
3008 const SCEV *&Dst, in propagateDistance() argument
3020 DEBUG(dbgs() << "\t\tDst is " << *Dst << "\n"); in propagateDistance()
3021 Dst = addToCoefficient(Dst, CurLoop, SE->getNegativeSCEV(A_K)); in propagateDistance()
3022 DEBUG(dbgs() << "\t\tnew Dst is " << *Dst << "\n"); in propagateDistance()
3023 if (!findCoefficient(Dst, CurLoop)->isZero()) in propagateDistance()
3035 const SCEV *&Dst, in propagateLine() argument
3044 DEBUG(dbgs() << "\t\tDst = " << *Dst << "\n"); in propagateLine()
3053 const SCEV *AP_K = findCoefficient(Dst, CurLoop); in propagateLine()
3056 Dst = zeroCoefficient(Dst, CurLoop); in propagateLine()
3071 if (!findCoefficient(Dst, CurLoop)->isZero()) in propagateLine()
3085 Dst = addToCoefficient(Dst, CurLoop, A_K); in propagateLine()
3086 if (!findCoefficient(Dst, CurLoop)->isZero()) in propagateLine()
3093 Dst = SE->getMulExpr(Dst, A); in propagateLine()
3096 Dst = addToCoefficient(Dst, CurLoop, SE->getMulExpr(A_K, B)); in propagateLine()
3097 if (!findCoefficient(Dst, CurLoop)->isZero()) in propagateLine()
3101 DEBUG(dbgs() << "\t\tnew Dst = " << *Dst << "\n"); in propagateLine()
3110 const SCEV *&Dst, in propagatePoint() argument
3114 const SCEV *AP_K = findCoefficient(Dst, CurLoop); in propagatePoint()
3121 DEBUG(dbgs() << "\t\tDst is " << *Dst << "\n"); in propagatePoint()
3122 Dst = zeroCoefficient(Dst, CurLoop); in propagatePoint()
3123 DEBUG(dbgs() << "\t\tnew Dst is " << *Dst << "\n"); in propagatePoint()
3216 Pair[i].Dst = DstSubscripts[i]; in tryDelinearize()
3257 Instruction *Dst, in depends() argument
3259 if (Src == Dst) in depends()
3263 (!Dst->mayReadFromMemory() && !Dst->mayWriteToMemory())) in depends()
3267 if (!isLoadOrStore(Src) || !isLoadOrStore(Dst)) { in depends()
3270 return new Dependence(Src, Dst); in depends()
3274 Value *DstPtr = getPointerOperand(Dst); in depends()
3281 return new Dependence(Src, Dst); in depends()
3291 establishNestingLevels(Src, Dst); in depends()
3295 FullDependence Result(Src, Dst, PossiblyLoopIndependent, CommonLevels); in depends()
3311 isLoopInvariant(DstPtrSCEV, LI->getLoopFor(Dst->getParent())); in depends()
3324 Pair[P].Dst = SE->getSCEV(*DstIdx); in depends()
3334 Pair[0].Dst = DstSCEV; in depends()
3338 tryDelinearize(Pair[0].Src, Pair[0].Dst, Pair)) { in depends()
3350 Pair[P].Dst, LI->getLoopFor(Dst->getParent()), in depends()
3356 DEBUG(dbgs() << "\tdst = " << *Pair[P].Dst << "\n"); in depends()
3429 collectCommonLoops(Pair[SI].Dst, in depends()
3430 LI->getLoopFor(Dst->getParent()), 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()
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()
3562 Pair[SJ].Dst, LI->getLoopFor(Dst->getParent()), in depends()
3567 if (testZIV(Pair[SJ].Src, Pair[SJ].Dst, Result)) in depends()
3590 if (testRDIV(Pair[SJ].Src, Pair[SJ].Dst, Result)) in depends()
3603 if (testMIV(Pair[SJ].Src, Pair[SJ].Dst, Pair[SJ].Loops, Result)) in depends()
3714 Instruction *Dst = Dep->getDst(); in getSplitIteration() local
3716 assert(Dst->mayReadFromMemory() || Dst->mayWriteToMemory()); in getSplitIteration()
3718 assert(isLoadOrStore(Dst)); in getSplitIteration()
3720 Value *DstPtr = getPointerOperand(Dst); in getSplitIteration()
3725 establishNestingLevels(Src, Dst); in getSplitIteration()
3727 FullDependence Result(Src, Dst, false, CommonLevels); in getSplitIteration()
3739 isLoopInvariant(DstPtrSCEV, LI->getLoopFor(Dst->getParent())); in getSplitIteration()
3751 Pair[P].Dst = SE->getSCEV(*DstIdx); in getSplitIteration()
3758 Pair[0].Dst = DstSCEV; in getSplitIteration()
3762 tryDelinearize(Pair[0].Src, Pair[0].Dst, Pair)) { in getSplitIteration()
3774 Pair[P].Dst, LI->getLoopFor(Dst->getParent()), in getSplitIteration()
3790 collectCommonLoops(Pair[SI].Dst, in getSplitIteration()
3791 LI->getLoopFor(Dst->getParent()), in getSplitIteration()
3829 (void) testSIV(Pair[SI].Src, Pair[SI].Dst, Level, 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()
3885 Pair[SJ].Dst, LI->getLoopFor(Dst->getParent()), in getSplitIteration()