class MachineInstr::ExtraInfo

Declaration

class MachineInstr::ExtraInfo : private TrailingObjects { /* full declaration omitted */ };

Description

Internal implementation detail class that provides out-of-line storage for extra info used by the machine instruction when this info cannot be stored in-line within the instruction itself. This has to be defined eagerly due to the implementation constraints of `PointerSumType` where it is used.

Declared at: llvm/include/llvm/CodeGen/MachineInstr.h:147

Inherits from: TrailingObjects

Member Variables

private const int NumMMOs
private const bool HasPreInstrSymbol
private const bool HasPostInstrSymbol
private const bool HasHeapAllocMarker

Method Overview

  • private ExtraInfo(int NumMMOs, bool HasPreInstrSymbol, bool HasPostInstrSymbol, bool HasHeapAllocMarker)
  • public static llvm::MachineInstr::ExtraInfo * create(llvm::BumpPtrAllocator & Allocator, ArrayRef<llvm::MachineMemOperand *> MMOs, llvm::MCSymbol * PreInstrSymbol = nullptr, llvm::MCSymbol * PostInstrSymbol = nullptr, llvm::MDNode * HeapAllocMarker = nullptr)
  • public llvm::MDNode * getHeapAllocMarker() const
  • public ArrayRef<llvm::MachineMemOperand *> getMMOs() const
  • public llvm::MCSymbol * getPostInstrSymbol() const
  • public llvm::MCSymbol * getPreInstrSymbol() const
  • private size_t numTrailingObjects(OverloadToken<llvm::MachineMemOperand *>) const
  • private size_t numTrailingObjects(OverloadToken<llvm::MCSymbol *>) const
  • private size_t numTrailingObjects(OverloadToken<llvm::MDNode *>) const

Methods

ExtraInfo(int NumMMOs,
          bool HasPreInstrSymbol,
          bool HasPostInstrSymbol,
          bool HasHeapAllocMarker)

Declared at: llvm/include/llvm/CodeGen/MachineInstr.h:225

Parameters

int NumMMOs
bool HasPreInstrSymbol
bool HasPostInstrSymbol
bool HasHeapAllocMarker

static llvm::MachineInstr::ExtraInfo* create(
    llvm::BumpPtrAllocator& Allocator,
    ArrayRef<llvm::MachineMemOperand*> MMOs,
    llvm::MCSymbol* PreInstrSymbol = nullptr,
    llvm::MCSymbol* PostInstrSymbol = nullptr,
    llvm::MDNode* HeapAllocMarker = nullptr)

Declared at: llvm/include/llvm/CodeGen/MachineInstr.h:150

Parameters

llvm::BumpPtrAllocator& Allocator
ArrayRef<llvm::MachineMemOperand*> MMOs
llvm::MCSymbol* PreInstrSymbol = nullptr
llvm::MCSymbol* PostInstrSymbol = nullptr
llvm::MDNode* HeapAllocMarker = nullptr

llvm::MDNode* getHeapAllocMarker() const

Declared at: llvm/include/llvm/CodeGen/MachineInstr.h:195

ArrayRef<llvm::MachineMemOperand*> getMMOs() const

Declared at: llvm/include/llvm/CodeGen/MachineInstr.h:181

llvm::MCSymbol* getPostInstrSymbol() const

Declared at: llvm/include/llvm/CodeGen/MachineInstr.h:189

llvm::MCSymbol* getPreInstrSymbol() const

Declared at: llvm/include/llvm/CodeGen/MachineInstr.h:185

size_t numTrailingObjects(
    OverloadToken<llvm::MachineMemOperand*>) const

Declared at: llvm/include/llvm/CodeGen/MachineInstr.h:213

Parameters

OverloadToken<llvm::MachineMemOperand*>

size_t numTrailingObjects(
    OverloadToken<llvm::MCSymbol*>) const

Declared at: llvm/include/llvm/CodeGen/MachineInstr.h:216

Parameters

OverloadToken<llvm::MCSymbol*>

size_t numTrailingObjects(
    OverloadToken<llvm::MDNode*>) const

Declared at: llvm/include/llvm/CodeGen/MachineInstr.h:219

Parameters

OverloadToken<llvm::MDNode*>