MipsSERegisterInfo.h revision 700ed80d3da5e98e05ceb90e9bfb66058581a6db
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
34private:
35  virtual void eliminateFI(MachineBasicBlock::iterator II, unsigned OpNo,
36                           int FrameIndex, uint64_t StackSize,
37                           int64_t SPOffset) const;
38};
39
40} // end namespace llvm
41
42#endif
43