LLVM 20.0.0git
SPIRVFrameLowering.h
Go to the documentation of this file.
1//===-- SPIRVFrameLowering.h - Define frame lowering for SPIR-V -*- C++-*--===//
2//
3// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4// See https://llvm.org/LICENSE.txt for license information.
5// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6//
7//===----------------------------------------------------------------------===//
8//
9// This class implements SPIRV-specific bits of TargetFrameLowering class.
10// The target uses only virtual registers. It does not operate with stack frame
11// explicitly and does not generate prologues/epilogues of functions.
12// As a result, we are not required to implemented the frame lowering
13// functionality substantially.
14//
15//===----------------------------------------------------------------------===//
16
17#ifndef LLVM_LIB_TARGET_SPIRV_SPIRVFRAMELOWERING_H
18#define LLVM_LIB_TARGET_SPIRV_SPIRVFRAMELOWERING_H
19
22
23namespace llvm {
24class SPIRVSubtarget;
25
27public:
30
32 MachineBasicBlock &MBB) const override {}
34 MachineBasicBlock &MBB) const override {}
35
36protected:
37 bool hasFPImpl(const MachineFunction &MF) const override { return false; }
38};
39} // namespace llvm
40#endif // LLVM_LIB_TARGET_SPIRV_SPIRVFRAMELOWERING_H
MachineBasicBlock & MBB
SPIRVFrameLowering(const SPIRVSubtarget &sti)
void emitPrologue(MachineFunction &MF, MachineBasicBlock &MBB) const override
emitProlog/emitEpilog - These methods insert prolog and epilog code into the function.
bool hasFPImpl(const MachineFunction &MF) const override
void emitEpilogue(MachineFunction &MF, MachineBasicBlock &MBB) const override
Information about stack frame layout on the target.
This is an optimization pass for GlobalISel generic memory operations.
Definition: AddressRanges.h:18
This struct is a compact representation of a valid (non-zero power of two) alignment.
Definition: Alignment.h:39