LLVM  15.0.0git
CSKYRegisterInfo.h
Go to the documentation of this file.
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 
17 
18 #define GET_REGINFO_HEADER
19 #include "CSKYGenRegisterInfo.inc"
20 
21 namespace llvm {
22 class CSKYInstrInfo;
23 
25 public:
27 
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 
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
MI
IRTranslator LLVM IR MI
Definition: IRTranslator.cpp:104
llvm
This is an optimization pass for GlobalISel generic memory operations.
Definition: AddressRanges.h:17
llvm::CSKYRegisterInfo::eliminateFrameIndex
void eliminateFrameIndex(MachineBasicBlock::iterator MI, int SPAdj, unsigned FIOperandNum, RegScavenger *RS) const override
Definition: CSKYRegisterInfo.cpp:182
llvm::CSKYRegisterInfo::requiresFrameIndexScavenging
bool requiresFrameIndexScavenging(const MachineFunction &MF) const override
Definition: CSKYRegisterInfo.h:42
llvm::CSKYRegisterInfo
Definition: CSKYRegisterInfo.h:24
llvm::CSKYRegisterInfo::getReservedRegs
BitVector getReservedRegs(const MachineFunction &MF) const override
Definition: CSKYRegisterInfo.cpp:45
llvm::CSKYRegisterInfo::getNoPreservedMask
const uint32_t * getNoPreservedMask() const override
Definition: CSKYRegisterInfo.cpp:82
llvm::CSKYRegisterInfo::CSKYRegisterInfo
CSKYRegisterInfo()
Definition: CSKYRegisterInfo.cpp:26
llvm::BitVector
Definition: BitVector.h:75
llvm::CallingConv::ID
unsigned ID
LLVM IR allows to use arbitrary numbers as calling convention identifiers.
Definition: CallingConv.h:24
llvm::RegScavenger
Definition: RegisterScavenging.h:34
CSKYGenRegisterInfo
llvm::MachineFunction
Definition: MachineFunction.h:241
llvm::CSKYRegisterInfo::getFrameRegister
Register getFrameRegister(const MachineFunction &MF) const override
Definition: CSKYRegisterInfo.cpp:40
uint32_t
llvm::CSKYRegisterInfo::getCalleeSavedRegs
const MCPhysReg * getCalleeSavedRegs(const MachineFunction *MF) const override
Definition: CSKYRegisterInfo.cpp:87
llvm::Register
Wrapper class representing virtual and physical registers.
Definition: Register.h:19
llvm::CSKYRegisterInfo::useFPForScavengingIndex
bool useFPForScavengingIndex(const MachineFunction &MF) const override
Definition: CSKYRegisterInfo.h:50
uint16_t
llvm::CSKYRegisterInfo::getCallPreservedMask
const uint32_t * getCallPreservedMask(const MachineFunction &MF, CallingConv::ID id) const override
Definition: CSKYRegisterInfo.cpp:30
llvm::CSKYRegisterInfo::requiresRegisterScavenging
bool requiresRegisterScavenging(const MachineFunction &MF) const override
Definition: CSKYRegisterInfo.h:46
llvm::MachineInstrBundleIterator< MachineInstr >
TargetRegisterInfo.h