LLVM 22.0.0git
|
Represents a dependence between two instruction. More...
#include "llvm/CodeGen/MachinePipeliner.h"
Public Member Functions | |
SwingSchedulerDDGEdge (SUnit *PredOrSucc, const SDep &Dep, bool IsSucc, bool IsValidationOnly) | |
Creates an edge corresponding to an edge represented by PredOrSucc and Dep in the original DAG. | |
SUnit * | getSrc () const |
Returns the SUnit from which the edge comes (source node). | |
SUnit * | getDst () const |
Returns the SUnit to which the edge points (destination node). | |
unsigned | getLatency () const |
Returns the latency value for the edge. | |
void | setLatency (unsigned Latency) |
Sets the latency for the edge. | |
unsigned | getDistance () const |
Returns the distance value for the edge. | |
void | setDistance (unsigned D) |
Sets the distance value for the edge. | |
Register | getReg () const |
Returns the register associated with the edge. | |
bool | isAntiDep () const |
Returns true if the edge represents anti dependence. | |
bool | isOutputDep () const |
Returns true if the edge represents output dependence. | |
bool | isOrderDep () const |
Returns true if the edge represents a dependence that is not data, anti or output dependence. | |
bool | isBarrier () const |
Returns true if the edge represents unknown scheduling barrier. | |
bool | isArtificial () const |
Returns true if the edge represents an artificial dependence. | |
bool | isAssignedRegDep () const |
Tests if this is a Data dependence that is associated with a register. | |
bool | ignoreDependence (bool IgnoreAnti) const |
Returns true for DDG nodes that we ignore when computing the cost functions. | |
bool | isValidationOnly () const |
Returns true if this edge is intended to be used only for validating the schedule. | |
Represents a dependence between two instruction.
Definition at line 119 of file MachinePipeliner.h.
|
inline |
Creates an edge corresponding to an edge represented by PredOrSucc
and Dep
in the original DAG.
This pair has no information about the direction of the edge, so we need to pass an additional argument IsSucc
.
Definition at line 130 of file MachinePipeliner.h.
References llvm::SDep::Anti, llvm::SDep::Data, llvm::SDep::getKind(), llvm::SDep::getReg(), llvm::SDep::getSUnit(), Reg, llvm::SDep::setSUnit(), and std::swap().
|
inline |
Returns the distance value for the edge.
Definition at line 163 of file MachinePipeliner.h.
|
inline |
Returns the SUnit to which the edge points (destination node).
Definition at line 154 of file MachinePipeliner.h.
Referenced by llvm::SMSchedule::latestCycleInChain().
|
inline |
Returns the latency value for the edge.
Definition at line 157 of file MachinePipeliner.h.
References llvm::SDep::getLatency().
|
inline |
Returns the register associated with the edge.
Definition at line 169 of file MachinePipeliner.h.
References llvm::SDep::getReg().
|
inline |
Returns the SUnit from which the edge comes (source node).
Definition at line 151 of file MachinePipeliner.h.
References llvm::SDep::getSUnit().
Referenced by llvm::SMSchedule::earliestCycleInChain().
Returns true for DDG nodes that we ignore when computing the cost functions.
We ignore the back-edge recurrence in order to avoid unbounded recursion in the calculation of the ASAP, ALAP, etc functions.
Definition at line 4130 of file MachinePipeliner.cpp.
|
inline |
Returns true if the edge represents anti dependence.
Definition at line 172 of file MachinePipeliner.h.
References llvm::SDep::Anti, and llvm::SDep::getKind().
|
inline |
Returns true if the edge represents an artificial dependence.
Definition at line 185 of file MachinePipeliner.h.
References llvm::SDep::isArtificial().
|
inline |
Tests if this is a Data dependence that is associated with a register.
Definition at line 188 of file MachinePipeliner.h.
References llvm::SDep::isAssignedRegDep().
|
inline |
Returns true if the edge represents unknown scheduling barrier.
Definition at line 182 of file MachinePipeliner.h.
References llvm::SDep::isBarrier().
|
inline |
Returns true if the edge represents a dependence that is not data, anti or output dependence.
Definition at line 179 of file MachinePipeliner.h.
References llvm::SDep::getKind(), and llvm::SDep::Order.
|
inline |
Returns true if the edge represents output dependence.
Definition at line 175 of file MachinePipeliner.h.
References llvm::SDep::getKind(), and llvm::SDep::Output.
|
inline |
Returns true if this edge is intended to be used only for validating the schedule.
Definition at line 197 of file MachinePipeliner.h.
|
inline |
Sets the distance value for the edge.
Definition at line 166 of file MachinePipeliner.h.
References D.
|
inline |
Sets the latency for the edge.
Definition at line 160 of file MachinePipeliner.h.
References llvm::Latency, and llvm::SDep::setLatency().