/freebsd/contrib/llvm-project/llvm/lib/CodeGen/ |
H A D | VLIWMachineScheduler.cpp | 109 if (!SU || !SU->getInstr()) in isResourceAvailable() 148 if (!SU) { in reserveResources() 245 if (!SU) in schedule() 322 Top.releaseNode(SU, SU->TopReadyCycle); in releaseTopNode() 340 Bot.releaseNode(SU, SU->BotReadyCycle); in releaseBottomNode() 604 if (!SU || SU->isScheduled) in SchedulingCost() 890 return SU; in pickNodeBidrectional() 956 SUnit *SU; in pickNode() local 965 SU = TopCand.SU; in pickNode() 976 SU = BotCand.SU; in pickNode() [all …]
|
H A D | ScheduleDAGInstrs.cpp | 106 if (SU != L.back()) in dumpSUList() 255 if (UseSU == SU) in addPhysRegDataDeps() 494 if (DefSU == SU) in addVRegDefDeps() 506 V2SU.SU = SU; in addVRegDefDeps() 541 if (V2SU.SU == SU) in addVRegUseDeps() 544 V2SU.SU->addPred(SDep(SU, SDep::Anti, Reg)); in addVRegUseDeps() 592 SU->Latency = SchedModel.computeInstrLatency(SU->getInstr()); in initSUnits() 1176 dumpNodeName(SU); in dumpNode() 1287 R.DFSNodeData[SU->NodeNum].SubtreeID = SU->NodeNum; in visitPostorderNode() 1434 DFSStack.emplace_back(SU, SU->Preds.begin()); in follow() [all …]
|
H A D | MachineScheduler.cpp | 1185 if (UI->SU == &SU) in collectVRegUses() 1339 SUnit &SU = *V2SU.SU; in updatePressureDiffs() local 1371 SUnit *SU = V2SU.SU; in updatePressureDiffs() local 1568 SUnit *SU = V2SU.SU; in computeCyclicCriticalPath() local 3448 Cand.SU = SU; in initCandidate() 3664 assert(TCand.SU == BotCand.SU && in pickNodeBidirectional() 3684 assert(TCand.SU == TopCand.SU && in pickNodeBidirectional() 3722 SU = TopCand.SU; in pickNode() 3733 SU = BotCand.SU; in pickNode() 3906 TryCand.SU = SU; in pickNodeFromQueue() [all …]
|
H A D | ScheduleDAG.cpp | 356 if (&SU == &EntrySU) in dumpNodeName() 358 else if (&SU == &ExitSU) in dumpNodeName() 365 dumpNode(SU); in dumpNodeAll() 366 SU.dumpAttributes(); in dumpNodeAll() 367 if (SU.Preds.size() > 0) { in dumpNodeAll() 377 if (SU.Succs.size() > 0) { in dumpNodeAll() 481 for (SUnit &SU : SUnits) { in InitDAGTopologicalSorting() 482 int NodeNum = SU.NodeNum; in InitDAGTopologicalSorting() 503 if (SU->NodeNum < DAGSize && !--Node2Index[SU->NodeNum]) in InitDAGTopologicalSorting() 576 WorkList.push_back(SU); in DFS() [all …]
|
H A D | LatencyPriorityQueue.cpp | 58 for (const SDep &P : SU->Preds) { in getSingleUnscheduledPred() 72 void LatencyPriorityQueue::push(SUnit *SU) { in push() argument 76 for (const SDep &Succ : SU->Succs) in push() 81 Queue.push_back(SU); in push() 89 void LatencyPriorityQueue::scheduledNode(SUnit *SU) { in scheduledNode() argument 90 for (const SDep &Succ : SU->Succs) in scheduledNode() 101 if (SU->isAvailable) return; // All preds scheduled. in AdjustPriorityOfUnscheduledPreds() 129 void LatencyPriorityQueue::remove(SUnit *SU) { in remove() argument 131 std::vector<SUnit *>::iterator I = find(Queue, SU); in remove() 142 for (const SUnit *SU : Queue) { in dump() local [all …]
|
H A D | MacroFusion.cpp | 38 static SUnit *getPredClusterSU(const SUnit &SU) { in getPredClusterSU() argument 39 for (const SDep &SI : SU.Preds) in getPredClusterSU() 48 const SUnit *CurrentSU = &SU; in hasLessThanNumFused() 100 SUnit *SU = SI.getSUnit(); in fuseInstructionPair() local 102 SU == &DAG.ExitSU || SU == &SecondSU || SU->isPred(&SecondSU)) in fuseInstructionPair() 106 DAG.addEdge(SU, SDep(&SecondSU, SDep::Artificial)); in fuseInstructionPair() 113 SUnit *SU = SI.getSUnit(); in fuseInstructionPair() local 114 if (SI.isWeak() || isHazard(SI) || &FirstSU == SU || FirstSU.isSucc(SU)) in fuseInstructionPair() 118 DAG.addEdge(&FirstSU, SDep(SU, SDep::Artificial)); in fuseInstructionPair() 124 for (SUnit &SU : DAG.SUnits) { in fuseInstructionPair() [all …]
|
/freebsd/contrib/llvm-project/llvm/lib/CodeGen/SelectionDAG/ |
H A D | ResourcePriorityQueue.cpp | 169 SU.NodeQueueId = 0; in initNodes() 233 Queue.push_back(SU); in push() 239 if (!SU || !SU->getNode()) in isResourceAvailable() 284 if (!isResourceAvailable(SU) || SU->getNode()->getGluedNode()) { in reserveResources() 289 if (SU->getNode() && SU->getNode()->isMachineOpcode()) { in reserveResources() 321 if (!SU || !SU->getNode() || !SU->getNode()->isMachineOpcode()) in rawRegPressureDelta() 355 if (!SU || !SU->getNode() || !SU->getNode()->isMachineOpcode()) in regPressureDelta() 393 if (SU->isScheduled) in SUSchedulingCost() 462 if (!SU) { in scheduledNode() 529 HorizontalVerticalBalance += (SU->Succs.size() - numberCtrlDepsInSU(SU)); in scheduledNode() [all …]
|
H A D | ScheduleDAGRRList.cpp | 755 EmitNode(SU); in ScheduleNodeBottomUp() 811 if (SU->getNode() && SU->getNode()->isMachineOpcode()) in ScheduleNodeBottomUp() 1006 return SU; in TryUnfoldSU() 1024 return SU; in TryUnfoldSU() 1177 return SU; in CopyAndMoveSuccessors() 1456 if (SU->isAvailable && !SU->NodeQueueId) { in releaseInterferences() 1958 WorkState(const SUnit *SU) : SU(SU) {} in CalcNodeSethiUllmanNumber() 2053 if (SU->NumSuccs == 0 && SU->NumPreds != 0) in getNodePriority() 2060 if (SU->NumPreds == 0 && SU->NumSuccs != 0) in getNodePriority() 2429 if (!hasOnlyLiveInOpers(SU) || !hasOnlyLiveOutUses(SU)) in initVRegCycle() [all …]
|
H A D | ScheduleDAGVLIW.cpp | 135 for (SDep &Succ : SU->Succs) { in releaseSuccessors() 139 releaseSucc(SU, Succ); in releaseSuccessors() 148 LLVM_DEBUG(dumpNode(*SU)); in scheduleNodeTopDown() 150 Sequence.push_back(SU); in scheduleNodeTopDown() 152 SU->setDepthToAtLeast(CurCycle); in scheduleNodeTopDown() 154 releaseSuccessors(SU); in scheduleNodeTopDown() 155 SU->isScheduled = true; in scheduleNodeTopDown() 168 for (SUnit &SU : SUnits) { in listScheduleTopDown() 170 if (SU.Preds.empty()) { in listScheduleTopDown() 171 AvailableQueue->push(&SU); in listScheduleTopDown() [all …]
|
H A D | ScheduleDAGSDNodes.cpp | 86 return SU; in newSUnit() 104 return SU; in Clone() 622 SU->Latency = 0; in computeLatency() 628 SU->Latency = 1; in computeLatency() 643 SU->Latency = 0; in computeLatency() 679 dumpNodeName(SU); in dumpNode() 706 dumpNodeAll(SU); in dump() 715 if (SU) in dumpSchedule() 920 if (!SU) { in EmitSchedule() 939 auto NewInsn = EmitNode(N, SU->OrigNode != SU, SU->isCloned, VRBaseMap); in EmitSchedule() [all …]
|
H A D | ScheduleDAGFast.cpp | 85 SU->addPred(D); in AddPred() 91 SU->removePred(D); in RemovePred() 159 ReleasePred(SU, &Pred); in ReleasePredecessors() 183 Sequence.push_back(SU); in ScheduleNodeBottomUp() 201 SU->isScheduled = true; in ScheduleNodeBottomUp() 300 RemovePred(SU, Pred); in CopyAndMoveSuccessors() 311 D.setSUnit(SU); in CopyAndMoveSuccessors() 318 D.setSUnit(SU); in CopyAndMoveSuccessors() 337 SU = NewSU; in CopyAndMoveSuccessors() 341 NewSU = Clone(SU); in CopyAndMoveSuccessors() [all …]
|
/freebsd/contrib/llvm-project/llvm/lib/Target/AMDGPU/ |
H A D | GCNMinRegStrategy.cpp | 25 const SUnit *SU; member 39 assert(!SU->isBoundaryNode()); in isScheduled() 51 return NumPreds[SU->NodeNum]; in getNumPreds() 88 for (auto SDep : SU->Succs) { in getReadySuccessors() 104 return SU->Succs.size() - getReadySuccessors(SU); in getNotReadySuccessors() 146 auto SU = C.SU; in pickCandidate() local 157 auto SU = C.SU; in pickCandidate() local 205 if (Set.count(C.SU)) { in bumpPredsPriority() 252 auto SU = C->SU; in schedule() local 256 Schedule.push_back(SU); in schedule() [all …]
|
H A D | GCNILPSched.cpp | 23 SUnit *SU; member 26 : SU(SU_) {} in Candidate() 88 if (SU->NumSuccs == 0 && SU->NumPreds != 0) in getNodePriority() 96 if (SU->NumPreds == 0 && SU->NumSuccs != 0) in getNodePriority() 245 auto NewBestSU = pickBest(Best->SU, I->SU); in pickCandidate() 300 SUSavedCopy[SU.NodeNum] = SU; in schedule() 319 return C1.SU->getHeight() < C2.SU->getHeight(); in schedule() 320 })->SU; in schedule() 336 auto SU = C->SU; in schedule() local 350 for (auto &SU : SUnits) in schedule() local [all …]
|
H A D | R600MachineScheduler.cpp | 96 SU = pickAlu(); in pickNode() 101 if (SU) { in pickNode() 108 if (!SU) { in pickNode() 111 if (SU) in pickNode() 116 if (!SU) { in pickNode() 118 if (SU) in pickNode() 132 return SU; in pickNode() 321 return SU; in PopInst() 425 if (SU) { in pickAlu() 434 if (SU) { in pickAlu() [all …]
|
H A D | SIMachineScheduler.cpp | 180 SUnits.push_back(SU); in addUnit() 238 if (TryCand.SU->NodeNum < Cand.SU->NodeNum) { in tryCandidateTopDown() 251 TryCand.SU = SU; in pickNode() 264 return TopCand.SU; in pickNode() 275 if (!SU->NumPredsLeft) in fastSchedule() 282 nodeScheduled(SU); in fastSchedule() 393 if (!SU->NumPredsLeft) in schedule() 402 nodeScheduled(SU); in schedule() 504 SU->isScheduled = true; in nodeScheduled() 596 DAG->dumpNode(*SU); in printDebug() [all …]
|
H A D | AMDGPUExportClustering.cpp | 51 for (SUnit *SU : Copy) { in sortChain() 52 if (isPositionExport(TII, SU)) in sortChain() 53 Chain[PosIdx++] = SU; in sortChain() 55 Chain[OtherIdx++] = SU; in sortChain() 89 if (isExport(SU)) in removeExportDependencies() 103 SU.removePred(Pred); in removeExportDependencies() 105 DAG->addEdge(&SU, Pred); in removeExportDependencies() 118 for (SUnit &SU : DAG->SUnits) { in apply() 119 if (!isExport(SU)) in apply() 122 Chain.push_back(&SU); in apply() [all …]
|
/freebsd/contrib/llvm-project/llvm/lib/Target/SystemZ/ |
H A D | SystemZHazardRecognizer.cpp | 66 if (SU != nullptr && !fitsIntoCurrentGroup(SU)) { in getCurrCycleIdx() 202 if (SU->isUnbuffered) in dumpSU() 271 EmitInstruction(SUnit *SU) { in EmitInstruction() argument 288 if (SU->isCall) { in EmitInstruction() 320 if (SU->isUnbuffered) { in EmitInstruction() 372 assert (SU->isUnbuffered); in isFPdOpPreferred_distance() 387 resourcesCost(SUnit *SU) { in resourcesCost() argument 396 if (SU->isUnbuffered) in resourcesCost() 413 SUnit SU(MI, 0); in emitInstruction() local 416 SU.isCall = MI->isCall(); in emitInstruction() [all …]
|
H A D | SystemZMachineScheduler.cpp | 29 for (auto &SU : *this) { in dump() 30 HazardRec.dumpSU(SU, dbgs()); in dump() 31 if (SU != *rbegin()) in dump() 197 return Best.SU; in pickNode() 202 SU = SU_; in Candidate() 229 if (SU->getHeight() > other.SU->getHeight()) in operator <() 231 if (SU->getHeight() < other.SU->getHeight()) in operator <() 235 if (SU->NodeNum < other.SU->NodeNum) in operator <() 247 Available.erase(SU); in schedNode() 256 SU->isScheduleHigh = (AffectsGrouping || SU->isUnbuffered); in releaseTopNode() [all …]
|
H A D | SystemZHazardRecognizer.h | 72 inline unsigned getNumDecoderSlots(SUnit *SU) const; 75 bool fitsIntoCurrentGroup(SUnit *SU) const; 85 unsigned getCurrCycleIdx(SUnit *SU = nullptr) const; 104 bool isFPdOpPreferred_distance(SUnit *SU) const; 118 void EmitInstruction(SUnit *SU) override; 121 const MCSchedClassDesc *getSchedClass(SUnit *SU) const { in getSchedClass() argument 123 SU->SchedClass = SchedModel->resolveSchedClass(SU->getInstr()); in getSchedClass() 124 return SU->SchedClass; in getSchedClass() 137 int groupingCost(SUnit *SU) const; 142 int resourcesCost(SUnit *SU); [all …]
|
/freebsd/contrib/llvm-project/llvm/include/llvm/CodeGen/ |
H A D | ScheduleDAGInstrs.h | 56 SUnit *SU; member 59 : VirtReg(VReg), LaneMask(LaneMask), SU(SU) {} in VReg2SUnit() 71 unsigned OperandIndex, SUnit *SU) in VReg2SUnitOperIdx() 78 SUnit *SU; member 83 : SU(su), OpIdx(op), RegUnit(R) {} in PhysRegSUOper() 214 addChainDependency(SU, Entry, Latency); in addChainDependencies() 269 SU->SchedClass = SchedModel.resolveSchedClass(SU->getInstr()); in getSchedClass() 270 return SU->SchedClass; in getSchedClass() 274 bool IsReachable(SUnit *SU, SUnit *TargetSU) { in IsReachable() argument 275 return Topo.IsReachable(SU, TargetSU); in IsReachable() [all …]
|
H A D | MachineScheduler.h | 553 bool isInQueue(SUnit *SU) const { return (SU->NodeQueueId & ID); } in isInQueue() argument 569 iterator find(SUnit *SU) { return llvm::find(Queue, SU); } in find() argument 571 void push(SUnit *SU) { in push() argument 572 Queue.push_back(SU); in push() 977 return isTop() ? SU->getHeight() : SU->getDepth(); in getUnscheduledLatency() 1123 SUnit *SU; member 1142 SU = nullptr; in reset() 1154 SU = Best.SU; in setBest() 1240 Top.releaseNode(SU, SU->TopReadyCycle, false); in releaseTopNode() 1248 Bot.releaseNode(SU, SU->BotReadyCycle, false); in releaseBottomNode() [all …]
|
H A D | VLIWMachineScheduler.h | 62 bool isInPacket(SUnit *SU) const { return is_contained(Packet, SU); } in isInPacket() argument 95 SUnit *SU = nullptr; member 179 for (auto &SU : DAG->SUnits) in init() 180 MaxPath = std::max(MaxPath, isTop() ? SU.getHeight() : SU.getDepth()); in init() 189 bool checkHazard(SUnit *SU); 195 void bumpNode(SUnit *SU); 199 void removeReady(SUnit *SU); 203 bool isLatencyBound(SUnit *SU) { in isLatencyBound() 206 unsigned PathLength = isTop() ? SU->getHeight() : SU->getDepth(); in isLatencyBound() 234 void releaseTopNode(SUnit *SU) override; [all …]
|
H A D | ResourcePriorityQueue.h | 83 void addNode(const SUnit *SU) override { in addNode() argument 87 void updateNode(const SUnit *SU) override {} in updateNode() argument 105 int SUSchedulingCost (SUnit *SU); 109 void initNumRegDefsLeft(SUnit *SU); 111 int rawRegPressureDelta (SUnit *SU, unsigned RCId); 119 void remove(SUnit *SU) override; 122 void scheduledNode(SUnit *SU) override; 123 bool isResourceAvailable(SUnit *SU); 124 void reserveResources(SUnit *SU); 127 void adjustPriorityOfUnscheduledPreds(SUnit *SU); [all …]
|
/freebsd/contrib/llvm-project/llvm/lib/Target/PowerPC/ |
H A D | PPCHazardRecognizers.cpp | 26 if (isBCTRAfterSet(SU)) in isLoadAfterStore() 29 const MCInstrDesc *MCID = DAG->getInstrDesc(SU); in isLoadAfterStore() 43 if (!SU->Preds[i].isNormalMemory() && !SU->Preds[i].isBarrier()) in isLoadAfterStore() 69 if (SU->Preds[i].isCtrl()) in isBCTRAfterSet() 140 if (Stalls == 0 && isLoadAfterStore(SU)) in getHazardType() 159 if (isLoadAfterStore(SU) && CurSlots < 6) { in PreEmitNoops() 182 LLVM_DEBUG(DAG->dumpNode(*SU)); in EmitInstruction() 195 CurGroup.push_back(SU); in EmitInstruction() 325 getHazardType(SUnit *SU, int Stalls) { in getHazardType() argument 328 MachineInstr *MI = SU->getInstr(); in getHazardType() [all …]
|
H A D | PPCMachineScheduler.cpp | 25 return Cand.SU->getInstr()->getOpcode() == PPC::ADDI || in isADDIInstr() 26 Cand.SU->getInstr()->getOpcode() == PPC::ADDI8; in isADDIInstr() 61 if (tryGreater(biasPhysReg(TryCand.SU, TryCand.AtTop), in tryCandidate() 92 if (tryLess(Zone->getLatencyStallCycles(TryCand.SU), in tryCandidate() 107 if (tryGreater(TryCand.SU == TryCandNextClusterSU, in tryCandidate() 113 if (tryLess(getWeakLeft(TryCand.SU, TryCand.AtTop), in tryCandidate() 142 if ((Zone->isTop() && TryCand.SU->NodeNum < Cand.SU->NodeNum) || in tryCandidate() 143 (!Zone->isTop() && TryCand.SU->NodeNum > Cand.SU->NodeNum)) { in tryCandidate() 188 if (tryLess(Top.getLatencyStallCycles(TryCand.SU), in tryCandidate() 193 if (tryGreater(TryCand.SU == DAG->getNextClusterSucc(), in tryCandidate() [all …]
|