LLVM  9.0.0svn
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 
19 namespace 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 
29 public:
31  : ReturnStackOffsetSet(false), VarArgsFrameIndex(0),
32  ReturnStackOffset(-1U), MaxCallStackReq(0) {}
33 
35  : ReturnStackOffsetSet(false), VarArgsFrameIndex(0),
36  ReturnStackOffset(-1U), MaxCallStackReq(0) {
37  // Functions are 4-byte (2**2) aligned.
38  MF.setAlignment(2);
39  }
40 
42 
43  void setVarArgsFrameIndex(int off) { VarArgsFrameIndex = off; }
44  int getVarArgsFrameIndex() const { return VarArgsFrameIndex; }
45 
46  void setReturnStackOffset(unsigned value) {
47  assert(!ReturnStackOffsetSet && "Return stack offset set twice");
48  ReturnStackOffset = value;
49  ReturnStackOffsetSet = true;
50  }
51 
52  unsigned getReturnStackOffset() const {
53  assert(ReturnStackOffsetSet && "Return stack offset not set");
54  return ReturnStackOffset;
55  }
56 
57  unsigned MaxCallStackReq;
58 };
59 
60 } // end namespace llvm
61 
62 #endif // LLVM_LIB_TARGET_ARC_ARCMACHINEFUNCTIONINFO_H
ARCFunctionInfo - This class is derived from MachineFunction private ARC target-specific information ...
This class represents lattice values for constants.
Definition: AllocatorList.h:23
ARCFunctionInfo(MachineFunction &MF)
MachineFunctionInfo - This class can be derived from and used by targets to hold private target-speci...
void setReturnStackOffset(unsigned value)
assert(ImpDefSCC.getReg()==AMDGPU::SCC &&ImpDefSCC.isDef())
unsigned getReturnStackOffset() const
void setAlignment(unsigned A)
setAlignment - Set the alignment (log2, not bytes) of the function.