Home
last modified time | relevance | path

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

123

/external/swiftshader/third_party/LLVM/lib/CodeGen/
DScheduleDAGInstrs.cpp273 SDep::Kind Kind = MO.isUse() ? SDep::Anti : SDep::Output; in BuildSchedGraph()
274 unsigned AOLatency = (Kind == SDep::Anti) ? 0 : 1; in BuildSchedGraph()
280 (Kind != SDep::Output || !MO.isDead() || in BuildSchedGraph()
282 DefSU->addPred(SDep(SU, Kind, AOLatency, /*Reg=*/Reg)); in BuildSchedGraph()
291 (Kind != SDep::Output || !MO.isDead() || in BuildSchedGraph()
293 DefSU->addPred(SDep(SU, Kind, AOLatency, /*Reg=*/ *Alias)); in BuildSchedGraph()
326 const SDep& dep = SDep(SU, SDep::Data, LDataLatency, Reg); in BuildSchedGraph()
328 ComputeOperandLatency(SU, UseSU, const_cast<SDep &>(dep)); in BuildSchedGraph()
329 ST.adjustSchedDependency(SU, UseSU, const_cast<SDep &>(dep)); in BuildSchedGraph()
339 const SDep& dep = SDep(SU, SDep::Data, DataLatency, *Alias); in BuildSchedGraph()
[all …]
DScheduleDAG.cpp88 bool SUnit::addPred(const SDep &D) { in addPred()
90 for (SmallVector<SDep, 4>::const_iterator I = Preds.begin(), E = Preds.end(); in addPred()
95 SDep P = D; in addPred()
99 if (D.getKind() == SDep::Data) { in addPred()
125 void SUnit::removePred(const SDep &D) { in removePred()
127 for (SmallVector<SDep, 4>::iterator I = Preds.begin(), E = Preds.end(); in removePred()
132 SDep P = D; in removePred()
135 for (SmallVector<SDep, 4>::iterator II = N->Succs.begin(), in removePred()
146 if (P.getKind() == SDep::Data) { in removePred()
311 case SDep::Data: dbgs() << "val "; break; in dumpAll()
[all …]
DAggressiveAntiDepBreaker.cpp278 static void AntiDepEdges(const SUnit *SU, std::vector<const SDep*>& Edges) { in AntiDepEdges()
282 if ((P->getKind() == SDep::Anti) || (P->getKind() == SDep::Output)) { in AntiDepEdges()
295 const SDep *Next = 0; in CriticalPathStep()
307 (NextDepth == PredTotalLatency && P->getKind() == SDep::Anti)) { in CriticalPathStep()
794 std::vector<const SDep *> Edges; in BreakAntiDependencies()
813 const SDep *Edge = Edges[i]; in BreakAntiDependencies()
816 if ((Edge->getKind() != SDep::Anti) && in BreakAntiDependencies()
817 (Edge->getKind() != SDep::Output)) continue; in BreakAntiDependencies()
860 (P->getKind() != SDep::Anti || P->getReg() != AntiDepReg) : in BreakAntiDependencies()
861 (P->getKind() == SDep::Data && P->getReg() == AntiDepReg)) { in BreakAntiDependencies()
[all …]
/external/swiftshader/third_party/llvm-7.0/llvm/lib/CodeGen/
DMacroFusion.cpp36 static bool isHazard(const SDep &Dep) { in isHazard()
37 return Dep.getKind() == SDep::Anti || Dep.getKind() == SDep::Output; in isHazard()
44 for (SDep &SI : FirstSU.Succs) in fuseInstructionPair()
48 for (SDep &SI : SecondSU.Preds) in fuseInstructionPair()
57 if (!DAG.addEdge(&SecondSU, SDep(&FirstSU, SDep::Cluster))) in fuseInstructionPair()
61 for (SDep &SI : FirstSU.Succs) in fuseInstructionPair()
65 for (SDep &SI : SecondSU.Preds) in fuseInstructionPair()
78 for (const SDep &SI : FirstSU.Succs) { in fuseInstructionPair()
85 DAG.addEdge(SU, SDep(&SecondSU, SDep::Artificial)); in fuseInstructionPair()
91 for (const SDep &SI : SecondSU.Preds) { in fuseInstructionPair()
[all …]
DScheduleDAG.cpp72 raw_ostream &SDep::print(raw_ostream &OS, const TargetRegisterInfo *TRI) const { in print()
106 bool SUnit::addPred(const SDep &D, bool Required) { in addPred()
108 for (SDep &PredDep : Preds) { in addPred()
119 SDep ForwardD = PredDep; in addPred()
121 for (SDep &SuccDep : PredSU->Succs) { in addPred()
133 SDep P = D; in addPred()
137 if (D.getKind() == SDep::Data) { in addPred()
174 void SUnit::removePred(const SDep &D) { in removePred()
176 SmallVectorImpl<SDep>::iterator I = llvm::find(Preds, D); in removePred()
180 SDep P = D; in removePred()
[all …]
DScheduleDAGInstrs.cpp250 SDep Dep; in addPhysRegDataDeps()
252 Dep = SDep(SU, SDep::Artificial); in addPhysRegDataDeps()
257 Dep = SDep(SU, SDep::Data, *Alias); in addPhysRegDataDeps()
287 SDep::Kind Kind = MO.isUse() ? SDep::Anti : SDep::Output; in addPhysRegDeps()
296 (Kind != SDep::Output || !MO.isDead() || in addPhysRegDeps()
298 if (Kind == SDep::Anti) in addPhysRegDeps()
299 DefSU->addPred(SDep(SU, Kind, /*Reg=*/*Alias)); in addPhysRegDeps()
301 SDep Dep(SU, Kind, /*Reg=*/*Alias); in addPhysRegDeps()
410 SDep Dep(SU, SDep::Data, Reg); in addVRegDefDeps()
453 SDep Dep(SU, SDep::Output, Reg); in addVRegDefDeps()
[all …]
DAggressiveAntiDepBreaker.cpp266 static void AntiDepEdges(const SUnit *SU, std::vector<const SDep *> &Edges) { in AntiDepEdges()
270 if ((P->getKind() == SDep::Anti) || (P->getKind() == SDep::Output)) { in AntiDepEdges()
280 const SDep *Next = nullptr; in CriticalPathStep()
292 (NextDepth == PredTotalLatency && P->getKind() == SDep::Anti)) { in CriticalPathStep()
833 std::vector<const SDep *> Edges; in BreakAntiDependencies()
852 const SDep *Edge = Edges[i]; in BreakAntiDependencies()
855 if ((Edge->getKind() != SDep::Anti) && in BreakAntiDependencies()
856 (Edge->getKind() != SDep::Output)) continue; in BreakAntiDependencies()
898 (P->getKind() != SDep::Anti || P->getReg() != AntiDepReg) : in BreakAntiDependencies()
899 (P->getKind() == SDep::Data && P->getReg() == AntiDepReg)) { in BreakAntiDependencies()
[all …]
DMachinePipeliner.cpp346 bool isBackedge(SUnit *Source, const SDep &Dep) { in isBackedge()
347 if (Dep.getKind() != SDep::Anti) in isBackedge()
352 bool isLoopCarriedDep(SUnit *Source, const SDep &Dep, bool isSucc = true);
356 unsigned getDistance(SUnit *U, SUnit *V, const SDep &Dep) { in getDistance()
359 if (V->getInstr()->isPHI() && Dep.getKind() == SDep::Anti) in getDistance()
476 for (const SDep &Succ : Nodes[i]->Succs) in NodeSet()
639 int earliestCycleInChain(const SDep &Dep);
643 int latestCycleInChain(const SDep &Dep);
1024 if (SI.getKind() == SDep::Order) { in isSuccOrder()
1111 SDep Dep(Load, SDep::Barrier); in addLoopCarriedDependences()
[all …]
/external/swiftshader/third_party/llvm-7.0/llvm/include/llvm/CodeGen/
DScheduleDAG.h50 class SDep {
102 SDep() : Dep(nullptr, Data) {} in SDep() function
105 SDep(SUnit *S, Kind kind, unsigned Reg) in SDep() function
124 SDep(SUnit *S, OrderKind kind) in SDep() function
130 bool overlaps(const SDep &Other) const;
132 bool operator==(const SDep &Other) const {
136 bool operator!=(const SDep &Other) const {
244 struct isPodLike<SDep> { static const bool value = true; };
261 SmallVector<SDep, 4> Preds; ///< All sunit predecessors.
262 SmallVector<SDep, 4> Succs; ///< All sunit successors.
[all …]
/external/swiftshader/third_party/llvm-7.0/llvm/lib/CodeGen/SelectionDAG/
DScheduleDAGFast.cpp89 void AddPred(SUnit *SU, const SDep &D) { in AddPred()
95 void RemovePred(SUnit *SU, const SDep &D) { in RemovePred()
100 void ReleasePred(SUnit *SU, SDep *PredEdge);
141 void ScheduleDAGFast::ReleasePred(SUnit *SU, SDep *PredEdge) { in ReleasePred()
164 for (SDep &Pred : SU->Preds) { in ReleasePredecessors()
194 for (SDep &Succ : SU->Succs) { in ScheduleNodeBottomUp()
279 SDep ChainPred; in CopyAndMoveSuccessors()
280 SmallVector<SDep, 4> ChainSuccs; in CopyAndMoveSuccessors()
281 SmallVector<SDep, 4> LoadPreds; in CopyAndMoveSuccessors()
282 SmallVector<SDep, 4> NodePreds; in CopyAndMoveSuccessors()
[all …]
DScheduleDAGRRList.cpp226 void AddPred(SUnit *SU, const SDep &D) { in AddPred()
234 void RemovePred(SUnit *SU, const SDep &D) { in RemovePred()
245 void ReleasePred(SUnit *SU, const SDep *PredEdge);
252 void CapturePred(SDep *PredEdge);
393 void ScheduleDAGRRList::ReleasePred(SUnit *SU, const SDep *PredEdge) { in ReleasePred()
551 for (SDep &Pred : SU->Preds) { in ReleasePredecessors()
764 for (SDep &Succ : SU->Succs) { in ScheduleNodeBottomUp()
814 void ScheduleDAGRRList::CapturePred(SDep *PredEdge) { in CapturePred()
833 for (SDep &Pred : SU->Preds) { in UnscheduleNodeBottomUp()
1050 SmallVector<SDep, 4> ChainPreds; in TryUnfoldSU()
[all …]
DResourcePriorityQueue.cpp70 for (SDep &Pred : SU->Preds) { in numberRCValPredInSU()
107 for (const SDep &Succ : SU->Succs) { in numberRCValSuccInSU()
143 for (const SDep &Succ : SU->Succs) in numberCtrlDepsInSU()
152 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 : Packet[i]->Succs) { in isResourceAvailable()
496 for (SDep &Pred : SU->Preds) { in scheduledNode()
511 for (const SDep &Succ : SU->Succs) { in scheduledNode()
/external/llvm/include/llvm/CodeGen/
DScheduleDAG.h45 class SDep {
98 SDep() : Dep(nullptr, Data) {} in SDep() function
101 SDep(SUnit *S, Kind kind, unsigned Reg) in SDep() function
119 SDep(SUnit *S, OrderKind kind) in SDep() function
125 bool overlaps(const SDep &Other) const;
127 bool operator==(const SDep &Other) const {
131 bool operator!=(const SDep &Other) const {
241 struct isPodLike<SDep> { static const bool value = true; };
258 SmallVector<SDep, 4> Preds; // All sunit predecessors.
259 SmallVector<SDep, 4> Succs; // All sunit successors.
[all …]
/external/swiftshader/third_party/LLVM/lib/CodeGen/SelectionDAG/
DScheduleDAGFast.cpp82 void AddPred(SUnit *SU, const SDep &D) { in AddPred()
88 void RemovePred(SUnit *SU, const SDep &D) { in RemovePred()
93 void ReleasePred(SUnit *SU, SDep *PredEdge);
134 void ScheduleDAGFast::ReleasePred(SUnit *SU, SDep *PredEdge) { in ReleasePred()
275 SDep ChainPred; in CopyAndMoveSuccessors()
276 SmallVector<SDep, 4> ChainSuccs; in CopyAndMoveSuccessors()
277 SmallVector<SDep, 4> LoadPreds; in CopyAndMoveSuccessors()
278 SmallVector<SDep, 4> NodePreds; in CopyAndMoveSuccessors()
279 SmallVector<SDep, 4> NodeSuccs; in CopyAndMoveSuccessors()
304 const SDep &Pred = LoadPreds[i]; in CopyAndMoveSuccessors()
[all …]
DScheduleDAGRRList.cpp203 void AddPred(SUnit *SU, const SDep &D) { in AddPred()
211 void RemovePred(SUnit *SU, const SDep &D) { in RemovePred()
222 void ReleasePred(SUnit *SU, const SDep *PredEdge);
224 void ReleaseSucc(SUnit *SU, const SDep *SuccEdge);
231 void CapturePred(SDep *PredEdge);
366 void ScheduleDAGRRList::ReleasePred(SUnit *SU, const SDep *PredEdge) { in ReleasePred()
658 void ScheduleDAGRRList::CapturePred(SDep *PredEdge) { in CapturePred()
854 SmallVector<SDep, 4> ChainPreds; in CopyAndMoveSuccessors()
855 SmallVector<SDep, 4> ChainSuccs; in CopyAndMoveSuccessors()
856 SmallVector<SDep, 4> LoadPreds; in CopyAndMoveSuccessors()
[all …]
/external/llvm/lib/CodeGen/SelectionDAG/
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);
140 void ScheduleDAGFast::ReleasePred(SUnit *SU, SDep *PredEdge) { in ReleasePred()
280 SDep ChainPred; in CopyAndMoveSuccessors()
281 SmallVector<SDep, 4> ChainSuccs; in CopyAndMoveSuccessors()
282 SmallVector<SDep, 4> LoadPreds; in CopyAndMoveSuccessors()
283 SmallVector<SDep, 4> NodePreds; in CopyAndMoveSuccessors()
284 SmallVector<SDep, 4> NodeSuccs; in CopyAndMoveSuccessors()
309 const SDep &Pred = LoadPreds[i]; in CopyAndMoveSuccessors()
[all …]
DScheduleDAGRRList.cpp199 void AddPred(SUnit *SU, const SDep &D) { in AddPred()
207 void RemovePred(SUnit *SU, const SDep &D) { in RemovePred()
218 void ReleasePred(SUnit *SU, const SDep *PredEdge);
225 void CapturePred(SDep *PredEdge);
365 void ScheduleDAGRRList::ReleasePred(SUnit *SU, const SDep *PredEdge) { in ReleasePred()
791 void ScheduleDAGRRList::CapturePred(SDep *PredEdge) { in CapturePred()
1025 SmallVector<SDep, 4> ChainPreds; in CopyAndMoveSuccessors()
1026 SmallVector<SDep, 4> ChainSuccs; in CopyAndMoveSuccessors()
1027 SmallVector<SDep, 4> LoadPreds; in CopyAndMoveSuccessors()
1028 SmallVector<SDep, 4> NodePreds; in CopyAndMoveSuccessors()
[all …]
/external/llvm/lib/CodeGen/
DScheduleDAG.cpp65 bool SUnit::addPred(const SDep &D, bool Required) { in addPred()
67 for (SmallVectorImpl<SDep>::iterator I = Preds.begin(), E = Preds.end(); in addPred()
78 SDep ForwardD = *I; in addPred()
80 for (SmallVectorImpl<SDep>::iterator II = PredSU->Succs.begin(), in addPred()
93 SDep P = D; in addPred()
97 if (D.getKind() == SDep::Data) { in addPred()
133 void SUnit::removePred(const SDep &D) { in removePred()
135 for (SmallVectorImpl<SDep>::iterator I = Preds.begin(), E = Preds.end(); in removePred()
139 SDep P = D; in removePred()
142 SmallVectorImpl<SDep>::iterator Succ = std::find(N->Succs.begin(), in removePred()
[all …]
DScheduleDAGInstrs.cpp303 SDep Dep; in addPhysRegDataDeps()
305 Dep = SDep(SU, SDep::Artificial); in addPhysRegDataDeps()
310 Dep = SDep(SU, SDep::Data, *Alias); in addPhysRegDataDeps()
336 SDep::Kind Kind = MO.isUse() ? SDep::Anti : SDep::Output; in addPhysRegDeps()
346 (Kind != SDep::Output || !MO.isDead() || in addPhysRegDeps()
348 if (Kind == SDep::Anti) in addPhysRegDeps()
349 DefSU->addPred(SDep(SU, Kind, /*Reg=*/*Alias)); in addPhysRegDeps()
351 SDep Dep(SU, Kind, /*Reg=*/*Alias); in addPhysRegDeps()
461 SDep Dep(SU, SDep::Data, Reg); in addVRegDefDeps()
504 SDep Dep(SU, SDep::Output, Reg); in addVRegDefDeps()
[all …]
DAggressiveAntiDepBreaker.cpp252 static void AntiDepEdges(const SUnit *SU, std::vector<const SDep*>& Edges) { in AntiDepEdges()
256 if ((P->getKind() == SDep::Anti) || (P->getKind() == SDep::Output)) { in AntiDepEdges()
266 const SDep *Next = nullptr; in CriticalPathStep()
278 (NextDepth == PredTotalLatency && P->getKind() == SDep::Anti)) { in CriticalPathStep()
815 std::vector<const SDep *> Edges; in BreakAntiDependencies()
834 const SDep *Edge = Edges[i]; in BreakAntiDependencies()
837 if ((Edge->getKind() != SDep::Anti) && in BreakAntiDependencies()
838 (Edge->getKind() != SDep::Output)) continue; in BreakAntiDependencies()
880 (P->getKind() != SDep::Anti || P->getReg() != AntiDepReg) : in BreakAntiDependencies()
881 (P->getKind() == SDep::Data && P->getReg() == AntiDepReg)) { in BreakAntiDependencies()
[all …]
DMachinePipeliner.cpp292 bool isBackedge(SUnit *Source, const SDep &Dep) { in isBackedge()
293 if (Dep.getKind() != SDep::Anti) in isBackedge()
299 static bool isOrder(SUnit *Source, const SDep &Dep) { in isOrder()
300 if (Dep.getKind() != SDep::Order) in isOrder()
306 bool isLoopCarriedOrder(SUnit *Source, const SDep &Dep, bool isSucc = true);
309 unsigned getLatency(SUnit *Source, const SDep &Dep) { in getLatency()
312 if (Dep.getKind() == SDep::Anti) { in getLatency()
324 unsigned getDistance(SUnit *U, SUnit *V, const SDep &Dep) { in getDistance()
327 if (V->getInstr()->isPHI() && Dep.getKind() == SDep::Anti) in getDistance()
599 int earliestCycleInChain(const SDep &Dep);
[all …]
/external/swiftshader/third_party/llvm-7.0/llvm/lib/Target/Hexagon/
DHexagonSubtarget.cpp133 SmallVector<SDep, 4> Erase; in apply()
135 if (D.getKind() == SDep::Output && D.getReg() == Hexagon::USR_OVF) in apply()
153 for (SDep &SI : SU.Succs) { in apply()
154 if (SI.getKind() != SDep::Order || SI.getLatency() != 0) in apply()
163 for (SDep &PI : SI.getSUnit()->Preds) { in apply()
164 if (PI.getSUnit() != &SU || PI.getKind() != SDep::Order) in apply()
212 DAG->addEdge(&DAG->SUnits[su], SDep(LastSequentialCall, SDep::Barrier)); in apply()
216 DAG->addEdge(&DAG->SUnits[su], SDep(&DAG->SUnits[su-1], SDep::Barrier)); in apply()
254 DAG->addEdge(&DAG->SUnits[su], SDep(LastVRegUse[*AI], SDep::Barrier)); in apply()
303 SDep A(&S0, SDep::Artificial); in apply()
[all …]
DHexagonVLIWPacketizer.cpp294 SDep::Kind DepType, unsigned DepReg) { in isCallDependent()
308 if (DepType == SDep::Data) { in isCallDependent()
317 static bool isRegDependence(const SDep::Kind DepType) { in isRegDependence()
318 return DepType == SDep::Data || DepType == SDep::Anti || in isRegDependence()
319 DepType == SDep::Output; in isRegDependence()
367 SDep::Kind DepType, MachineBasicBlock::iterator &MII, in promoteToDotCur()
369 assert(DepType == SDep::Data); in promoteToDotCur()
449 SDep::Kind DepType, MachineBasicBlock::iterator &MII, in promoteToDotNew()
451 assert(DepType == SDep::Data); in promoteToDotNew()
524 if (PI.getKind() != SDep::Anti && in updateOffset()
[all …]
/external/swiftshader/third_party/LLVM/include/llvm/CodeGen/
DScheduleDAG.h44 class SDep {
92 SDep() : Dep(0, Data) {} in SDep() function
95 SDep(SUnit *S, Kind kind, unsigned latency = 1, unsigned Reg = 0,
119 bool operator==(const SDep &Other) const {
136 bool operator!=(const SDep &Other) const {
225 struct isPodLike<SDep> { static const bool value = true; };
237 SmallVector<SDep, 4> Preds; // All sunit predecessors.
238 SmallVector<SDep, 4> Succs; // All sunit successors.
240 typedef SmallVector<SDep, 4>::iterator pred_iterator;
241 typedef SmallVector<SDep, 4>::iterator succ_iterator;
[all …]
/external/llvm/lib/Target/Hexagon/
DHexagonVLIWPacketizer.cpp269 SDep::Kind DepType, unsigned DepReg) { in isCallDependent()
284 if (HII->isIndirectCall(MI) && (DepType == SDep::Data)) { in isCallDependent()
293 static bool isRegDependence(const SDep::Kind DepType) { in isRegDependence()
294 return DepType == SDep::Data || DepType == SDep::Anti || in isRegDependence()
295 DepType == SDep::Output; in isRegDependence()
336 SDep::Kind DepType, MachineBasicBlock::iterator &MII, in promoteToDotCur()
338 assert(DepType == SDep::Data); in promoteToDotCur()
419 SDep::Kind DepType, MachineBasicBlock::iterator &MII, in promoteToDotNew()
421 assert (DepType == SDep::Data); in promoteToDotNew()
814 if (Dep.getSUnit() == PacketSUDep && Dep.getKind() == SDep::Anti && in restrictingDepExistInPacket()
[all …]

123