aboutsummaryrefslogtreecommitdiffstats
path: root/include/llvm/CodeGen/ScheduleDAG.h
diff options
context:
space:
mode:
authorEvan Cheng <evan.cheng@apple.com>2007-08-02 00:28:15 +0000
committerEvan Cheng <evan.cheng@apple.com>2007-08-02 00:28:15 +0000
commit2663978e4ab3d1c8be986f66d359be0474e9ea5b (patch)
tree4dcfb93fa84aad0a5e1328b72d7682ef5020fb53 /include/llvm/CodeGen/ScheduleDAG.h
parent84c52f6399e646a47914e39a686940913b64492f (diff)
downloadexternal_llvm-2663978e4ab3d1c8be986f66d359be0474e9ea5b.zip
external_llvm-2663978e4ab3d1c8be986f66d359be0474e9ea5b.tar.gz
external_llvm-2663978e4ab3d1c8be986f66d359be0474e9ea5b.tar.bz2
Instead of adding copyfromreg's to handle physical definitions. Now isel can
simply specify them as results and let scheduledag handle them. That is, instead of SDOperand Flag = DAG.getTargetNode(Opc, MVT::i32, MVT::Flag, ...) SDOperand Result = DAG.getCopyFromReg(Chain, X86::EAX, MVT::i32, Flag) Just write: SDOperand Result = DAG.getTargetNode(Opc, MVT::i32, MVT::i32, ...) And let scheduledag emit the move from X86::EAX to a virtual register. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40710 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'include/llvm/CodeGen/ScheduleDAG.h')
-rw-r--r--include/llvm/CodeGen/ScheduleDAG.h9
1 files changed, 9 insertions, 0 deletions
diff --git a/include/llvm/CodeGen/ScheduleDAG.h b/include/llvm/CodeGen/ScheduleDAG.h
index fd72aeb..d52936a 100644
--- a/include/llvm/CodeGen/ScheduleDAG.h
+++ b/include/llvm/CodeGen/ScheduleDAG.h
@@ -245,7 +245,16 @@ namespace llvm {
/// EmitNoop - Emit a noop instruction.
///
void EmitNoop();
+
+ /// EmitCopyFromReg - Generate machine code for an CopyFromReg node or an
+ /// implicit physical register output.
+ void EmitCopyFromReg(SDNode *Node, unsigned ResNo, unsigned SrcReg,
+ DenseMap<SDOperand, unsigned> &VRBaseMap);
+ void CreateVirtualRegisters(SDNode *Node, MachineInstr *MI,
+ const TargetInstrDescriptor &II,
+ DenseMap<SDOperand, unsigned> &VRBaseMap);
+
void EmitSchedule();
void dumpSchedule() const;