Home | History | Annotate | Download | only in CodeGen

Lines Matching refs:SUnit

252 void ScheduleDAGInstrs::addPhysRegDataDeps(SUnit *SU, unsigned OperIdx) {
264 SUnit *UseSU = I->SU;
293 /// this SUnit to following instructions in the same scheduling region that
295 void ScheduleDAGInstrs::addPhysRegDeps(SUnit *SU, unsigned OperIdx) {
311 SUnit *DefSU = I->SU;
333 // Push this SUnit on the use list.
370 /// addVRegDefDeps - Add register output and data dependencies from this SUnit
376 void ScheduleDAGInstrs::addVRegDefDeps(SUnit *SU, unsigned OperIdx) {
397 SUnit *DefSU = DefI->SU;
409 /// defines the virtual register used at OperIdx is mapped to an SUnit. Add a
410 /// register antidependency from this SUnit to instructions that occur later in
414 void ScheduleDAGInstrs::addVRegUseDeps(SUnit *SU, unsigned OperIdx) {
438 SUnit *DefSU = getSUnit(Def);
577 SUnit *SUa, SUnit *SUb, SUnit *ExitSU, unsigned *Depth,
578 SmallPtrSet<const SUnit*, 16> &Visited) {
610 for (SUnit::const_succ_iterator I = SUb->Succs.begin(), E = SUb->Succs.end();
622 SUnit *SU, SUnit *ExitSU, std::set<SUnit *> &CheckList,
627 SmallPtrSet<const SUnit*, 16> Visited;
630 for (std::set<SUnit *>::iterator I = CheckList.begin(), IE = CheckList.end();
641 for (SUnit::const_succ_iterator J = (*I)->Succs.begin(),
653 SUnit *SUa, SUnit *SUb,
654 std::set<SUnit *> &RejectList,
673 /// Create an SUnit for each real instruction, numbered in top-down toplological
676 /// Map each real instruction to its SUnit.
679 /// hang onto SUnit pointers. We may relax this in the future by using SUnit IDs
685 // We'll be allocating one SUnit for each real instruction in the region,
694 SUnit *SU = newSUnit(MI);
703 // If this SUnit uses a reserved or unbuffered resource, mark it as such.
745 // Create an SUnit for each real instruction.
755 SUnit *BarrierChain = nullptr, *AliasChain = nullptr;
761 MapVector<ValueType, std::vector<SUnit *> > AliasMemDefs, NonAliasMemDefs;
762 MapVector<ValueType, std::vector<SUnit *> > AliasMemUses, NonAliasMemUses;
763 std::set<SUnit*> RejectMemNodes;
798 SUnit *SU = MISUnitMap[MI];
799 assert(SU && "No SUnit mapped to this MI");
858 for (MapVector<ValueType, std::vector<SUnit *> >::iterator I =
864 for (MapVector<ValueType, std::vector<SUnit *> >::iterator I =
898 for (MapVector<ValueType, std::vector<SUnit *> >::iterator I =
903 for (MapVector<ValueType, std::vector<SUnit *> >::iterator I =
934 MapVector<ValueType, std::vector<SUnit *> >::iterator I =
936 MapVector<ValueType, std::vector<SUnit *> >::iterator IE =
959 MapVector<ValueType, std::vector<SUnit *> >::iterator J =
961 MapVector<ValueType, std::vector<SUnit *> >::iterator JE =
1001 for (MapVector<ValueType, std::vector<SUnit *> >::iterator I =
1022 MapVector<ValueType, std::vector<SUnit *> >::iterator I =
1024 MapVector<ValueType, std::vector<SUnit *> >::iterator IE =
1193 void ScheduleDAGInstrs::dumpNode(const SUnit *SU) const {
1199 std::string ScheduleDAGInstrs::getGraphNodeLabel(const SUnit *SU) const {
1229 std::vector<std::pair<const SUnit*, const SUnit*> > ConnectionPairs;
1254 bool isVisited(const SUnit *SU) const {
1261 void visitPreorder(const SUnit *SU) {
1269 void visitPostorderNode(const SUnit *SU) {
1282 for (SUnit::const_pred_iterator
1312 void visitPostorderEdge(const SDep &PredDep, const SUnit *Succ) {
1319 void visitCrossEdge(const SDep &PredDep, const SUnit *Succ) {
1349 for (std::vector<std::pair<const SUnit*, const SUnit*> >::const_iterator
1365 bool joinPredSubtree(const SDep &PredDep, const SUnit *Succ,
1370 const SUnit *PredSU = PredDep.getSUnit();
1378 for (SUnit::const_succ_iterator SI = PredSU->Succs.begin(),
1417 std::vector<std::pair<const SUnit*, SUnit::const_pred_iterator> > DFSStack;
1421 void follow(const SUnit *SU) {
1431 const SUnit *getCurr() const { return DFSStack.back().first; }
1433 SUnit::const_pred_iterator getPred() const { return DFSStack.back().second; }
1435 SUnit::const_pred_iterator getPredEnd() const {
1441 static bool hasDataSucc(const SUnit *SU) {
1442 for (SUnit::const_succ_iterator
1452 void SchedDFSResult::compute(ArrayRef<SUnit> SUnits) {
1457 for (ArrayRef<SUnit>::const_iterator
1459 const SUnit *SU = &*SI;
1485 const SUnit *Child = DFS.getCurr();