Lines Matching refs:Roots

352     //               ST[y1]  +1     +2  <-- Roots
370 SmallInstructionVector Roots;
407 std::map<int64_t,Instruction*> &Roots);
411 void collectInLoopUserSet(const SmallInstructionVector &Roots,
722 const SmallInstructionVector &Roots,
726 for (Instruction *Root : Roots)
779 collectPossibleRoots(Instruction *Base, std::map<int64_t,Instruction*> &Roots) {
812 if (Roots.find(V) != Roots.end())
816 Roots[V] = cast<Instruction>(I);
820 if (Roots.empty() || (Roots.size() == 1 && BaseUsers.empty()))
827 if (Roots.find(0) != Roots.end()) {
831 Roots[0] = Base;
837 NumBaseUses = Roots.begin()->second->getNumUses();
840 for (auto &KV : Roots) {
880 if (DRS.Roots.empty())
885 // Define d = Roots[0] - BaseInst, which should be the same as
886 // Roots[I] - Roots[I-1] for all I in [1..N).
897 unsigned N = DRS.Roots.size() + 1;
898 const SCEV *StepSCEV = SE->getMinusSCEV(SE->getSCEV(DRS.Roots[0]), ADR);
905 const SCEV *NewStepSCEV = SE->getMinusSCEV(SE->getSCEV(DRS.Roots[i]),
906 SE->getSCEV(DRS.Roots[i-1]));
940 } else if (DRS.Roots.empty()) {
941 DRS.Roots.push_back(KV.second);
943 DRS.Roots.push_back(KV.second);
952 DRS.Roots.clear();
988 if (V.Roots.empty() || V.Roots.size() != RootSets[0].Roots.size()) {
996 Scale = RootSets[0].Roots.size() + 1;
1020 Exclude.insert(DRS.Roots.begin(), DRS.Roots.end());
1034 for (auto *Root : DRS.Roots) {
1060 Exclude.insert(DRS.Roots.begin(), DRS.Roots.end());
1098 if (is_contained(DRS.Roots, I))
1365 if (DRS.Roots[Iter-1] == (Instruction*) Op2) {
1432 IncrExprs.push_back(SE->getMinusSCEV(SE->getSCEV(DRS.Roots[0]), IVSCEV));