//= HexagonMachineFunctionInfo.cpp - Hexagon machine function info *- C++ -*-=// // // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. // See https://llvm.org/LICENSE.txt for license information. // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // //===----------------------------------------------------------------------===// #include "HexagonMachineFunctionInfo.h" #include "llvm/CodeGen/MachineRegisterInfo.h" #include "llvm/CodeGen/TargetRegisterInfo.h" #include "llvm/Support/raw_ostream.h" using namespace llvm; // pin vtable to this file void HexagonMachineFunctionInfo::anchor() {} MachineFunctionInfo *HexagonMachineFunctionInfo::clone( BumpPtrAllocator &Allocator, MachineFunction &DestMF, const DenseMap &Src2DstMBB) const { return DestMF.cloneInfo(*this); } static yaml::StringValue regToString(Register Reg, const TargetRegisterInfo &TRI) { yaml::StringValue Dest; if (Reg.isValid()) { raw_string_ostream OS(Dest.Value); OS << printReg(Reg, &TRI); } return Dest; } yaml::HexagonFunctionInfo::HexagonFunctionInfo( const llvm::HexagonMachineFunctionInfo &MFI, const TargetRegisterInfo &TRI) : StackAlignBaseReg(regToString(MFI.getStackAlignBaseReg(), TRI)) {} void yaml::HexagonFunctionInfo::mappingImpl(yaml::IO &YamlIO) { MappingTraits::mapping(YamlIO, *this); } void HexagonMachineFunctionInfo::initializeBaseYamlFields( const yaml::HexagonFunctionInfo &YamlMFI) {}