blob: c2e7a71081755a2968634d14e04d6f2d1d81f091 [file] [log] [blame]
Matt Arsenault0c90e952015-11-06 18:17:45 +00001//===--------------------- SIFrameLowering.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#ifndef LLVM_LIB_TARGET_AMDGPU_SIFRAMELOWERING_H
11#define LLVM_LIB_TARGET_AMDGPU_SIFRAMELOWERING_H
12
13#include "AMDGPUFrameLowering.h"
14
15namespace llvm {
16
17class SIFrameLowering final : public AMDGPUFrameLowering {
18public:
19 SIFrameLowering(StackDirection D, unsigned StackAl, int LAO,
20 unsigned TransAl = 1) :
21 AMDGPUFrameLowering(D, StackAl, LAO, TransAl) {}
22 ~SIFrameLowering() override {}
23
Matt Arsenault0e3d3892015-11-30 21:15:53 +000024 void emitPrologue(MachineFunction &MF,
25 MachineBasicBlock &MBB) const override;
Matt Arsenault43e92fe2016-06-24 06:30:11 +000026 void emitEpilogue(MachineFunction &MF,
27 MachineBasicBlock &MBB) const override;
Matt Arsenault0e3d3892015-11-30 21:15:53 +000028
Matt Arsenault0c90e952015-11-06 18:17:45 +000029 void processFunctionBeforeFrameFinalized(
30 MachineFunction &MF,
31 RegScavenger *RS = nullptr) const override;
32};
33
34}
35
36#endif