class StatepointBase

Declaration

template <typename FunTy,
          typename InstructionTy,
          typename ValueTy,
          typename CallBaseTy>
class StatepointBase { /* full declaration omitted */ };

Description

A wrapper around a GC intrinsic call, this provides most of the actual functionality for Statepoint and ImmutableStatepoint. It is templatized to allow easily specializing of const and non-const concrete subtypes.

Declared at: llvm/include/llvm/IR/Statepoint.h:74

Templates

FunTy
InstructionTy
ValueTy
CallBaseTy

Method Overview

Methods

StatepointBase<FunTy,
               InstructionTy,
               ValueTy,
               CallBaseTy>(CallBaseTy* Call)

Declared at: llvm/include/llvm/IR/Statepoint.h:82

Parameters

CallBaseTy* Call

StatepointBase<FunTy,
               InstructionTy,
               ValueTy,
               CallBaseTy>(InstructionTy* I)

Declared at: llvm/include/llvm/IR/Statepoint.h:78

Parameters

InstructionTy* I

llvm::StatepointBase::arg_iterator arg_begin()
    const

Declared at: llvm/include/llvm/IR/Statepoint.h:170

llvm::StatepointBase::arg_iterator arg_end() const

Declared at: llvm/include/llvm/IR/Statepoint.h:174

size_t arg_size() const

Declared at: llvm/include/llvm/IR/Statepoint.h:169

iterator_range<llvm::StatepointBase::arg_iterator>
call_args() const

Description

range adapter for call arguments

Declared at: llvm/include/llvm/IR/Statepoint.h:186

llvm::StatepointBase::arg_iterator deopt_begin()
    const

Declared at: llvm/include/llvm/IR/Statepoint.h:225

llvm::StatepointBase::arg_iterator deopt_end()
    const

Declared at: llvm/include/llvm/IR/Statepoint.h:230

iterator_range<llvm::StatepointBase::arg_iterator>
deopt_operands() const

Description

range adapter for vm state arguments

Declared at: llvm/include/llvm/IR/Statepoint.h:237

bool doesNotThrow() const

Description

Determine if the statepoint cannot unwind.

Declared at: llvm/include/llvm/IR/Statepoint.h:150

unsigned int gcArgsStartIdx() const

Declared at: llvm/include/llvm/IR/Statepoint.h:244

iterator_range<llvm::StatepointBase::arg_iterator>
gc_args() const

Description

range adapter for gc arguments

Declared at: llvm/include/llvm/IR/Statepoint.h:249

llvm::StatepointBase::arg_iterator gc_args_begin()
    const

Declared at: llvm/include/llvm/IR/Statepoint.h:241

llvm::StatepointBase::arg_iterator gc_args_end()
    const

Declared at: llvm/include/llvm/IR/Statepoint.h:242

iterator_range<llvm::StatepointBase::arg_iterator>
gc_transition_args() const

Description

range adapter for GC transition arguments

Declared at: llvm/include/llvm/IR/Statepoint.h:214

llvm::StatepointBase::arg_iterator
gc_transition_args_begin() const

Declared at: llvm/include/llvm/IR/Statepoint.h:202

llvm::StatepointBase::arg_iterator
gc_transition_args_end() const

Declared at: llvm/include/llvm/IR/Statepoint.h:207

llvm::Type* getActualReturnType() const

Description

Return the type of the value returned by the call underlying the statepoint.

Declared at: llvm/include/llvm/IR/Statepoint.h:157

ValueTy* getArgument(unsigned int Index)

Declared at: llvm/include/llvm/IR/Statepoint.h:180

Parameters

unsigned int Index

CallBaseTy* getCall() const

Description

Return the underlying call instruction.

Declared at: llvm/include/llvm/IR/Statepoint.h:107

FunTy* getCalledFunction() const

Description

Return the function being called if this is a direct call, otherwise return null (if it's an indirect call).

Declared at: llvm/include/llvm/IR/Statepoint.h:142

ValueTy* getCalledValue() const

Description

Return the value actually being called or invoked.

Declared at: llvm/include/llvm/IR/Statepoint.h:133

FunTy* getCaller() const

Description

Return the caller function for this statepoint.

Declared at: llvm/include/llvm/IR/Statepoint.h:147

uint64_t getFlags() const

Declared at: llvm/include/llvm/IR/Statepoint.h:112

const llvm::GCResultInst* getGCResult() const

Description

Get the experimental_gc_result call tied to this statepoint. Can be nullptr if there isn't a gc_result tied to this statepoint. Guaranteed to be a CallInst if non-null.

Declared at: llvm/include/llvm/IR/Statepoint.h:262

uint64_t getID() const

Description

Return the ID associated with this statepoint.

Declared at: llvm/include/llvm/IR/Statepoint.h:118

InstructionTy* getInstruction() const

Declared at: llvm/include/llvm/IR/Statepoint.h:138

int getNumCallArgs() const

Description

Number of arguments to be passed to the actual callee.

Declared at: llvm/include/llvm/IR/Statepoint.h:164

uint32_t getNumPatchBytes() const

Description

Return the number of patchable bytes associated with this statepoint.

Declared at: llvm/include/llvm/IR/Statepoint.h:124

int getNumTotalGCTransitionArgs() const

Description

Number of GC transition args.

Declared at: llvm/include/llvm/IR/Statepoint.h:198

int getNumTotalVMSArgs() const

Description

Number of additional arguments excluding those intended for garbage collection.

Declared at: llvm/include/llvm/IR/Statepoint.h:220

std::vector<const GCRelocateInst*> getRelocates()
    const

Description

Get list of all gc reloactes linked to this statepoint May contain several relocations for the same base/derived pair. For example this could happen due to relocations on unwinding path of invoke.

Declared at: llvm/include/llvm/IR/Statepoint.h:257

bool operator bool() const

Declared at: llvm/include/llvm/IR/Statepoint.h:101

bool paramHasAttr(unsigned int i,
                  Attribute::AttrKind A) const

Description

Return true if the call or the callee has the given attribute.

Declared at: llvm/include/llvm/IR/Statepoint.h:191

Parameters

unsigned int i
Attribute::AttrKind A

void verify()

Description

Asserts if this statepoint is malformed. Common cases for failure include incorrect length prefixes for variable length sections or illegal values for parameters.

Declared at: llvm/include/llvm/IR/Statepoint.h:273