Home
last modified time | relevance | path

Searched refs:SU (Results 1 – 25 of 126) sorted by relevance

123456

/freebsd/contrib/llvm-project/llvm/lib/CodeGen/
H A DVLIWMachineScheduler.cpp109 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 DScheduleDAGInstrs.cpp106 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 DMachineScheduler.cpp1185 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 DScheduleDAG.cpp356 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 DLatencyPriorityQueue.cpp58 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 DMacroFusion.cpp38 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 DResourcePriorityQueue.cpp169 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 DScheduleDAGRRList.cpp755 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 DScheduleDAGVLIW.cpp135 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 DScheduleDAGSDNodes.cpp86 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 DScheduleDAGFast.cpp85 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 DGCNMinRegStrategy.cpp25 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 DGCNILPSched.cpp23 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 DR600MachineScheduler.cpp96 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 DSIMachineScheduler.cpp180 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 DAMDGPUExportClustering.cpp51 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 DSystemZHazardRecognizer.cpp66 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 DSystemZMachineScheduler.cpp29 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 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;
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 DScheduleDAGInstrs.h56 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 DMachineScheduler.h553 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 DVLIWMachineScheduler.h62 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 DResourcePriorityQueue.h83 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 DPPCHazardRecognizers.cpp26 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 DPPCMachineScheduler.cpp25 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 …]

123456