Thanks to visit codestin.com
Credit goes to llvm.org

LLVM 22.0.0git
ARCMachineFunctionInfo.h
Go to the documentation of this file.
1//===- ARCMachineFunctionInfo.h - ARC machine function 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 ARC-specific per-machine-function information.
10//
11//===----------------------------------------------------------------------===//
12
13#ifndef LLVM_LIB_TARGET_ARC_ARCMACHINEFUNCTIONINFO_H
14#define LLVM_LIB_TARGET_ARC_ARCMACHINEFUNCTIONINFO_H
15
17#include <vector>
18
19namespace llvm {
20
21/// ARCFunctionInfo - This class is derived from MachineFunction private
22/// ARC target-specific information for each MachineFunction.
24 virtual void anchor();
25 bool ReturnStackOffsetSet;
26 int VarArgsFrameIndex;
27 unsigned ReturnStackOffset;
28
29public:
30 explicit ARCFunctionInfo(const Function &F, const TargetSubtargetInfo *STI)
31 : ReturnStackOffsetSet(false), VarArgsFrameIndex(0),
32 ReturnStackOffset(-1U), MaxCallStackReq(0) {}
34
38 const override;
39
40 void setVarArgsFrameIndex(int off) { VarArgsFrameIndex = off; }
41 int getVarArgsFrameIndex() const { return VarArgsFrameIndex; }
42
43 void setReturnStackOffset(unsigned value) {
44 assert(!ReturnStackOffsetSet && "Return stack offset set twice");
45 ReturnStackOffset = value;
46 ReturnStackOffsetSet = true;
47 }
48
49 unsigned getReturnStackOffset() const {
50 assert(ReturnStackOffsetSet && "Return stack offset not set");
51 return ReturnStackOffset;
52 }
53
55};
56
57} // end namespace llvm
58
59#endif // LLVM_LIB_TARGET_ARC_ARCMACHINEFUNCTIONINFO_H
assert(UImm &&(UImm !=~static_cast< T >(0)) &&"Invalid immediate!")
#define F(x, y, z)
Definition MD5.cpp:55
Basic Register Allocator
void setReturnStackOffset(unsigned value)
MachineFunctionInfo * clone(BumpPtrAllocator &Allocator, MachineFunction &DestMF, const DenseMap< MachineBasicBlock *, MachineBasicBlock * > &Src2DstMBB) const override
Make a functionally equivalent copy of this MachineFunctionInfo in MF.
ARCFunctionInfo(const Function &F, const TargetSubtargetInfo *STI)
unsigned getReturnStackOffset() const
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...