struct MachineFrameInfo::StackObject

Declaration

struct MachineFrameInfo::StackObject { /* full declaration omitted */ };

Declared at: llvm/include/llvm/CodeGen/MachineFrameInfo.h:123

Member Variables

public int64_t SPOffset
public uint64_t Size
public llvm::Align Alignment
public bool isImmutable
public bool isSpillSlot
public bool isStatepointSpillSlot = false
If true, this stack slot is used to spill a value (could be deopt and/or GC related) over a statepoint. We know that the address of the slot can't alias any LLVM IR value. This is very similar to a Spill Slot, but is created by statepoint lowering is SelectionDAG, not the register allocator.
public uint8_t StackID
It is assumed a target uses consecutive, increasing stack IDs starting from 1.
public const llvm::AllocaInst* Alloca
If this stack object is originated from an Alloca instruction this value saves the original IR allocation. Can be NULL.
public bool PreAllocated = false
public bool isAliased
public bool isZExt = false
If true, the object has been zero-extended.
public bool isSExt = false
If true, the object has been zero-extended.
public uint8_t SSPLayout

Method Overview

  • public StackObject(uint64_t Size, llvm::Align Alignment, int64_t SPOffset, bool IsImmutable, bool IsSpillSlot, const llvm::AllocaInst * Alloca, bool IsAliased, uint8_t StackID = 0)

Methods

ΒΆStackObject(uint64_t Size,
            llvm::Align Alignment,
            int64_t SPOffset,
            bool IsImmutable,
            bool IsSpillSlot,
            const llvm::AllocaInst* Alloca,
            bool IsAliased,
            uint8_t StackID = 0)

Declared at: llvm/include/llvm/CodeGen/MachineFrameInfo.h:184

Parameters

uint64_t Size
llvm::Align Alignment
int64_t SPOffset
bool IsImmutable
bool IsSpillSlot
const llvm::AllocaInst* Alloca
bool IsAliased
uint8_t StackID = 0