Home
last modified time | relevance | path

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

1234

/freebsd/contrib/llvm-project/llvm/lib/CodeGen/
H A DScheduleDAG.cpp65 EntrySU = SUnit(); in clearDAG()
66 ExitSU = SUnit(); in clearDAG()
106 bool SUnit::addPred(const SDep &D, bool Required) { in addPred()
117 SUnit *PredSU = PredDep.getSUnit(); in addPred()
135 SUnit *N = D.getSUnit(); in addPred()
174 void SUnit::removePred(const SDep &D) { in removePred()
182 SUnit *N = D.getSUnit(); in removePred()
218 void SUnit::setDepthDirty() { in setDepthDirty()
220 SmallVector<SUnit*, 8> WorkList; in setDepthDirty()
223 SUnit *SU = WorkList.pop_back_val(); in setDepthDirty()
[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()
100 void LatencyPriorityQueue::AdjustPriorityOfUnscheduledPreds(SUnit *SU) { in AdjustPriorityOfUnscheduledPreds()
103 SUnit *OnlyAvailablePred = getSingleUnscheduledPred(SU); in AdjustPriorityOfUnscheduledPreds()
115 SUnit *LatencyPriorityQueue::pop() { in pop()
117 std::vector<SUnit *>::iterator Best = Queue.begin(); in pop()
[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
[all...]
H A DMachinePipeliner.cpp709 for (SUnit *SU : Schedule.getInstructions(Cycle)) { in schedule()
785 static bool isSuccOrder(SUnit *SUa, SUnit *SUb) { in isSuccOrder()
786 SmallPtrSet<SUnit *, 8> Visited; in isSuccOrder()
787 SmallVector<SUnit *, 8> Worklist; in isSuccOrder()
790 const SUnit *SU = Worklist.pop_back_val(); in isSuccOrder()
792 SUnit *SuccSU = SI.getSUnit(); in isSuccOrder()
839 MapVector<const Value *, SmallVector<SUnit *, 4>> PendingLoads; in addLoopCarriedDependences()
852 SmallVector<SUnit *, 4> &SUs = PendingLoads[V]; in addLoopCarriedDependences()
861 MapVector<const Value *, SmallVector<SUnit *, 4>>::iterator I = in addLoopCarriedDependences()
939 for (SUnit &I : SUnits) { in updatePhiDependences()
[all …]
/freebsd/contrib/llvm-project/llvm/include/llvm/CodeGen/
H A DScheduleDAG.h41 class SUnit; variable
80 PointerIntPair<SUnit *, 2, Kind> Dep;
104 SDep(SUnit *S, Kind kind, unsigned Reg) in SDep()
123 SDep(SUnit *S, OrderKind kind) in SDep()
152 SUnit *getSUnit() const;
155 void setSUnit(SUnit *SU);
242 class SUnit {
252 SUnit *OrigNode = nullptr; ///< If not this, the node from which this node
318 SUnit(SDNode *node, unsigned nodenum) in SUnit() function
330 SUnit(MachineInstr *instr, unsigned nodenum) in SUnit() function
[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;
81 void initNodes(std::vector<SUnit> &sunits) override;
83 void addNode(const SUnit *SU) override { in addNode()
87 void updateNode(const SUnit *SU) override {} in updateNode()
105 int SUSchedulingCost (SUnit *SU);
109 void initNumRegDefsLeft(SUnit *SU);
110 int regPressureDelta(SUnit *SU, bool RawPressure = false);
[all …]
H A DScheduleDAGInstrs.h55 SUnit *SU;
57 VReg2SUnit(unsigned VReg, LaneBitmask LaneMask, SUnit *SU) in VReg2SUnit()
70 unsigned OperandIndex, SUnit *SU) in VReg2SUnitOperIdx()
77 SUnit *SU;
81 PhysRegSUOper(SUnit *su, int op, unsigned R) in PhysRegSUOper()
153 DenseMap<MachineInstr*, SUnit*> MISUnitMap;
177 SUnit *BarrierChain = nullptr;
185 using SUList = std::list<SUnit *>;
213 void addChainDependency(SUnit *SUa, SUnit *SUb,
217 void addChainDependencies(SUnit *SU, SUList &SUs, unsigned Latency) { in addChainDependencies()
[all …]
H A DMachinePipeliner.h150 SetVector<SUnit *> NodeOrder;
158 DenseMap<SUnit *, std::pair<unsigned, int64_t>> InstrChanges;
169 std::vector<SUnit> &SUnits;
170 SetVector<SUnit *> Stack;
172 SmallVector<SmallPtrSet<SUnit *, 4>, 10> B;
180 Circuits(std::vector<SUnit> &SUs, ScheduleDAGTopologicalSort &Topo) in Circuits()
195 B.assign(SUnits.size(), SmallPtrSet<SUnit *, 4>()); in reset()
227 int getASAP(SUnit *Node) { return ScheduleInfo[Node->NodeNum].ASAP; } in getASAP()
230 int getALAP(SUnit *Node) { return ScheduleInfo[Node->NodeNum].ALAP; } in getALAP()
234 int getMOV(SUnit *Node) { return getALAP(Node) - getASAP(Node); } in getMOV()
[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;
52 void initNodes(std::vector<SUnit> &sunits) override { in initNodes()
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;
[all …]
H A DVLIWMachineScheduler.h27 class SUnit; variable
44 SmallVector<SUnit *> Packet;
57 virtual bool hasDependence(const SUnit *SUd, const SUnit *SUu);
58 virtual bool isResourceAvailable(SUnit *SU, bool IsTop);
59 virtual bool reserveResources(SUnit *SU, bool IsTop);
62 bool isInPacket(SUnit *SU) const { return is_contained(Packet, SU); } in isInPacket()
94 // The best SUnit candidate.
95 SUnit *SU = nullptr;
189 bool checkHazard(SUnit *S
[all...]
H A DMachineScheduler.h254 virtual SUnit *pickNode(bool &IsTopNode) = 0;
261 virtual void schedNode(SUnit *SU, bool IsTopNode) = 0;
265 virtual void releaseTopNode(SUnit *SU) = 0;
269 virtual void releaseBottomNode(SUnit *SU) = 0;
292 const SUnit *NextClusterPred = nullptr;
293 const SUnit *NextClusterSucc = nullptr;
355 const SUnit *getNextClusterPred() const { return NextClusterPred; } in getNextClusterPred()
357 const SUnit *getNextClusterSucc() const { return NextClusterSucc; } in getNextClusterSucc()
370 void initQueues(ArrayRef<SUnit*> TopRoots, ArrayRef<SUnit*> BotRoots);
373 void updateQueues(SUnit *SU, bool IsTopNode);
[all …]
/freebsd/contrib/llvm-project/llvm/lib/Target/AMDGPU/
H A DR600MachineScheduler.h53 std::vector<SUnit *> Available[IDLast], Pending[IDLast];
54 std::vector<SUnit *> AvailableAlus[AluLast];
55 std::vector<SUnit *> PhysicalRegCopy;
73 SUnit *pickNode(bool &IsTopNode) override;
74 void schedNode(SUnit *SU, 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;
87 SUnit *AttemptFillSlot (unsigned Slot, bool AnyAlu);
[all …]
H A DGCNILPSched.cpp23 SUnit *SU;
25 Candidate(SUnit *SU_) in Candidate()
40 unsigned getNodePriority(const SUnit *SU) const;
42 const SUnit *pickBest(const SUnit *left, const SUnit *right);
47 void releasePredecessors(const SUnit* SU);
50 std::vector<const SUnit*> schedule(ArrayRef<const SUnit*> TopRoots,
58 CalcNodeSethiUllmanNumber(const SUnit *SU, std::vector<unsigned> &SUNumbers) { in CalcNodeSethiUllmanNumber()
66 SUnit *PredSU = Pred.getSUnit(); in CalcNodeSethiUllmanNumber()
86 unsigned GCNILPScheduler::getNodePriority(const SUnit *SU) const { in getNodePriority()
106 static unsigned closestSucc(const SUnit *SU) { in closestSucc()
[all …]
H A DAMDGPUIGroupLP.cpp95 std::optional<SmallVector<SUnit *, 4>> Cache;
99 apply(const SUnit *, const ArrayRef<SUnit *>, in apply() argument
108 Cache = SmallVector<SUnit *, 4>(); in InstructionRule()
115 using SUnitsToCandidateSGsMap = DenseMap<SUnit *, SmallVector<int, 4>>;
144 bool tryAddEdge(SUnit *A, SUnit *B);
152 SmallVector<SUnit *, 32> Collection;
158 bool canAddSU(SUnit &SU) const;
163 void link(SUnit &SU, bool MakePred = false);
167 int link(SUnit &SU, bool MakePred,
168 std::vector<std::pair<SUnit *, SUnit *>> &AddedEdges);
[all …]
H A DAMDGPUExportClustering.cpp29 static bool isExport(const SUnit &SU) { in isExport()
33 static bool isPositionExport(const SIInstrInfo *TII, SUnit *SU) { in isPositionExport()
39 static void sortChain(const SIInstrInfo *TII, SmallVector<SUnit *, 8> &Chain, in sortChain() argument
48 SmallVector<SUnit *, 8> Copy(Chain); in sortChain()
51 for (SUnit *SU : Copy) { in sortChain()
59 static void buildCluster(ArrayRef<SUnit *> Exports, ScheduleDAGInstrs *DAG) { in buildCluster()
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()
[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()
62 int getReadySuccessors(const SUnit *SU) const;
63 int getNotReadySuccessors(const SUnit *SU) const;
70 void bumpPredsPriority(const SUnit *SchedSU, int Priority);
71 void releaseSuccessors(const SUnit* SU, int Priority);
[all …]
H A DR600MachineScheduler.cpp40 void R600SchedStrategy::MoveUnits(std::vector<SUnit *> &QSrc, in MoveUnits()
41 std::vector<SUnit *> &QDst) in MoveUnits()
52 SUnit* R600SchedStrategy::pickNode(bool &IsTopNode) { in pickNode()
53 SUnit *SU = nullptr; in pickNode()
127 for (const SUnit &S : DAG->SUnits) in pickNode()
135 void R600SchedStrategy::schedNode(SUnit *SU, bool IsTopNode) { in schedNode()
182 void R600SchedStrategy::releaseTopNode(SUnit *SU) { in releaseTopNode()
186 void R600SchedStrategy::releaseBottomNode(SUnit *SU) { in releaseBottomNode()
210 R600SchedStrategy::AluKind R600SchedStrategy::getAluKind(SUnit *SU) const { in getAluKind()
284 int R600SchedStrategy::getInstKind(SUnit* SU) { in getInstKind()
[all …]
/freebsd/contrib/llvm-project/llvm/lib/CodeGen/SelectionDAG/
H A DScheduleDAGRRList.cpp150 std::vector<SUnit *> PendingQueue;
169 std::unique_ptr<SUnit*[]> LiveRegDefs;
170 std::unique_ptr<SUnit*[]> LiveRegGens;
174 SmallVector<SUnit*, 4> Interferences;
176 using LRegsMapT = DenseMap<SUnit *, SmallVector<unsigned, 4>>;
186 DenseMap<SUnit*, SUnit*> CallSeqEndForStart;
211 bool IsReachable(const SUnit *SU, const SUnit *TargetSU) { in IsReachable()
217 bool WillCreateCycle(SUnit *SU, SUnit *TargetSU) { in WillCreateCycle()
224 void AddPredQueued(SUnit *SU, const SDep &D) { in AddPredQueued()
232 void AddPred(SUnit *SU, const SDep &D) { in AddPred()
[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;
84 void AddPred(SUnit *SU, const SDep &D) { in AddPred()
90 void RemovePred(SUnit *SU, const SDep &D) { in RemovePred()
95 void ReleasePred(SUnit *SU, SDep *PredEdge);
96 void ReleasePredecessors(SUnit *SU, unsigned CurCycle);
97 void ScheduleNodeBottomUp(SUnit*, unsigned);
98 SUnit *CopyAndMoveSuccessors(SUnit*);
[all …]
H A DResourcePriorityQueue.cpp67 ResourcePriorityQueue::numberRCValPredInSU(SUnit *SU, unsigned RCId) { in numberRCValPredInSU()
73 SUnit *PredSU = Pred.getSUnit(); in numberRCValPredInSU()
104 unsigned ResourcePriorityQueue::numberRCValSuccInSU(SUnit *SU, in numberRCValSuccInSU()
111 SUnit *SuccSU = Succ.getSUnit(); in numberRCValSuccInSU()
142 static unsigned numberCtrlDepsInSU(SUnit *SU) { in numberCtrlDepsInSU()
151 static unsigned numberCtrlPredInSU(SUnit *SU) { in numberCtrlPredInSU()
163 void ResourcePriorityQueue::initNodes(std::vector<SUnit> &sunits) { in initNodes()
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()
[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 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()
146 void ScheduleDAGVLIW::scheduleNodeTopDown(SUnit *SU, unsigned CurCycle) { in scheduleNodeTopDown()
168 for (SUnit &SU : SUnits) { in listScheduleTopDown()
178 std::vector<SUnit*> NotRead in listScheduleTopDown()
[all...]
/freebsd/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/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;

1234