diff options
author | Evan Cheng <evan.cheng@apple.com> | 2008-06-30 20:45:06 +0000 |
---|---|---|
committer | Evan Cheng <evan.cheng@apple.com> | 2008-06-30 20:45:06 +0000 |
commit | db8d56b825efeb576d67b9dbe39d736d93306222 (patch) | |
tree | 21c502b1830ad5a3b35d45a749de078f1452b289 /include/llvm/CodeGen | |
parent | 30389141c9c7270b4733ec0b9bc5ad58541f39da (diff) |
Split scheduling from instruction selection.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52923 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'include/llvm/CodeGen')
-rw-r--r-- | include/llvm/CodeGen/SelectionDAGISel.h | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/include/llvm/CodeGen/SelectionDAGISel.h b/include/llvm/CodeGen/SelectionDAGISel.h index 54b4accd42..7925a00792 100644 --- a/include/llvm/CodeGen/SelectionDAGISel.h +++ b/include/llvm/CodeGen/SelectionDAGISel.h @@ -58,7 +58,9 @@ public: unsigned MakeReg(MVT VT); virtual void EmitFunctionEntryCode(Function &Fn, MachineFunction &MF) {} - virtual void InstructionSelectBasicBlock(SelectionDAG &SD) = 0; + virtual void InstructionSelect(SelectionDAG &SD) = 0; + virtual void InstructionSelectPostProcessing(SelectionDAG &DAG) {} + virtual void SelectRootInit() { DAGSize = CurDAG->AssignTopologicalOrder(TopOrder); } @@ -160,10 +162,6 @@ public: }; protected: - /// Pick a safe ordering and emit instructions for each target node in the - /// graph. - void ScheduleAndEmitDAG(SelectionDAG &DAG); - /// SelectInlineAsmMemoryOperands - Calls to this are automatically generated /// by tblgen. Others should not call it. void SelectInlineAsmMemoryOperands(std::vector<SDOperand> &Ops, @@ -187,6 +185,10 @@ private: void ComputeLiveOutVRegInfo(SelectionDAG &DAG); + /// Pick a safe ordering and emit instructions for each target node in the + /// graph. + void ScheduleAndEmitDAG(SelectionDAG &DAG); + /// SwitchCases - Vector of CaseBlock structures used to communicate /// SwitchInst code generation information. std::vector<CaseBlock> SwitchCases; |