Lines Matching defs:SDep
49 class SDep {
99 /// Constructs a null SDep. This is only for use by container classes which
100 /// require default constructors. SUnits may not/ have null SDep edges.
101 SDep() : Dep(nullptr, Data) {}
103 /// Constructs an SDep with the specified values.
104 SDep(SUnit *S, Kind kind, unsigned Reg)
112 "SDep::Anti and SDep::Output must use a non-zero Reg!");
123 SDep(SUnit *S, OrderKind kind)
128 /// Returns true if the specified SDep is equivalent except for latency.
129 bool overlaps(const SDep &Other) const;
131 bool operator==(const SDep &Other) const {
135 bool operator!=(const SDep &Other) const {
160 /// Shorthand for getKind() != SDep::Data.
232 "SDep::Anti edge cannot use the zero register!");
234 "SDep::Output edge cannot use the zero register!");
262 SmallVector<SDep, 4> Preds; ///< All sunit predecessors.
263 SmallVector<SDep, 4> Succs; ///< All sunit successors.
265 typedef SmallVectorImpl<SDep>::iterator pred_iterator;
266 typedef SmallVectorImpl<SDep>::iterator succ_iterator;
267 typedef SmallVectorImpl<SDep>::const_iterator const_pred_iterator;
268 typedef SmallVectorImpl<SDep>::const_iterator const_succ_iterator;
272 unsigned NumPreds = 0; ///< # of SDep::Data preds.
273 unsigned NumSuccs = 0; ///< # of SDep::Data sucss.
398 bool addPred(const SDep &D, bool Required = true);
403 SDep Dep(SU, SDep::Barrier);
412 void removePred(const SDep &D);
450 for (const SDep &Pred : Preds)
458 for (const SDep &Succ : Succs)
482 /// Returns true if the specified SDep is equivalent except for latency.
483 inline bool SDep::overlaps(const SDep &Other) const {
498 inline SUnit *SDep::getSUnit() const { return Dep.getPointer(); }
501 inline void SDep::setSUnit(SUnit *SU) { Dep.setPointer(SU); }
504 inline SDep::Kind SDep::getKind() const { return Dep.getInt(); }
682 /// Tests if this is not an SDep::Data dependence.
689 const SDep &getSDep() const {