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()
1192 static void swapAntiDependences(std::vector<SUnit> &SUnits) { in swapAntiDependences()
1193 SmallVector<std::pair<SUnit *, SDep>, 8> DepsAdded; in swapAntiDependences()
1194 for (SUnit &SU : SUnits) { in swapAntiDependences()
1199 for (std::pair<SUnit *, SDep> &P : DepsAdded) { in swapAntiDependences()
1201 SUnit *SU = P.first; in swapAntiDependences()
1203 SUnit *TargetSU = D.getSUnit(); in swapAntiDependences()
1272 SUnit *SV = &SUnits[V]; in circuit()
1311 SmallPtrSet<SUnit *, 4> &BU = B[U]; in unblock()
1313 SmallPtrSet<SUnit *, 4>::iterator SI = BU.begin(); in unblock()
1315 SUnit *W = *SI; in unblock()
1360 for (SUnit &SU : DAG->SUnits) { in apply()
1366 SmallVector<SUnit *, 4> PHISUs; in apply()
1368 SmallVector<SUnit *, 4> SrcSUs; in apply()
1371 SUnit *TmpSU = Dep.getSUnit(); in apply()
1388 SmallVector<SUnit *, 8> UseSUs; in apply()
1395 SUnit *TmpSU = Dep.getSUnit(); in apply()
1441 const SUnit &SU = SUnits[I]; in computeNodeFunctions()
1451 SUnit *SU = &SUnits[I]; in computeNodeFunctions()
1453 SUnit *pred = P.getSUnit(); in computeNodeFunctions()
1471 SUnit *SU = &SUnits[I]; in computeNodeFunctions()
1473 SUnit *succ = S.getSUnit(); in computeNodeFunctions()
1510 static bool pred_L(SetVector<SUnit *> &NodeOrder, in pred_L()
1511 SmallSetVector<SUnit *, 8> &Preds, in pred_L() argument
1514 for (const SUnit *SU : NodeOrder) { in pred_L()
1539 static bool succ_L(SetVector<SUnit *> &NodeOrder, in succ_L()
1540 SmallSetVector<SUnit *, 8> &Succs, in succ_L() argument
1543 for (const SUnit *SU : NodeOrder) { in succ_L()
1566 static bool computePath(SUnit *Cur, SetVector<SUnit *> &Path, in computePath()
1567 SetVector<SUnit *> &DestNodes, in computePath()
1568 SetVector<SUnit *> &Exclude, in computePath()
1569 SmallPtrSet<SUnit *, 8> &Visited) { in computePath() argument
1601 for (SUnit *SU : NS) { in computeLiveOuts()
1616 for (SUnit *SU : NS) in computeLiveOuts()
1648 std::vector<SUnit *> SUnits(NS.begin(), NS.end()); in registerPressureFilter()
1649 llvm::sort(SUnits, [](const SUnit *A, const SUnit *B) { in registerPressureFilter()
1685 SmallSetVector<SUnit *, 8> S1; in colocateNodeSets()
1692 SmallSetVector<SUnit *, 8> S2; in colocateNodeSets()
1727 SetVector<SUnit *> NodesAdded; in groupRemainingNodes()
1728 SmallPtrSet<SUnit *, 8> Visited; in groupRemainingNodes()
1732 SmallSetVector<SUnit *, 8> N; in groupRemainingNodes()
1735 SetVector<SUnit *> Path; in groupRemainingNodes()
1736 for (SUnit *NI : N) { in groupRemainingNodes()
1746 SetVector<SUnit *> Path; in groupRemainingNodes()
1747 for (SUnit *NI : N) { in groupRemainingNodes()
1760 SmallSetVector<SUnit *, 8> N; in groupRemainingNodes()
1762 for (SUnit *I : N) in groupRemainingNodes()
1771 for (SUnit *I : N) in groupRemainingNodes()
1778 for (SUnit &SU : SUnits) { in groupRemainingNodes()
1789 void SwingSchedulerDAG::addConnectedNodes(SUnit *SU, NodeSet &NewSet, in addConnectedNodes()
1790 SetVector<SUnit *> &NodesAdded) { in addConnectedNodes()
1794 SUnit *Successor = SI.getSUnit(); in addConnectedNodes()
1800 SUnit *Predecessor = PI.getSUnit(); in addConnectedNodes()
1808 static bool isIntersect(SmallSetVector<SUnit *, 8> &Set1, const NodeSet &Set2, in isIntersect() argument
1809 SmallSetVector<SUnit *, 8> &Result) { in isIntersect()
1811 for (SUnit *SU : Set1) { in isIntersect()
1828 for (SUnit *SU : *J) in fuseRecs()
1844 J->remove_if([&](SUnit *SUJ) { return I->count(SUJ); }); in removeDuplicateNodes()
1860 SmallSetVector<SUnit *, 8> R; in computeNodeOrder()
1866 SmallSetVector<SUnit *, 8> N; in computeNodeOrder()
1888 SUnit *maxASAP = nullptr; in computeNodeOrder()
1889 for (SUnit *SU : Nodes) { in computeNodeOrder()
1905 SUnit *maxHeight = nullptr; in computeNodeOrder()
1906 for (SUnit *I : R) { in computeNodeOrder()
1943 SmallSetVector<SUnit *, 8> N; in computeNodeOrder()
1951 SUnit *maxDepth = nullptr; in computeNodeOrder()
1952 for (SUnit *I : R) { in computeNodeOrder()
1992 SmallSetVector<SUnit *, 8> N; in computeNodeOrder()
2002 for (SUnit *I : NodeOrder) in computeNodeOrder()
2024 SetVector<SUnit *>::iterator NI = NodeOrder.begin(); in schedulePipeline()
2025 SetVector<SUnit *>::iterator NE = NodeOrder.end(); in schedulePipeline()
2027 SUnit *SU = *NI; in schedulePipeline()
2219 SUnit *SU = getSUnit(MI); in applyInstrChange()
2220 DenseMap<SUnit *, std::pair<unsigned, int64_t>>::iterator It = in applyInstrChange()
2272 bool SwingSchedulerDAG::isLoopCarriedDep(SUnit *Source, const SDep &Dep, in isLoopCarriedDep()
2358 bool SMSchedule::insert(SUnit *SU, int StartCycle, int EndCycle, int II) { in insert()
2377 std::deque<SUnit *> &cycleInstrs = ScheduledInstrs[checkCycle]; in insert()
2379 for (SUnit *CI : cycleInstrs) { in insert()
2412 SmallPtrSet<SUnit *, 8> Visited; in earliestCycleInChain()
2418 SUnit *PrevSU = Cur.getSUnit(); in earliestCycleInChain()
2421 std::map<SUnit *, int>::const_iterator it = InstrToCycle.find(PrevSU); in earliestCycleInChain()
2435 SmallPtrSet<SUnit *, 8> Visited; in latestCycleInChain()
2441 SUnit *SuccSU = Cur.getSUnit(); in latestCycleInChain()
2444 std::map<SUnit *, int>::const_iterator it = InstrToCycle.find(SuccSU); in latestCycleInChain()
2459 static SUnit *multipleIterations(SUnit *SU, SwingSchedulerDAG *DAG) { in multipleIterations()
2470 void SMSchedule::computeStart(SUnit *SU, int *MaxEarlyStart, int *MinLateStart, in computeStart()
2479 for (SUnit *I : getInstructions(cycle)) { in computeStart()
2501 SUnit *BE = multipleIterations(I, DAG); in computeStart()
2531 void SMSchedule::orderDependence(SwingSchedulerDAG *SSD, SUnit *SU, in orderDependence()
2532 std::deque<SUnit *> &Insts) { in orderDependence()
2542 for (std::deque<SUnit *>::iterator I = Insts.begin(), E = Insts.end(); I != E; in orderDependence()
2636 SUnit *UseSU = Insts.at(MoveUse); in orderDependence()
2637 SUnit *DefSU = Insts.at(MoveDef); in orderDependence()
2663 SUnit *DefSU = SSD->getSUnit(&Phi); in isLoopCarried()
2670 SUnit *UseSU = SSD->getSUnit(MRI.getVRegDef(LoopVal)); in isLoopCarried()
2710 SmallSet<SUnit *, 8> SMSchedule::computeUnpipelineableNodes( in computeUnpipelineableNodes()
2712 SmallSet<SUnit *, 8> DoNotPipeline; in computeUnpipelineableNodes()
2713 SmallVector<SUnit *, 8> Worklist; in computeUnpipelineableNodes()
2739 SmallSet<SUnit *, 8> DNP = computeUnpipelineableNodes(SSD, PLI); in normalizeNonPipelinedInstructions()
2742 for (SUnit &SU : SSD->SUnits) { in normalizeNonPipelinedInstructions()
2780 for (SUnit &SU : SSD->SUnits) { in isValidSchedule()
2811 typedef std::pair<SUnit *, unsigned> UnitIndex; in checkValidNodeOrder()
2832 SUnit *SU = NodeOrder[i]; in checkValidNodeOrder()
2838 SUnit *Succ; in checkValidNodeOrder()
2839 SUnit *Pred; in checkValidNodeOrder()
2844 SUnit *PredSU = PredEdge.getSUnit(); in checkValidNodeOrder()
2855 SUnit *SuccSU = SuccEdge.getSUnit(); in checkValidNodeOrder()
2900 void SwingSchedulerDAG::fixupRegisterOverlaps(std::deque<SUnit *> &Instrs) { in fixupRegisterOverlaps()
2903 for (SUnit *SU : Instrs) { in fixupRegisterOverlaps()
2912 DenseMap<SUnit *, std::pair<unsigned, int64_t>>::iterator It = in fixupRegisterOverlaps()
2954 std::deque<SUnit *> &cycleInstrs = in finalizeSchedule()
2956 for (SUnit *SU : llvm::reverse(cycleInstrs)) in finalizeSchedule()
2968 for (const SUnit &SU : SSD->SUnits) in finalizeSchedule()
2974 std::deque<SUnit *> &cycleInstrs = ScheduledInstrs[Cycle]; in finalizeSchedule()
2975 std::deque<SUnit *> newOrderPhi; in finalizeSchedule()
2976 for (SUnit *SU : cycleInstrs) { in finalizeSchedule()
2980 std::deque<SUnit *> newOrderI; in finalizeSchedule()
2981 for (SUnit *SU : cycleInstrs) { in finalizeSchedule()
3009 for (SUnit *CI : cycleInstrs->second) { in print()