summaryrefslogtreecommitdiffstats
path: root/include/llvm/CodeGen/ScheduleDAG.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/llvm/CodeGen/ScheduleDAG.h')
-rw-r--r--include/llvm/CodeGen/ScheduleDAG.h38
1 files changed, 22 insertions, 16 deletions
diff --git a/include/llvm/CodeGen/ScheduleDAG.h b/include/llvm/CodeGen/ScheduleDAG.h
index fdbbb1e..d5e7020 100644
--- a/include/llvm/CodeGen/ScheduleDAG.h
+++ b/include/llvm/CodeGen/ScheduleDAG.h
@@ -340,28 +340,34 @@ namespace llvm {
void removePred(const SDep &D);
/// getDepth - Return the depth of this node, which is the length of the
- /// maximum path up to any node with has no predecessors.
- unsigned getDepth() const {
- if (!isDepthCurrent) const_cast<SUnit *>(this)->ComputeDepth();
+ /// maximum path up to any node with has no predecessors. If IgnoreAntiDep
+ /// is true, ignore anti-dependence edges.
+ unsigned getDepth(bool IgnoreAntiDep=false) const {
+ if (!isDepthCurrent)
+ const_cast<SUnit *>(this)->ComputeDepth(IgnoreAntiDep);
return Depth;
}
/// getHeight - Return the height of this node, which is the length of the
- /// maximum path down to any node with has no successors.
- unsigned getHeight() const {
- if (!isHeightCurrent) const_cast<SUnit *>(this)->ComputeHeight();
+ /// maximum path down to any node with has no successors. If IgnoreAntiDep
+ /// is true, ignore anti-dependence edges.
+ unsigned getHeight(bool IgnoreAntiDep=false) const {
+ if (!isHeightCurrent)
+ const_cast<SUnit *>(this)->ComputeHeight(IgnoreAntiDep);
return Height;
}
- /// setDepthToAtLeast - If NewDepth is greater than this node's depth
- /// value, set it to be the new depth value. This also recursively
- /// marks successor nodes dirty.
- void setDepthToAtLeast(unsigned NewDepth);
+ /// setDepthToAtLeast - If NewDepth is greater than this node's
+ /// depth value, set it to be the new depth value. This also
+ /// recursively marks successor nodes dirty. If IgnoreAntiDep is
+ /// true, ignore anti-dependence edges.
+ void setDepthToAtLeast(unsigned NewDepth, bool IgnoreAntiDep=false);
- /// setDepthToAtLeast - If NewDepth is greater than this node's depth
- /// value, set it to be the new height value. This also recursively
- /// marks predecessor nodes dirty.
- void setHeightToAtLeast(unsigned NewHeight);
+ /// setDepthToAtLeast - If NewDepth is greater than this node's
+ /// depth value, set it to be the new height value. This also
+ /// recursively marks predecessor nodes dirty. If IgnoreAntiDep is
+ /// true, ignore anti-dependence edges.
+ void setHeightToAtLeast(unsigned NewHeight, bool IgnoreAntiDep=false);
/// setDepthDirty - Set a flag in this node to indicate that its
/// stored Depth value will require recomputation the next time
@@ -394,8 +400,8 @@ namespace llvm {
void print(raw_ostream &O, const ScheduleDAG *G) const;
private:
- void ComputeDepth();
- void ComputeHeight();
+ void ComputeDepth(bool IgnoreAntiDep);
+ void ComputeHeight(bool IgnoreAntiDep);
};
//===--------------------------------------------------------------------===//
OpenPOWER on IntegriCloud