1*9880d681SAndroid Build Coastguard Worker //===--------------------- SIFrameLowering.h --------------------*- C++ -*-===// 2*9880d681SAndroid Build Coastguard Worker // 3*9880d681SAndroid Build Coastguard Worker // The LLVM Compiler Infrastructure 4*9880d681SAndroid Build Coastguard Worker // 5*9880d681SAndroid Build Coastguard Worker // This file is distributed under the University of Illinois Open Source 6*9880d681SAndroid Build Coastguard Worker // License. See LICENSE.TXT for details. 7*9880d681SAndroid Build Coastguard Worker // 8*9880d681SAndroid Build Coastguard Worker //===----------------------------------------------------------------------===// 9*9880d681SAndroid Build Coastguard Worker 10*9880d681SAndroid Build Coastguard Worker #ifndef LLVM_LIB_TARGET_AMDGPU_SIFRAMELOWERING_H 11*9880d681SAndroid Build Coastguard Worker #define LLVM_LIB_TARGET_AMDGPU_SIFRAMELOWERING_H 12*9880d681SAndroid Build Coastguard Worker 13*9880d681SAndroid Build Coastguard Worker #include "AMDGPUFrameLowering.h" 14*9880d681SAndroid Build Coastguard Worker 15*9880d681SAndroid Build Coastguard Worker namespace llvm { 16*9880d681SAndroid Build Coastguard Worker 17*9880d681SAndroid Build Coastguard Worker class SIFrameLowering final : public AMDGPUFrameLowering { 18*9880d681SAndroid Build Coastguard Worker public: 19*9880d681SAndroid Build Coastguard Worker SIFrameLowering(StackDirection D, unsigned StackAl, int LAO, 20*9880d681SAndroid Build Coastguard Worker unsigned TransAl = 1) : AMDGPUFrameLowering(D,StackAl,LAO,TransAl)21*9880d681SAndroid Build Coastguard Worker AMDGPUFrameLowering(D, StackAl, LAO, TransAl) {} ~SIFrameLowering()22*9880d681SAndroid Build Coastguard Worker ~SIFrameLowering() override {} 23*9880d681SAndroid Build Coastguard Worker 24*9880d681SAndroid Build Coastguard Worker void emitPrologue(MachineFunction &MF, 25*9880d681SAndroid Build Coastguard Worker MachineBasicBlock &MBB) const override; 26*9880d681SAndroid Build Coastguard Worker void emitEpilogue(MachineFunction &MF, 27*9880d681SAndroid Build Coastguard Worker MachineBasicBlock &MBB) const override; 28*9880d681SAndroid Build Coastguard Worker 29*9880d681SAndroid Build Coastguard Worker void processFunctionBeforeFrameFinalized( 30*9880d681SAndroid Build Coastguard Worker MachineFunction &MF, 31*9880d681SAndroid Build Coastguard Worker RegScavenger *RS = nullptr) const override; 32*9880d681SAndroid Build Coastguard Worker 33*9880d681SAndroid Build Coastguard Worker private: 34*9880d681SAndroid Build Coastguard Worker /// \brief Emits debugger prologue. 35*9880d681SAndroid Build Coastguard Worker void emitDebuggerPrologue(MachineFunction &MF, MachineBasicBlock &MBB) const; 36*9880d681SAndroid Build Coastguard Worker }; 37*9880d681SAndroid Build Coastguard Worker 38*9880d681SAndroid Build Coastguard Worker } 39*9880d681SAndroid Build Coastguard Worker 40*9880d681SAndroid Build Coastguard Worker #endif 41