| /llvm-project-15.0.7/llvm/lib/CodeGen/ |
| H A D | MacroFusion.cpp | 34 static bool isHazard(const SDep &Dep) { in isHazard() 35 return Dep.getKind() == SDep::Anti || Dep.getKind() == SDep::Output; in isHazard() 39 for (const SDep &SI : SU.Preds) in getPredClusterSU() 57 for (SDep &SI : FirstSU.Succs) in fuseInstructionPair() 61 for (SDep &SI : SecondSU.Preds) in fuseInstructionPair() 70 if (!DAG.addEdge(&SecondSU, SDep(&FirstSU, SDep::Cluster))) in fuseInstructionPair() 82 for (SDep &SI : FirstSU.Succs) in fuseInstructionPair() 86 for (SDep &SI : SecondSU.Preds) in fuseInstructionPair() 106 DAG.addEdge(SU, SDep(&SecondSU, SDep::Artificial)); in fuseInstructionPair() 118 DAG.addEdge(&FirstSU, SDep(SU, SDep::Artificial)); in fuseInstructionPair() [all …]
|
| H A D | ScheduleDAG.cpp | 109 for (SDep &PredDep : Preds) { in addPred() 120 SDep ForwardD = PredDep; 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() 181 SDep P = D; in removePred() 189 if (P.getKind() == SDep::Data) { in removePred() 224 for (SDep &SuccDep : SU->Succs) { in setDepthDirty() 239 for (SDep &PredDep : SU->Preds) { in setHeightDirty() 368 for (const SDep &Dep : SU.Preds) { in dumpNodeAll() [all …]
|
| H A D | ScheduleDAGInstrs.cpp | 252 SDep Dep; in addPhysRegDataDeps() 254 Dep = SDep(SU, SDep::Artificial); in addPhysRegDataDeps() 259 Dep = SDep(SU, SDep::Data, *Alias); in addPhysRegDataDeps() 298 SDep::Kind Kind = MO.isUse() ? SDep::Anti : SDep::Output; in addPhysRegDeps() 310 if (Kind != SDep::Anti) in addPhysRegDeps() 436 SDep Dep(SU, SDep::Data, Reg); in addVRegDefDeps() 479 SDep Dep(SU, SDep::Output, Reg); in addVRegDefDeps() 527 V2SU.SU->addPred(SDep(SU, SDep::Anti, Reg)); in addVRegUseDeps() 541 SDep Dep(SUa, SDep::MayAliasMem); in addChainDependency() 873 SDep Dep(SU, SDep::Artificial); in buildSchedGraph() [all …]
|
| H A D | MachinePipeliner.cpp | 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() 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() 893 I.addPred(SDep(SU, SDep::Barrier)); in updatePhiDependences() 971 SDep Dep(&I, SDep::Anti, NewBase); in changeDependences() [all …]
|
| H A D | AggressiveAntiDepBreaker.cpp | 260 for (const SDep &Pred : SU->Preds) { in AntiDepEdges() 261 if ((Pred.getKind() == SDep::Anti) || (Pred.getKind() == SDep::Output)) { in AntiDepEdges() 271 const SDep *Next = nullptr; in CriticalPathStep() 275 for (const SDep &Pred : SU->Preds) { in CriticalPathStep() 813 std::vector<const SDep *> Edges; in BreakAntiDependencies() 831 for (const SDep *Edge : Edges) { in BreakAntiDependencies() 834 if ((Edge->getKind() != SDep::Anti) && in BreakAntiDependencies() 874 for (const SDep &Pred : PathSU->Preds) { in BreakAntiDependencies() 908 for (SDep S : PathSU->Succs) { in BreakAntiDependencies() 909 SDep::Kind K = S.getKind(); in BreakAntiDependencies() [all …]
|
| H A D | CriticalAntiDepBreaker.cpp | 140 static const SDep *CriticalPathStep(const SUnit *SU) { in CriticalPathStep() 141 const SDep *Next = nullptr; in CriticalPathStep() 144 for (const SDep &P : SU->Preds) { in CriticalPathStep() 151 (NextDepth == PredTotalLatency && P.getKind() == SDep::Anti)) { in CriticalPathStep() 561 if (const SDep *Edge = CriticalPathStep(CriticalPathSU)) { in BreakAntiDependencies() 565 if (Edge->getKind() == SDep::Anti) { in BreakAntiDependencies() 584 for (const SDep &P : CriticalPathSU->Preds) in BreakAntiDependencies() 586 ? (P.getKind() != SDep::Anti || P.getReg() != AntiDepReg) in BreakAntiDependencies() 587 : (P.getKind() == SDep::Data && in BreakAntiDependencies()
|
| H A D | LatencyPriorityQueue.cpp | 58 for (const SDep &P : SU->Preds) { in getSingleUnscheduledPred() 76 for (const SDep &Succ : SU->Succs) in push() 90 for (const SDep &Succ : SU->Succs) in scheduledNode()
|
| H A D | MachineScheduler.cpp | 667 for (SDep &Succ : SU->Succs) in releaseSuccessors() 704 for (SDep &Pred : SU->Preds) in releasePredecessors() 1636 if (!DAG->addEdge(SUb, SDep(SUa, SDep::Cluster))) in clusterNeighboringMemOps() 1648 for (const SDep &Succ : SUa->Succs) { in clusterNeighboringMemOps() 1653 DAG->addEdge(Succ.getSUnit(), SDep(SUb, SDep::Artificial)); in clusterNeighboringMemOps() 1662 for (const SDep &Pred : SUb->Preds) { in clusterNeighboringMemOps() 1667 DAG->addEdge(SUa, SDep(Pred.getSUnit(), SDep::Artificial)); in clusterNeighboringMemOps() 1932 DAG->addEdge(GlobalSU, SDep(LU, SDep::Weak)); in constrainLocalCopy() 1937 DAG->addEdge(FirstLocalSU, SDep(GU, SDep::Weak)); in constrainLocalCopy() 3449 for (SDep &Dep : Deps) { in reschedulePhysReg() [all …]
|
| /llvm-project-15.0.7/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() 97 ToAdd.push_back(SDep(ExportPredSU, SDep::Barrier)); in removeExportDependencies() 102 for (SDep Pred : ToRemove) in removeExportDependencies() 104 for (SDep Pred : ToAdd) in removeExportDependencies() 128 SmallVector<SDep, 4> Succs(SU.Succs); in apply() [all …]
|
| H A D | SIMachineScheduler.cpp | 424 for (SDep& Succ : SU->Succs) { in undoSchedule() 465 for (SDep& Succ : SU->Succs) { in releaseSuccessors() 497 for (SDep& Succ : SU->Succs) { in nodeScheduled() 801 for (SDep& PredDep : SU->Preds) { in colorComputeReservedDependencies() 843 for (SDep& SuccDep : SU->Succs) { in colorComputeReservedDependencies() 925 for (SDep& SuccDep : SU->Succs) { in colorEndsAccordingToDependencies() 995 for (SDep& SuccDep : SU->Succs) { in colorMergeConstantLoadsNextGroup() 1016 for (SDep& SuccDep : SU->Succs) { in colorMergeIfPossibleNextGroup() 1037 for (SDep& SuccDep : SU->Succs) { in colorMergeIfPossibleNextGroupOnlyForReserved() 1069 for (SDep& SuccDep : SU->Succs) { in colorMergeIfPossibleSmallGroupsToNextGroup() [all …]
|
| H A D | AMDGPUSubtarget.cpp | 799 int UseOpIdx, SDep &Dep) const { in adjustSchedDependency() 800 if (Dep.getKind() != SDep::Kind::Data || !Dep.getReg() || in adjustSchedDependency() 876 if (DAG->addEdge(SU, SDep(From, SDep::Artificial))) in linkSALUChain() 879 for (SDep &SI : From->Succs) { in linkSALUChain() 883 DAG->addEdge(SUv, SDep(SU, SDep::Artificial)); in linkSALUChain() 886 for (SDep &SI : SU->Succs) { in linkSALUChain()
|
| 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()
|
| /llvm-project-15.0.7/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 385 SDep Dep(SU, SDep::Barrier); in addPredBarrier() 394 void removePred(const SDep &D); 432 for (const SDep &Pred : Preds) in isPred() 440 for (const SDep &Succ : Succs) in isSucc() 465 inline bool SDep::overlaps(const SDep &Other) const { in overlaps() 486 inline SDep::Kind SDep::getKind() const { return Dep.getInt(); } in getKind() [all …]
|
| H A D | MachinePipeliner.h | 249 bool isBackedge(SUnit *Source, const SDep &Dep) { in isBackedge() 250 if (Dep.getKind() != SDep::Anti) in isBackedge() 255 bool isLoopCarriedDep(SUnit *Source, const SDep &Dep, bool isSucc = true); 259 unsigned getDistance(SUnit *U, SUnit *V, const SDep &Dep) { in getDistance() 262 if (V->getInstr()->isPHI() && Dep.getKind() == SDep::Anti) in getDistance() 338 for (const SDep &Succ : Node->Succs) { in NodeSet() 550 int earliestCycleInChain(const SDep &Dep); 554 int latestCycleInChain(const SDep &Dep);
|
| H A D | TargetSubtargetInfo.h | 43 class SDep; variable 235 int UseOpIdx, SDep &Dep) const {} in adjustSchedDependency()
|
| /llvm-project-15.0.7/llvm/lib/CodeGen/SelectionDAG/ |
| H A D | ScheduleDAGFast.cpp | 273 SDep ChainPred; in CopyAndMoveSuccessors() 312 SDep D = NodeSuccs[i]; in CopyAndMoveSuccessors() 320 SDep D = ChainSuccs[i]; in CopyAndMoveSuccessors() 330 SDep D(LoadSU, SDep::Barrier); in CopyAndMoveSuccessors() 348 for (SDep &Pred : SU->Preds) in CopyAndMoveSuccessors() 360 SDep D = Succ; in CopyAndMoveSuccessors() 396 SDep D = Succ; in InsertCopiesAndMoveSuccs() 405 SDep FromDep(SU, SDep::Data, Reg); in InsertCopiesAndMoveSuccs() 408 SDep ToDep(CopyFromSU, SDep::Data, 0); in InsertCopiesAndMoveSuccs() 614 AddPred(TrySU, SDep(Copies.front(), SDep::Artificial)); in ListScheduleBottomUp() [all …]
|
| H A D | ScheduleDAGRRList.cpp | 1115 SDep D(LoadSU, SDep::Data, 0); in TryUnfoldSU() 1193 AddPredQueued(NewSU, SDep(SU, SDep::Artificial)); in CopyAndMoveSuccessors() 1203 SDep D = Succ; in CopyAndMoveSuccessors() 1242 SDep D = Succ; in InsertCopiesAndMoveSuccs() 1251 AddPredQueued(SuccSU, SDep(CopyFromSU, SDep::Artificial)); in InsertCopiesAndMoveSuccs() 1257 SDep FromDep(SU, SDep::Data, Reg); in InsertCopiesAndMoveSuccs() 1260 SDep ToDep(CopyFromSU, SDep::Data, 0); in InsertCopiesAndMoveSuccs() 1539 AddPredQueued(TrySU, SDep(BtSU, SDep::Artificial)); in PickNodeToScheduleBottomUp() 1593 AddPredQueued(TrySU, SDep(Copies.front(), SDep::Artificial)); in PickNodeToScheduleBottomUp() 1600 AddPredQueued(NewDef, SDep(TrySU, SDep::Artificial)); in PickNodeToScheduleBottomUp() [all …]
|
| H A D | ResourcePriorityQueue.cpp | 69 for (SDep &Pred : SU->Preds) { in numberRCValPredInSU() 107 for (const SDep &Succ : SU->Succs) { in numberRCValSuccInSU() 144 for (const SDep &Succ : SU->Succs) in numberCtrlDepsInSU() 153 for (SDep &Pred : SU->Preds) in numberCtrlPredInSU() 211 for (const SDep &Pred : SU->Preds) { in getSingleUnscheduledPred() 228 for (const SDep &Succ : SU->Succs) in push() 267 for (const SDep &Succ : S->Succs) { in isResourceAvailable() 497 for (SDep &Pred : SU->Preds) { in scheduledNode() 512 for (const SDep &Succ : SU->Succs) { in scheduledNode()
|
| H A D | ScheduleDAGVLIW.cpp | 81 void releaseSucc(SUnit *SU, const SDep &D); 109 void ScheduleDAGVLIW::releaseSucc(SUnit *SU, const SDep &D) { in releaseSucc() 135 for (SDep &Succ : SU->Succs) { in releaseSuccessors()
|
| H A D | ScheduleDAGSDNodes.cpp | 505 SDep Dep = isChain ? SDep(OpSU, SDep::Barrier) in AddSchedEdges() 506 : SDep(OpSU, SDep::Data, PhysReg); in AddSchedEdges() 645 unsigned OpIdx, SDep& dep) const{ in computeOperandLatency() 650 if (dep.getKind() != SDep::Data) in computeOperandLatency() 806 for (const SDep &Pred : SU->Preds) { in EmitPhysRegCopy() 816 for (const SDep &Succ : SU->Succs) { in EmitPhysRegCopy()
|
| /llvm-project-15.0.7/llvm/lib/Target/Hexagon/ |
| H A D | HexagonSubtarget.cpp | 266 SmallVector<SDep, 4> Erase; in apply() 286 for (SDep &SI : SU.Succs) { in apply() 287 if (SI.getKind() != SDep::Order || SI.getLatency() != 0) in apply() 296 for (SDep &PI : SI.getSUnit()->Preds) { in apply() 345 DAG->addEdge(&DAG->SUnits[su], SDep(LastSequentialCall, SDep::Barrier)); in apply() 349 DAG->addEdge(&DAG->SUnits[su], SDep(&DAG->SUnits[su-1], SDep::Barrier)); in apply() 385 DAG->addEdge(&DAG->SUnits[su], SDep(LastVRegUse[*AI], SDep::Barrier)); in apply() 435 SDep A(&S0, SDep::Artificial); in apply() 454 SDep &Dep) const { in adjustSchedDependency() 593 SDep T = I; in restoreLatency() [all …]
|
| H A D | HexagonVLIWPacketizer.cpp | 317 if (DepType == SDep::Data) { in isCallDependent() 327 return DepType == SDep::Data || DepType == SDep::Anti || in isRegDependence() 328 DepType == SDep::Output; in isRegDependence() 378 assert(DepType == SDep::Data); in promoteToDotCur() 460 assert(DepType == SDep::Data); in promoteToDotNew() 1434 if (DepType == SDep::Data) { in isLegalToPacketizeTogether() 1446 if (DepType == SDep::Data) { in isLegalToPacketizeTogether() 1459 if (DepType == SDep::Data) { in isLegalToPacketizeTogether() 1500 DepType == SDep::Order) in isLegalToPacketizeTogether() 1506 DepType != SDep::Output) in isLegalToPacketizeTogether() [all …]
|
| H A D | HexagonVLIWPacketizer.h | 119 bool isCallDependent(const MachineInstr &MI, SDep::Kind DepType, 121 bool promoteToDotCur(MachineInstr &MI, SDep::Kind DepType, 129 bool promoteToDotNew(MachineInstr &MI, SDep::Kind DepType,
|
| /llvm-project-15.0.7/llvm/unittests/CodeGen/ |
| H A D | TypeTraitsTest.cpp | 22 static_assert(std::is_trivially_copyable<SDep>::value, "trivially copyable");
|