Lines Matching refs:Root
75 // rooted at the induction variable (excepting the sub-DAGs which root the
81 // %iv.1 = add %iv, 1 <-- a root increment
83 // %iv.2 = add %iv, 2 <-- a root increment
85 // %iv.scale_m_1 = add %iv, scale-1 <-- a root increment
386 void collectInLoopUserSet(Instruction *Root,
560 // Collect the set of all users of the provided root instruction. This set of
561 // users contains not only the direct users of the root instruction, but also
566 // including root increments in the use set of the primary IV.
573 Instruction *Root, const SmallInstructionSet &Exclude,
576 SmallInstructionVector Queue(1, Root);
607 // Collect all of the users of all of the provided root instructions (combined
677 // The root nodes must be either GEPs, ORs or ADDs.
708 // If we found non-loop-inc, non-root users of Base, assume they are
709 // for the zeroth root index. This is because "add %a, 0" gets optimized
729 DEBUG(dbgs() << "LRR: Aborting - Root and Base #users not the same: "
730 << "#Base=" << NumBaseUses << ", #Root=" <<
741 // Does the user look like it could be part of a root set?
779 // If we didn't get a root for index zero, then IVU must be
828 DEBUG(dbgs() << "LRR: Aborting because no root sets found!\n");
834 << "LRR: Aborting because not all root sets have the same size\n");
901 for (auto *Root : DRS.Roots) {
903 collectInLoopUserSet(Root, Exclude, PossibleRedSet, V);
1005 // We now need to check for equivalence of the use graph of each root with
1015 // collect the set of all users of some root instructions, these reduction
1017 // This is important because we don't want the root use set to search down
1070 // Skip over the IV or root instructions; only match their users.
1107 DEBUG(dbgs() << "LRR: iteration root match failed at " << *BaseInst <<
1116 // All instructions between the last root and this root
1141 // root instruction, does not also belong to the base set or the set of
1142 // some other root instruction.
1144 DEBUG(dbgs() << "LRR: iteration root match failed at " << *BaseInst <<
1155 DEBUG(dbgs() << "LRR: iteration root match failed at " << *BaseInst <<
1169 DEBUG(dbgs() << "LRR: iteration root match failed at " << *BaseInst <<
1222 DEBUG(dbgs() << "LRR: iteration root match failed at " << *BaseInst
1236 DEBUG(dbgs() << "LRR: iteration root match failed at " << *BaseInst <<
1411 // %iv.1 = add %iv, 1 <-- a root increment
1413 // %iv.2 = add %iv, 2 <-- a root increment
1415 // %iv.scale_m_1 = add %iv, scale-1 <-- a root increment
1457 DEBUG(dbgs() << "LRR: Found all root induction increments for: " <<
1517 // For each possible IV, collect the associated possible set of 'root' nodes