diff options
author | Evan Cheng <evan.cheng@apple.com> | 2009-05-05 00:30:09 +0000 |
---|---|---|
committer | Evan Cheng <evan.cheng@apple.com> | 2009-05-05 00:30:09 +0000 |
commit | 1ff2727c953ee0bd193d284d48c0b9243881a867 (patch) | |
tree | 28279ed6ffc3290c3fdb3dd7226069fd8621c2a9 | |
parent | de1aa1e4dd0635119bd669816becf80b1f4d8dde (diff) | |
download | bcm5719-llvm-1ff2727c953ee0bd193d284d48c0b9243881a867.tar.gz bcm5719-llvm-1ff2727c953ee0bd193d284d48c0b9243881a867.zip |
Move getInstrOperandRegClass from the scheduler to TargetInstrInfo.
llvm-svn: 70950
-rw-r--r-- | llvm/include/llvm/Target/TargetInstrInfo.h | 7 | ||||
-rw-r--r-- | llvm/lib/CodeGen/PostRASchedulerList.cpp | 12 | ||||
-rw-r--r-- | llvm/lib/CodeGen/SelectionDAG/ScheduleDAGSDNodesEmit.cpp | 14 | ||||
-rw-r--r-- | llvm/lib/Target/TargetInstrInfo.cpp | 13 |
4 files changed, 20 insertions, 26 deletions
diff --git a/llvm/include/llvm/Target/TargetInstrInfo.h b/llvm/include/llvm/Target/TargetInstrInfo.h index ec5ab4459d8..ecdd68258d5 100644 --- a/llvm/include/llvm/Target/TargetInstrInfo.h +++ b/llvm/include/llvm/Target/TargetInstrInfo.h @@ -20,6 +20,7 @@ namespace llvm { class TargetRegisterClass; +class TargetRegisterInfo; class LiveVariables; class CalleeSavedInfo; class SDNode; @@ -505,6 +506,12 @@ public: virtual unsigned GetFunctionSizeInBytes(const MachineFunction &MF) const; }; +/// getInstrOperandRegClass - Return register class of the operand of an +/// instruction of the specified TargetInstrDesc. +const TargetRegisterClass* +getInstrOperandRegClass(const TargetRegisterInfo *TRI, + const TargetInstrDesc &II, unsigned Op); + } // End llvm namespace #endif diff --git a/llvm/lib/CodeGen/PostRASchedulerList.cpp b/llvm/lib/CodeGen/PostRASchedulerList.cpp index f4e958c1077..de7746855b3 100644 --- a/llvm/lib/CodeGen/PostRASchedulerList.cpp +++ b/llvm/lib/CodeGen/PostRASchedulerList.cpp @@ -418,18 +418,6 @@ void SchedulePostRATDList::FinishBlock() { ScheduleDAGInstrs::FinishBlock(); } -/// getInstrOperandRegClass - Return register class of the operand of an -/// instruction of the specified TargetInstrDesc. -static const TargetRegisterClass* -getInstrOperandRegClass(const TargetRegisterInfo *TRI, - const TargetInstrDesc &II, unsigned Op) { - if (Op >= II.getNumOperands()) - return NULL; - if (II.OpInfo[Op].isLookupPtrRegClass()) - return TRI->getPointerRegClass(); - return TRI->getRegClass(II.OpInfo[Op].RegClass); -} - /// CriticalPathStep - Return the next SUnit after SU on the bottom-up /// critical path. static SDep *CriticalPathStep(SUnit *SU) { diff --git a/llvm/lib/CodeGen/SelectionDAG/ScheduleDAGSDNodesEmit.cpp b/llvm/lib/CodeGen/SelectionDAG/ScheduleDAGSDNodesEmit.cpp index dc8cbb19d0f..6e38590e248 100644 --- a/llvm/lib/CodeGen/SelectionDAG/ScheduleDAGSDNodesEmit.cpp +++ b/llvm/lib/CodeGen/SelectionDAG/ScheduleDAGSDNodesEmit.cpp @@ -28,20 +28,6 @@ #include "llvm/Support/MathExtras.h" using namespace llvm; -/// getInstrOperandRegClass - Return register class of the operand of an -/// instruction of the specified TargetInstrDesc. -static const TargetRegisterClass* -getInstrOperandRegClass(const TargetRegisterInfo *TRI, - const TargetInstrDesc &II, unsigned Op) { - if (Op >= II.getNumOperands()) { - assert(II.isVariadic() && "Invalid operand # of instruction"); - return NULL; - } - if (II.OpInfo[Op].isLookupPtrRegClass()) - return TRI->getPointerRegClass(); - return TRI->getRegClass(II.OpInfo[Op].RegClass); -} - /// EmitCopyFromReg - Generate machine code for an CopyFromReg node or an /// implicit physical register output. void ScheduleDAGSDNodes::EmitCopyFromReg(SDNode *Node, unsigned ResNo, diff --git a/llvm/lib/Target/TargetInstrInfo.cpp b/llvm/lib/Target/TargetInstrInfo.cpp index 1bdeef40097..ceaea0c2027 100644 --- a/llvm/lib/Target/TargetInstrInfo.cpp +++ b/llvm/lib/Target/TargetInstrInfo.cpp @@ -12,6 +12,7 @@ //===----------------------------------------------------------------------===// #include "llvm/Target/TargetInstrInfo.h" +#include "llvm/Target/TargetRegisterInfo.h" #include "llvm/Constant.h" #include "llvm/DerivedTypes.h" using namespace llvm; @@ -35,3 +36,15 @@ bool TargetInstrInfo::isUnpredicatedTerminator(const MachineInstr *MI) const { return true; return !isPredicated(MI); } + +/// getInstrOperandRegClass - Return register class of the operand of an +/// instruction of the specified TargetInstrDesc. +const TargetRegisterClass* +llvm::getInstrOperandRegClass(const TargetRegisterInfo *TRI, + const TargetInstrDesc &II, unsigned Op) { + if (Op >= II.getNumOperands()) + return NULL; + if (II.OpInfo[Op].isLookupPtrRegClass()) + return TRI->getPointerRegClass(); + return TRI->getRegClass(II.OpInfo[Op].RegClass); +} |