//=- RISCVMachineFunctionInfo.h - RISCV machine function info -----*- C++ -*-=// // // The LLVM Compiler Infrastructure // // This file is distributed under the University of Illinois Open Source // License. See LICENSE.TXT for details. // //===----------------------------------------------------------------------===// // // This file declares RISCV-specific per-machine-function information. // //===----------------------------------------------------------------------===// #ifndef LLVM_LIB_TARGET_RISCV_RISCVMACHINEFUNCTIONINFO_H #define LLVM_LIB_TARGET_RISCV_RISCVMACHINEFUNCTIONINFO_H #include "llvm/CodeGen/MachineFunction.h" namespace llvm { /// RISCVMachineFunctionInfo - This class is derived from MachineFunctionInfo /// and contains private RISCV-specific information for each MachineFunction. class RISCVMachineFunctionInfo : public MachineFunctionInfo { /// FrameIndex for start of varargs area int VarArgsFrameIndex = 0; /// Size of the save area used for varargs int VarArgsSaveSize = 0; public: RISCVMachineFunctionInfo() = default; explicit RISCVMachineFunctionInfo(MachineFunction &MF) {} int getVarArgsFrameIndex() const { return VarArgsFrameIndex; } void setVarArgsFrameIndex(int Index) { VarArgsFrameIndex = Index; } unsigned getVarArgsSaveSize() const { return VarArgsSaveSize; } void setVarArgsSaveSize(int Size) { VarArgsSaveSize = Size; } }; } // end namespace llvm #endif // LLVM_LIB_TARGET_RISCV_RISCVMACHINEFUNCTIONINFO_H