Path: blob/main/contrib/llvm-project/llvm/lib/Target/Xtensa/XtensaRegisterInfo.h
96353 views
//===-- XtensaRegisterInfo.h - Xtensa Register Information Impl -*- C++ -*-===//1//2// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.3// See https://llvm.org/LICENSE.txt for license information.4// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception5//6//===----------------------------------------------------------------------===//7//8// This file contains the Xtensa implementation of the TargetRegisterInfo class.9//10//===----------------------------------------------------------------------===//1112#ifndef LLVM_LIB_TARGET_XTENSA_XTENSAREGISTERINFO_H13#define LLVM_LIB_TARGET_XTENSA_XTENSAREGISTERINFO_H1415#include "Xtensa.h"16#include "llvm/CodeGen/TargetRegisterInfo.h"1718#define GET_REGINFO_HEADER19#include "XtensaGenRegisterInfo.inc"2021namespace llvm {22class TargetRegisterClass;23class XtensaInstrInfo;24class XtensaSubtarget;2526class XtensaRegisterInfo : public XtensaGenRegisterInfo {27public:28const XtensaSubtarget &Subtarget;2930XtensaRegisterInfo(const XtensaSubtarget &STI);3132bool requiresRegisterScavenging(const MachineFunction &MF) const override {33return true;34}3536bool requiresFrameIndexScavenging(const MachineFunction &MF) const override {37return true;38}3940const uint16_t *41getCalleeSavedRegs(const MachineFunction *MF = 0) const override;42const uint32_t *getCallPreservedMask(const MachineFunction &MF,43CallingConv::ID) const override;44BitVector getReservedRegs(const MachineFunction &MF) const override;4546bool eliminateFrameIndex(MachineBasicBlock::iterator MI, int SPAdj,47unsigned FIOperandNum,48RegScavenger *RS = nullptr) const override;4950Register getFrameRegister(const MachineFunction &MF) const override;51};5253} // end namespace llvm5455#endif // LLVM_LIB_TARGET_XTENSA_REGISTERINFO_H565758