1 //===- PTXRegisterInfo.h - PTX Register Information Impl --------*- C++ -*-===//
3 // The LLVM Compiler Infrastructure
5 // This file is distributed under the University of Illinois Open Source
6 // License. See LICENSE.TXT for details.
8 //===----------------------------------------------------------------------===//
10 // This file contains the PTX implementation of the MRegisterInfo class.
12 //===----------------------------------------------------------------------===//
14 #ifndef PTX_REGISTER_INFO_H
15 #define PTX_REGISTER_INFO_H
17 #include "llvm/Support/ErrorHandling.h"
18 #include "llvm/ADT/BitVector.h"
20 #define GET_REGINFO_HEADER
21 #include "PTXGenRegisterInfo.inc"
24 class PTXTargetMachine;
25 class MachineFunction;
27 struct PTXRegisterInfo : public PTXGenRegisterInfo {
28 PTXRegisterInfo(PTXTargetMachine &TM,
29 const TargetInstrInfo &TII);
31 virtual const unsigned
32 *getCalleeSavedRegs(const MachineFunction *MF = 0) const {
33 static const unsigned CalleeSavedRegs[] = { 0 };
34 return CalleeSavedRegs; // save nothing
37 virtual BitVector getReservedRegs(const MachineFunction &MF) const {
38 BitVector Reserved(getNumRegs());
39 return Reserved; // reserve no regs
42 virtual void eliminateFrameIndex(MachineBasicBlock::iterator II,
44 RegScavenger *RS = NULL) const;
46 virtual unsigned getFrameRegister(const MachineFunction &MF) const {
47 llvm_unreachable("PTX does not have a frame register");
50 }; // struct PTXRegisterInfo
53 #endif // PTX_REGISTER_INFO_H