| /netbsd-src/external/apache2/llvm/dist/llvm/lib/CodeGen/ |
| H A D | MacroFusion.cpp | 35 static bool isHazard(const SDep &Dep) { in isHazard() 36 return Dep.getKind() == SDep::Anti || Dep.getKind() == SDep::Output; in isHazard() 40 for (const SDep &SI : SU.Preds) in getPredClusterSU() 58 for (SDep &SI : FirstSU.Succs) in fuseInstructionPair() 62 for (SDep &SI : SecondSU.Preds) in fuseInstructionPair() 71 if (!DAG.addEdge(&SecondSU, SDep(&FirstSU, SDep::Cluster))) in fuseInstructionPair() 83 for (SDep &SI : FirstSU.Succs) in fuseInstructionPair() 87 for (SDep &SI : SecondSU.Preds) in fuseInstructionPair() 100 for (const SDep &SI : FirstSU.Succs) { in fuseInstructionPair() 107 DAG.addEdge(SU, SDep(&SecondSU, SDep::Artificial)); in fuseInstructionPair() [all …]
|
| H A D | ScheduleDAG.cpp | 75 LLVM_DUMP_METHOD void SDep::dump(const TargetRegisterInfo *TRI) const { in dump() 107 bool SUnit::addPred(const SDep &D, bool Required) { in addPred() 109 for (SDep &PredDep : Preds) { in addPred() 120 SDep ForwardD = PredDep; in addPred() 122 for (SDep &SuccDep : PredSU->Succs) { in addPred() 134 SDep P = D; in addPred() 138 if (D.getKind() == SDep::Data) { in addPred() 175 void SUnit::removePred(const SDep &D) { in removePred() 177 SmallVectorImpl<SDep>::iterator I = llvm::find(Preds, D); in removePred() 181 SDep P = D; in removePred() [all …]
|
| H A D | ScheduleDAGInstrs.cpp | 256 SDep Dep; in addPhysRegDataDeps() 258 Dep = SDep(SU, SDep::Artificial); in addPhysRegDataDeps() 263 Dep = SDep(SU, SDep::Data, *Alias); in addPhysRegDataDeps() 307 SDep::Kind Kind = MO.isUse() ? SDep::Anti : SDep::Output; in addPhysRegDeps() 316 (Kind != SDep::Output || !MO.isDead() || in addPhysRegDeps() 318 SDep Dep(SU, Kind, /*Reg=*/*Alias); in addPhysRegDeps() 319 if (Kind != SDep::Anti) in addPhysRegDeps() 446 SDep Dep(SU, SDep::Data, Reg); in addVRegDefDeps() 489 SDep Dep(SU, SDep::Output, Reg); in addVRegDefDeps() 537 V2SU.SU->addPred(SDep(SU, SDep::Anti, Reg)); in addVRegUseDeps() [all …]
|
| H A D | MachinePipeliner.cpp | 694 if (SI.getKind() == SDep::Order) { in isSuccOrder() 786 SDep Dep(Load, SDep::Barrier); in addLoopCarriedDependences() 796 SDep Dep(Load, SDep::Barrier); in addLoopCarriedDependences() 804 SDep Dep(Load, SDep::Barrier); in addLoopCarriedDependences() 811 SDep Dep(Load, SDep::Barrier); in addLoopCarriedDependences() 820 SDep Dep(Load, SDep::Barrier); in addLoopCarriedDependences() 837 SmallVector<SDep, 4> RemoveDeps; in updatePhiDependences() 864 SDep Dep(SU, SDep::Anti, Reg); in updatePhiDependences() 872 I.addPred(SDep(SU, SDep::Barrier)); in updatePhiDependences() 884 SDep Dep(SU, SDep::Data, Reg); in updatePhiDependences() [all …]
|
| H A D | AggressiveAntiDepBreaker.cpp | 259 static void AntiDepEdges(const SUnit *SU, std::vector<const SDep *> &Edges) { in AntiDepEdges() 261 for (const SDep &Pred : SU->Preds) { in AntiDepEdges() 262 if ((Pred.getKind() == SDep::Anti) || (Pred.getKind() == SDep::Output)) { in AntiDepEdges() 272 const SDep *Next = nullptr; in CriticalPathStep() 276 for (const SDep &Pred : SU->Preds) { in CriticalPathStep() 283 (NextDepth == PredTotalLatency && Pred.getKind() == SDep::Anti)) { in CriticalPathStep() 824 std::vector<const SDep *> Edges; in BreakAntiDependencies() 843 const SDep *Edge = Edges[i]; in BreakAntiDependencies() 846 if ((Edge->getKind() != SDep::Anti) && in BreakAntiDependencies() 847 (Edge->getKind() != SDep::Output)) continue; in BreakAntiDependencies() [all …]
|
| H A D | CriticalAntiDepBreaker.cpp | 141 static const SDep *CriticalPathStep(const SUnit *SU) { in CriticalPathStep() 142 const SDep *Next = nullptr; in CriticalPathStep() 145 for (const SDep &P : SU->Preds) { in CriticalPathStep() 152 (NextDepth == PredTotalLatency && P.getKind() == SDep::Anti)) { in CriticalPathStep() 559 if (const SDep *Edge = CriticalPathStep(CriticalPathSU)) { in BreakAntiDependencies() 563 if (Edge->getKind() == SDep::Anti) { in BreakAntiDependencies() 582 for (const SDep &P : CriticalPathSU->Preds) in BreakAntiDependencies() 584 ? (P.getKind() != SDep::Anti || P.getReg() != AntiDepReg) in BreakAntiDependencies() 585 : (P.getKind() == SDep::Data && in BreakAntiDependencies()
|
| H A D | LatencyPriorityQueue.cpp | 58 for (const SDep &P : SU->Preds) { in getSingleUnscheduledPred() 92 for (const SDep &Succ : SU->Succs) in scheduledNode()
|
| H A D | MachineScheduler.cpp | 637 void ScheduleDAGMI::releaseSucc(SUnit *SU, SDep *SuccEdge) { in releaseSucc() 666 for (SDep &Succ : SU->Succs) in releaseSuccessors() 674 void ScheduleDAGMI::releasePred(SUnit *SU, SDep *PredEdge) { in releasePred() 703 for (SDep &Pred : SU->Preds) in releasePredecessors() 1637 if (!DAG->addEdge(SUb, SDep(SUa, SDep::Cluster))) in clusterNeighboringMemOps() 1649 for (const SDep &Succ : SUa->Succs) { in clusterNeighboringMemOps() 1654 DAG->addEdge(Succ.getSUnit(), SDep(SUb, SDep::Artificial)); in clusterNeighboringMemOps() 1663 for (const SDep &Pred : SUb->Preds) { in clusterNeighboringMemOps() 1668 DAG->addEdge(SUa, SDep(Pred.getSUnit(), SDep::Artificial)); in clusterNeighboringMemOps() 1718 for (const SDep &Pred : MemOp.SU->Preds) { in groupMemOps() [all …]
|
| /netbsd-src/external/apache2/llvm/dist/llvm/lib/Target/AMDGPU/ |
| H A D | AMDGPUExportClustering.cpp | 69 for (const SDep &Pred : SUb->Preds) { in buildCluster() 72 DAG->addEdge(ChainHead, SDep(PredSU, SDep::Artificial)); in buildCluster() 76 DAG->addEdge(SUb, SDep(SUa, SDep::Barrier)); in buildCluster() 78 DAG->addEdge(SUb, SDep(SUa, SDep::Cluster)); in buildCluster() 83 SmallVector<SDep, 2> ToAdd, ToRemove; in removeExportDependencies() 85 for (const SDep &Pred : SU.Preds) { in removeExportDependencies() 94 for (const SDep &ExportPred : PredSU->Preds) { in removeExportDependencies() 97 ToAdd.push_back(SDep(ExportPredSU, SDep::Barrier)); in removeExportDependencies() 102 for (SDep Pred : ToRemove) in removeExportDependencies() 104 for (SDep Pred : ToAdd) in removeExportDependencies() [all …]
|
| H A D | AMDGPUSubtarget.cpp | 814 int UseOpIdx, SDep &Dep) const { in adjustSchedDependency() 815 if (Dep.getKind() != SDep::Kind::Data || !Dep.getReg() || in adjustSchedDependency() 875 for (const SDep &SI : Succs[I]->Succs) { in canAddEdge() 888 for (const SDep &SI : SU->Preds) in canAddEdge() 911 if (SU->addPred(SDep(From, SDep::Artificial), false)) in linkSALUChain() 914 for (SDep &SI : From->Succs) { in linkSALUChain() 917 SUv->addPred(SDep(SU, SDep::Artificial), false); in linkSALUChain() 920 for (SDep &SI : SU->Succs) { in linkSALUChain()
|
| H A D | SIMachineScheduler.cpp | 424 for (SDep& Succ : SU->Succs) { in undoSchedule() 434 void SIScheduleBlock::undoReleaseSucc(SUnit *SU, SDep *SuccEdge) { in undoReleaseSucc() 444 void SIScheduleBlock::releaseSucc(SUnit *SU, SDep *SuccEdge) { in releaseSucc() 465 for (SDep& Succ : SU->Succs) { in releaseSuccessors() 497 for (SDep& Succ : SU->Succs) { in nodeScheduled() 648 PredDep.getKind() == llvm::SDep::Data) in hasDataDependencyPred() 801 for (SDep& PredDep : SU->Preds) { in colorComputeReservedDependencies() 843 for (SDep& SuccDep : SU->Succs) { in colorComputeReservedDependencies() 927 for (SDep& SuccDep : SU->Succs) { in colorEndsAccordingToDependencies() 997 for (SDep& SuccDep : SU->Succs) { in colorMergeConstantLoadsNextGroup() [all …]
|
| H A D | GCNMinRegStrategy.cpp | 88 for (auto SDep : SU->Succs) { in getReadySuccessors() local 90 for (auto PDep : SDep.getSUnit()->Preds) { in getReadySuccessors() 181 S.getKind() != SDep::Data) in bumpPredsPriority()
|
| H A D | GCNILPSched.cpp | 64 for (const SDep &Pred : SU->Preds) { in CalcNodeSethiUllmanNumber() 108 for (const SDep &Succ : SU->Succs) { in closestSucc() 123 for (const SDep &Pred : SU->Preds) { in calcMaxScratches()
|
| /netbsd-src/external/apache2/llvm/dist/llvm/include/llvm/CodeGen/ |
| H A D | ScheduleDAG.h | 49 class SDep { 101 SDep() : Dep(nullptr, Data) {} in SDep() function 104 SDep(SUnit *S, Kind kind, unsigned Reg) in SDep() function 123 SDep(SUnit *S, OrderKind kind) in SDep() function 129 bool overlaps(const SDep &Other) const; 131 bool operator==(const SDep &Other) const { 135 bool operator!=(const SDep &Other) const { 256 SmallVector<SDep, 4> Preds; ///< All sunit predecessors. 257 SmallVector<SDep, 4> Succs; ///< All sunit successors. 259 typedef SmallVectorImpl<SDep>::iterator pred_iterator; [all …]
|
| H A D | MachinePipeliner.h | 240 bool isBackedge(SUnit *Source, const SDep &Dep) { in isBackedge() 241 if (Dep.getKind() != SDep::Anti) in isBackedge() 246 bool isLoopCarriedDep(SUnit *Source, const SDep &Dep, bool isSucc = true); 250 unsigned getDistance(SUnit *U, SUnit *V, const SDep &Dep) { in getDistance() 253 if (V->getInstr()->isPHI() && Dep.getKind() == SDep::Anti) in getDistance() 329 for (const SDep &Succ : Nodes[i]->Succs) { in NodeSet() 541 int earliestCycleInChain(const SDep &Dep); 545 int latestCycleInChain(const SDep &Dep);
|
| H A D | TargetSubtargetInfo.h | 42 class SDep; variable 234 int UseOpIdx, SDep &Dep) const {} in adjustSchedDependency()
|
| /netbsd-src/external/apache2/llvm/dist/llvm/lib/CodeGen/SelectionDAG/ |
| H A D | ScheduleDAGFast.cpp | 88 void AddPred(SUnit *SU, const SDep &D) { in AddPred() 94 void RemovePred(SUnit *SU, const SDep &D) { in RemovePred() 99 void ReleasePred(SUnit *SU, SDep *PredEdge); 139 void ScheduleDAGFast::ReleasePred(SUnit *SU, SDep *PredEdge) { in ReleasePred() 162 for (SDep &Pred : SU->Preds) { in ReleasePredecessors() 192 for (SDep &Succ : SU->Succs) { in ScheduleNodeBottomUp() 277 SDep ChainPred; in CopyAndMoveSuccessors() 278 SmallVector<SDep, 4> ChainSuccs; in CopyAndMoveSuccessors() 279 SmallVector<SDep, 4> LoadPreds; in CopyAndMoveSuccessors() 280 SmallVector<SDep, 4> NodePreds; in CopyAndMoveSuccessors() [all …]
|
| H A D | ScheduleDAGRRList.cpp | 225 void AddPredQueued(SUnit *SU, const SDep &D) { in AddPredQueued() 233 void AddPred(SUnit *SU, const SDep &D) { in AddPred() 241 void RemovePred(SUnit *SU, const SDep &D) { in RemovePred() 252 void ReleasePred(SUnit *SU, const SDep *PredEdge); 259 void CapturePred(SDep *PredEdge); 398 void ScheduleDAGRRList::ReleasePred(SUnit *SU, const SDep *PredEdge) { in ReleasePred() 556 for (SDep &Pred : SU->Preds) { in ReleasePredecessors() 770 for (SDep &Succ : SU->Succs) { in ScheduleNodeBottomUp() 820 void ScheduleDAGRRList::CapturePred(SDep *PredEdge) { in CapturePred() 839 for (SDep &Pred : SU->Preds) { in UnscheduleNodeBottomUp() [all …]
|
| H A D | ResourcePriorityQueue.cpp | 73 for (SDep &Pred : SU->Preds) { in numberRCValPredInSU() 111 for (const SDep &Succ : SU->Succs) { in numberRCValSuccInSU() 148 for (const SDep &Succ : SU->Succs) in numberCtrlDepsInSU() 157 for (SDep &Pred : SU->Preds) in numberCtrlPredInSU() 216 for (const SDep &Pred : SU->Preds) { in getSingleUnscheduledPred() 233 for (const SDep &Succ : SU->Succs) in push() 272 for (const SDep &Succ : Packet[i]->Succs) { in isResourceAvailable() 502 for (SDep &Pred : SU->Preds) { in scheduledNode() 517 for (const SDep &Succ : SU->Succs) { in scheduledNode()
|
| H A D | ScheduleDAGVLIW.cpp | 85 void releaseSucc(SUnit *SU, const SDep &D); 113 void ScheduleDAGVLIW::releaseSucc(SUnit *SU, const SDep &D) { in releaseSucc() 139 for (SDep &Succ : SU->Succs) { in releaseSuccessors()
|
| H A D | ScheduleDAGSDNodes.cpp | 507 SDep Dep = isChain ? SDep(OpSU, SDep::Barrier) in AddSchedEdges() 508 : SDep(OpSU, SDep::Data, PhysReg); in AddSchedEdges() 647 unsigned OpIdx, SDep& dep) const{ in computeOperandLatency() 652 if (dep.getKind() != SDep::Data) in computeOperandLatency() 811 for (const SDep &Pred : SU->Preds) { in EmitPhysRegCopy() 821 for (const SDep &Succ : SU->Succs) { in EmitPhysRegCopy()
|
| /netbsd-src/external/apache2/llvm/dist/llvm/lib/Target/Hexagon/ |
| H A D | HexagonSubtarget.cpp | 202 SmallVector<SDep, 4> Erase; in apply() 204 if (D.getKind() == SDep::Output && D.getReg() == Hexagon::USR_OVF) in apply() 222 for (SDep &SI : SU.Succs) { in apply() 223 if (SI.getKind() != SDep::Order || SI.getLatency() != 0) in apply() 232 for (SDep &PI : SI.getSUnit()->Preds) { in apply() 233 if (PI.getSUnit() != &SU || PI.getKind() != SDep::Order) in apply() 281 DAG->addEdge(&DAG->SUnits[su], SDep(LastSequentialCall, SDep::Barrier)); in apply() 285 DAG->addEdge(&DAG->SUnits[su], SDep(&DAG->SUnits[su-1], SDep::Barrier)); in apply() 322 DAG->addEdge(&DAG->SUnits[su], SDep(LastVRegUse[*AI], SDep::Barrier)); in apply() 372 SDep A(&S0, SDep::Artificial); in apply() [all …]
|
| H A D | HexagonVLIWPacketizer.cpp | 305 SDep::Kind DepType, unsigned DepReg) { in isCallDependent() 319 if (DepType == SDep::Data) { in isCallDependent() 328 static bool isRegDependence(const SDep::Kind DepType) { in isRegDependence() 329 return DepType == SDep::Data || DepType == SDep::Anti || in isRegDependence() 330 DepType == SDep::Output; in isRegDependence() 378 SDep::Kind DepType, MachineBasicBlock::iterator &MII, in promoteToDotCur() 380 assert(DepType == SDep::Data); in promoteToDotCur() 460 SDep::Kind DepType, MachineBasicBlock::iterator &MII, in promoteToDotNew() 462 assert(DepType == SDep::Data); in promoteToDotNew() 535 if (PI.getKind() != SDep::Anti && in updateOffset() [all …]
|
| H A D | HexagonVLIWPacketizer.h | 116 bool isCallDependent(const MachineInstr &MI, SDep::Kind DepType, 118 bool promoteToDotCur(MachineInstr &MI, SDep::Kind DepType, 126 bool promoteToDotNew(MachineInstr &MI, SDep::Kind DepType,
|
| H A D | HexagonSubtarget.h | 37 class SDep; variable 271 SDep &Dep) const override; 302 void updateLatency(MachineInstr &SrcInst, MachineInstr &DstInst, SDep &Dep)
|