20 : VarArgsFrameIndex(MFI.getVarArgsFrameIndex()),
21 VarArgsSaveSize(MFI.getVarArgsSaveSize()) {}
37 if (
F.hasFnAttribute(
"stack-probe-size"))
38 ProbeSize =
F.getFnAttributeAsParsedInteger(
"stack-probe-size");
39 else if (
const auto *PS = mdconst::extract_or_null<ConstantInt>(
40 F.getParent()->getModuleFlag(
"stack-probe-size")))
41 ProbeSize = PS->getZExtValue();
42 assert(int64_t(ProbeSize) > 0 &&
"Invalid stack probe size");
47 ProbeSize = std::max(StackAlign,
alignDown(ProbeSize, StackAlign));
49 if (
F.hasFnAttribute(
"probe-stack"))
50 ProbeKind =
F.getFnAttribute(
"probe-stack").getValueAsString();
51 else if (
const auto *PS = dyn_cast_or_null<MDString>(
52 F.getParent()->getModuleFlag(
"probe-stack")))
53 ProbeKind = PS->getString();
54 if (ProbeKind.
size()) {
55 StackProbeSize = ProbeSize;
70 SExt32Registers.push_back(Reg);
Module.h This file contains the declarations for the Module class.
assert(ImpDefSCC.getReg()==AMDGPU::SCC &&ImpDefSCC.isDef())
Allocate memory in an ever growing pool, as if by bump-pointer.
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.
void addSExt32Register(Register Reg)
const RISCVFrameLowering * getFrameLowering() const override
Wrapper class representing virtual and physical registers.
StringRef - Represent a constant reference to a string, i.e.
constexpr size_t size() const
size - Get the string size.
Align getTransientStackAlign() const
getTransientStackAlignment - This method returns the number of bytes to which the stack pointer must ...
This is an optimization pass for GlobalISel generic memory operations.
constexpr T alignDown(U Value, V Align, W Skew=0)
Returns the largest unsigned integer less than or equal to Value and is Skew mod Align.
bool is_contained(R &&Range, const E &Element)
Returns true if Element is found in Range.
uint64_t value() const
This is a hole in the type system and should not be abused.
MachineFunctionInfo - This class can be derived from and used by targets to hold private target-speci...
void mappingImpl(yaml::IO &YamlIO) override
RISCVMachineFunctionInfo()=default