Home
last modified time | relevance | path

Searched refs:SUnit (Results 1 – 25 of 75) sorted by relevance

123

/freebsd-14.2/contrib/llvm-project/llvm/include/llvm/CodeGen/
H A DScheduleDAG.h41 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 DResourcePriorityQueue.h34 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 DScheduleDAGInstrs.h56 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 DMachinePipeliner.h145 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 DLatencyPriorityQueue.h29 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 DVLIWMachineScheduler.h27 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 DMachineScheduler.h370 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 DScheduleDAG.cpp65 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 DLatencyPriorityQueue.cpp23 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 DMacroFusion.cpp38 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 DMachinePipeliner.cpp725 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 DR600MachineScheduler.h54 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 DGCNILPSched.cpp23 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 DAMDGPUExportClustering.cpp29 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 DGCNMinRegStrategy.cpp25 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 DAMDGPUIGroupLP.cpp99 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 DR600MachineScheduler.cpp53 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 DScheduleDAGRRList.cpp186 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 DScheduleDAGFast.cpp47 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 DScheduleDAGSDNodes.h53 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 DResourcePriorityQueue.cpp73 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 DScheduleDAGVLIW.cpp57 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 DSystemZHazardRecognizer.h72 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 DSystemZMachineScheduler.h42 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 DPPCHazardRecognizers.h27 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;

123