struct MachinePointerInfo

Declaration

struct MachinePointerInfo { /* full declaration omitted */ };

Description

This class contains a discriminated union of information about pointers in memory operands, relating them back to LLVM IR or to virtual locations (such as frame indices) that are exposed during codegen.

Declared at: llvm/include/llvm/CodeGen/MachineMemOperand.h:39

Member Variables

public PointerUnion<const llvm::Value*, const llvm::PseudoSourceValue*> V
This is the IR pointer value for the access, or it is null if unknown.
public int64_t Offset
Offset - This is an offset from the base Value*.
public unsigned int AddrSpace = 0
public uint8_t StackID

Method Overview

  • public MachinePointerInfo(const llvm::Value * v, int64_t offset = 0, uint8_t ID = 0)
  • public MachinePointerInfo(const llvm::PseudoSourceValue * v, int64_t offset = 0, uint8_t ID = 0)
  • public MachinePointerInfo(unsigned int AddressSpace = 0, int64_t offset = 0)
  • public MachinePointerInfo(PointerUnion<const llvm::Value *, const llvm::PseudoSourceValue *> v, int64_t offset = 0, uint8_t ID = 0)
  • public unsigned int getAddrSpace() const
  • public static llvm::MachinePointerInfo getConstantPool(llvm::MachineFunction & MF)
  • public static llvm::MachinePointerInfo getFixedStack(llvm::MachineFunction & MF, int FI, int64_t Offset = 0)
  • public static llvm::MachinePointerInfo getGOT(llvm::MachineFunction & MF)
  • public static llvm::MachinePointerInfo getJumpTable(llvm::MachineFunction & MF)
  • public static llvm::MachinePointerInfo getStack(llvm::MachineFunction & MF, int64_t Offset, uint8_t ID = 0)
  • public static llvm::MachinePointerInfo getUnknownStack(llvm::MachineFunction & MF)
  • public llvm::MachinePointerInfo getWithOffset(int64_t O) const
  • public bool isDereferenceable(unsigned int Size, llvm::LLVMContext & C, const llvm::DataLayout & DL) const

Methods

MachinePointerInfo(const llvm::Value* v,
                   int64_t offset = 0,
                   uint8_t ID = 0)

Declared at: llvm/include/llvm/CodeGen/MachineMemOperand.h:50

Parameters

const llvm::Value* v
int64_t offset = 0
uint8_t ID = 0

MachinePointerInfo(
    const llvm::PseudoSourceValue* v,
    int64_t offset = 0,
    uint8_t ID = 0)

Declared at: llvm/include/llvm/CodeGen/MachineMemOperand.h:56

Parameters

const llvm::PseudoSourceValue* v
int64_t offset = 0
uint8_t ID = 0

MachinePointerInfo(unsigned int AddressSpace = 0,
                   int64_t offset = 0)

Declared at: llvm/include/llvm/CodeGen/MachineMemOperand.h:62

Parameters

unsigned int AddressSpace = 0
int64_t offset = 0

MachinePointerInfo(
    PointerUnion<const llvm::Value*,
                 const llvm::PseudoSourceValue*>
        v,
    int64_t offset = 0,
    uint8_t ID = 0)

Declared at: llvm/include/llvm/CodeGen/MachineMemOperand.h:66

Parameters

PointerUnion<const llvm::Value*, const llvm::PseudoSourceValue*> v
int64_t offset = 0
uint8_t ID = 0

unsigned int getAddrSpace() const

Description

Return the LLVM IR address space number that this pointer points into.

Declared at: llvm/include/llvm/CodeGen/MachineMemOperand.h:94

static llvm::MachinePointerInfo getConstantPool(
    llvm::MachineFunction& MF)

Description

Return a MachinePointerInfo record that refers to the constant pool.

Declared at: llvm/include/llvm/CodeGen/MachineMemOperand.h:97

Parameters

llvm::MachineFunction& MF

static llvm::MachinePointerInfo getFixedStack(
    llvm::MachineFunction& MF,
    int FI,
    int64_t Offset = 0)

Description

Return a MachinePointerInfo record that refers to the specified FrameIndex.

Declared at: llvm/include/llvm/CodeGen/MachineMemOperand.h:101

Parameters

llvm::MachineFunction& MF
int FI
int64_t Offset = 0

static llvm::MachinePointerInfo getGOT(
    llvm::MachineFunction& MF)

Description

Return a MachinePointerInfo record that refers to a GOT entry.

Declared at: llvm/include/llvm/CodeGen/MachineMemOperand.h:108

Parameters

llvm::MachineFunction& MF

static llvm::MachinePointerInfo getJumpTable(
    llvm::MachineFunction& MF)

Description

Return a MachinePointerInfo record that refers to a jump table entry.

Declared at: llvm/include/llvm/CodeGen/MachineMemOperand.h:105

Parameters

llvm::MachineFunction& MF

static llvm::MachinePointerInfo getStack(
    llvm::MachineFunction& MF,
    int64_t Offset,
    uint8_t ID = 0)

Description

Stack pointer relative access.

Declared at: llvm/include/llvm/CodeGen/MachineMemOperand.h:111

Parameters

llvm::MachineFunction& MF
int64_t Offset
uint8_t ID = 0

static llvm::MachinePointerInfo getUnknownStack(
    llvm::MachineFunction& MF)

Description

Stack memory without other information.

Declared at: llvm/include/llvm/CodeGen/MachineMemOperand.h:115

Parameters

llvm::MachineFunction& MF

llvm::MachinePointerInfo getWithOffset(
    int64_t O) const

Declared at: llvm/include/llvm/CodeGen/MachineMemOperand.h:79

Parameters

int64_t O

bool isDereferenceable(
    unsigned int Size,
    llvm::LLVMContext& C,
    const llvm::DataLayout& DL) const

Description

Return true if memory region [V, V+Offset+Size) is known to be dereferenceable.

Declared at: llvm/include/llvm/CodeGen/MachineMemOperand.h:90

Parameters

unsigned int Size
llvm::LLVMContext& C
const llvm::DataLayout& DL