LLVM 18.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
36 bool hasFP(const MachineFunction &MF) const override { return false; }
37};
38} // namespace llvm
39#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 hasFP(const MachineFunction &MF) const override
hasFP - Return true if the specified function should have a dedicated frame pointer register.
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