1 //===-- MipsSERegisterInfo.h - Mips32/64 Register Information ---*- C++ -*-===// 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 // This file contains the Mips32/64 implementation of the TargetRegisterInfo 11 // class. 12 // 13 //===----------------------------------------------------------------------===// 14 15 #ifndef LLVM_LIB_TARGET_MIPS_MIPSSEREGISTERINFO_H 16 #define LLVM_LIB_TARGET_MIPS_MIPSSEREGISTERINFO_H 17 18 #include "MipsRegisterInfo.h" 19 20 namespace llvm { 21 class MipsSEInstrInfo; 22 23 class MipsSERegisterInfo : public MipsRegisterInfo { 24 public: 25 MipsSERegisterInfo(); 26 27 bool requiresRegisterScavenging(const MachineFunction &MF) const override; 28 29 bool requiresFrameIndexScavenging(const MachineFunction &MF) const override; 30 31 const TargetRegisterClass *intRegClass(unsigned Size) const override; 32 33 private: 34 void eliminateFI(MachineBasicBlock::iterator II, unsigned OpNo, 35 int FrameIndex, uint64_t StackSize, 36 int64_t SPOffset) const override; 37 }; 38 39 } // end namespace llvm 40 41 #endif 42