MipsSERegisterInfo.h revision 243830
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 MIPSSEREGISTERINFO_H
16#define MIPSSEREGISTERINFO_H
17
18#include "MipsRegisterInfo.h"
19
20namespace llvm {
21class MipsSEInstrInfo;
22
23class MipsSERegisterInfo : public MipsRegisterInfo {
24  const MipsSEInstrInfo &TII;
25
26public:
27  MipsSERegisterInfo(const MipsSubtarget &Subtarget,
28                     const MipsSEInstrInfo &TII);
29
30  bool requiresRegisterScavenging(const MachineFunction &MF) const;
31
32  bool requiresFrameIndexScavenging(const MachineFunction &MF) const;
33
34  void eliminateCallFramePseudoInstr(MachineFunction &MF,
35                                     MachineBasicBlock &MBB,
36                                     MachineBasicBlock::iterator I) const;
37
38private:
39  virtual void eliminateFI(MachineBasicBlock::iterator II, unsigned OpNo,
40                           int FrameIndex, uint64_t StackSize,
41                           int64_t SPOffset) const;
42};
43
44} // end namespace llvm
45
46#endif
47