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
15struct SPIRVGenRegisterInfo : public TargetRegisterInfo {
16 explicit SPIRVGenRegisterInfo(unsigned RA, unsigned D = 0, unsigned E = 0,
17 unsigned PC = 0, unsigned HwMode = 0);
18 const RegClassWeight &getRegClassWeight(const TargetRegisterClass *RC) const override;
19 unsigned getRegUnitWeight(MCRegUnit RegUnit) const override;
20 unsigned getNumRegPressureSets() const override;
21 const char *getRegPressureSetName(unsigned Idx) const override;
22 unsigned getRegPressureSetLimit(const MachineFunction &MF, unsigned Idx) const override;
23 const int *getRegClassPressureSets(const TargetRegisterClass *RC) const override;
24 const int *getRegUnitPressureSets(MCRegUnit RegUnit) const override;
25 ArrayRef<const char *> getRegMaskNames() const override;
26 ArrayRef<const uint32_t *> getRegMasks() const override;
27 bool isGeneralPurposeRegister(const MachineFunction &, MCRegister) const override;
28 bool isGeneralPurposeRegisterClass(const TargetRegisterClass *RC) const override;
29 bool isFixedRegister(const MachineFunction &, MCRegister) const override;
30 bool isArgumentRegister(const MachineFunction &, MCRegister) const override;
31 bool isConstantPhysReg(MCRegister PhysReg) const override final;
32 /// Devirtualized TargetFrameLowering.
33 static const SPIRVFrameLowering *getFrameLowering(
34 const MachineFunction &MF);
35};
36
37namespace SPIRV { // Register classes
38 extern const TargetRegisterClass ANYRegClass;
39 extern const TargetRegisterClass IDRegClass;
40 extern const TargetRegisterClass TYPERegClass;
41 extern const TargetRegisterClass fIDRegClass;
42 extern const TargetRegisterClass iIDRegClass;
43 extern const TargetRegisterClass pIDRegClass;
44 extern const TargetRegisterClass vpIDRegClass;
45 extern const TargetRegisterClass vIDRegClass;
46 extern const TargetRegisterClass vfIDRegClass;
47} // end namespace SPIRV
48
49} // end namespace llvm
50
51