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 using SUnitsToCandidateSGsMap = DenseMap<SUnit *, SmallVector<int, 4>>;
144 bool tryAddEdge(SUnit *A, SUnit *B);
152 SmallVector<SUnit *, 32> Collection;
158 bool canAddSU(SUnit &SU) const;
163 void link(SUnit &SU, bool MakePred = false);
167 int link(SUnit &SU, bool MakePred,
168 std::vector<std::pair<SUnit *, SUnit *>> &AddedEdges);
173 void link(SUnit &SU, function_ref<bool(const SUnit *A, const SUnit *B)> P);
191 bool allowedByRules(const SUnit *SU, in allowedByRules()
201 void add(SUnit &SU) { in add()
219 void initSchedGroup(std::vector<SUnit>::reverse_iterator RIter,
244 static void resetEdges(SUnit &SU, ScheduleDAGInstrs *DAG) { in resetEdges()
260 using SUToCandSGsPair = std::pair<SUnit *, SmallVector<int, 4>>;
326 void greedyFind(std::vector<std::pair<SUnit *, SUnit *>> &AddedEdges, T I,
342 int addEdges(SmallVectorImpl<SchedGroup> &SyncPipeline, SUnit *SU, int SGID,
343 std::vector<std::pair<SUnit *, SUnit *>> &AddedEdges);
348 int linkSUnit(SUnit *SU, int SGID,
349 std::vector<std::pair<SUnit *, SUnit *>> &AddedEdges, T I, T E);
351 void removeEdges(const std::vector<std::pair<SUnit *, SUnit *>> &AddedEdges);
395 SmallVector<SUnit *, 32> TempCollection = SG.Collection; in reset()
397 auto SchedBarr = llvm::find_if(TempCollection, [](SUnit *SU) { in reset()
454 SUnit *SGBarr = nullptr; in makePipeline()
476 SUnit *SU, int SGID, std::vector<std::pair<SUnit *, SUnit *>> &AddedEdges, in linkSUnit() argument
493 SmallVectorImpl<SchedGroup> &SyncPipeline, SUnit *SU, int SGID, in addEdges()
494 std::vector<std::pair<SUnit *, SUnit *>> &AddedEdges) { in addEdges() argument
511 const std::vector<std::pair<SUnit *, SUnit *>> &EdgesToRemove) { in removeEdges() argument
515 SUnit *Pred = PredSuccPair.first; in removeEdges()
516 SUnit *Succ = PredSuccPair.second; in removeEdges()
590 std::vector<std::pair<SUnit *, SUnit *>> AddedEdges; in populateReadyList()
653 std::vector<std::pair<SUnit *, SUnit *>> AddedEdges; in solveExact()
720 std::vector<std::pair<SUnit *, SUnit *>> &AddedEdges, T I, T E) { in greedyFind() argument
735 std::vector<std::pair<SUnit *, SUnit *>> AddedEdges; in greedyFind()
779 std::vector<std::pair<SUnit *, SUnit *>> AddedEdges; in solveGreedy()
933 SmallVector<SUnit *, 4> MFMAChainSeeds;
942 bool apply(const SUnit *SU, const ArrayRef<SUnit *> Collection, in apply()
959 Cache->begin(), Cache->end(), [&SU, &DAG](SUnit *TargetSU) { in apply()
960 return DAG->IsReachable(TargetSU, const_cast<SUnit *>(SU)); in apply()
976 bool apply(const SUnit *SU, const ArrayRef<SUnit *> Collection, in apply()
983 SmallVector<SUnit *, 8> Worklist; in apply()
1002 return DAG->IsReachable((*Cache)[0], const_cast<SUnit *>(SU)); in apply()
1015 SUnit *ChainSeed;
1018 bool apply(const SUnit *SU, const ArrayRef<SUnit *> Collection, in apply()
1048 return DAG->IsReachable((*Cache)[0], const_cast<SUnit *>(SU)); in apply()
1051 EnablesNthMFMAInChain(unsigned Number, SUnit *ChainSeed, in EnablesNthMFMAInChain()
1067 bool apply(const SUnit *SU, const ArrayRef<SUnit *> Collection, in apply()
1108 bool apply(const SUnit *SU, const ArrayRef<SUnit *> Collection, in apply()
1143 bool apply(const SUnit *SU, const ArrayRef<SUnit *> Collection, in apply()
1156 bool apply(const SUnit *SU, const ArrayRef<SUnit *> Collection, in apply()
1168 bool apply(const SUnit *SU, const ArrayRef<SUnit *> Collection, in apply()
1183 bool apply(const SUnit *SU, const ArrayRef<SUnit *> Collection, in apply()
1220 bool apply(const SUnit *SU, const ArrayRef<SUnit *> Collection, in apply()
1239 if (DAG->IsReachable(const_cast<SUnit *>(SU), OtherEle)) in apply()
1255 bool apply(const SUnit *SU, const ArrayRef<SUnit *> Collection, in apply()
1270 SUnit *ChainSeed;
1273 bool apply(const SUnit *SU, const ArrayRef<SUnit *> Collection, in apply()
1304 IsExactMFMA(unsigned Number, SUnit *ChainSeed, const SIInstrInfo *TII, in IsExactMFMA()
1315 bool apply(const SUnit *SU, const ArrayRef<SUnit *> Collection, in apply()
1318 SmallVector<SUnit *, 12> Worklist; in apply()
1365 SmallVector<SUnit *, 10> ExpPipeCands; in analyzeDAG()
1366 SmallVector<SUnit *, 10> MFMAPipeCands; in analyzeDAG()
1367 SmallVector<SUnit *, 10> MFMAPipeSUs; in analyzeDAG()
1368 SmallVector<SUnit *, 10> PackSUs; in analyzeDAG()
1369 SmallVector<SUnit *, 10> CvtSUs; in analyzeDAG()
1382 for (SUnit &SU : DAG->SUnits) { in analyzeDAG()
1413 std::optional<SUnit *> TempMFMA; in analyzeDAG()
1414 std::optional<SUnit *> TempExp; in analyzeDAG()
1443 [&SuccSU](SUnit *PotentialMatch) { in analyzeDAG()
1461 std::optional<SUnit *> TempCvt; in analyzeDAG()
1505 PackSUs.begin(), PackSUs.end(), [this, &TempExp](SUnit *VPack) { in analyzeDAG()
1542 [this, &PackPred](SUnit *ExpBase) { in analyzeDAG()
1859 bool apply(const SUnit *SU, const ArrayRef<SUnit *> Collection, in apply()
1878 if (DAG->IsReachable(Elt, const_cast<SUnit *>(SU))) in apply()
1892 bool apply(const SUnit *SU, const ArrayRef<SUnit *> Collection, in apply()
1902 SUnit *SuccUnit = Succ.getSUnit(); in apply()
1916 return llvm::any_of(*Cache, [&SU](SUnit *Elt) { in apply()
1930 bool apply(const SUnit *SU, const ArrayRef<SUnit *> Collection, in apply()
1946 OtherGroup->Collection.end(), [&SU](SUnit *Elt) { in apply()
1962 bool apply(const SUnit *SU, const ArrayRef<SUnit *> Collection, in apply()
2003 bool apply(const SUnit *SU, const ArrayRef<SUnit *> Collection, in apply()
2038 return llvm::any_of(*Cache, [&SU, &DAG](SUnit *Elt) { in apply()
2039 return DAG->IsReachable(const_cast<SUnit *>(SU), Elt); in apply()
2080 SmallVector<SUnit *, 6> DSWithPerms; in applyIGLPStrategy()
2112 DenseMap<MachineInstr *, SUnit *> VMEMLookup; in applyIGLPStrategy()
2113 SmallVector<SUnit *, 6> Counted; in applyIGLPStrategy()
2115 SUnit *Cand = nullptr; in applyIGLPStrategy()
2343 void addSchedBarrierEdges(SUnit &SU);
2358 std::vector<SUnit>::reverse_iterator RIter);
2360 bool initIGLPOpt(SUnit &SU);
2381 bool SchedGroup::tryAddEdge(SUnit *A, SUnit *B) { in tryAddEdge()
2448 int SchedGroup::link(SUnit &SU, bool MakePred, in link()
2449 std::vector<std::pair<SUnit *, SUnit *>> &AddedEdges) { in link() argument
2452 SUnit *B = &SU; in link()
2473 void SchedGroup::link(SUnit &SU, bool MakePred) { in link()
2475 SUnit *B = &SU; in link()
2485 void SchedGroup::link(SUnit &SU, in link()
2486 function_ref<bool(const SUnit *A, const SUnit *B)> P) { in link()
2488 SUnit *B = &SU; in link()
2501 bool SchedGroup::canAddSU(SUnit &SU) const { in canAddSU()
2526 void SchedGroup::initSchedGroup(std::vector<SUnit>::reverse_iterator RIter, in initSchedGroup()
2528 SUnit &InitSU = *RIter; in initSchedGroup()
2596 void IGroupLPDAGMutation::addSchedBarrierEdges(SUnit &SchedBarrier) { in addSchedBarrierEdges()
2612 (function_ref<bool(const SUnit *A, const SUnit *B)>)[]( in addSchedBarrierEdges()
2613 const SUnit *A, const SUnit *B) { return A->NodeNum > B->NodeNum; }); in addSchedBarrierEdges()
2656 std::vector<SUnit>::reverse_iterator RIter) { in initSchedGroupBarrierPipelineStage()
2672 bool IGroupLPDAGMutation::initIGLPOpt(SUnit &SU) { in initIGLPOpt()