1//===-- CSKYRegisterInfo.h - CSKY Register Information Impl ---*- C++ -*---===//
2//
3// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4// See https://llvm.org/LICENSE.txt for license information.
5// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6//
7//===----------------------------------------------------------------------===//
8//
9// This file contains the CSKY implementation of the TargetRegisterInfo class.
10//
11//===----------------------------------------------------------------------===//
12
13#ifndef LLVM_LIB_TARGET_CSKY_CSKYREGISTERINFO_H
14#define LLVM_LIB_TARGET_CSKY_CSKYREGISTERINFO_H
15
16#include "llvm/CodeGen/TargetRegisterInfo.h"
17
18#define GET_REGINFO_HEADER
19#include "CSKYGenRegisterInfo.inc"
20
21namespace llvm {
22class CSKYInstrInfo;
23
24class CSKYRegisterInfo : public CSKYGenRegisterInfo {
25public:
26 CSKYRegisterInfo();
27
28 const uint32_t *getCallPreservedMask(const MachineFunction &MF,
29 CallingConv::ID id) const override;
30 const uint32_t *getNoPreservedMask() const override;
31
32 BitVector getReservedRegs(const MachineFunction &MF) const override;
33
34 Register getFrameRegister(const MachineFunction &MF) const override;
35
36 const MCPhysReg *getCalleeSavedRegs(const MachineFunction *MF) const override;
37
38 bool eliminateFrameIndex(MachineBasicBlock::iterator MI, int SPAdj,
39 unsigned FIOperandNum,
40 RegScavenger *RS) const override;
41
42 bool requiresFrameIndexScavenging(const MachineFunction &MF) const override {
43 return true;
44 }
45
46 bool requiresRegisterScavenging(const MachineFunction &MF) const override {
47 return true;
48 }
49
50 bool useFPForScavengingIndex(const MachineFunction &MF) const override {
51 return false;
52 }
53};
54
55} // namespace llvm
56
57#endif // LLVM_LIB_TARGET_CSKY_CSKYREGISTERINFO_H
58

source code of llvm/lib/Target/CSKY/CSKYRegisterInfo.h