1//=== SystemZMachineFunctionInfo.h - SystemZ machine function info -*- C++ -*-// 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 7//===----------------------------------------------------------------------===// 9#ifndef LLVM_LIB_TARGET_SYSTEMZ_SYSTEMZMACHINEFUNCTIONINFO_H 10#define LLVM_LIB_TARGET_SYSTEMZ_SYSTEMZMACHINEFUNCTIONINFO_H 17// A struct to hold the low and high GPR registers to be saved/restored as 18// well as the offset into the register save area of the low register. 30 /// Size of expected parameter area for current function. (Fixed args only). 31unsigned SizeOfFnParams;
37unsigned VarArgsFrameIndex;
38unsigned RegSaveFrameIndex;
39int FramePointerSaveIndex;
40unsigned NumLocalDynamics;
41 /// z/OS XPLINK ABI: incoming ADA virtual register. 46 : SizeOfFnParams(0), VarArgsFirstGPR(0), VarArgsFirstFPR(0),
47 VarArgsFrameIndex(0), RegSaveFrameIndex(0), FramePointerSaveIndex(0),
48 NumLocalDynamics(0) {}
55// z/OS: Get and set the size of the expected parameter area for the 56// current function. (ie. Size of param area in caller). 60// Get and set the first and last call-saved GPR that should be saved by 61// this function and the SP offset for the STMG. These are 0 if no GPRs 62// need to be saved or restored. 70// Get and set the first and last call-saved GPR that should be restored by 71// this function and the SP offset for the LMG. These are 0 if no GPRs 72// need to be saved or restored. 80// Get and set the number of fixed (as opposed to variable) arguments 81// that are passed in GPRs to this function. 89// Get and set the frame index of the first stack vararg. 93// Get and set the frame index of the register save area 94// (i.e. the incoming stack pointer). 98// Get and set the frame index of where the old frame pointer is stored. 102// Count number of local-dynamic TLS symbols used. 106// Get and set the function's incoming special XPLINK ABI defined ADA 112}
// end namespace llvm Returns the sub type a function will return at a given Idx Should correspond to the result type of an ExtractValue instruction executed with just that one unsigned Idx
static const MCPhysReg FPR[]
FPR - The set of FP registers that should be allocated for arguments on Darwin and AIX.
Allocate memory in an ever growing pool, as if by bump-pointer.
Wrapper class representing virtual and physical registers.
MachineFunctionInfo * clone(BumpPtrAllocator &Allocator, MachineFunction &DestMF, const DenseMap< MachineBasicBlock *, MachineBasicBlock * > &Src2DstMBB) const override
Make a functionally equivalent copy of this MachineFunctionInfo in MF.
unsigned getVarArgsFrameIndex() const
void setVarArgsFrameIndex(unsigned FI)
void setRegSaveFrameIndex(unsigned FI)
void incNumLocalDynamicTLSAccesses()
Register getVarArgsFirstGPR() const
int getFramePointerSaveIndex() const
SystemZ::GPRRegs getRestoreGPRRegs() const
SystemZMachineFunctionInfo(const Function &F, const TargetSubtargetInfo *STI)
void setADAVirtualRegister(Register Reg)
void setRestoreGPRRegs(Register Low, Register High, unsigned Offs)
void setVarArgsFirstGPR(Register GPR)
void setFramePointerSaveIndex(int Idx)
Register getADAVirtualRegister() const
void setSizeOfFnParams(unsigned Size)
SystemZ::GPRRegs getSpillGPRRegs() const
void setVarArgsFirstFPR(Register FPR)
void setSpillGPRRegs(Register Low, Register High, unsigned Offs)
unsigned getRegSaveFrameIndex() const
unsigned getNumLocalDynamicTLSAccesses() const
unsigned getSizeOfFnParams() const
Register getVarArgsFirstFPR() const
TargetSubtargetInfo - Generic base class for all target subtargets.
This is an optimization pass for GlobalISel generic memory operations.
@ Low
Lower the current thread's priority such that it does not affect foreground tasks significantly.
MachineFunctionInfo - This class can be derived from and used by targets to hold private target-speci...