Home | History | Annotate | Download | only in CodeGen

Lines Matching full:sunit

283 void ScheduleDAGInstrs::addPhysRegDataDeps(SUnit *SU, unsigned OperIdx) {
295 SUnit *UseSU = I->SU;
324 /// this SUnit to following instructions in the same scheduling region that
326 void ScheduleDAGInstrs::addPhysRegDeps(SUnit *SU, unsigned OperIdx) {
342 SUnit *DefSU = I->SU;
364 // Push this SUnit on the use list.
415 /// addVRegDefDeps - Add register output and data dependencies from this SUnit
421 void ScheduleDAGInstrs::addVRegDefDeps(SUnit *SU, unsigned OperIdx) {
459 SUnit *UseSU = I->SU;
496 SUnit *DefSU = V2SU.SU;
525 /// defines the virtual register used at OperIdx is mapped to an SUnit. Add a
526 /// register antidependency from this SUnit to instructions that occur later in
530 void ScheduleDAGInstrs::addVRegUseDeps(SUnit *SU, unsigned OperIdx) {
622 void ScheduleDAGInstrs::addChainDependency (SUnit *SUa, SUnit *SUb,
632 /// Create an SUnit for each real instruction, numbered in top-down topological
635 /// Map each real instruction to its SUnit.
638 /// hang onto SUnit pointers. We may relax this in the future by using SUnit IDs
644 // We'll be allocating one SUnit for each real instruction in the region,
652 SUnit *SU = newSUnit(&MI);
661 // If this SUnit uses a reserved or unbuffered resource, mark it as such.
689 void ScheduleDAGInstrs::collectVRegUses(SUnit *SU) {
745 void inline insert(SUnit *SU, ValueType V) {
783 void ScheduleDAGInstrs::addChainDependencies(SUnit *SU,
790 void ScheduleDAGInstrs::addChainDependencies(SUnit *SU,
862 // Create an SUnit for each real instruction.
925 SUnit *SU = MISUnitMap[&MI];
926 assert(SU && "No SUnit mapped to this MI");
1169 SUnit *newBarrierChain = &SUnits[*(NodeNums.end() - N)];
1371 void ScheduleDAGInstrs::dumpNode(const SUnit *SU) const {
1377 std::string ScheduleDAGInstrs::getGraphNodeLabel(const SUnit *SU) const {
1407 std::vector<std::pair<const SUnit*, const SUnit*> > ConnectionPairs;
1432 bool isVisited(const SUnit *SU) const {
1439 void visitPreorder(const SUnit *SU) {
1447 void visitPostorderNode(const SUnit *SU) {
1460 for (SUnit::const_pred_iterator
1490 void visitPostorderEdge(const SDep &PredDep, const SUnit *Succ) {
1497 void visitCrossEdge(const SDep &PredDep, const SUnit *Succ) {
1527 for (std::vector<std::pair<const SUnit*, const SUnit*> >::const_iterator
1543 bool joinPredSubtree(const SDep &PredDep, const SUnit *Succ,
1548 const SUnit *PredSU = PredDep.getSUnit();
1556 for (SUnit::const_succ_iterator SI = PredSU->Succs.begin(),
1595 std::vector<std::pair<const SUnit*, SUnit::const_pred_iterator> > DFSStack;
1599 void follow(const SUnit *SU) {
1609 const SUnit *getCurr() const { return DFSStack.back().first; }
1611 SUnit::const_pred_iterator getPred() const { return DFSStack.back().second; }
1613 SUnit::const_pred_iterator getPredEnd() const {
1619 static bool hasDataSucc(const SUnit *SU) {
1620 for (SUnit::const_succ_iterator
1630 void SchedDFSResult::compute(ArrayRef<SUnit> SUnits) {
1635 for (ArrayRef<SUnit>::const_iterator
1637 const SUnit *SU = &*SI;
1663 const SUnit *Child = DFS.getCurr();