xref: /minix3/external/bsd/llvm/dist/llvm/lib/Target/NVPTX/NVPTXFrameLowering.h (revision 0a6a1f1d05b60e214de2f05a7310ddd1f0e590e7)
1f4a2713aSLionel Sambuc //===--- NVPTXFrameLowering.h - Define frame lowering for NVPTX -*- C++ -*-===//
2f4a2713aSLionel Sambuc //
3f4a2713aSLionel Sambuc //                     The LLVM Compiler Infrastructure
4f4a2713aSLionel Sambuc //
5f4a2713aSLionel Sambuc // This file is distributed under the University of Illinois Open Source
6f4a2713aSLionel Sambuc // License. See LICENSE.TXT for details.
7f4a2713aSLionel Sambuc //
8f4a2713aSLionel Sambuc //===----------------------------------------------------------------------===//
9f4a2713aSLionel Sambuc //
10f4a2713aSLionel Sambuc //
11f4a2713aSLionel Sambuc //
12f4a2713aSLionel Sambuc //===----------------------------------------------------------------------===//
13f4a2713aSLionel Sambuc 
14*0a6a1f1dSLionel Sambuc #ifndef LLVM_LIB_TARGET_NVPTX_NVPTXFRAMELOWERING_H
15*0a6a1f1dSLionel Sambuc #define LLVM_LIB_TARGET_NVPTX_NVPTXFRAMELOWERING_H
16f4a2713aSLionel Sambuc 
17f4a2713aSLionel Sambuc #include "llvm/Target/TargetFrameLowering.h"
18f4a2713aSLionel Sambuc 
19f4a2713aSLionel Sambuc namespace llvm {
20*0a6a1f1dSLionel Sambuc class NVPTXSubtarget;
21f4a2713aSLionel Sambuc class NVPTXFrameLowering : public TargetFrameLowering {
22f4a2713aSLionel Sambuc   bool is64bit;
23f4a2713aSLionel Sambuc 
24f4a2713aSLionel Sambuc public:
25*0a6a1f1dSLionel Sambuc   explicit NVPTXFrameLowering(NVPTXSubtarget &STI);
26f4a2713aSLionel Sambuc 
27*0a6a1f1dSLionel Sambuc   bool hasFP(const MachineFunction &MF) const override;
28*0a6a1f1dSLionel Sambuc   void emitPrologue(MachineFunction &MF) const override;
29*0a6a1f1dSLionel Sambuc   void emitEpilogue(MachineFunction &MF, MachineBasicBlock &MBB) const override;
30f4a2713aSLionel Sambuc 
31f4a2713aSLionel Sambuc   void eliminateCallFramePseudoInstr(MachineFunction &MF,
32f4a2713aSLionel Sambuc                                   MachineBasicBlock &MBB,
33*0a6a1f1dSLionel Sambuc                                   MachineBasicBlock::iterator I) const override;
34f4a2713aSLionel Sambuc };
35f4a2713aSLionel Sambuc 
36f4a2713aSLionel Sambuc } // End llvm namespace
37f4a2713aSLionel Sambuc 
38f4a2713aSLionel Sambuc #endif
39