1 //===----------------------- AMDILFrameLowering.cpp -----------------*- C++ -*-===//
3 // The LLVM Compiler Infrastructure
5 // This file is distributed under the University of Illinois Open Source
6 // License. See LICENSE.TXT for details.
8 //==-----------------------------------------------------------------------===//
11 /// \brief Interface to describe a layout of a stack frame on a AMDGPU target
14 //===----------------------------------------------------------------------===//
15 #include "AMDILFrameLowering.h"
16 #include "llvm/CodeGen/MachineFrameInfo.h"
19 AMDGPUFrameLowering::AMDGPUFrameLowering(StackDirection D, unsigned StackAl,
20 int LAO, unsigned TransAl)
21 : TargetFrameLowering(D, StackAl, LAO, TransAl) {
24 AMDGPUFrameLowering::~AMDGPUFrameLowering() {
27 int AMDGPUFrameLowering::getFrameIndexOffset(const MachineFunction &MF,
29 const MachineFrameInfo *MFI = MF.getFrameInfo();
30 return MFI->getObjectOffset(FI);
33 const TargetFrameLowering::SpillSlot *
34 AMDGPUFrameLowering::getCalleeSavedSpillSlots(unsigned &NumEntries) const {
39 AMDGPUFrameLowering::emitPrologue(MachineFunction &MF) const {
42 AMDGPUFrameLowering::emitEpilogue(MachineFunction &MF, MachineBasicBlock &MBB) const {
45 AMDGPUFrameLowering::hasFP(const MachineFunction &MF) const {