1*82d56013Sjoerg //===-- VERegisterInfo.h - VE Register Information Impl ---------*- C++ -*-===// 2*82d56013Sjoerg // 3*82d56013Sjoerg // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 4*82d56013Sjoerg // See https://llvm.org/LICENSE.txt for license information. 5*82d56013Sjoerg // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 6*82d56013Sjoerg // 7*82d56013Sjoerg //===----------------------------------------------------------------------===// 8*82d56013Sjoerg // 9*82d56013Sjoerg // This file contains the VE implementation of the TargetRegisterInfo class. 10*82d56013Sjoerg // 11*82d56013Sjoerg //===----------------------------------------------------------------------===// 12*82d56013Sjoerg 13*82d56013Sjoerg #ifndef LLVM_LIB_TARGET_VE_VEREGISTERINFO_H 14*82d56013Sjoerg #define LLVM_LIB_TARGET_VE_VEREGISTERINFO_H 15*82d56013Sjoerg 16*82d56013Sjoerg #include "llvm/CodeGen/TargetRegisterInfo.h" 17*82d56013Sjoerg 18*82d56013Sjoerg #define GET_REGINFO_HEADER 19*82d56013Sjoerg #include "VEGenRegisterInfo.inc" 20*82d56013Sjoerg 21*82d56013Sjoerg namespace llvm { 22*82d56013Sjoerg struct VERegisterInfo : public VEGenRegisterInfo { 23*82d56013Sjoerg public: 24*82d56013Sjoerg VERegisterInfo(); 25*82d56013Sjoerg 26*82d56013Sjoerg /// Code Generation virtual methods... 27*82d56013Sjoerg const MCPhysReg *getCalleeSavedRegs(const MachineFunction *MF) const override; 28*82d56013Sjoerg const uint32_t *getCallPreservedMask(const MachineFunction &MF, 29*82d56013Sjoerg CallingConv::ID CC) const override; 30*82d56013Sjoerg const uint32_t *getNoPreservedMask() const override; 31*82d56013Sjoerg 32*82d56013Sjoerg BitVector getReservedRegs(const MachineFunction &MF) const override; 33*82d56013Sjoerg bool isConstantPhysReg(MCRegister PhysReg) const override; 34*82d56013Sjoerg 35*82d56013Sjoerg const TargetRegisterClass *getPointerRegClass(const MachineFunction &MF, 36*82d56013Sjoerg unsigned Kind) const override; 37*82d56013Sjoerg 38*82d56013Sjoerg void eliminateFrameIndex(MachineBasicBlock::iterator II, int SPAdj, 39*82d56013Sjoerg unsigned FIOperandNum, 40*82d56013Sjoerg RegScavenger *RS = nullptr) const override; 41*82d56013Sjoerg 42*82d56013Sjoerg Register getFrameRegister(const MachineFunction &MF) const override; 43*82d56013Sjoerg }; 44*82d56013Sjoerg 45*82d56013Sjoerg } // namespace llvm 46*82d56013Sjoerg 47*82d56013Sjoerg #endif 48