1690085c9SKito Cheng //=- RISCVMachineFunctionInfo.cpp - RISCV machine function info ---*- C++ -*-=//
2690085c9SKito Cheng //
3690085c9SKito Cheng // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4690085c9SKito Cheng // See https://llvm.org/LICENSE.txt for license information.
5690085c9SKito Cheng // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6690085c9SKito Cheng //
7690085c9SKito Cheng //===----------------------------------------------------------------------===//
8690085c9SKito Cheng //
9690085c9SKito Cheng // This file declares RISCV-specific per-machine-function information.
10690085c9SKito Cheng //
11690085c9SKito Cheng //===----------------------------------------------------------------------===//
12690085c9SKito Cheng 
13690085c9SKito Cheng #include "RISCVMachineFunctionInfo.h"
14690085c9SKito Cheng 
15690085c9SKito Cheng using namespace llvm;
16690085c9SKito Cheng 
RISCVMachineFunctionInfo(const llvm::RISCVMachineFunctionInfo & MFI)17690085c9SKito Cheng yaml::RISCVMachineFunctionInfo::RISCVMachineFunctionInfo(
18690085c9SKito Cheng     const llvm::RISCVMachineFunctionInfo &MFI)
19690085c9SKito Cheng     : VarArgsFrameIndex(MFI.getVarArgsFrameIndex()),
20690085c9SKito Cheng       VarArgsSaveSize(MFI.getVarArgsSaveSize()) {}
21690085c9SKito Cheng 
clone(BumpPtrAllocator & Allocator,MachineFunction & DestMF,const DenseMap<MachineBasicBlock *,MachineBasicBlock * > & Src2DstMBB) const22*cc5a1b3dSMatt Arsenault MachineFunctionInfo *RISCVMachineFunctionInfo::clone(
23*cc5a1b3dSMatt Arsenault     BumpPtrAllocator &Allocator, MachineFunction &DestMF,
24*cc5a1b3dSMatt Arsenault     const DenseMap<MachineBasicBlock *, MachineBasicBlock *> &Src2DstMBB)
25*cc5a1b3dSMatt Arsenault     const {
26*cc5a1b3dSMatt Arsenault   return DestMF.cloneInfo<RISCVMachineFunctionInfo>(*this);
27*cc5a1b3dSMatt Arsenault }
28*cc5a1b3dSMatt Arsenault 
mappingImpl(yaml::IO & YamlIO)29690085c9SKito Cheng void yaml::RISCVMachineFunctionInfo::mappingImpl(yaml::IO &YamlIO) {
30690085c9SKito Cheng   MappingTraits<RISCVMachineFunctionInfo>::mapping(YamlIO, *this);
31690085c9SKito Cheng }
32690085c9SKito Cheng 
initializeBaseYamlFields(const yaml::RISCVMachineFunctionInfo & YamlMFI)33690085c9SKito Cheng void RISCVMachineFunctionInfo::initializeBaseYamlFields(
34690085c9SKito Cheng     const yaml::RISCVMachineFunctionInfo &YamlMFI) {
35690085c9SKito Cheng   VarArgsFrameIndex = YamlMFI.VarArgsFrameIndex;
36690085c9SKito Cheng   VarArgsSaveSize = YamlMFI.VarArgsSaveSize;
37690085c9SKito Cheng }
38