Home
last modified time | relevance | path

Searched refs:SDep (Results 1 – 25 of 36) sorted by relevance

12

/llvm-project-15.0.7/llvm/lib/CodeGen/
H A DMacroFusion.cpp34 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 DScheduleDAG.cpp109 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 DScheduleDAGInstrs.cpp252 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 DMachinePipeliner.cpp786 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 DAggressiveAntiDepBreaker.cpp260 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 DCriticalAntiDepBreaker.cpp140 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 DLatencyPriorityQueue.cpp58 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 DMachineScheduler.cpp667 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 DAMDGPUExportClustering.cpp69 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 DSIMachineScheduler.cpp424 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 DAMDGPUSubtarget.cpp799 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 DGCNMinRegStrategy.cpp88 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 DGCNILPSched.cpp64 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 DScheduleDAG.h49 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 DMachinePipeliner.h249 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 DTargetSubtargetInfo.h43 class SDep; variable
235 int UseOpIdx, SDep &Dep) const {} in adjustSchedDependency()
/llvm-project-15.0.7/llvm/lib/CodeGen/SelectionDAG/
H A DScheduleDAGFast.cpp273 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 DScheduleDAGRRList.cpp1115 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 DResourcePriorityQueue.cpp69 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 DScheduleDAGVLIW.cpp81 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 DScheduleDAGSDNodes.cpp505 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 DHexagonSubtarget.cpp266 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 DHexagonVLIWPacketizer.cpp317 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 DHexagonVLIWPacketizer.h119 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 DTypeTraitsTest.cpp22 static_assert(std::is_trivially_copyable<SDep>::value, "trivially copyable");

12