|
LLVM
3.7.0
|
Internal state used to compute SchedDFSResult. More...
Public Member Functions | |
| SchedDFSImpl (SchedDFSResult &r) | |
| bool | isVisited (const SUnit *SU) const |
| Return true if this node been visited by the DFS traversal. More... | |
| void | visitPreorder (const SUnit *SU) |
| Initialize this node's instruction count. More... | |
| void | visitPostorderNode (const SUnit *SU) |
| Called once for each node after all predecessors are visited. More... | |
| void | visitPostorderEdge (const SDep &PredDep, const SUnit *Succ) |
| Called once for each tree edge after calling visitPostOrderNode on the predecessor. More... | |
| void | visitCrossEdge (const SDep &PredDep, const SUnit *Succ) |
| Add a connection for cross edges. More... | |
| void | finalize () |
| Set each node's subtree ID to the representative ID and record connections between trees. More... | |
Protected Member Functions | |
| bool | joinPredSubtree (const SDep &PredDep, const SUnit *Succ, bool CheckLimit=true) |
| Join the predecessor subtree with the successor that is its DFS parent. More... | |
| void | addConnection (unsigned FromTree, unsigned ToTree, unsigned Depth) |
| Called by finalize() to record a connection between trees. More... | |
Internal state used to compute SchedDFSResult.
Definition at line 1295 of file ScheduleDAGInstrs.cpp.
|
inline |
Definition at line 1318 of file ScheduleDAGInstrs.cpp.
References llvm::SparseSet< ValueT, KeyFunctorT, SparseT >::setUniverse().
|
inlineprotected |
Called by finalize() to record a connection between trees.
Definition at line 1465 of file ScheduleDAGInstrs.cpp.
References llvm::SmallVectorTemplateCommon< T >::begin(), llvm::SmallVectorTemplateCommon< T >::end(), I, and llvm::SmallVectorTemplateBase< T, isPodLike< T >::value >::push_back().
Referenced by finalize().
|
inline |
Set each node's subtree ID to the representative ID and record connections between trees.
Definition at line 1397 of file ScheduleDAGInstrs.cpp.
References addConnection(), llvm::SparseSet< ValueT, KeyFunctorT, SparseT >::begin(), llvm::IntEqClasses::compress(), llvm::dbgs(), DEBUG, llvm::SparseSet< ValueT, KeyFunctorT, SparseT >::end(), llvm::IntEqClasses::getNumClasses(), llvm::SchedDFSResult::getNumSubtrees(), I, llvm::SmallVectorImpl< T >::resize(), and llvm::SparseSet< ValueT, KeyFunctorT, SparseT >::size().
Referenced by llvm::SchedDFSResult::compute().
Return true if this node been visited by the DFS traversal.
During visitPostorderNode the Node's SubtreeID is assigned to the Node ID. Later, SubtreeID is updated but remains valid.
Definition at line 1326 of file ScheduleDAGInstrs.cpp.
References llvm::SUnit::NodeNum.
Referenced by llvm::SchedDFSResult::compute().
|
inlineprotected |
Join the predecessor subtree with the successor that is its DFS parent.
Apply some heuristics before joining.
Definition at line 1437 of file ScheduleDAGInstrs.cpp.
References llvm::SDep::Data, llvm::SDep::getKind(), llvm::SDep::getSUnit(), llvm::IntEqClasses::join(), llvm::SUnit::NodeNum, and llvm::SI.
Referenced by visitPostorderEdge(), and visitPostorderNode().
Add a connection for cross edges.
Definition at line 1391 of file ScheduleDAGInstrs.cpp.
References llvm::SDep::getSUnit().
Referenced by llvm::SchedDFSResult::compute().
Called once for each tree edge after calling visitPostOrderNode on the predecessor.
Increment the parent node's instruction count and preemptively join this subtree to its parent's if it is small enough.
Definition at line 1384 of file ScheduleDAGInstrs.cpp.
References llvm::SDep::getSUnit(), joinPredSubtree(), and llvm::SUnit::NodeNum.
Referenced by llvm::SchedDFSResult::compute().
Called once for each node after all predecessors are visited.
Revisit this node's predecessors and potentially join them now that we know the ILP of the other predecessors.
Definition at line 1341 of file ScheduleDAGInstrs.cpp.
References llvm::SparseSet< ValueT, KeyFunctorT, SparseT >::count(), llvm::SDep::Data, llvm::SparseSet< ValueT, KeyFunctorT, SparseT >::erase(), llvm::SUnit::getInstr(), llvm::MachineInstr::isTransient(), joinPredSubtree(), llvm::SUnit::NodeNum, and llvm::SUnit::Preds.
Referenced by llvm::SchedDFSResult::compute().
Initialize this node's instruction count.
We don't need to flag the node visited until visitPostorder because the DAG cannot have cycles.
Definition at line 1333 of file ScheduleDAGInstrs.cpp.
References llvm::SUnit::getInstr(), llvm::MachineInstr::isTransient(), and llvm::SUnit::NodeNum.
Referenced by llvm::SchedDFSResult::compute().
1.8.6