Lines Matching refs:Roots

339     //               ST[y1]  +1     +2  <-- Roots
357 SmallInstructionVector Roots;
394 std::map<int64_t,Instruction*> &Roots);
398 void collectInLoopUserSet(const SmallInstructionVector &Roots,
692 const SmallInstructionVector &Roots,
696 for (Instruction *Root : Roots)
749 collectPossibleRoots(Instruction *Base, std::map<int64_t,Instruction*> &Roots) {
782 if (Roots.find(V) != Roots.end())
786 Roots[V] = cast<Instruction>(I);
790 if (Roots.empty() || (Roots.size() == 1 && BaseUsers.empty()))
797 if (Roots.find(0) != Roots.end()) {
801 Roots[0] = Base;
807 NumBaseUses = Roots.begin()->second->getNumUses();
810 for (auto &KV : Roots) {
850 if (DRS.Roots.empty())
861 // Define d = Roots[0] - BaseInst, which should be the same as
862 // Roots[I] - Roots[I-1] for all I in [1..N).
873 unsigned N = DRS.Roots.size() + 1;
874 const SCEV *StepSCEV = SE->getMinusSCEV(SE->getSCEV(DRS.Roots[0]), ADR);
883 const SCEV *NewStepSCEV = SE->getMinusSCEV(SE->getSCEV(DRS.Roots[i]),
884 SE->getSCEV(DRS.Roots[i-1]));
918 } else if (DRS.Roots.empty()) {
919 DRS.Roots.push_back(KV.second);
921 DRS.Roots.push_back(KV.second);
930 DRS.Roots.clear();
966 if (V.Roots.empty() || V.Roots.size() != RootSets[0].Roots.size()) {
974 Scale = RootSets[0].Roots.size() + 1;
998 Exclude.insert(DRS.Roots.begin(), DRS.Roots.end());
1012 for (auto *Root : DRS.Roots) {
1038 Exclude.insert(DRS.Roots.begin(), DRS.Roots.end());
1082 if (is_contained(DRS.Roots, I))
1351 if (DRS.Roots[Iter-1] == (Instruction*) Op2) {
1418 IncrExprs.push_back(SE->getMinusSCEV(SE->getSCEV(DRS.Roots[0]), IVSCEV));