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 Chengyaml::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 ArsenaultMachineFunctionInfo *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 Chengvoid yaml::RISCVMachineFunctionInfo::mappingImpl(yaml::IO &YamlIO) { 30690085c9SKito Cheng MappingTraits<RISCVMachineFunctionInfo>::mapping(YamlIO, *this); 31690085c9SKito Cheng } 32690085c9SKito Cheng initializeBaseYamlFields(const yaml::RISCVMachineFunctionInfo & YamlMFI)33690085c9SKito Chengvoid RISCVMachineFunctionInfo::initializeBaseYamlFields( 34690085c9SKito Cheng const yaml::RISCVMachineFunctionInfo &YamlMFI) { 35690085c9SKito Cheng VarArgsFrameIndex = YamlMFI.VarArgsFrameIndex; 36690085c9SKito Cheng VarArgsSaveSize = YamlMFI.VarArgsSaveSize; 37690085c9SKito Cheng } 38