/freebsd/contrib/llvm-project/llvm/lib/CodeGen/ |
H A D | ScheduleDAG.cpp | 65 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 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() 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 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 [all...] |
H A D | MachinePipeliner.cpp | 709 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 D | ScheduleDAG.h | 41 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 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; 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 D | ScheduleDAGInstrs.h | 55 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 D | MachinePipeliner.h | 150 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 D | LatencyPriorityQueue.h | 29 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 D | VLIWMachineScheduler.h | 27 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 D | MachineScheduler.h | 254 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 D | R600MachineScheduler.h | 53 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 D | GCNILPSched.cpp | 23 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 D | AMDGPUIGroupLP.cpp | 95 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 D | AMDGPUExportClustering.cpp | 29 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 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() 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 D | R600MachineScheduler.cpp | 40 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 D | ScheduleDAGRRList.cpp | 150 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 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; 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 D | ResourcePriorityQueue.cpp | 67 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 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 | 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() 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 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/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;
|