[llvm-commits] CVS: llvm/include/llvm/CodeGen/ScheduleDAG.h
Evan Cheng
evan.cheng at apple.com
Wed Jan 25 01:08:03 PST 2006
Changes in directory llvm/include/llvm/CodeGen:
ScheduleDAG.h updated: 1.4 -> 1.5
---
Log message:
Some minor scheduler changes.
---
Diffs of the changes: (+9 -4)
ScheduleDAG.h | 13 +++++++++----
1 files changed, 9 insertions(+), 4 deletions(-)
Index: llvm/include/llvm/CodeGen/ScheduleDAG.h
diff -u llvm/include/llvm/CodeGen/ScheduleDAG.h:1.4 llvm/include/llvm/CodeGen/ScheduleDAG.h:1.5
--- llvm/include/llvm/CodeGen/ScheduleDAG.h:1.4 Mon Jan 23 02:26:10 2006
+++ llvm/include/llvm/CodeGen/ScheduleDAG.h Wed Jan 25 03:07:50 2006
@@ -37,6 +37,7 @@
// Scheduling heuristics
enum SchedHeuristics {
+ defaultScheduling, // Let the target specify its preference.
noScheduling, // No scheduling, emit breath first sequence.
simpleScheduling, // Two pass, min. critical path, max. utilization.
simpleNoItinScheduling, // Same as above exact using generic latency.
@@ -51,6 +52,8 @@
class NodeGroup {
private:
NIVector Members; // Group member nodes
+ NodeInfo *Top;
+ NodeInfo *Bottom;
NodeInfo *Dominator; // Node with highest latency
unsigned Latency; // Total latency of the group
int Pending; // Number of visits pending before
@@ -58,10 +61,12 @@
public:
// Ctor.
- NodeGroup() : Dominator(NULL), Pending(0) {}
+ NodeGroup() : Top(NULL), Bottom(NULL), Dominator(NULL), Pending(0) {}
// Accessors
inline void setDominator(NodeInfo *D) { Dominator = D; }
+ inline NodeInfo *getTop() { return Top; }
+ inline NodeInfo *getBottom() { return Bottom; }
inline NodeInfo *getDominator() { return Dominator; }
inline void setLatency(unsigned L) { Latency = L; }
inline unsigned getLatency() { return Latency; }
@@ -94,7 +99,7 @@
class NodeInfo {
private:
int Pending; // Number of visits pending before
- // adding to order
+ // adding to order
public:
SDNode *Node; // DAG node
InstrStage *StageBegin; // First stage in itinerary
@@ -279,7 +284,7 @@
/// isPassiveNode - Return true if the node is a non-scheduled leaf.
///
- bool isPassiveNode(SDNode *Node) {
+ static bool isPassiveNode(SDNode *Node) {
if (isa<ConstantSDNode>(Node)) return true;
if (isa<RegisterSDNode>(Node)) return true;
if (isa<GlobalAddressSDNode>(Node)) return true;
@@ -316,7 +321,7 @@
void dump(const char *tag) const;
- void dump() const;
+ virtual void dump() const;
private:
/// PrepareNodeInfo - Set up the basic minimum node info for scheduling.
More information about the llvm-commits
mailing list