LLVM API Documentation
#include <ScheduleDAG.h>
Public Types | |
| enum | Kind { Data, Anti, Output, Order } |
| Kind - These are the different kinds of scheduling dependencies. More... | |
Public Member Functions | |
| SDep () | |
| SDep (SUnit *S, Kind kind, unsigned latency=1, unsigned Reg=0, bool isNormalMemory=false, bool isMustAlias=false, bool isArtificial=false) | |
| SDep - Construct an SDep with the specified values. | |
| bool | operator== (const SDep &Other) const |
| bool | operator!= (const SDep &Other) const |
| unsigned | getLatency () const |
| SUnit * | getSUnit () const |
| void | setSUnit (SUnit *SU) |
| Kind | getKind () const |
| getKind - Return an enum value representing the kind of the dependence. | |
| bool | isCtrl () const |
| isCtrl - Shorthand for getKind() != SDep::Data. | |
| bool | isNormalMemory () const |
| bool | isMustAlias () const |
| bool | isArtificial () const |
| bool | isAssignedRegDep () const |
| unsigned | getReg () const |
| void | setReg (unsigned Reg) |
Definition at line 45 of file ScheduleDAG.h.
| enum llvm::SDep::Kind |
Kind - These are the different kinds of scheduling dependencies.
| Data | Regular data dependence (aka true-dependence). |
| Anti | A register anti-dependedence (aka WAR). |
| Output | A register output-dependence (aka WAW). |
| Order | Any other ordering dependency. |
Definition at line 48 of file ScheduleDAG.h.
| llvm::SDep::SDep | ( | ) | [inline] |
SDep - Construct a null SDep. This is only for use by container classes which require default constructors. SUnits may not have null SDep edges.
Definition at line 93 of file ScheduleDAG.h.
| llvm::SDep::SDep | ( | SUnit * | S, | |
| Kind | kind, | |||
| unsigned | latency = 1, |
|||
| unsigned | Reg = 0, |
|||
| bool | isNormalMemory = false, |
|||
| bool | isMustAlias = false, |
|||
| bool | isArtificial = false | |||
| ) | [inline] |
SDep - Construct an SDep with the specified values.
Definition at line 96 of file ScheduleDAG.h.
References Anti, Data, isArtificial(), isMustAlias(), isNormalMemory(), Order, Output, and Reg.
| bool llvm::SDep::operator== | ( | const SDep & | Other | ) | const [inline] |
Definition at line 120 of file ScheduleDAG.h.
References Anti, Contents, Data, Dep, Latency, Order, Output, and Reg.
Referenced by operator!=().
| bool llvm::SDep::operator!= | ( | const SDep & | Other | ) | const [inline] |
| unsigned llvm::SDep::getLatency | ( | ) | const [inline] |
getLatency - Return the latency value for this edge, which roughly means the minimum number of cycles that must elapse between the predecessor and the successor, given that they have this edge between them.
Definition at line 145 of file ScheduleDAG.h.
Referenced by llvm::SUnit::addPred(), and llvm::SUnit::removePred().
| SUnit* llvm::SDep::getSUnit | ( | ) | const [inline] |
Definition at line 150 of file ScheduleDAG.h.
Referenced by llvm::SUnit::addPred(), and llvm::SUnit::removePred().
| void llvm::SDep::setSUnit | ( | SUnit * | SU | ) | [inline] |
Definition at line 155 of file ScheduleDAG.h.
Referenced by llvm::SUnit::addPred(), and llvm::SUnit::removePred().
| Kind llvm::SDep::getKind | ( | ) | const [inline] |
getKind - Return an enum value representing the kind of the dependence.
Definition at line 160 of file ScheduleDAG.h.
Referenced by llvm::SUnit::addPred(), getReg(), isArtificial(), isAssignedRegDep(), isCtrl(), isMustAlias(), isNormalMemory(), llvm::SUnit::removePred(), and setReg().
| bool llvm::SDep::isCtrl | ( | ) | const [inline] |
isCtrl - Shorthand for getKind() != SDep::Data.
Definition at line 165 of file ScheduleDAG.h.
References Data, and getKind().
Referenced by llvm::SUnitIterator::isCtrlDep().
| bool llvm::SDep::isNormalMemory | ( | ) | const [inline] |
isNormalMemory - Test if this is an Order dependence between two memory accesses where both sides of the dependence access memory in non-volatile and fully modeled ways.
Definition at line 172 of file ScheduleDAG.h.
References getKind(), and Order.
Referenced by SDep().
| bool llvm::SDep::isMustAlias | ( | ) | const [inline] |
isMustAlias - Test if this is an Order dependence that is marked as "must alias", meaning that the SUnits at either end of the edge have a memory dependence on a known memory location.
Definition at line 179 of file ScheduleDAG.h.
References getKind(), and Order.
Referenced by SDep().
| bool llvm::SDep::isArtificial | ( | ) | const [inline] |
isArtificial - Test if this is an Order dependence that is marked as "artificial", meaning it isn't necessary for correctness.
Definition at line 185 of file ScheduleDAG.h.
References getKind(), and Order.
Referenced by SDep().
| bool llvm::SDep::isAssignedRegDep | ( | ) | const [inline] |
isAssignedRegDep - Test if this is a Data dependence that is associated with a register.
Definition at line 191 of file ScheduleDAG.h.
| unsigned llvm::SDep::getReg | ( | ) | const [inline] |
| void llvm::SDep::setReg | ( | unsigned | Reg | ) | [inline] |
setReg - Assign the associated register for this edge. This is only valid on Data, Anti, and Output edges. On Anti and Output edges, this value must not be zero. On Data edges, the value may be zero, which would mean that no specific register is associated with this edge.
Definition at line 209 of file ScheduleDAG.h.
Reg - For Data, Anti, and Output dependencies, the associated register. For Data dependencies that don't currently have a register assigned, this is set to zero.
Definition at line 65 of file ScheduleDAG.h.
Referenced by operator==(), and SDep().
isNormalMemory - True if both sides of the dependence access memory in non-volatile and fully modeled ways.
Definition at line 71 of file ScheduleDAG.h.
isMustAlias - True if both sides of the dependence are known to access the same memory.
Definition at line 75 of file ScheduleDAG.h.
isArtificial - True if this is an artificial dependency, meaning it is not necessary for program correctness, and may be safely deleted if necessary.
Definition at line 80 of file ScheduleDAG.h.
Referenced by llvm::SUnitIterator::isArtificialDep().
| struct { ... } llvm::SDep::Order |
Order - Additional information about Order dependencies.
Referenced by llvm::ScheduleDAGInstrs::BuildSchedGraph(), llvm::SUnit::dumpAll(), isArtificial(), isMustAlias(), isNormalMemory(), operator==(), and SDep().