Home
last modified time | relevance | path

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

12

/netbsd-src/external/apache2/llvm/dist/llvm/lib/CodeGen/
H A DMacroFusion.cpp35 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 DScheduleDAG.cpp75 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 DScheduleDAGInstrs.cpp256 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 DMachinePipeliner.cpp694 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 DAggressiveAntiDepBreaker.cpp259 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 DCriticalAntiDepBreaker.cpp141 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 DLatencyPriorityQueue.cpp58 for (const SDep &P : SU->Preds) { in getSingleUnscheduledPred()
92 for (const SDep &Succ : SU->Succs) in scheduledNode()
H A DMachineScheduler.cpp637 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 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()
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 DAMDGPUSubtarget.cpp814 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 DSIMachineScheduler.cpp424 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 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()
/netbsd-src/external/apache2/llvm/dist/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
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 DMachinePipeliner.h240 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 DTargetSubtargetInfo.h42 class SDep; variable
234 int UseOpIdx, SDep &Dep) const {} in adjustSchedDependency()
/netbsd-src/external/apache2/llvm/dist/llvm/lib/CodeGen/SelectionDAG/
H A DScheduleDAGFast.cpp88 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 DScheduleDAGRRList.cpp225 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 DResourcePriorityQueue.cpp73 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 DScheduleDAGVLIW.cpp85 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 DScheduleDAGSDNodes.cpp507 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 DHexagonSubtarget.cpp202 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 DHexagonVLIWPacketizer.cpp305 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 DHexagonVLIWPacketizer.h116 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 DHexagonSubtarget.h37 class SDep; variable
271 SDep &Dep) const override;
302 void updateLatency(MachineInstr &SrcInst, MachineInstr &DstInst, SDep &Dep)

12