Lines Matching refs:SUnit
616 for (SUnit *SU : Schedule.getInstructions(Cycle)) { in schedule()
686 static bool isSuccOrder(SUnit *SUa, SUnit *SUb) { in isSuccOrder()
687 SmallPtrSet<SUnit *, 8> Visited; in isSuccOrder()
688 SmallVector<SUnit *, 8> Worklist; in isSuccOrder()
691 const SUnit *SU = Worklist.pop_back_val(); in isSuccOrder()
693 SUnit *SuccSU = SI.getSUnit(); in isSuccOrder()
741 MapVector<const Value *, SmallVector<SUnit *, 4>> PendingLoads; in addLoopCarriedDependences()
754 SmallVector<SUnit *, 4> &SUs = PendingLoads[V]; in addLoopCarriedDependences()
763 MapVector<const Value *, SmallVector<SUnit *, 4>>::iterator I = in addLoopCarriedDependences()
841 for (SUnit &I : SUnits) { in updatePhiDependences()
861 SUnit *SU = getSUnit(UseMI); in updatePhiDependences()
881 SUnit *SU = getSUnit(DefMI); in updatePhiDependences()
924 for (SUnit &I : SUnits) { in changeDependences()
936 SUnit *DefSU = getSUnit(DefMI); in changeDependences()
943 SUnit *LastSU = getSUnit(LastMI); in changeDependences()
1194 static void swapAntiDependences(std::vector<SUnit> &SUnits) { in swapAntiDependences()
1195 SmallVector<std::pair<SUnit *, SDep>, 8> DepsAdded; in swapAntiDependences()
1197 SUnit *SU = &SUnits[i]; in swapAntiDependences()
1198 for (SUnit::pred_iterator IP = SU->Preds.begin(), EP = SU->Preds.end(); in swapAntiDependences()
1205 for (std::pair<SUnit *, SDep> &P : DepsAdded) { in swapAntiDependences()
1207 SUnit *SU = P.first; in swapAntiDependences()
1209 SUnit *TargetSU = D.getSUnit(); in swapAntiDependences()
1278 SUnit *SV = &SUnits[V]; in circuit()
1318 SmallPtrSet<SUnit *, 4> &BU = B[U]; in unblock()
1320 SmallPtrSet<SUnit *, 4>::iterator SI = BU.begin(); in unblock()
1322 SUnit *W = *SI; in unblock()
1367 for (SUnit &SU : DAG->SUnits) { in apply()
1373 SmallVector<SUnit *, 4> PHISUs; in apply()
1375 SmallVector<SUnit *, 4> SrcSUs; in apply()
1378 SUnit *TmpSU = Dep.getSUnit(); in apply()
1395 SmallVector<SUnit *, 8> UseSUs; in apply()
1402 SUnit *TmpSU = Dep.getSUnit(); in apply()
1448 const SUnit &SU = SUnits[I]; in computeNodeFunctions()
1458 SUnit *SU = &SUnits[I]; in computeNodeFunctions()
1459 for (SUnit::const_pred_iterator IP = SU->Preds.begin(), in computeNodeFunctions()
1462 SUnit *pred = IP->getSUnit(); in computeNodeFunctions()
1482 SUnit *SU = &SUnits[*I]; in computeNodeFunctions()
1483 for (SUnit::const_succ_iterator IS = SU->Succs.begin(), in computeNodeFunctions()
1486 SUnit *succ = IS->getSUnit(); in computeNodeFunctions()
1521 static bool pred_L(SetVector<SUnit *> &NodeOrder, in pred_L()
1522 SmallSetVector<SUnit *, 8> &Preds, in pred_L() argument
1525 for (SetVector<SUnit *>::iterator I = NodeOrder.begin(), E = NodeOrder.end(); in pred_L()
1551 static bool succ_L(SetVector<SUnit *> &NodeOrder, in succ_L()
1552 SmallSetVector<SUnit *, 8> &Succs, in succ_L() argument
1555 for (SetVector<SUnit *>::iterator I = NodeOrder.begin(), E = NodeOrder.end(); in succ_L()
1579 static bool computePath(SUnit *Cur, SetVector<SUnit *> &Path, in computePath()
1580 SetVector<SUnit *> &DestNodes, in computePath()
1581 SetVector<SUnit *> &Exclude, in computePath()
1582 SmallPtrSet<SUnit *, 8> &Visited) { in computePath() argument
1612 for (SUnit *SU : NS) { in computeLiveOuts()
1627 for (SUnit *SU : NS) in computeLiveOuts()
1659 std::vector<SUnit *> SUnits(NS.begin(), NS.end()); in registerPressureFilter()
1660 llvm::sort(SUnits, [](const SUnit *A, const SUnit *B) { in registerPressureFilter()
1696 SmallSetVector<SUnit *, 8> S1; in colocateNodeSets()
1703 SmallSetVector<SUnit *, 8> S2; in colocateNodeSets()
1738 SetVector<SUnit *> NodesAdded; in groupRemainingNodes()
1739 SmallPtrSet<SUnit *, 8> Visited; in groupRemainingNodes()
1743 SmallSetVector<SUnit *, 8> N; in groupRemainingNodes()
1746 SetVector<SUnit *> Path; in groupRemainingNodes()
1747 for (SUnit *NI : N) { in groupRemainingNodes()
1757 SetVector<SUnit *> Path; in groupRemainingNodes()
1758 for (SUnit *NI : N) { in groupRemainingNodes()
1771 SmallSetVector<SUnit *, 8> N; in groupRemainingNodes()
1773 for (SUnit *I : N) in groupRemainingNodes()
1782 for (SUnit *I : N) in groupRemainingNodes()
1789 for (SUnit &SU : SUnits) { in groupRemainingNodes()
1800 void SwingSchedulerDAG::addConnectedNodes(SUnit *SU, NodeSet &NewSet, in addConnectedNodes()
1801 SetVector<SUnit *> &NodesAdded) { in addConnectedNodes()
1805 SUnit *Successor = SI.getSUnit(); in addConnectedNodes()
1810 SUnit *Predecessor = PI.getSUnit(); in addConnectedNodes()
1818 static bool isIntersect(SmallSetVector<SUnit *, 8> &Set1, const NodeSet &Set2, in isIntersect() argument
1819 SmallSetVector<SUnit *, 8> &Result) { in isIntersect()
1822 SUnit *SU = Set1[i]; in isIntersect()
1839 for (SUnit *SU : *J) in fuseRecs()
1855 J->remove_if([&](SUnit *SUJ) { return I->count(SUJ); }); in removeDuplicateNodes()
1871 SmallSetVector<SUnit *, 8> R; in computeNodeOrder()
1877 SmallSetVector<SUnit *, 8> N; in computeNodeOrder()
1899 SUnit *maxASAP = nullptr; in computeNodeOrder()
1900 for (SUnit *SU : Nodes) { in computeNodeOrder()
1916 SUnit *maxHeight = nullptr; in computeNodeOrder()
1917 for (SUnit *I : R) { in computeNodeOrder()
1954 SmallSetVector<SUnit *, 8> N; in computeNodeOrder()
1962 SUnit *maxDepth = nullptr; in computeNodeOrder()
1963 for (SUnit *I : R) { in computeNodeOrder()
2003 SmallSetVector<SUnit *, 8> N; in computeNodeOrder()
2013 for (SUnit *I : NodeOrder) in computeNodeOrder()
2035 SetVector<SUnit *>::iterator NI = NodeOrder.begin(); in schedulePipeline()
2036 SetVector<SUnit *>::iterator NE = NodeOrder.end(); in schedulePipeline()
2038 SUnit *SU = *NI; in schedulePipeline()
2225 SUnit *SU = getSUnit(MI); in applyInstrChange()
2226 DenseMap<SUnit *, std::pair<unsigned, int64_t>>::iterator It = in applyInstrChange()
2278 bool SwingSchedulerDAG::isLoopCarriedDep(SUnit *Source, const SDep &Dep, in isLoopCarriedDep()
2364 bool SMSchedule::insert(SUnit *SU, int StartCycle, int EndCycle, int II) { in insert()
2383 std::deque<SUnit *> &cycleInstrs = ScheduledInstrs[checkCycle]; in insert()
2385 for (SUnit *CI : cycleInstrs) { in insert()
2418 SmallPtrSet<SUnit *, 8> Visited; in earliestCycleInChain()
2424 SUnit *PrevSU = Cur.getSUnit(); in earliestCycleInChain()
2427 std::map<SUnit *, int>::const_iterator it = InstrToCycle.find(PrevSU); in earliestCycleInChain()
2441 SmallPtrSet<SUnit *, 8> Visited; in latestCycleInChain()
2447 SUnit *SuccSU = Cur.getSUnit(); in latestCycleInChain()
2450 std::map<SUnit *, int>::const_iterator it = InstrToCycle.find(SuccSU); in latestCycleInChain()
2465 static SUnit *multipleIterations(SUnit *SU, SwingSchedulerDAG *DAG) { in multipleIterations()
2476 void SMSchedule::computeStart(SUnit *SU, int *MaxEarlyStart, int *MinLateStart, in computeStart()
2485 for (SUnit *I : getInstructions(cycle)) { in computeStart()
2507 SUnit *BE = multipleIterations(I, DAG); in computeStart()
2537 void SMSchedule::orderDependence(SwingSchedulerDAG *SSD, SUnit *SU, in orderDependence()
2538 std::deque<SUnit *> &Insts) { in orderDependence()
2548 for (std::deque<SUnit *>::iterator I = Insts.begin(), E = Insts.end(); I != E; in orderDependence()
2643 SUnit *UseSU = Insts.at(MoveUse); in orderDependence()
2644 SUnit *DefSU = Insts.at(MoveDef); in orderDependence()
2670 SUnit *DefSU = SSD->getSUnit(&Phi); in isLoopCarried()
2677 SUnit *UseSU = SSD->getSUnit(MRI.getVRegDef(LoopVal)); in isLoopCarried()
2721 for (SUnit &SU : SSD->SUnits) { in isValidSchedule()
2748 typedef std::pair<SUnit *, unsigned> UnitIndex; in checkValidNodeOrder()
2769 SUnit *SU = NodeOrder[i]; in checkValidNodeOrder()
2775 SUnit *Succ; in checkValidNodeOrder()
2776 SUnit *Pred; in checkValidNodeOrder()
2781 SUnit *PredSU = PredEdge.getSUnit(); in checkValidNodeOrder()
2792 SUnit *SuccSU = SuccEdge.getSUnit(); in checkValidNodeOrder()
2837 void SwingSchedulerDAG::fixupRegisterOverlaps(std::deque<SUnit *> &Instrs) { in fixupRegisterOverlaps()
2840 for (SUnit *SU : Instrs) { in fixupRegisterOverlaps()
2849 DenseMap<SUnit *, std::pair<unsigned, int64_t>>::iterator It = in fixupRegisterOverlaps()
2891 std::deque<SUnit *> &cycleInstrs = in finalizeSchedule()
2893 for (std::deque<SUnit *>::reverse_iterator I = cycleInstrs.rbegin(), in finalizeSchedule()
2908 SUnit *SU = &SSD->SUnits[i]; in finalizeSchedule()
2915 std::deque<SUnit *> &cycleInstrs = ScheduledInstrs[Cycle]; in finalizeSchedule()
2916 std::deque<SUnit *> newOrderPhi; in finalizeSchedule()
2917 for (SUnit *SU : cycleInstrs) { in finalizeSchedule()
2921 std::deque<SUnit *> newOrderI; in finalizeSchedule()
2922 for (SUnit *SU : cycleInstrs) { in finalizeSchedule()
2950 for (SUnit *CI : cycleInstrs->second) { in print()