Lines Matching refs:SUnit
95 std::optional<SmallVector<SUnit *, 4>> Cache;
99 apply(const SUnit *, const ArrayRef<SUnit *>, in apply() argument
108 Cache = SmallVector<SUnit *, 4>(); in InstructionRule()
115 typedef DenseMap<SUnit *, SmallVector<int, 4>> SUnitsToCandidateSGsMap;
146 bool tryAddEdge(SUnit *A, SUnit *B);
154 SmallVector<SUnit *, 32> Collection;
159 bool canAddSU(SUnit &SU) const;
164 void link(SUnit &SU, bool MakePred = false);
168 int link(SUnit &SU, bool MakePred,
169 std::vector<std::pair<SUnit *, SUnit *>> &AddedEdges);
174 void link(SUnit &SU, function_ref<bool(const SUnit *A, const SUnit *B)> P);
192 bool allowedByRules(const SUnit *SU, in allowedByRules()
206 void add(SUnit &SU) { in add()
224 void initSchedGroup(std::vector<SUnit>::reverse_iterator RIter,
249 static void resetEdges(SUnit &SU, ScheduleDAGInstrs *DAG) { in resetEdges()
265 typedef std::pair<SUnit *, SmallVector<int, 4>> SUToCandSGsPair;
331 void greedyFind(std::vector<std::pair<SUnit *, SUnit *>> &AddedEdges, T I,
347 int addEdges(SmallVectorImpl<SchedGroup> &SyncPipeline, SUnit *SU, int SGID,
348 std::vector<std::pair<SUnit *, SUnit *>> &AddedEdges);
353 int linkSUnit(SUnit *SU, int SGID,
354 std::vector<std::pair<SUnit *, SUnit *>> &AddedEdges, T I, T E);
356 void removeEdges(const std::vector<std::pair<SUnit *, SUnit *>> &AddedEdges);
400 SmallVector<SUnit *, 32> TempCollection = SG.Collection; in reset()
402 auto SchedBarr = llvm::find_if(TempCollection, [](SUnit *SU) { in reset()
459 SUnit *SGBarr = nullptr; in makePipeline()
481 SUnit *SU, int SGID, std::vector<std::pair<SUnit *, SUnit *>> &AddedEdges, in linkSUnit() argument
498 SmallVectorImpl<SchedGroup> &SyncPipeline, SUnit *SU, int SGID, in addEdges()
499 std::vector<std::pair<SUnit *, SUnit *>> &AddedEdges) { in addEdges() argument
516 const std::vector<std::pair<SUnit *, SUnit *>> &EdgesToRemove) { in removeEdges() argument
520 SUnit *Pred = PredSuccPair.first; in removeEdges()
521 SUnit *Succ = PredSuccPair.second; in removeEdges()
595 std::vector<std::pair<SUnit *, SUnit *>> AddedEdges; in populateReadyList()
658 std::vector<std::pair<SUnit *, SUnit *>> AddedEdges; in solveExact()
725 std::vector<std::pair<SUnit *, SUnit *>> &AddedEdges, T I, T E) { in greedyFind() argument
740 std::vector<std::pair<SUnit *, SUnit *>> AddedEdges; in greedyFind()
784 std::vector<std::pair<SUnit *, SUnit *>> AddedEdges; in solveGreedy()
912 bool apply(const SUnit *SU, const ArrayRef<SUnit *> Collection, in apply()
931 if (DAG->IsReachable(Elt, const_cast<SUnit *>(SU))) in apply()
945 bool apply(const SUnit *SU, const ArrayRef<SUnit *> Collection, in apply()
955 SUnit *SuccUnit = Succ.getSUnit(); in apply()
969 return llvm::any_of(*Cache, [&SU](SUnit *Elt) { in apply()
983 bool apply(const SUnit *SU, const ArrayRef<SUnit *> Collection, in apply()
999 OtherGroup->Collection.end(), [&SU](SUnit *Elt) { in apply()
1015 bool apply(const SUnit *SU, const ArrayRef<SUnit *> Collection, in apply()
1056 bool apply(const SUnit *SU, const ArrayRef<SUnit *> Collection, in apply()
1091 return llvm::any_of(*Cache, [&SU, &DAG](SUnit *Elt) { in apply()
1092 return DAG->IsReachable(const_cast<SUnit *>(SU), Elt); in apply()
1128 SmallVector<SUnit *, 6> DSWithPerms; in applyIGLPStrategy()
1160 DenseMap<MachineInstr *, SUnit *> VMEMLookup; in applyIGLPStrategy()
1161 SmallVector<SUnit *, 6> Counted; in applyIGLPStrategy()
1163 SUnit *Cand = nullptr; in applyIGLPStrategy()
1387 void addSchedBarrierEdges(SUnit &SU);
1402 std::vector<SUnit>::reverse_iterator RIter);
1404 void initIGLPOpt(SUnit &SU);
1425 bool SchedGroup::tryAddEdge(SUnit *A, SUnit *B) { in tryAddEdge()
1492 int SchedGroup::link(SUnit &SU, bool MakePred, in link()
1493 std::vector<std::pair<SUnit *, SUnit *>> &AddedEdges) { in link() argument
1496 SUnit *B = &SU; in link()
1517 void SchedGroup::link(SUnit &SU, bool MakePred) { in link()
1519 SUnit *B = &SU; in link()
1529 void SchedGroup::link(SUnit &SU, in link()
1530 function_ref<bool(const SUnit *A, const SUnit *B)> P) { in link()
1532 SUnit *B = &SU; in link()
1545 bool SchedGroup::canAddSU(SUnit &SU) const { in canAddSU()
1570 void SchedGroup::initSchedGroup(std::vector<SUnit>::reverse_iterator RIter, in initSchedGroup()
1572 SUnit &InitSU = *RIter; in initSchedGroup()
1638 void IGroupLPDAGMutation::addSchedBarrierEdges(SUnit &SchedBarrier) { in addSchedBarrierEdges()
1654 (function_ref<bool(const SUnit *A, const SUnit *B)>)[]( in addSchedBarrierEdges()
1655 const SUnit *A, const SUnit *B) { return A->NodeNum > B->NodeNum; }); in addSchedBarrierEdges()
1698 std::vector<SUnit>::reverse_iterator RIter) { in initSchedGroupBarrierPipelineStage()
1714 void IGroupLPDAGMutation::initIGLPOpt(SUnit &SU) { in initIGLPOpt()