| //===- PTXInstrInfo.h - PTX Instruction Information -------------*- C++ -*-===// |
| // |
| // The LLVM Compiler Infrastructure |
| // |
| // This file is distributed under the University of Illinois Open Source |
| // License. See LICENSE.TXT for details. |
| // |
| //===----------------------------------------------------------------------===// |
| // |
| // This file contains the PTX implementation of the TargetInstrInfo class. |
| // |
| //===----------------------------------------------------------------------===// |
| |
| #ifndef PTX_INSTR_INFO_H |
| #define PTX_INSTR_INFO_H |
| |
| #include "PTXRegisterInfo.h" |
| #include "llvm/Target/TargetInstrInfo.h" |
| |
| namespace llvm { |
| class PTXTargetMachine; |
| |
| class PTXInstrInfo : public TargetInstrInfoImpl { |
| private: |
| const PTXRegisterInfo RI; |
| PTXTargetMachine &TM; |
| |
| public: |
| explicit PTXInstrInfo(PTXTargetMachine &_TM); |
| |
| virtual const PTXRegisterInfo &getRegisterInfo() const { return RI; } |
| |
| virtual void copyPhysReg(MachineBasicBlock &MBB, |
| MachineBasicBlock::iterator I, DebugLoc DL, |
| unsigned DstReg, unsigned SrcReg, |
| bool KillSrc) const; |
| |
| virtual bool copyRegToReg(MachineBasicBlock &MBB, |
| MachineBasicBlock::iterator I, |
| unsigned DstReg, unsigned SrcReg, |
| const TargetRegisterClass *DstRC, |
| const TargetRegisterClass *SrcRC, |
| DebugLoc DL) const; |
| |
| virtual bool isMoveInstr(const MachineInstr& MI, |
| unsigned &SrcReg, unsigned &DstReg, |
| unsigned &SrcSubIdx, unsigned &DstSubIdx) const; |
| }; // class PTXInstrInfo |
| } // namespace llvm |
| |
| #endif // PTX_INSTR_INFO_H |