blob: 9d9ffe1d23a253c51e539b3db6060a11247468b1 [file] [log] [blame]
Eric Christopher50880d02010-09-18 18:52:28 +00001//===- PTXInstrInfo.h - PTX Instruction Information -------------*- C++ -*-===//
2//
3// The LLVM Compiler Infrastructure
4//
5// This file is distributed under the University of Illinois Open Source
6// License. See LICENSE.TXT for details.
7//
8//===----------------------------------------------------------------------===//
9//
10// This file contains the PTX implementation of the TargetInstrInfo class.
11//
12//===----------------------------------------------------------------------===//
13
14#ifndef PTX_INSTR_INFO_H
15#define PTX_INSTR_INFO_H
16
17#include "PTXRegisterInfo.h"
18#include "llvm/Target/TargetInstrInfo.h"
19
20namespace llvm {
21class PTXTargetMachine;
22
23class PTXInstrInfo : public TargetInstrInfoImpl {
24 private:
25 const PTXRegisterInfo RI;
26 PTXTargetMachine &TM;
27
28 public:
29 explicit PTXInstrInfo(PTXTargetMachine &_TM);
30
31 virtual const PTXRegisterInfo &getRegisterInfo() const { return RI; }
Che-Liang Chioub48f2c22010-10-19 13:14:40 +000032
33 virtual void copyPhysReg(MachineBasicBlock &MBB,
34 MachineBasicBlock::iterator I, DebugLoc DL,
35 unsigned DstReg, unsigned SrcReg,
36 bool KillSrc) const;
37
38 virtual bool copyRegToReg(MachineBasicBlock &MBB,
39 MachineBasicBlock::iterator I,
40 unsigned DstReg, unsigned SrcReg,
41 const TargetRegisterClass *DstRC,
42 const TargetRegisterClass *SrcRC,
43 DebugLoc DL) const;
44
45 virtual bool isMoveInstr(const MachineInstr& MI,
46 unsigned &SrcReg, unsigned &DstReg,
47 unsigned &SrcSubIdx, unsigned &DstSubIdx) const;
Eric Christopher50880d02010-09-18 18:52:28 +000048 }; // class PTXInstrInfo
49} // namespace llvm
50
51#endif // PTX_INSTR_INFO_H