/netbsd/external/apache2/llvm/dist/llvm/lib/Target/Hexagon/ |
H A D | HexagonMachineScheduler.cpp | 98 if (!SU || !SU->getInstr()) in isResourceAvailable() 141 if (!SU) { in reserveResources() 301 Top.releaseNode(SU, SU->TopReadyCycle); in releaseTopNode() 320 Bot.releaseNode(SU, SU->BotReadyCycle); in releaseBottomNode() 584 if (!SU || SU->isScheduled) in SchedulingCost() 885 return SU; in pickNodeBidrectional() 890 return SU; in pickNodeBidrectional() 951 SUnit *SU; in pickNode() local 960 SU = TopCand.SU; in pickNode() 971 SU = BotCand.SU; in pickNode() [all …]
|
H A D | HexagonMachineScheduler.h | 82 bool reserveResources(SUnit *SU, bool IsTop); 84 bool isInPacket(SUnit *SU) const { return is_contained(Packet, SU); } in isInPacket() argument 115 SUnit *SU = nullptr; member 185 for (auto &SU : DAG->SUnits) in init() 186 MaxPath = std::max(MaxPath, isTop() ? SU.getHeight() : SU.getDepth()); in init() 195 bool checkHazard(SUnit *SU); 201 void bumpNode(SUnit *SU); 205 void removeReady(SUnit *SU); 209 bool isLatencyBound(SUnit *SU) { in isLatencyBound() 212 unsigned PathLength = isTop() ? SU->getHeight() : SU->getDepth(); in isLatencyBound() [all …]
|
/netbsd/external/apache2/llvm/dist/llvm/lib/CodeGen/SelectionDAG/ |
H A D | ResourcePriorityQueue.cpp | 174 SU->NodeQueueId = 0; in initNodes() 238 Queue.push_back(SU); in push() 244 if (!SU || !SU->getNode()) in isResourceAvailable() 289 if (!isResourceAvailable(SU) || SU->getNode()->getGluedNode()) { in reserveResources() 294 if (SU->getNode() && SU->getNode()->isMachineOpcode()) { in reserveResources() 326 if (!SU || !SU->getNode() || !SU->getNode()->isMachineOpcode()) in rawRegPressureDelta() 360 if (!SU || !SU->getNode() || !SU->getNode()->isMachineOpcode()) in regPressureDelta() 398 if (SU->isScheduled) in SUSchedulingCost() 467 if (!SU) { in scheduledNode() 534 HorizontalVerticalBalance += (SU->Succs.size() - numberCtrlDepsInSU(SU)); in scheduledNode() [all …]
|
H A D | ScheduleDAGRRList.cpp | 753 EmitNode(SU); in ScheduleNodeBottomUp() 809 if (SU->getNode() && SU->getNode()->isMachineOpcode()) in ScheduleNodeBottomUp() 1009 return SU; in TryUnfoldSU() 1027 return SU; in TryUnfoldSU() 1180 return SU; in CopyAndMoveSuccessors() 1448 if (SU->isAvailable && !SU->NodeQueueId) { in releaseInterferences() 1951 WorkState(const SUnit *SU) : SU(SU) {} in CalcNodeSethiUllmanNumber() 2046 if (SU->NumSuccs == 0 && SU->NumPreds != 0) in getNodePriority() 2053 if (SU->NumPreds == 0 && SU->NumSuccs != 0) in getNodePriority() 2413 if (!hasOnlyLiveInOpers(SU) || !hasOnlyLiveOutUses(SU)) in initVRegCycle() [all …]
|
H A D | ScheduleDAGSDNodes.cpp | 87 return SU; in newSUnit() 105 return SU; in Clone() 619 SU->Latency = 0; in computeLatency() 625 SU->Latency = 1; in computeLatency() 640 SU->Latency = 0; in computeLatency() 675 dumpNodeName(SU); in dumpNode() 702 dumpNodeAll(SU); in dump() 712 dumpNode(*SU); in dumpSchedule() 917 if (!SU) { in EmitSchedule() 936 auto NewInsn = EmitNode(N, SU->OrigNode != SU, SU->isCloned, VRBaseMap); in EmitSchedule() [all …]
|
H A D | ScheduleDAGFast.cpp | 89 SU->addPred(D); in AddPred() 95 SU->removePred(D); in RemovePred() 163 ReleasePred(SU, &Pred); in ReleasePredecessors() 187 Sequence.push_back(SU); in ScheduleNodeBottomUp() 205 SU->isScheduled = true; in ScheduleNodeBottomUp() 305 RemovePred(SU, Pred); in CopyAndMoveSuccessors() 318 D.setSUnit(SU); in CopyAndMoveSuccessors() 326 D.setSUnit(SU); in CopyAndMoveSuccessors() 345 SU = NewSU; in CopyAndMoveSuccessors() 349 NewSU = Clone(SU); in CopyAndMoveSuccessors() [all …]
|
H A D | ScheduleDAGVLIW.cpp | 85 void releaseSucc(SUnit *SU, const SDep &D); 86 void releaseSuccessors(SUnit *SU); 137 void ScheduleDAGVLIW::releaseSuccessors(SUnit *SU) { in releaseSuccessors() argument 139 for (SDep &Succ : SU->Succs) { in releaseSuccessors() 143 releaseSucc(SU, Succ); in releaseSuccessors() 152 LLVM_DEBUG(dumpNode(*SU)); in scheduleNodeTopDown() 154 Sequence.push_back(SU); in scheduleNodeTopDown() 156 SU->setDepthToAtLeast(CurCycle); in scheduleNodeTopDown() 158 releaseSuccessors(SU); in scheduleNodeTopDown() 159 SU->isScheduled = true; in scheduleNodeTopDown() [all …]
|
/netbsd/external/apache2/llvm/dist/llvm/lib/Target/AMDGPU/ |
H A D | GCNMinRegStrategy.cpp | 25 const SUnit *SU; member 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() 235 for (auto SU : TopRoots) { in schedule() local 252 auto SU = C->SU; in schedule() local 256 Schedule.push_back(SU); in schedule() [all …]
|
H A D | GCNILPSched.cpp | 23 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 D | R600MachineScheduler.cpp | 96 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() 134 return SU; in pickNode() 323 return SU; in PopInst() 427 if (SU) { in pickAlu() 436 if (SU) { in pickAlu() [all …]
|
H A D | SIMachineScheduler.cpp | 180 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 D | AMDGPUExportClustering.cpp | 51 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 …]
|
/netbsd/external/apache2/llvm/dist/llvm/lib/Target/SystemZ/ |
H A D | SystemZHazardRecognizer.cpp | 66 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 D | SystemZMachineScheduler.cpp | 29 for (auto &SU : *this) { in dump() 30 HazardRec.dumpSU(SU, dbgs()); in dump() 31 if (SU != *rbegin()) in dump() 198 return Best.SU; in pickNode() 203 SU = SU_; in Candidate() 230 if (SU->getHeight() > other.SU->getHeight()) in operator <() 232 if (SU->getHeight() < other.SU->getHeight()) in operator <() 236 if (SU->NodeNum < other.SU->NodeNum) in operator <() 248 Available.erase(SU); in schedNode() 257 SU->isScheduleHigh = (AffectsGrouping || SU->isUnbuffered); in releaseTopNode() [all …]
|
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; 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 …]
|
/netbsd/external/apache2/llvm/dist/llvm/lib/CodeGen/ |
H A D | ScheduleDAGInstrs.cpp | 249 if (UseSU == SU) in addPhysRegDataDeps() 487 if (DefSU == SU) in addVRegDefDeps() 499 V2SU.SU = SU; in addVRegDefDeps() 534 if (V2SU.SU == SU) in addVRegUseDeps() 537 V2SU.SU->addPred(SDep(SU, SDep::Anti, Reg)); in addVRegUseDeps() 585 SU->Latency = SchedModel.computeInstrLatency(SU->getInstr()); in initSUnits() 1168 dumpNodeName(SU); in dumpNode() 1179 dumpNodeAll(SU); in dump() 1276 R.DFSNodeData[SU->NodeNum].SubtreeID = SU->NodeNum; in visitPostorderNode() 1423 DFSStack.push_back(std::make_pair(SU, SU->Preds.begin())); in follow() [all …]
|
H A D | MachineScheduler.cpp | 978 if (UI->SU == &SU) in collectVRegUses() 1132 SUnit &SU = *V2SU.SU; in updatePressureDiffs() local 1164 SUnit *SU = V2SU.SU; in updatePressureDiffs() local 1361 SUnit *SU = V2SU.SU; in computeCyclicCriticalPath() local 3137 Cand.SU = SU; in initCandidate() 3350 assert(TCand.SU == BotCand.SU && in pickNodeBidirectional() 3370 assert(TCand.SU == TopCand.SU && in pickNodeBidirectional() 3409 SU = TopCand.SU; in pickNode() 3420 SU = BotCand.SU; in pickNode() 3588 TryCand.SU = SU; in pickNodeFromQueue() [all …]
|
H A D | ScheduleDAG.cpp | 355 if (&SU == &EntrySU) in dumpNodeName() 357 else if (&SU == &ExitSU) in dumpNodeName() 364 dumpNode(SU); in dumpNodeAll() 365 SU.dumpAttributes(); in dumpNodeAll() 366 if (SU.Preds.size() > 0) { in dumpNodeAll() 376 if (SU.Succs.size() > 0) { in dumpNodeAll() 480 for (SUnit &SU : SUnits) { in InitDAGTopologicalSorting() 502 if (SU->NodeNum < DAGSize && !--Node2Index[SU->NodeNum]) in InitDAGTopologicalSorting() 575 WorkList.push_back(SU); in DFS() 577 SU = WorkList.back(); in DFS() [all …]
|
H A D | LatencyPriorityQueue.cpp | 58 for (const SDep &P : SU->Preds) { in getSingleUnscheduledPred() 72 void LatencyPriorityQueue::push(SUnit *SU) { in push() argument 76 for (SUnit::const_succ_iterator I = SU->Succs.begin(), E = SU->Succs.end(); in push() 78 if (getSingleUnscheduledPred(I->getSUnit()) == SU) in push() 83 Queue.push_back(SU); in push() 91 void LatencyPriorityQueue::scheduledNode(SUnit *SU) { in scheduledNode() argument 92 for (const SDep &Succ : SU->Succs) in scheduledNode() 131 void LatencyPriorityQueue::remove(SUnit *SU) { in remove() argument 133 std::vector<SUnit *>::iterator I = find(Queue, SU); in remove() 144 for (const SUnit *SU : Queue) { in dump() local [all …]
|
H A D | MacroFusion.cpp | 39 static SUnit *getPredClusterSU(const SUnit &SU) { in getPredClusterSU() argument 40 for (const SDep &SI : SU.Preds) in getPredClusterSU() 49 const SUnit *CurrentSU = &SU; in hasLessThanNumFused() 101 SUnit *SU = SI.getSUnit(); in fuseInstructionPair() local 103 SU == &DAG.ExitSU || SU == &SecondSU || SU->isPred(&SecondSU)) in fuseInstructionPair() 107 DAG.addEdge(SU, SDep(&SecondSU, SDep::Artificial)); in fuseInstructionPair() 114 SUnit *SU = SI.getSUnit(); in fuseInstructionPair() local 115 if (SI.isWeak() || isHazard(SI) || &FirstSU == SU || FirstSU.isSucc(SU)) in fuseInstructionPair() 119 DAG.addEdge(&FirstSU, SDep(SU, SDep::Artificial)); in fuseInstructionPair() 125 for (SUnit &SU : DAG.SUnits) { in fuseInstructionPair() [all …]
|
/netbsd/external/apache2/llvm/dist/llvm/include/llvm/CodeGen/ |
H A D | MachineScheduler.h | 544 bool isInQueue(SUnit *SU) const { return (SU->NodeQueueId & ID); } in isInQueue() argument 560 iterator find(SUnit *SU) { return llvm::find(Queue, SU); } in find() argument 562 void push(SUnit *SU) { in push() argument 563 Queue.push_back(SU); in push() 723 return isTop() ? SU->getHeight() : SU->getDepth(); in getUnscheduledLatency() 864 SUnit *SU; member 883 SU = nullptr; in reset() 895 SU = Best.SU; in setBest() 981 Top.releaseNode(SU, SU->TopReadyCycle, false); in releaseTopNode() 989 Bot.releaseNode(SU, SU->BotReadyCycle, false); in releaseBottomNode() [all …]
|
H A D | ScheduleDAGInstrs.h | 55 SUnit *SU; member 58 : VirtReg(VReg), LaneMask(LaneMask), SU(SU) {} in VReg2SUnit() 70 unsigned OperandIndex, SUnit *SU) in VReg2SUnitOperIdx() 77 SUnit *SU; member 212 addChainDependency(SU, Entry, Latency); in addChainDependencies() 267 SU->SchedClass = SchedModel.resolveSchedClass(SU->getInstr()); in getSchedClass() 268 return SU->SchedClass; in getSchedClass() 272 bool IsReachable(SUnit *SU, SUnit *TargetSU) { in IsReachable() argument 273 return Topo.IsReachable(SU, TargetSU); in IsReachable() 340 void dumpNode(const SUnit &SU) const override; [all …]
|
H A D | ResourcePriorityQueue.h | 83 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 …]
|
/netbsd/external/apache2/llvm/dist/llvm/lib/Target/PowerPC/ |
H A D | PPCHazardRecognizers.cpp | 26 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 D | PPCMachineScheduler.cpp | 25 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() 186 if (tryLess(Top.getLatencyStallCycles(TryCand.SU), in tryCandidate() 191 if (tryGreater(TryCand.SU == DAG->getNextClusterSucc(), in tryCandidate() [all …]
|