LLVM 17.0.0git
RISCVMachineFunctionInfo.cpp
Go to the documentation of this file.
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
14
15using namespace llvm;
16
19 : VarArgsFrameIndex(MFI.getVarArgsFrameIndex()),
20 VarArgsSaveSize(MFI.getVarArgsSaveSize()) {}
21
23 BumpPtrAllocator &Allocator, MachineFunction &DestMF,
25 const {
26 return DestMF.cloneInfo<RISCVMachineFunctionInfo>(*this);
27}
28
31}
32
34 const yaml::RISCVMachineFunctionInfo &YamlMFI) {
37}
38
40 SExt32Registers.push_back(Reg);
41}
42
44 return is_contained(SExt32Registers, Reg);
45}
IO & YamlIO
Definition: ELFYAML.cpp:1259
Allocate memory in an ever growing pool, as if by bump-pointer.
Definition: Allocator.h:66
Ty * cloneInfo(const Ty &Old)
RISCVMachineFunctionInfo - This class is derived from MachineFunctionInfo and contains private RISCV-...
void initializeBaseYamlFields(const yaml::RISCVMachineFunctionInfo &YamlMFI)
bool isSExt32Register(Register Reg) const
MachineFunctionInfo * clone(BumpPtrAllocator &Allocator, MachineFunction &DestMF, const DenseMap< MachineBasicBlock *, MachineBasicBlock * > &Src2DstMBB) const override
Make a functionally equivalent copy of this MachineFunctionInfo in MF.
Wrapper class representing virtual and physical registers.
Definition: Register.h:19
This is an optimization pass for GlobalISel generic memory operations.
Definition: AddressRanges.h:18
bool is_contained(R &&Range, const E &Element)
Wrapper function around std::find to detect if an element exists in a container.
Definition: STLExtras.h:1869
MachineFunctionInfo - This class can be derived from and used by targets to hold private target-speci...
void mappingImpl(yaml::IO &YamlIO) override