[llvm-commits] CVS: llvm/include/llvm/CodeGen/ScheduleDAG.h

Evan Cheng evan.cheng at apple.com
Sat Nov 4 01:43:07 PST 2006



Changes in directory llvm/include/llvm/CodeGen:

ScheduleDAG.h updated: 1.32 -> 1.33
---
Log message:

Move to operand constraints for two-address instructions.

---
Diffs of the changes:  (+12 -1)

 ScheduleDAG.h |   13 ++++++++++++-
 1 files changed, 12 insertions(+), 1 deletion(-)


Index: llvm/include/llvm/CodeGen/ScheduleDAG.h
diff -u llvm/include/llvm/CodeGen/ScheduleDAG.h:1.32 llvm/include/llvm/CodeGen/ScheduleDAG.h:1.33
--- llvm/include/llvm/CodeGen/ScheduleDAG.h:1.32	Wed Aug 16 19:09:56 2006
+++ llvm/include/llvm/CodeGen/ScheduleDAG.h	Sat Nov  4 03:42:53 2006
@@ -154,7 +154,8 @@
   public:
     virtual ~SchedulingPriorityQueue() {}
   
-    virtual void initNodes(std::vector<SUnit> &SUnits) = 0;
+    virtual void initNodes(std::map<SDNode*, SUnit*> &SUMap,
+                           std::vector<SUnit> &SUnits) = 0;
     virtual void releaseState() = 0;
   
     virtual bool empty() const = 0;
@@ -225,6 +226,16 @@
     void CalculateDepths();
     void CalculateHeights();
 
+    /// CountResults - The results of target nodes have register or immediate
+    /// operands first, then an optional chain, and optional flag operands
+    /// (which do not go into the machine instrs.)
+    static unsigned CountResults(SDNode *Node);
+
+    /// CountOperands  The inputs to target nodes have any actual inputs first,
+    /// followed by an optional chain operand, then flag operands.  Compute the
+    /// number of actual operands that  will go into the machine instr.
+    static unsigned CountOperands(SDNode *Node);
+
     /// EmitNode - Generate machine code for an node and needed dependencies.
     /// VRBaseMap contains, for each already emitted node, the first virtual
     /// register number for the results of the node.






More information about the llvm-commits mailing list