summaryrefslogtreecommitdiff
path: root/include/llvm/CodeGen/SelectionDAGISel.h
diff options
context:
space:
mode:
authorEvan Cheng <evan.cheng@apple.com>2006-08-07 22:16:08 +0000
committerEvan Cheng <evan.cheng@apple.com>2006-08-07 22:16:08 +0000
commitfe8dc2e2c8d921c5b32ab3e338b24c07e4b9f14e (patch)
tree9f12ebca6e45962035336dcad596bffc3daafb02 /include/llvm/CodeGen/SelectionDAGISel.h
parent99157a00a6cadfd733cf02b947e2b7c7ed27246b (diff)
downloadllvm-fe8dc2e2c8d921c5b32ab3e338b24c07e4b9f14e.tar.gz
llvm-fe8dc2e2c8d921c5b32ab3e338b24c07e4b9f14e.tar.bz2
llvm-fe8dc2e2c8d921c5b32ab3e338b24c07e4b9f14e.tar.xz
Move DAGSize to SelectionDAGISel; it's used in tablegen'd isel code.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29547 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'include/llvm/CodeGen/SelectionDAGISel.h')
-rw-r--r--include/llvm/CodeGen/SelectionDAGISel.h9
1 files changed, 7 insertions, 2 deletions
diff --git a/include/llvm/CodeGen/SelectionDAGISel.h b/include/llvm/CodeGen/SelectionDAGISel.h
index e5d024a892..f439f21d6f 100644
--- a/include/llvm/CodeGen/SelectionDAGISel.h
+++ b/include/llvm/CodeGen/SelectionDAGISel.h
@@ -17,10 +17,10 @@
#include "llvm/Pass.h"
#include "llvm/Constant.h"
+#include "llvm/CodeGen/SelectionDAG.h"
#include "llvm/CodeGen/SelectionDAGNodes.h"
namespace llvm {
- class SelectionDAG;
class SelectionDAGLowering;
class SDOperand;
class SSARegMap;
@@ -39,8 +39,10 @@ public:
SSARegMap *RegMap;
SelectionDAG *CurDAG;
MachineBasicBlock *BB;
+ std::vector<SDNode*> TopOrder;
+ unsigned DAGSize;
- SelectionDAGISel(TargetLowering &tli) : TLI(tli), JT(0,0,0,0) {}
+ SelectionDAGISel(TargetLowering &tli) : TLI(tli), DAGSize(0), JT(0,0,0,0) {}
TargetLowering &getTargetLowering() { return TLI; }
@@ -52,6 +54,9 @@ public:
virtual void EmitFunctionEntryCode(Function &Fn, MachineFunction &MF) {}
virtual void InstructionSelectBasicBlock(SelectionDAG &SD) = 0;
+ virtual void SelectRootInit() {
+ DAGSize = CurDAG->AssignTopologicalOrder(TopOrder);
+ }
/// SelectInlineAsmMemoryOperand - Select the specified address as a target
/// addressing mode, according to the specified constraint code. If this does