xref: /freebsd-src/contrib/llvm-project/llvm/lib/Target/DirectX/DirectXFrameLowering.h (revision 81ad626541db97eb356e2c1d4a20eb2a26a766ab)
1*81ad6265SDimitry Andric //===-- DirectXFrameLowering.h - Frame lowering for DirectX --*- C++ ---*--===//
2*81ad6265SDimitry Andric //
3*81ad6265SDimitry Andric // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4*81ad6265SDimitry Andric // See https://llvm.org/LICENSE.txt for license information.
5*81ad6265SDimitry Andric // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6*81ad6265SDimitry Andric //
7*81ad6265SDimitry Andric //===----------------------------------------------------------------------===//
8*81ad6265SDimitry Andric //
9*81ad6265SDimitry Andric // This class implements DirectX-specific bits of TargetFrameLowering class.
10*81ad6265SDimitry Andric // This is just a stub because the current DXIL backend does not actually lower
11*81ad6265SDimitry Andric // through the MC layer.
12*81ad6265SDimitry Andric //
13*81ad6265SDimitry Andric //===----------------------------------------------------------------------===//
14*81ad6265SDimitry Andric 
15*81ad6265SDimitry Andric #ifndef LLVM_DIRECTX_DIRECTXFRAMELOWERING_H
16*81ad6265SDimitry Andric #define LLVM_DIRECTX_DIRECTXFRAMELOWERING_H
17*81ad6265SDimitry Andric 
18*81ad6265SDimitry Andric #include "llvm/CodeGen/TargetFrameLowering.h"
19*81ad6265SDimitry Andric #include "llvm/Support/Alignment.h"
20*81ad6265SDimitry Andric 
21*81ad6265SDimitry Andric namespace llvm {
22*81ad6265SDimitry Andric class DirectXSubtarget;
23*81ad6265SDimitry Andric 
24*81ad6265SDimitry Andric class DirectXFrameLowering : public TargetFrameLowering {
25*81ad6265SDimitry Andric public:
DirectXFrameLowering(const DirectXSubtarget & STI)26*81ad6265SDimitry Andric   explicit DirectXFrameLowering(const DirectXSubtarget &STI)
27*81ad6265SDimitry Andric       : TargetFrameLowering(TargetFrameLowering::StackGrowsDown, Align(8), 0) {}
28*81ad6265SDimitry Andric 
emitPrologue(MachineFunction &,MachineBasicBlock &)29*81ad6265SDimitry Andric   void emitPrologue(MachineFunction &, MachineBasicBlock &) const override {}
emitEpilogue(MachineFunction &,MachineBasicBlock &)30*81ad6265SDimitry Andric   void emitEpilogue(MachineFunction &, MachineBasicBlock &) const override {}
31*81ad6265SDimitry Andric 
hasFP(const MachineFunction &)32*81ad6265SDimitry Andric   bool hasFP(const MachineFunction &) const override { return false; }
33*81ad6265SDimitry Andric };
34*81ad6265SDimitry Andric } // namespace llvm
35*81ad6265SDimitry Andric #endif // LLVM_DIRECTX_DIRECTXFRAMELOWERING_H
36