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
- protected StatepointBase<FunTy, InstructionTy, ValueTy, CallBaseTy>(CallBaseTy * Call)
- protected StatepointBase<FunTy, InstructionTy, ValueTy, CallBaseTy>(InstructionTy * I)
- public llvm::StatepointBase::arg_iterator arg_begin() const
- public llvm::StatepointBase::arg_iterator arg_end() const
- public size_t arg_size() const
- public iterator_range<llvm::StatepointBase::arg_iterator> call_args() const
- public llvm::StatepointBase::arg_iterator deopt_begin() const
- public llvm::StatepointBase::arg_iterator deopt_end() const
- public iterator_range<llvm::StatepointBase::arg_iterator> deopt_operands() const
- public bool doesNotThrow() const
- public unsigned int gcArgsStartIdx() const
- public iterator_range<llvm::StatepointBase::arg_iterator> gc_args() const
- public llvm::StatepointBase::arg_iterator gc_args_begin() const
- public llvm::StatepointBase::arg_iterator gc_args_end() const
- public iterator_range<llvm::StatepointBase::arg_iterator> gc_transition_args() const
- public llvm::StatepointBase::arg_iterator gc_transition_args_begin() const
- public llvm::StatepointBase::arg_iterator gc_transition_args_end() const
- public llvm::Type * getActualReturnType() const
- public ValueTy * getArgument(unsigned int Index)
- public CallBaseTy * getCall() const
- public FunTy * getCalledFunction() const
- public ValueTy * getCalledValue() const
- public FunTy * getCaller() const
- public uint64_t getFlags() const
- public const llvm::GCResultInst * getGCResult() const
- public uint64_t getID() const
- public InstructionTy * getInstruction() const
- public int getNumCallArgs() const
- public uint32_t getNumPatchBytes() const
- public int getNumTotalGCTransitionArgs() const
- public int getNumTotalVMSArgs() const
- public std::vector<const GCRelocateInst *> getRelocates() const
- public bool operator bool() const
- public bool paramHasAttr(unsigned int i, Attribute::AttrKind A) const
- public void verify()
Methods
¶StatepointBase<FunTy,
InstructionTy,
ValueTy,
CallBaseTy>(CallBaseTy* Call)
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)
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
llvm::StatepointBase::arg_iterator arg_begin()
const
Declared at: llvm/include/llvm/IR/Statepoint.h:170
¶llvm::StatepointBase::arg_iterator arg_end() const
llvm::StatepointBase::arg_iterator arg_end() const
Declared at: llvm/include/llvm/IR/Statepoint.h:174
¶size_t arg_size() const
size_t arg_size() const
Declared at: llvm/include/llvm/IR/Statepoint.h:169
¶iterator_range<llvm::StatepointBase::arg_iterator>
call_args() const
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
llvm::StatepointBase::arg_iterator deopt_begin()
const
Declared at: llvm/include/llvm/IR/Statepoint.h:225
¶llvm::StatepointBase::arg_iterator deopt_end()
const
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
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
bool doesNotThrow() const
Description
Determine if the statepoint cannot unwind.
Declared at: llvm/include/llvm/IR/Statepoint.h:150
¶unsigned int gcArgsStartIdx() const
unsigned int gcArgsStartIdx() const
Declared at: llvm/include/llvm/IR/Statepoint.h:244
¶iterator_range<llvm::StatepointBase::arg_iterator>
gc_args() const
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
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
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
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
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
llvm::StatepointBase::arg_iterator
gc_transition_args_end() const
Declared at: llvm/include/llvm/IR/Statepoint.h:207
¶llvm::Type* getActualReturnType() const
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)
ValueTy* getArgument(unsigned int Index)
Declared at: llvm/include/llvm/IR/Statepoint.h:180
Parameters
- unsigned int Index
¶CallBaseTy* getCall() const
CallBaseTy* getCall() const
Description
Return the underlying call instruction.
Declared at: llvm/include/llvm/IR/Statepoint.h:107
¶FunTy* getCalledFunction() const
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
ValueTy* getCalledValue() const
Description
Return the value actually being called or invoked.
Declared at: llvm/include/llvm/IR/Statepoint.h:133
¶FunTy* getCaller() const
FunTy* getCaller() const
Description
Return the caller function for this statepoint.
Declared at: llvm/include/llvm/IR/Statepoint.h:147
¶uint64_t getFlags() const
uint64_t getFlags() const
Declared at: llvm/include/llvm/IR/Statepoint.h:112
¶const llvm::GCResultInst* getGCResult() const
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
uint64_t getID() const
Description
Return the ID associated with this statepoint.
Declared at: llvm/include/llvm/IR/Statepoint.h:118
¶InstructionTy* getInstruction() const
InstructionTy* getInstruction() const
Declared at: llvm/include/llvm/IR/Statepoint.h:138
¶int getNumCallArgs() const
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
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
int getNumTotalGCTransitionArgs() const
Description
Number of GC transition args.
Declared at: llvm/include/llvm/IR/Statepoint.h:198
¶int getNumTotalVMSArgs() const
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
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
bool operator bool() const
Declared at: llvm/include/llvm/IR/Statepoint.h:101
¶bool paramHasAttr(unsigned int i,
Attribute::AttrKind A) const
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()
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