RISCVMachineFunctionInfo.cpp 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. //=- RISCVMachineFunctionInfo.cpp - RISCV machine function info ---*- C++ -*-=//
  2. //
  3. // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
  4. // See https://llvm.org/LICENSE.txt for license information.
  5. // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
  6. //
  7. //===----------------------------------------------------------------------===//
  8. //
  9. // This file declares RISCV-specific per-machine-function information.
  10. //
  11. //===----------------------------------------------------------------------===//
  12. #include "RISCVMachineFunctionInfo.h"
  13. using namespace llvm;
  14. yaml::RISCVMachineFunctionInfo::RISCVMachineFunctionInfo(
  15. const llvm::RISCVMachineFunctionInfo &MFI)
  16. : VarArgsFrameIndex(MFI.getVarArgsFrameIndex()),
  17. VarArgsSaveSize(MFI.getVarArgsSaveSize()) {}
  18. MachineFunctionInfo *RISCVMachineFunctionInfo::clone(
  19. BumpPtrAllocator &Allocator, MachineFunction &DestMF,
  20. const DenseMap<MachineBasicBlock *, MachineBasicBlock *> &Src2DstMBB)
  21. const {
  22. return DestMF.cloneInfo<RISCVMachineFunctionInfo>(*this);
  23. }
  24. void yaml::RISCVMachineFunctionInfo::mappingImpl(yaml::IO &YamlIO) {
  25. MappingTraits<RISCVMachineFunctionInfo>::mapping(YamlIO, *this);
  26. }
  27. void RISCVMachineFunctionInfo::initializeBaseYamlFields(
  28. const yaml::RISCVMachineFunctionInfo &YamlMFI) {
  29. VarArgsFrameIndex = YamlMFI.VarArgsFrameIndex;
  30. VarArgsSaveSize = YamlMFI.VarArgsSaveSize;
  31. }
  32. void RISCVMachineFunctionInfo::addSExt32Register(Register Reg) {
  33. SExt32Registers.push_back(Reg);
  34. }
  35. bool RISCVMachineFunctionInfo::isSExt32Register(Register Reg) const {
  36. return is_contained(SExt32Registers, Reg);
  37. }