xref: /freebsd/contrib/llvm-project/llvm/lib/Target/RISCV/RISCVMachineFunctionInfo.cpp (revision 81ad626541db97eb356e2c1d4a20eb2a26a766ab)
13a9a9c0cSDimitry Andric //=- RISCVMachineFunctionInfo.cpp - RISCV machine function info ---*- C++ -*-=//
23a9a9c0cSDimitry Andric //
33a9a9c0cSDimitry Andric // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
43a9a9c0cSDimitry Andric // See https://llvm.org/LICENSE.txt for license information.
53a9a9c0cSDimitry Andric // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
63a9a9c0cSDimitry Andric //
73a9a9c0cSDimitry Andric //===----------------------------------------------------------------------===//
83a9a9c0cSDimitry Andric //
93a9a9c0cSDimitry Andric // This file declares RISCV-specific per-machine-function information.
103a9a9c0cSDimitry Andric //
113a9a9c0cSDimitry Andric //===----------------------------------------------------------------------===//
123a9a9c0cSDimitry Andric 
133a9a9c0cSDimitry Andric #include "RISCVMachineFunctionInfo.h"
143a9a9c0cSDimitry Andric 
153a9a9c0cSDimitry Andric using namespace llvm;
163a9a9c0cSDimitry Andric 
173a9a9c0cSDimitry Andric yaml::RISCVMachineFunctionInfo::RISCVMachineFunctionInfo(
183a9a9c0cSDimitry Andric     const llvm::RISCVMachineFunctionInfo &MFI)
193a9a9c0cSDimitry Andric     : VarArgsFrameIndex(MFI.getVarArgsFrameIndex()),
203a9a9c0cSDimitry Andric       VarArgsSaveSize(MFI.getVarArgsSaveSize()) {}
213a9a9c0cSDimitry Andric 
22*81ad6265SDimitry Andric MachineFunctionInfo *RISCVMachineFunctionInfo::clone(
23*81ad6265SDimitry Andric     BumpPtrAllocator &Allocator, MachineFunction &DestMF,
24*81ad6265SDimitry Andric     const DenseMap<MachineBasicBlock *, MachineBasicBlock *> &Src2DstMBB)
25*81ad6265SDimitry Andric     const {
26*81ad6265SDimitry Andric   return DestMF.cloneInfo<RISCVMachineFunctionInfo>(*this);
27*81ad6265SDimitry Andric }
28*81ad6265SDimitry Andric 
293a9a9c0cSDimitry Andric void yaml::RISCVMachineFunctionInfo::mappingImpl(yaml::IO &YamlIO) {
303a9a9c0cSDimitry Andric   MappingTraits<RISCVMachineFunctionInfo>::mapping(YamlIO, *this);
313a9a9c0cSDimitry Andric }
323a9a9c0cSDimitry Andric 
333a9a9c0cSDimitry Andric void RISCVMachineFunctionInfo::initializeBaseYamlFields(
343a9a9c0cSDimitry Andric     const yaml::RISCVMachineFunctionInfo &YamlMFI) {
353a9a9c0cSDimitry Andric   VarArgsFrameIndex = YamlMFI.VarArgsFrameIndex;
363a9a9c0cSDimitry Andric   VarArgsSaveSize = YamlMFI.VarArgsSaveSize;
373a9a9c0cSDimitry Andric }
38