SIRegisterInfo.h revision a75c6163e605f35b14f26930dd9227e4f337ec9e
1//===-- SIRegisterInfo.h - TODO: Add brief description -------===//
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// TODO: Add full description
11//
12//===----------------------------------------------------------------------===//
13
14
15#ifndef SIREGISTERINFO_H_
16#define SIREGISTERINFO_H_
17
18#include "AMDGPURegisterInfo.h"
19
20namespace llvm {
21
22  class AMDGPUTargetMachine;
23  class TargetInstrInfo;
24
25  struct SIRegisterInfo : public AMDGPURegisterInfo
26  {
27    AMDGPUTargetMachine &TM;
28    const TargetInstrInfo &TII;
29
30    SIRegisterInfo(AMDGPUTargetMachine &tm, const TargetInstrInfo &tii);
31
32    virtual BitVector getReservedRegs(const MachineFunction &MF) const;
33    virtual unsigned getBinaryCode(unsigned reg) const;
34
35    virtual bool isBaseRegClass(unsigned regClassID) const;
36
37    virtual const TargetRegisterClass *
38    getISARegClass(const TargetRegisterClass * rc) const;
39
40    unsigned getHWRegNum(unsigned reg) const;
41
42  };
43
44} // End namespace llvm
45
46#endif // SIREGISTERINFO_H_
47