LLVM API Documentation
00001 //===--- NVPTXFrameLowering.h - Define frame lowering for NVPTX -*- C++ -*-===// 00002 // 00003 // The LLVM Compiler Infrastructure 00004 // 00005 // This file is distributed under the University of Illinois Open Source 00006 // License. See LICENSE.TXT for details. 00007 // 00008 //===----------------------------------------------------------------------===// 00009 // 00010 // 00011 // 00012 //===----------------------------------------------------------------------===// 00013 00014 #ifndef LLVM_LIB_TARGET_NVPTX_NVPTXFRAMELOWERING_H 00015 #define LLVM_LIB_TARGET_NVPTX_NVPTXFRAMELOWERING_H 00016 00017 #include "llvm/Target/TargetFrameLowering.h" 00018 00019 namespace llvm { 00020 class NVPTXSubtarget; 00021 class NVPTXFrameLowering : public TargetFrameLowering { 00022 bool is64bit; 00023 00024 public: 00025 explicit NVPTXFrameLowering(NVPTXSubtarget &STI); 00026 00027 bool hasFP(const MachineFunction &MF) const override; 00028 void emitPrologue(MachineFunction &MF) const override; 00029 void emitEpilogue(MachineFunction &MF, MachineBasicBlock &MBB) const override; 00030 00031 void eliminateCallFramePseudoInstr(MachineFunction &MF, 00032 MachineBasicBlock &MBB, 00033 MachineBasicBlock::iterator I) const override; 00034 }; 00035 00036 } // End llvm namespace 00037 00038 #endif