LLVM 22.0.0git
LanaiMachineFunctionInfo.h
Go to the documentation of this file.
1//===- LanaiMachineFuctionInfo.h - Lanai machine func info -------*- 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 file declares Lanai-specific per-machine-function information.
10//
11//===----------------------------------------------------------------------===//
12
13#ifndef LLVM_LIB_TARGET_LANAI_LANAIMACHINEFUNCTIONINFO_H
14#define LLVM_LIB_TARGET_LANAI_LANAIMACHINEFUNCTIONINFO_H
15
16#include "LanaiRegisterInfo.h"
19
20namespace llvm {
21
22// LanaiMachineFunctionInfo - This class is derived from MachineFunction and
23// contains private Lanai target-specific information for each MachineFunction.
25 virtual void anchor();
26
27 // SRetReturnReg - Lanai ABI require that sret lowering includes
28 // returning the value of the returned struct in a register. This field
29 // holds the virtual register into which the sret argument is passed.
30 Register SRetReturnReg;
31
32 // GlobalBaseReg - keeps track of the virtual register initialized for
33 // use as the global base register. This is used for PIC in some PIC
34 // relocation models.
35 Register GlobalBaseReg;
36
37 // VarArgsFrameIndex - FrameIndex for start of varargs area.
38 int VarArgsFrameIndex;
39
40public:
42 : VarArgsFrameIndex(0) {}
46 const override;
47
48 Register getSRetReturnReg() const { return SRetReturnReg; }
49 void setSRetReturnReg(Register Reg) { SRetReturnReg = Reg; }
50
51 int getVarArgsFrameIndex() const { return VarArgsFrameIndex; }
52 void setVarArgsFrameIndex(int Index) { VarArgsFrameIndex = Index; }
53};
54
55} // namespace llvm
56
57#endif // LLVM_LIB_TARGET_LANAI_LANAIMACHINEFUNCTIONINFO_H
#define F(x, y, z)
Definition MD5.cpp:55
Register Reg
Basic Register Allocator
LanaiMachineFunctionInfo(const Function &F, const TargetSubtargetInfo *STI)
MachineFunctionInfo * clone(BumpPtrAllocator &Allocator, MachineFunction &DestMF, const DenseMap< MachineBasicBlock *, MachineBasicBlock * > &Src2DstMBB) const override
Make a functionally equivalent copy of this MachineFunctionInfo in MF.
Wrapper class representing virtual and physical registers.
Definition Register.h:19
TargetSubtargetInfo - Generic base class for all target subtargets.
This is an optimization pass for GlobalISel generic memory operations.
BumpPtrAllocatorImpl BumpPtrAllocator
The standard BumpPtrAllocator which just uses the default template parameters.
Definition Allocator.h:383
MachineFunctionInfo - This class can be derived from and used by targets to hold private target-speci...