brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.4 KiB · f8d1f97 Raw
42 lines · c
1//===--- NVPTXFrameLowering.h - Define frame lowering for NVPTX -*- 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-exception6//7//===----------------------------------------------------------------------===//8//9//10//11//===----------------------------------------------------------------------===//12 13#ifndef LLVM_LIB_TARGET_NVPTX_NVPTXFRAMELOWERING_H14#define LLVM_LIB_TARGET_NVPTX_NVPTXFRAMELOWERING_H15 16#include "llvm/CodeGen/TargetFrameLowering.h"17#include "llvm/Support/TypeSize.h"18 19namespace llvm {20 21class NVPTXFrameLowering : public TargetFrameLowering {22public:23  explicit NVPTXFrameLowering();24 25  void emitPrologue(MachineFunction &MF, MachineBasicBlock &MBB) const override;26  void emitEpilogue(MachineFunction &MF, MachineBasicBlock &MBB) const override;27  StackOffset getFrameIndexReference(const MachineFunction &MF, int FI,28                                     Register &FrameReg) const override;29 30  MachineBasicBlock::iterator31  eliminateCallFramePseudoInstr(MachineFunction &MF, MachineBasicBlock &MBB,32                                MachineBasicBlock::iterator I) const override;33  DwarfFrameBase getDwarfFrameBase(const MachineFunction &MF) const override;34 35protected:36  bool hasFPImpl(const MachineFunction &MF) const override;37};38 39} // End llvm namespace40 41#endif42