| /freebsd-14.2/contrib/llvm-project/llvm/include/llvm/CodeGen/ |
| H A D | ScheduleDAG.h | 41 class SUnit; variable 242 class SUnit { 329 SUnit() in SUnit() function 626 SUnit *Node; 705 SUnit *ExitSU; 711 SmallVector<std::pair<SUnit *, SUnit *>, 16> Updates; 756 bool IsReachable(const SUnit *SU, const SUnit *TargetSU); 759 bool WillCreateCycle(SUnit *TargetSU, SUnit *SU); 763 void AddPred(SUnit *Y, SUnit *X); 767 void AddPredQueued(SUnit *Y, SUnit *X); [all …]
|
| H A D | ResourcePriorityQueue.h | 34 bool operator()(const SUnit* LHS, const SUnit* RHS) const; 39 std::vector<SUnit> *SUnits; 48 std::vector<SUnit*> Queue; 70 std::vector<SUnit*> Packet; 105 int SUSchedulingCost (SUnit *SU); 109 void initNumRegDefsLeft(SUnit *SU); 115 void push(SUnit *U) override; 117 SUnit *pop() override; 119 void remove(SUnit *SU) override; 124 void reserveResources(SUnit *SU); [all …]
|
| H A D | ScheduleDAGInstrs.h | 56 SUnit *SU; 78 SUnit *SU; 82 PhysRegSUOper(SUnit *su, int op, unsigned R) in PhysRegSUOper() 184 SUnit *BarrierChain = nullptr; 192 using SUList = std::list<SUnit *>; 208 void addChainDependency(SUnit *SUa, SUnit *SUb, 213 for (SUnit *Entry : SUs) in addChainDependencies() 274 bool IsReachable(SUnit *SU, SUnit *TargetSU) { in IsReachable() 285 SUnit *newSUnit(MachineInstr *MI); 288 SUnit *getSUnit(MachineInstr *MI) const; [all …]
|
| H A D | MachinePipeliner.h | 145 SetVector<SUnit *> NodeOrder; 164 std::vector<SUnit> &SUnits; 165 SetVector<SUnit *> Stack; 262 unsigned getDistance(SUnit *U, SUnit *V, const SDep &Dep) { in getDistance() 324 SetVector<SUnit *> Nodes; 330 SUnit *ExceedPressure = nullptr; 339 for (const SUnit *Node : Nodes) { in NodeSet() 389 for (SUnit *SU : *this) { in computeNodeSetInfo() 540 std::map<SUnit *, int> InstrToCycle; 638 SmallSet<SUnit *, 8> [all …]
|
| H A D | LatencyPriorityQueue.h | 29 bool operator()(const SUnit* LHS, const SUnit* RHS) const; 34 std::vector<SUnit> *SUnits = nullptr; 43 std::vector<SUnit*> Queue; 57 void addNode(const SUnit *SU) override { in addNode() 61 void updateNode(const SUnit *SU) override { in updateNode() 80 void push(SUnit *U) override; 82 SUnit *pop() override; 84 void remove(SUnit *SU) override; 94 void scheduledNode(SUnit *SU) override; 97 void AdjustPriorityOfUnscheduledPreds(SUnit *SU); [all …]
|
| H A D | VLIWMachineScheduler.h | 27 class SUnit; variable 44 SmallVector<SUnit *> Packet; 57 virtual bool hasDependence(const SUnit *SUd, const SUnit *SUu); 95 SUnit *SU = nullptr; 189 bool checkHazard(SUnit *SU); 195 void bumpNode(SUnit *SU); 199 void removeReady(SUnit *SU); 201 SUnit *pickOnlyChoice(); 203 bool isLatencyBound(SUnit *SU) { in isLatencyBound() 230 SUnit *pickNode(bool &IsTopNode) override; [all …]
|
| H A D | MachineScheduler.h | 370 void initQueues(ArrayRef<SUnit*> TopRoots, ArrayRef<SUnit*> BotRoots); 510 void initQueues(ArrayRef<SUnit*> TopRoots, ArrayRef<SUnit*> BotRoots); 524 void collectVRegUses(SUnit &SU); 543 std::vector<SUnit*> Queue; 571 void push(SUnit *SU) { in push() 1023 bool checkHazard(SUnit *SU); 1048 void bumpNode(SUnit *SU); 1052 void removeReady(SUnit *SU); 1057 SUnit *pickOnlyChoice(); 1123 SUnit *SU; [all …]
|
| /freebsd-14.2/contrib/llvm-project/llvm/lib/CodeGen/ |
| H A D | ScheduleDAG.cpp | 65 EntrySU = SUnit(); in clearDAG() 66 ExitSU = SUnit(); in clearDAG() 394 for (const SUnit &SUnit : SUnits) { in VerifyScheduledDAG() local 396 if (SUnit.NumPreds == 0 && SUnit.NumSuccs == 0) { in VerifyScheduledDAG() 402 dumpNode(SUnit); in VerifyScheduledDAG() 407 (isBottomUp ? SUnit.getHeight() : SUnit.getDepth()) > in VerifyScheduledDAG() 411 dumpNode(SUnit); in VerifyScheduledDAG() 537 void ScheduleDAGTopologicalSort::AddPredQueued(SUnit *Y, SUnit *X) { in AddPredQueued() 549 void ScheduleDAGTopologicalSort::AddPred(SUnit *Y, SUnit *X) { in AddPred() 567 void ScheduleDAGTopologicalSort::RemovePred(SUnit *M, SUnit *N) { in RemovePred() [all …]
|
| H A D | LatencyPriorityQueue.cpp | 23 bool latency_sort::operator()(const SUnit *LHS, const SUnit *RHS) const { in operator ()() 56 SUnit *LatencyPriorityQueue::getSingleUnscheduledPred(SUnit *SU) { in getSingleUnscheduledPred() 57 SUnit *OnlyAvailablePred = nullptr; in getSingleUnscheduledPred() 59 SUnit &Pred = *P.getSUnit(); in getSingleUnscheduledPred() 72 void LatencyPriorityQueue::push(SUnit *SU) { in push() 89 void LatencyPriorityQueue::scheduledNode(SUnit *SU) { in scheduledNode() 115 SUnit *LatencyPriorityQueue::pop() { in pop() 122 SUnit *V = *Best; in pop() 129 void LatencyPriorityQueue::remove(SUnit *SU) { in remove() 131 std::vector<SUnit *>::iterator I = find(Queue, SU); in remove() [all …]
|
| H A D | MacroFusion.cpp | 38 static SUnit *getPredClusterSU(const SUnit &SU) { in getPredClusterSU() 46 bool llvm::hasLessThanNumFused(const SUnit &SU, unsigned FuseLimit) { in hasLessThanNumFused() 48 const SUnit *CurrentSU = &SU; in hasLessThanNumFused() 53 bool llvm::fuseInstructionPair(ScheduleDAGInstrs &DAG, SUnit &FirstSU, in fuseInstructionPair() 54 SUnit &SecondSU) { in fuseInstructionPair() 100 SUnit *SU = SI.getSUnit(); in fuseInstructionPair() 113 SUnit *SU = SI.getSUnit(); in fuseInstructionPair() 124 for (SUnit &SU : DAG.SUnits) { in fuseInstructionPair() 142 bool scheduleAdjacentImpl(ScheduleDAGInstrs &DAG, SUnit &AnchorSU); 172 for (SUnit &ISU : DAG->SUnits) in apply() [all …]
|
| H A D | MachinePipeliner.cpp | 725 static bool isSuccOrder(SUnit *SUa, SUnit *SUb) { in isSuccOrder() 1693 SUnit *W = *SI; in unblock() 1944 static bool computePath(SUnit *Cur, SetVector<SUnit *> &Path, in computePath() 1992 for (SUnit *SU : NS) in computeLiveOuts() 2024 llvm::sort(SUnits, [](const SUnit *A, const SUnit *B) { in registerPressureFilter() 2137 for (SUnit *I : N) in groupRemainingNodes() 2146 for (SUnit *I : N) in groupRemainingNodes() 2849 static SUnit *multipleIterations(SUnit *SU, SwingSchedulerDAG *DAG) { in multipleIterations() 3227 SUnit *Succ; in checkValidNodeOrder() 3228 SUnit *Pred; in checkValidNodeOrder() [all …]
|
| /freebsd-14.2/contrib/llvm-project/llvm/lib/Target/AMDGPU/ |
| H A D | R600MachineScheduler.h | 54 std::vector<SUnit *> AvailableAlus[AluLast]; 55 std::vector<SUnit *> PhysicalRegCopy; 73 SUnit *pickNode(bool &IsTopNode) override; 75 void releaseTopNode(SUnit *SU) override; 76 void releaseBottomNode(SUnit *SU) override; 82 int getInstKind(SUnit *SU); 84 AluKind getAluKind(SUnit *SU) const; 89 SUnit *PopInst(std::vector<SUnit*> &Q, bool AnyALU); 92 SUnit* pickAlu(); 93 SUnit* pickOther(int QID); [all …]
|
| H A D | GCNILPSched.cpp | 23 SUnit *SU; 25 Candidate(SUnit *SU_) in Candidate() 42 const SUnit *pickBest(const SUnit *left, const SUnit *right); 50 std::vector<const SUnit*> schedule(ArrayRef<const SUnit*> TopRoots, 66 SUnit *PredSU = Pred.getSUnit(); in CalcNodeSethiUllmanNumber() 132 static int BUCompareLatency(const SUnit *left, const SUnit *right) { in BUCompareLatency() 162 const SUnit *GCNILPScheduler::pickBest(const SUnit *left, const SUnit *right) in pickBest() 289 std::vector<const SUnit*> 299 for (const SUnit &SU : SUnits) in schedule() 303 for (const SUnit &SU : SUnits) in schedule() [all …]
|
| H A D | AMDGPUExportClustering.cpp | 29 static bool isExport(const SUnit &SU) { in isExport() 48 SmallVector<SUnit *, 8> Copy(Chain); in sortChain() 51 for (SUnit *SU : Copy) { in sortChain() 60 SUnit *ChainHead = Exports.front(); in buildCluster() 64 SUnit *SUa = Exports[Idx]; in buildCluster() 65 SUnit *SUb = Exports[Idx + 1]; in buildCluster() 70 SUnit *PredSU = Pred.getSUnit(); in buildCluster() 86 SUnit *PredSU = Pred.getSUnit(); in removeExportDependencies() 95 SUnit *ExportPredSU = ExportPred.getSUnit(); in removeExportDependencies() 111 SmallVector<SUnit *, 8> Chain; in apply() [all …]
|
| H A D | GCNMinRegStrategy.cpp | 25 const SUnit *SU; 28 Candidate(const SUnit *SU_, int Priority_ = 0) in Candidate() 38 bool isScheduled(const SUnit *SU) const { in isScheduled() 43 void setIsScheduled(const SUnit *SU) { in setIsScheduled() 48 unsigned getNumPreds(const SUnit *SU) const { in getNumPreds() 54 unsigned decNumPreds(const SUnit *SU) { in decNumPreds() 74 std::vector<const SUnit*> schedule(ArrayRef<const SUnit*> TopRoots, 178 SmallPtrSet<const SUnit*, 32> Set; in bumpPredsPriority() 224 std::vector<const SUnit*> 228 std::vector<const SUnit*> Schedule; in schedule() [all …]
|
| H A D | AMDGPUIGroupLP.cpp | 99 apply(const SUnit *, const ArrayRef<SUnit *>, in apply() argument 146 bool tryAddEdge(SUnit *A, SUnit *B); 169 std::vector<std::pair<SUnit *, SUnit *>> &AddedEdges); 174 void link(SUnit &SU, function_ref<bool(const SUnit *A, const SUnit *B)> P); 481 SUnit *SU, int SGID, std::vector<std::pair<SUnit *, SUnit *>> &AddedEdges, in linkSUnit() argument 499 std::vector<std::pair<SUnit *, SUnit *>> &AddedEdges) { in addEdges() argument 595 std::vector<std::pair<SUnit *, SUnit *>> AddedEdges; in populateReadyList() 658 std::vector<std::pair<SUnit *, SUnit *>> AddedEdges; in solveExact() 740 std::vector<std::pair<SUnit *, SUnit *>> AddedEdges; in greedyFind() 784 std::vector<std::pair<SUnit *, SUnit *>> AddedEdges; in solveGreedy() [all …]
|
| H A D | R600MachineScheduler.cpp | 53 SUnit *SU = nullptr; in pickNode() 127 for (const SUnit &S : DAG->SUnits) in pickNode() 310 SUnit *R600SchedStrategy::PopInst(std::vector<SUnit *> &Q, bool AnyALU) { in PopInst() 315 SUnit *SU = *It; in PopInst() 330 std::vector<SUnit *> &QSrc = Pending[IDAlu]; in LoadAlu() 331 for (SUnit *SU : QSrc) { in LoadAlu() 399 SUnit* R600SchedStrategy::pickAlu() { in pickAlu() 424 SUnit *SU = AttemptFillSlot(3, true); in pickAlu() 446 SUnit* R600SchedStrategy::pickOther(int QID) { in pickOther() 447 SUnit *SU = nullptr; in pickOther() [all …]
|
| /freebsd-14.2/contrib/llvm-project/llvm/lib/CodeGen/SelectionDAG/ |
| H A D | ScheduleDAGRRList.cpp | 186 DenseMap<SUnit*, SUnit*> CallSeqEndForStart; 217 bool WillCreateCycle(SUnit *SU, SUnit *TargetSU) { in WillCreateCycle() 261 void BacktrackBottomUp(SUnit*, SUnit*); 262 SUnit *TryUnfoldSU(SUnit *); 263 SUnit *CopyAndMoveSuccessors(SUnit*); 286 SUnit *CreateClone(SUnit *N) { in CreateClone() 982 SUnit *ScheduleDAGRRList::TryUnfoldSU(SUnit *SU) { in TryUnfoldSU() 1682 bool operator()(SUnit* left, SUnit* right) const; 1696 bool operator()(SUnit* left, SUnit* right) const; 1712 bool operator()(SUnit* left, SUnit* right) const; [all …]
|
| H A D | ScheduleDAGFast.cpp | 47 SmallVector<SUnit *, 16> Queue; 51 void push(SUnit *U) { in push() 55 SUnit *pop() { in pop() 73 std::vector<SUnit*> LiveRegDefs; 98 SUnit *CopyAndMoveSuccessors(SUnit*); 206 SUnit *ScheduleDAGFast::CopyAndMoveSuccessors(SUnit *SU) { in CopyAndMoveSuccessors() 214 SUnit *NewSU; in CopyAndMoveSuccessors() 246 SUnit *NewSU = newSUnit(N); in CopyAndMoveSuccessors() 264 SUnit *LoadSU; in CopyAndMoveSuccessors() 550 SmallVector<SUnit*, 4> NotReady; in ListScheduleBottomUp() [all …]
|
| H A D | ScheduleDAGSDNodes.h | 53 std::vector<SUnit*> Sequence; 86 SUnit *newSUnit(SDNode *N); 91 SUnit *Clone(SUnit *Old); 101 void InitNumRegDefsLeft(SUnit *SU); 105 virtual void computeLatency(SUnit *SU); 125 void dumpNode(const SUnit &SU) const override; 129 std::string getGraphNodeLabel(const SUnit *SU) const override; 146 RegDefIter(const SUnit *SU, const ScheduleDAGSDNodes *SD); 187 void EmitPhysRegCopy(SUnit *SU, DenseMap<SUnit*, Register> &VRBaseMap,
|
| H A D | ResourcePriorityQueue.cpp | 73 SUnit *PredSU = Pred.getSUnit(); in numberRCValPredInSU() 111 SUnit *SuccSU = Succ.getSUnit(); in numberRCValSuccInSU() 167 for (SUnit &SU : *SUnits) { in initNodes() 175 bool resource_sort::operator()(const SUnit *LHS, const SUnit *RHS) const { in operator ()() 209 SUnit *ResourcePriorityQueue::getSingleUnscheduledPred(SUnit *SU) { in getSingleUnscheduledPred() 210 SUnit *OnlyAvailablePred = nullptr; in getSingleUnscheduledPred() 212 SUnit &PredSU = *Pred.getSUnit(); in getSingleUnscheduledPred() 224 void ResourcePriorityQueue::push(SUnit *SU) { in push() 266 for (const SUnit *S : Packet) in isResourceAvailable() 585 SUnit *ResourcePriorityQueue::pop() { in pop() [all …]
|
| H A D | ScheduleDAGVLIW.cpp | 57 std::vector<SUnit*> PendingQueue; 81 void releaseSucc(SUnit *SU, const SDep &D); 82 void releaseSuccessors(SUnit *SU); 83 void scheduleNodeTopDown(SUnit *SU, unsigned CurCycle); 109 void ScheduleDAGVLIW::releaseSucc(SUnit *SU, const SDep &D) { in releaseSucc() 110 SUnit *SuccSU = D.getSUnit(); in releaseSucc() 133 void ScheduleDAGVLIW::releaseSuccessors(SUnit *SU) { in releaseSuccessors() 168 for (SUnit &SU : SUnits) { in listScheduleTopDown() 178 std::vector<SUnit*> NotReady; in listScheduleTopDown() 205 SUnit *FoundSUnit = nullptr; in listScheduleTopDown() [all …]
|
| /freebsd-14.2/contrib/llvm-project/llvm/lib/Target/SystemZ/ |
| 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; 116 HazardType getHazardType(SUnit *SU, int Stalls = 0) override; 118 void EmitInstruction(SUnit *SU) override; 121 const MCSchedClassDesc *getSchedClass(SUnit *SU) const { in getSchedClass() 137 int groupingCost(SUnit *SU) const; 142 int resourcesCost(SUnit *SU); 147 void dumpSU(SUnit *SU, raw_ostream &OS) const;
|
| H A D | SystemZMachineScheduler.h | 42 SUnit *SU = nullptr; 51 Candidate(SUnit *SU_, SystemZHazardRecognizer &HazardRec); 74 bool operator() (SUnit *lhs, SUnit *rhs) const { in operator() 89 struct SUSet : std::set<SUnit*, SUSorter> { 139 SUnit *pickNode(bool &IsTopNode) override; 143 void schedNode(SUnit *SU, bool IsTopNode) override; 147 void releaseTopNode(SUnit *SU) override; 150 void releaseBottomNode(SUnit *SU) override {}; in releaseBottomNode()
|
| /freebsd-14.2/contrib/llvm-project/llvm/lib/Target/PowerPC/ |
| H A D | PPCHazardRecognizers.h | 27 SmallVector<SUnit *, 7> CurGroup; 30 bool isLoadAfterStore(SUnit *SU); 31 bool isBCTRAfterSet(SUnit *SU); 39 HazardType getHazardType(SUnit *SU, int Stalls) override; 40 bool ShouldPreferAnother(SUnit* SU) override; 41 unsigned PreEmitNoops(SUnit *SU) override; 42 void EmitInstruction(SUnit *SU) override; 78 HazardType getHazardType(SUnit *SU, int Stalls) override; 79 void EmitInstruction(SUnit *SU) override;
|