1//===- XtensaFrameLowering.h - Define frame lowering for Xtensa --*- 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#ifndef LLVM_LIB_TARGET_XTENSA_XTENSAFRAMELOWERING_H
10#define LLVM_LIB_TARGET_XTENSA_XTENSAFRAMELOWERING_H
11
12#include "llvm/CodeGen/TargetFrameLowering.h"
13
14namespace llvm {
15class XtensaTargetMachine;
16class XtensaSubtarget;
17
18class XtensaFrameLowering : public TargetFrameLowering {
19public:
20 XtensaFrameLowering();
21
22 bool hasFP(const MachineFunction &MF) const override;
23
24 /// emitProlog/emitEpilog - These methods insert prolog and epilog code into
25 /// the function.
26 void emitPrologue(MachineFunction &, MachineBasicBlock &) const override;
27 void emitEpilogue(MachineFunction &MF, MachineBasicBlock &MBB) const override;
28
29 MachineBasicBlock::iterator
30 eliminateCallFramePseudoInstr(MachineFunction &MF, MachineBasicBlock &MBB,
31 MachineBasicBlock::iterator I) const override;
32};
33
34} // namespace llvm
35
36#endif /* LLVM_LIB_TARGET_XTENSA_XTENSAFRAMELOWERING_H */
37

source code of llvm/lib/Target/Xtensa/XtensaFrameLowering.h