
This patch adds no-op stubs overrides for the MCRegisterInfo and MCFrameLowering for the DirectX/DXIL code generation path. Since DXIL will not generate MCInstrs these stubs do nothing, but they need to exist so that the MC layer can be used to emit DXContainer objects. Differential Revision: https://reviews.llvm.org/D127147
36 lines
1.3 KiB
C++
36 lines
1.3 KiB
C++
//===-- DirectXFrameLowering.h - Frame lowering for DirectX --*- C++ ---*--===//
|
|
//
|
|
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
|
|
// See https://llvm.org/LICENSE.txt for license information.
|
|
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
|
|
//
|
|
//===----------------------------------------------------------------------===//
|
|
//
|
|
// This class implements DirectX-specific bits of TargetFrameLowering class.
|
|
// This is just a stub because the current DXIL backend does not actually lower
|
|
// through the MC layer.
|
|
//
|
|
//===----------------------------------------------------------------------===//
|
|
|
|
#ifndef LLVM_DIRECTX_DIRECTXFRAMELOWERING_H
|
|
#define LLVM_DIRECTX_DIRECTXFRAMELOWERING_H
|
|
|
|
#include "llvm/CodeGen/TargetFrameLowering.h"
|
|
#include "llvm/Support/Alignment.h"
|
|
|
|
namespace llvm {
|
|
class DirectXSubtarget;
|
|
|
|
class DirectXFrameLowering : public TargetFrameLowering {
|
|
public:
|
|
explicit DirectXFrameLowering(const DirectXSubtarget &STI)
|
|
: TargetFrameLowering(TargetFrameLowering::StackGrowsDown, Align(8), 0) {}
|
|
|
|
void emitPrologue(MachineFunction &, MachineBasicBlock &) const override {}
|
|
void emitEpilogue(MachineFunction &, MachineBasicBlock &) const override {}
|
|
|
|
bool hasFP(const MachineFunction &) const override { return false; }
|
|
};
|
|
} // namespace llvm
|
|
#endif // LLVM_DIRECTX_DIRECTXFRAMELOWERING_H
|