LLVM
8.0.1
|
Compute the values of each DAG node for various metrics during DFS. More...
#include "llvm/CodeGen/ScheduleDFS.h"
Public Member Functions | |
SchedDFSResult (bool IsBU, unsigned lim) | |
unsigned | getSubtreeLimit () const |
Get the node cutoff before subtrees are considered significant. More... | |
bool | empty () const |
Return true if this DFSResult is uninitialized. More... | |
void | clear () |
Clear the results. More... | |
void | resize (unsigned NumSUnits) |
Initialize the result data with the size of the DAG. More... | |
void | compute (ArrayRef< SUnit > SUnits) |
Compute various metrics for the DAG with given roots. More... | |
unsigned | getNumInstrs (const SUnit *SU) const |
Get the number of instructions in the given subtree and its children. More... | |
unsigned | getNumSubInstrs (unsigned SubtreeID) const |
Get the number of instructions in the given subtree not including children. More... | |
ILPValue | getILP (const SUnit *SU) const |
Get the ILP value for a DAG node. More... | |
unsigned | getNumSubtrees () const |
The number of subtrees detected in this DAG. More... | |
unsigned | getSubtreeID (const SUnit *SU) const |
Get the ID of the subtree the given DAG node belongs to. More... | |
unsigned | getSubtreeLevel (unsigned SubtreeID) const |
Get the connection level of a subtree. More... | |
void | scheduleTree (unsigned SubtreeID) |
Scheduler callback to update SubtreeConnectLevels when a tree is initially scheduled. More... | |
Friends | |
class | SchedDFSImpl |
Compute the values of each DAG node for various metrics during DFS.
Definition at line 66 of file ScheduleDFS.h.
Definition at line 117 of file ScheduleDFS.h.
|
inline |
Clear the results.
Definition at line 129 of file ScheduleDFS.h.
References llvm::SmallVectorImpl< T >::clear().
Compute various metrics for the DAG with given roots.
Computes an ILP metric for all nodes in the subDAG reachable via depth-first search from this root.
Definition at line 1383 of file ScheduleDAGInstrs.cpp.
References llvm::SDep::Data, DFS(), llvm::SchedDFSImpl::finalize(), llvm::SDep::getKind(), llvm::SDep::getSUnit(), hasDataSucc(), llvm::SUnit::isBoundaryNode(), llvm::SchedDFSImpl::isVisited(), llvm_unreachable, llvm::SchedDFSImpl::visitCrossEdge(), llvm::SchedDFSImpl::visitPostorderEdge(), llvm::SchedDFSImpl::visitPostorderNode(), and llvm::SchedDFSImpl::visitPreorder().
|
inline |
Return true if this DFSResult is uninitialized.
resize() initializes DFSResult, while compute() populates it.
Definition at line 126 of file ScheduleDFS.h.
Get the ILP value for a DAG node.
A leaf node has an ILP of 1/1.
Definition at line 159 of file ScheduleDFS.h.
References llvm::SUnit::getDepth(), llvm::ILPValue::ILPValue(), and llvm::SUnit::NodeNum.
Referenced by llvm::createGenericSchedPostRA().
Get the number of instructions in the given subtree and its children.
Definition at line 146 of file ScheduleDFS.h.
References llvm::SUnit::NodeNum.
Referenced by llvm::DOTGraphTraits< ScheduleDAGMI * >::getNodeLabel().
Get the number of instructions in the given subtree not including children.
Definition at line 152 of file ScheduleDFS.h.
|
inline |
The number of subtrees detected in this DAG.
Definition at line 164 of file ScheduleDFS.h.
Referenced by llvm::SchedDFSImpl::finalize().
Get the ID of the subtree the given DAG node belongs to.
For convenience, if DFSResults have not been computed yet, give everything tree ID 0.
Definition at line 170 of file ScheduleDFS.h.
References assert(), llvm::empty(), and llvm::SUnit::NodeNum.
Referenced by llvm::createGenericSchedPostRA(), and llvm::DOTGraphTraits< ScheduleDAGMI * >::getNodeAttributes().
Get the connection level of a subtree.
For bottom-up trees, the connection level is the latency depth (in cycles) of the deepest connection to another subtree.
Definition at line 181 of file ScheduleDFS.h.
References llvm::operator<<().
Referenced by llvm::createGenericSchedPostRA().
|
inline |
Get the node cutoff before subtrees are considered significant.
Definition at line 121 of file ScheduleDFS.h.
|
inline |
Initialize the result data with the size of the DAG.
Definition at line 137 of file ScheduleDFS.h.
void SchedDFSResult::scheduleTree | ( | unsigned | SubtreeID | ) |
Scheduler callback to update SubtreeConnectLevels when a tree is initially scheduled.
The root of the given SubtreeID was just scheduled.
For all subtrees connected to this tree, record the depth of the connection so that the nearest connected subtrees can be prioritized.
Definition at line 1429 of file ScheduleDAGInstrs.cpp.
References C, llvm::dbgs(), LLVM_DEBUG, and llvm::max().
|
friend |
Definition at line 67 of file ScheduleDFS.h.