1/*===- TableGen'erated file -------------------------------------*- C++ -*-===*\
2|* *|
3|* Register Information Header Fragment *|
4|* *|
5|* Automatically generated file, do not edit! *|
6|* *|
7\*===----------------------------------------------------------------------===*/
8
9#include "llvm/CodeGen/TargetRegisterInfo.h"
10
11namespace llvm {
12
13class SPIRVFrameLowering;
14
15extern const MCRegisterClassStorage<9, 20, 9, 9, 1, 14> SPIRVMCRegisterClassStorage;
16
17struct SPIRVGenRegisterInfo : public TargetRegisterInfo {
18 explicit SPIRVGenRegisterInfo(unsigned RA, unsigned D = 0, unsigned E = 0,
19 unsigned PC = 0, unsigned HwMode = 0);
20 const RegClassWeight &getRegClassWeight(const TargetRegisterClass *RC) const override;
21 unsigned getRegUnitWeight(MCRegUnit RegUnit) const override;
22 unsigned getNumRegPressureSets() const override;
23 const char *getRegPressureSetName(unsigned Idx) const override;
24 unsigned getRegPressureSetLimit(const MachineFunction &MF, unsigned Idx) const override;
25 const int *getRegClassPressureSets(const TargetRegisterClass *RC) const override;
26 const int *getRegUnitPressureSets(MCRegUnit RegUnit) const override;
27 ArrayRef<const char *> getRegMaskNames() const override;
28 ArrayRef<const uint32_t *> getRegMasks() const override;
29 bool isGeneralPurposeRegister(const MachineFunction &, MCRegister) const override;
30 bool isGeneralPurposeRegisterClass(const TargetRegisterClass *RC) const override;
31 bool isFixedRegister(const MachineFunction &, MCRegister) const override;
32 bool isArgumentRegister(const MachineFunction &, MCRegister) const override;
33 bool isConstantPhysReg(MCRegister PhysReg) const override final;
34 /// Devirtualized TargetFrameLowering.
35 static const SPIRVFrameLowering *getFrameLowering(
36 const MachineFunction &MF);
37 const TargetRegisterClass *getMinimalPhysRegClass(MCRegister Reg) const override;
38};
39
40namespace SPIRV {
41
42// Register classes
43static constexpr const TargetRegisterClass &ANYRegClass = SPIRVMCRegisterClassStorage.Classes[0];
44static constexpr const TargetRegisterClass &IDRegClass = SPIRVMCRegisterClassStorage.Classes[1];
45static constexpr const TargetRegisterClass &TYPERegClass = SPIRVMCRegisterClassStorage.Classes[2];
46static constexpr const TargetRegisterClass &fIDRegClass = SPIRVMCRegisterClassStorage.Classes[3];
47static constexpr const TargetRegisterClass &iIDRegClass = SPIRVMCRegisterClassStorage.Classes[4];
48static constexpr const TargetRegisterClass &pIDRegClass = SPIRVMCRegisterClassStorage.Classes[5];
49static constexpr const TargetRegisterClass &vpIDRegClass = SPIRVMCRegisterClassStorage.Classes[6];
50static constexpr const TargetRegisterClass &vfIDRegClass = SPIRVMCRegisterClassStorage.Classes[7];
51static constexpr const TargetRegisterClass &viIDRegClass = SPIRVMCRegisterClassStorage.Classes[8];
52
53} // namespace SPIRV
54
55} // namespace llvm
56