Home | History | Annotate | Download | only in radeon
      1 //===--------------------- AMDILFrameLowering.h -----------------*- C++ -*-===//
      2 //
      3 //                     The LLVM Compiler Infrastructure
      4 //
      5 // This file is distributed under the University of Illinois Open Source
      6 // License. See LICENSE.TXT for details.
      7 //
      8 //==-----------------------------------------------------------------------===//
      9 //
     10 //                     The LLVM Compiler Infrastructure
     11 //
     12 // This file is distributed under the University of Illinois Open Source
     13 // License. See LICENSE.TXT for details.
     14 //
     15 //===----------------------------------------------------------------------===//
     16 //
     17 // Interface to describe a layout of a stack frame on a AMDIL target machine
     18 //
     19 //===----------------------------------------------------------------------===//
     20 #ifndef _AMDILFRAME_LOWERING_H_
     21 #define _AMDILFRAME_LOWERING_H_
     22 
     23 #include "llvm/CodeGen/MachineFunction.h"
     24 #include "llvm/Target/TargetFrameLowering.h"
     25 
     26 /// Information about the stack frame layout on the AMDGPU targets. It holds
     27 /// the direction of the stack growth, the known stack alignment on entry to
     28 /// each function, and the offset to the locals area.
     29 /// See TargetFrameInfo for more comments.
     30 
     31 namespace llvm {
     32   class AMDGPUFrameLowering : public TargetFrameLowering {
     33     public:
     34       AMDGPUFrameLowering(StackDirection D, unsigned StackAl, int LAO, unsigned
     35           TransAl = 1);
     36       virtual ~AMDGPUFrameLowering();
     37       virtual int getFrameIndexOffset(const MachineFunction &MF,
     38                                          int FI) const;
     39       virtual const SpillSlot *
     40         getCalleeSavedSpillSlots(unsigned &NumEntries) const;
     41       virtual void emitPrologue(MachineFunction &MF) const;
     42       virtual void emitEpilogue(MachineFunction &MF, MachineBasicBlock &MBB) const;
     43       virtual bool hasFP(const MachineFunction &MF) const;
     44   }; // class AMDGPUFrameLowering
     45 } // namespace llvm
     46 #endif // _AMDILFRAME_LOWERING_H_
     47