diff options
author | Evan Cheng <evan.cheng@apple.com> | 2006-11-04 09:42:53 +0000 |
---|---|---|
committer | Evan Cheng <evan.cheng@apple.com> | 2006-11-04 09:42:53 +0000 |
commit | fe0b81759d207072ae468f5154f6a513c3a1be72 (patch) | |
tree | 157f8ed4adc0f2f2112448c31631016520e4d0d5 /include/llvm/CodeGen/ScheduleDAG.h | |
parent | c51737f46ff3bd4379b576630c1b83ce163738c5 (diff) | |
download | llvm-fe0b81759d207072ae468f5154f6a513c3a1be72.tar.gz llvm-fe0b81759d207072ae468f5154f6a513c3a1be72.tar.bz2 llvm-fe0b81759d207072ae468f5154f6a513c3a1be72.tar.xz |
Move to operand constraints for two-address instructions.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31452 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'include/llvm/CodeGen/ScheduleDAG.h')
-rw-r--r-- | include/llvm/CodeGen/ScheduleDAG.h | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/include/llvm/CodeGen/ScheduleDAG.h b/include/llvm/CodeGen/ScheduleDAG.h index 5d85d37433..5b96f02a6c 100644 --- a/include/llvm/CodeGen/ScheduleDAG.h +++ b/include/llvm/CodeGen/ScheduleDAG.h @@ -154,7 +154,8 @@ namespace llvm { 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 @@ namespace llvm { 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. |