class StatepointLoweringState

Declaration

class StatepointLoweringState { /* full declaration omitted */ };

Description

This class tracks both per-statepoint and per-selectiondag information. For each statepoint it tracks locations of it's gc valuess (incoming and relocated) and list of gcreloc calls scheduled for visiting (this is used for a debug mode consistency check only). The spill slot tracking works in concert with information in FunctionLoweringInfo.

Declared at: llvm/lib/CodeGen/SelectionDAG/StatepointLowering.h:35

Method Overview

Methods

StatepointLoweringState()

Declared at: llvm/lib/CodeGen/SelectionDAG/StatepointLowering.h:37

llvm::SDValue allocateStackSlot(
    llvm::EVT ValueType,
    llvm::SelectionDAGBuilder& Builder)

Description

Get a stack slot we can use to store an value of type ValueType. This will hopefully be a recylced slot from another statepoint.

Declared at: llvm/lib/CodeGen/SelectionDAG/StatepointLowering.h:92

Parameters

llvm::EVT ValueType
llvm::SelectionDAGBuilder& Builder

void clear()

Description

Clear the memory usage of this object. This is called from SelectionDAGBuilder::clear. We require this is never called in the midst of processing a statepoint sequence.

Declared at: llvm/lib/CodeGen/SelectionDAG/StatepointLowering.h:46

llvm::SDValue getLocation(llvm::SDValue Val)

Description

Returns the spill location of a value incoming to the current statepoint. Will return SDValue() if this value hasn't been spilled. Otherwise, the value has already been spilled and no further action is required by the caller.

Declared at: llvm/lib/CodeGen/SelectionDAG/StatepointLowering.h:52

Parameters

llvm::SDValue Val

bool isStackSlotAllocated(int Offset)

Declared at: llvm/lib/CodeGen/SelectionDAG/StatepointLowering.h:102

Parameters

int Offset

void relocCallVisited(
    const llvm::CallInst& RelocCall)

Description

Remove this gc_relocate from the list we're expecting to see before the next statepoint. If we weren't expecting to see it, we'll report an assertion.

Declared at: llvm/lib/CodeGen/SelectionDAG/StatepointLowering.h:77

Parameters

const llvm::CallInst& RelocCall

void reserveStackSlot(int Offset)

Declared at: llvm/lib/CodeGen/SelectionDAG/StatepointLowering.h:94

Parameters

int Offset

void scheduleRelocCall(
    const llvm::CallInst& RelocCall)

Description

Record the fact that we expect to encounter a given gc_relocate before the next statepoint. If we don't see it, we'll report an assertion.

Declared at: llvm/lib/CodeGen/SelectionDAG/StatepointLowering.h:68

Parameters

const llvm::CallInst& RelocCall

void setLocation(llvm::SDValue Val,
                 llvm::SDValue Location)

Declared at: llvm/lib/CodeGen/SelectionDAG/StatepointLowering.h:59

Parameters

llvm::SDValue Val
llvm::SDValue Location

void startNewStatepoint(
    llvm::SelectionDAGBuilder& Builder)

Description

Reset all state tracking for a newly encountered safepoint. Also performs some consistency checking.

Declared at: llvm/lib/CodeGen/SelectionDAG/StatepointLowering.h:41

Parameters

llvm::SelectionDAGBuilder& Builder