LLVM  11.0.0git
Public Types | Public Member Functions | Protected Member Functions | List of all members
llvm::StatepointBase< FunTy, InstructionTy, ValueTy, CallTy > Class Template Reference

A wrapper around a GC intrinsic call, this provides most of the actual functionality for Statepoint and ImmutableStatepoint. More...

#include "llvm/IR/Statepoint.h"

Inheritance diagram for llvm::StatepointBase< FunTy, InstructionTy, ValueTy, CallTy >:
Inheritance graph
[legend]

Public Types

enum  { CallArgsBeginPos = GCStatepointInst::CallArgsBeginPos }
 
using arg_iterator = typename CallTy::const_op_iterator
 

Public Member Functions

void * operator new (size_t, unsigned)=delete
 
void * operator new (size_t s)=delete
 
 operator bool () const
 
CallTy * getCall () const
 Return the underlying call instruction. More...
 
uint64_t getFlags () const
 
uint64_t getID () const
 
uint32_t getNumPatchBytes () const
 
int getNumCallArgs () const
 
ValueTy * getCalledValue () const
 
TypegetActualReturnType () const
 
FunTy * getCalledFunction () const
 
InstructionTy * getInstruction () const
 
FunTy * getCaller () const
 Return the caller function for this statepoint. More...
 
bool doesNotThrow () const
 Determine if the statepoint cannot unwind. More...
 
size_t arg_size () const
 
arg_iterator arg_begin () const
 
arg_iterator arg_end () const
 
iterator_range< arg_iteratorcall_args () const
 
ValueTy * getArgument (unsigned Index)
 
bool paramHasAttr (unsigned i, Attribute::AttrKind A) const
 Return true if the call or the callee has the given attribute. More...
 
int getNumTotalGCTransitionArgs () const
 Number of GC transition args. More...
 
arg_iterator gc_transition_args_begin () const
 
arg_iterator gc_transition_args_end () const
 
iterator_range< arg_iteratorgc_transition_args () const
 range adapter for GC transition arguments More...
 
int getNumTotalVMSArgs () const
 Number of additional arguments excluding those intended for garbage collection. More...
 
arg_iterator deopt_begin () const
 
arg_iterator deopt_end () const
 
iterator_range< arg_iteratordeopt_operands () const
 range adapter for vm state arguments More...
 
arg_iterator gc_args_begin () const
 
arg_iterator gc_args_end () const
 
unsigned gcArgsStartIdx () const
 
iterator_range< arg_iteratorgc_args () const
 
std::vector< const GCRelocateInst * > getRelocates () const
 
const GCResultInstgetGCResult () const
 
void verify ()
 Asserts if this statepoint is malformed. More...
 

Protected Member Functions

 StatepointBase (InstructionTy *I)
 
 StatepointBase (CallTy *Call)
 

Detailed Description

template<typename FunTy, typename InstructionTy, typename ValueTy, typename CallTy>
class llvm::StatepointBase< FunTy, InstructionTy, ValueTy, CallTy >

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.

Definition at line 209 of file Statepoint.h.

Member Typedef Documentation

◆ arg_iterator

template<typename FunTy, typename InstructionTy, typename ValueTy, typename CallTy>
using llvm::StatepointBase< FunTy, InstructionTy, ValueTy, CallTy >::arg_iterator = typename CallTy::const_op_iterator

Definition at line 222 of file Statepoint.h.

Member Enumeration Documentation

◆ anonymous enum

template<typename FunTy, typename InstructionTy, typename ValueTy, typename CallTy>
anonymous enum
Enumerator
CallArgsBeginPos 

Definition at line 224 of file Statepoint.h.

Constructor & Destructor Documentation

◆ StatepointBase() [1/2]

template<typename FunTy, typename InstructionTy, typename ValueTy, typename CallTy>
llvm::StatepointBase< FunTy, InstructionTy, ValueTy, CallTy >::StatepointBase ( InstructionTy *  I)
inlineexplicitprotected

Definition at line 213 of file Statepoint.h.

◆ StatepointBase() [2/2]

template<typename FunTy, typename InstructionTy, typename ValueTy, typename CallTy>
llvm::StatepointBase< FunTy, InstructionTy, ValueTy, CallTy >::StatepointBase ( CallTy *  Call)
inlineexplicitprotected

Definition at line 217 of file Statepoint.h.

Member Function Documentation

◆ arg_begin()

template<typename FunTy, typename InstructionTy, typename ValueTy, typename CallTy>
arg_iterator llvm::StatepointBase< FunTy, InstructionTy, ValueTy, CallTy >::arg_begin ( ) const
inline

Definition at line 269 of file Statepoint.h.

◆ arg_end()

template<typename FunTy, typename InstructionTy, typename ValueTy, typename CallTy>
arg_iterator llvm::StatepointBase< FunTy, InstructionTy, ValueTy, CallTy >::arg_end ( ) const
inline

Definition at line 270 of file Statepoint.h.

◆ arg_size()

template<typename FunTy, typename InstructionTy, typename ValueTy, typename CallTy>
size_t llvm::StatepointBase< FunTy, InstructionTy, ValueTy, CallTy >::arg_size ( ) const
inline

Definition at line 268 of file Statepoint.h.

◆ call_args()

template<typename FunTy, typename InstructionTy, typename ValueTy, typename CallTy>
iterator_range<arg_iterator> llvm::StatepointBase< FunTy, InstructionTy, ValueTy, CallTy >::call_args ( ) const
inline

Definition at line 271 of file Statepoint.h.

◆ deopt_begin()

template<typename FunTy, typename InstructionTy, typename ValueTy, typename CallTy>
arg_iterator llvm::StatepointBase< FunTy, InstructionTy, ValueTy, CallTy >::deopt_begin ( ) const
inline

Definition at line 315 of file Statepoint.h.

Referenced by llvm::SelectionDAGBuilder::LowerStatepoint().

◆ deopt_end()

template<typename FunTy, typename InstructionTy, typename ValueTy, typename CallTy>
arg_iterator llvm::StatepointBase< FunTy, InstructionTy, ValueTy, CallTy >::deopt_end ( ) const
inline

Definition at line 320 of file Statepoint.h.

Referenced by llvm::SelectionDAGBuilder::LowerStatepoint().

◆ deopt_operands()

template<typename FunTy, typename InstructionTy, typename ValueTy, typename CallTy>
iterator_range<arg_iterator> llvm::StatepointBase< FunTy, InstructionTy, ValueTy, CallTy >::deopt_operands ( ) const
inline

range adapter for vm state arguments

Definition at line 327 of file Statepoint.h.

Referenced by llvm::SelectionDAGBuilder::LowerStatepoint().

◆ doesNotThrow()

template<typename FunTy, typename InstructionTy, typename ValueTy, typename CallTy>
bool llvm::StatepointBase< FunTy, InstructionTy, ValueTy, CallTy >::doesNotThrow ( ) const
inline

Determine if the statepoint cannot unwind.

Definition at line 263 of file Statepoint.h.

◆ gc_args()

template<typename FunTy, typename InstructionTy, typename ValueTy, typename CallTy>
iterator_range<arg_iterator> llvm::StatepointBase< FunTy, InstructionTy, ValueTy, CallTy >::gc_args ( ) const
inline

Definition at line 338 of file Statepoint.h.

◆ gc_args_begin()

template<typename FunTy, typename InstructionTy, typename ValueTy, typename CallTy>
arg_iterator llvm::StatepointBase< FunTy, InstructionTy, ValueTy, CallTy >::gc_args_begin ( ) const
inline

Definition at line 331 of file Statepoint.h.

◆ gc_args_end()

template<typename FunTy, typename InstructionTy, typename ValueTy, typename CallTy>
arg_iterator llvm::StatepointBase< FunTy, InstructionTy, ValueTy, CallTy >::gc_args_end ( ) const
inline

Definition at line 336 of file Statepoint.h.

◆ gc_transition_args()

template<typename FunTy, typename InstructionTy, typename ValueTy, typename CallTy>
iterator_range<arg_iterator> llvm::StatepointBase< FunTy, InstructionTy, ValueTy, CallTy >::gc_transition_args ( ) const
inline

range adapter for GC transition arguments

Definition at line 304 of file Statepoint.h.

Referenced by llvm::SelectionDAGBuilder::LowerStatepoint().

◆ gc_transition_args_begin()

template<typename FunTy, typename InstructionTy, typename ValueTy, typename CallTy>
arg_iterator llvm::StatepointBase< FunTy, InstructionTy, ValueTy, CallTy >::gc_transition_args_begin ( ) const
inline

Definition at line 292 of file Statepoint.h.

Referenced by llvm::SelectionDAGBuilder::LowerStatepoint().

◆ gc_transition_args_end()

template<typename FunTy, typename InstructionTy, typename ValueTy, typename CallTy>
arg_iterator llvm::StatepointBase< FunTy, InstructionTy, ValueTy, CallTy >::gc_transition_args_end ( ) const
inline

Definition at line 297 of file Statepoint.h.

Referenced by llvm::SelectionDAGBuilder::LowerStatepoint().

◆ gcArgsStartIdx()

template<typename FunTy, typename InstructionTy, typename ValueTy, typename CallTy>
unsigned llvm::StatepointBase< FunTy, InstructionTy, ValueTy, CallTy >::gcArgsStartIdx ( ) const
inline

Definition at line 337 of file Statepoint.h.

◆ getActualReturnType()

template<typename FunTy, typename InstructionTy, typename ValueTy, typename CallTy>
Type* llvm::StatepointBase< FunTy, InstructionTy, ValueTy, CallTy >::getActualReturnType ( ) const
inline

Definition at line 250 of file Statepoint.h.

◆ getArgument()

template<typename FunTy, typename InstructionTy, typename ValueTy, typename CallTy>
ValueTy* llvm::StatepointBase< FunTy, InstructionTy, ValueTy, CallTy >::getArgument ( unsigned  Index)
inline

Definition at line 275 of file Statepoint.h.

◆ getCall()

template<typename FunTy, typename InstructionTy, typename ValueTy, typename CallTy>
CallTy* llvm::StatepointBase< FunTy, InstructionTy, ValueTy, CallTy >::getCall ( ) const
inline

Return the underlying call instruction.

Definition at line 237 of file Statepoint.h.

◆ getCalledFunction()

template<typename FunTy, typename InstructionTy, typename ValueTy, typename CallTy>
FunTy* llvm::StatepointBase< FunTy, InstructionTy, ValueTy, CallTy >::getCalledFunction ( ) const
inline

Definition at line 251 of file Statepoint.h.

◆ getCalledValue()

template<typename FunTy, typename InstructionTy, typename ValueTy, typename CallTy>
ValueTy* llvm::StatepointBase< FunTy, InstructionTy, ValueTy, CallTy >::getCalledValue ( ) const
inline

Definition at line 247 of file Statepoint.h.

◆ getCaller()

template<typename FunTy, typename InstructionTy, typename ValueTy, typename CallTy>
FunTy* llvm::StatepointBase< FunTy, InstructionTy, ValueTy, CallTy >::getCaller ( ) const
inline

Return the caller function for this statepoint.

Definition at line 260 of file Statepoint.h.

◆ getFlags()

template<typename FunTy, typename InstructionTy, typename ValueTy, typename CallTy>
uint64_t llvm::StatepointBase< FunTy, InstructionTy, ValueTy, CallTy >::getFlags ( ) const
inline

Definition at line 243 of file Statepoint.h.

◆ getGCResult()

template<typename FunTy, typename InstructionTy, typename ValueTy, typename CallTy>
const GCResultInst* llvm::StatepointBase< FunTy, InstructionTy, ValueTy, CallTy >::getGCResult ( ) const
inline

Definition at line 345 of file Statepoint.h.

◆ getID()

template<typename FunTy, typename InstructionTy, typename ValueTy, typename CallTy>
uint64_t llvm::StatepointBase< FunTy, InstructionTy, ValueTy, CallTy >::getID ( ) const
inline

Definition at line 244 of file Statepoint.h.

◆ getInstruction()

template<typename FunTy, typename InstructionTy, typename ValueTy, typename CallTy>
InstructionTy* llvm::StatepointBase< FunTy, InstructionTy, ValueTy, CallTy >::getInstruction ( ) const
inline

Definition at line 257 of file Statepoint.h.

◆ getNumCallArgs()

template<typename FunTy, typename InstructionTy, typename ValueTy, typename CallTy>
int llvm::StatepointBase< FunTy, InstructionTy, ValueTy, CallTy >::getNumCallArgs ( ) const
inline

Definition at line 246 of file Statepoint.h.

◆ getNumPatchBytes()

template<typename FunTy, typename InstructionTy, typename ValueTy, typename CallTy>
uint32_t llvm::StatepointBase< FunTy, InstructionTy, ValueTy, CallTy >::getNumPatchBytes ( ) const
inline

Definition at line 245 of file Statepoint.h.

◆ getNumTotalGCTransitionArgs()

template<typename FunTy, typename InstructionTy, typename ValueTy, typename CallTy>
int llvm::StatepointBase< FunTy, InstructionTy, ValueTy, CallTy >::getNumTotalGCTransitionArgs ( ) const
inline

Number of GC transition args.

Definition at line 288 of file Statepoint.h.

◆ getNumTotalVMSArgs()

template<typename FunTy, typename InstructionTy, typename ValueTy, typename CallTy>
int llvm::StatepointBase< FunTy, InstructionTy, ValueTy, CallTy >::getNumTotalVMSArgs ( ) const
inline

Number of additional arguments excluding those intended for garbage collection.

Definition at line 310 of file Statepoint.h.

◆ getRelocates()

template<typename FunTy, typename InstructionTy, typename ValueTy, typename CallTy>
std::vector<const GCRelocateInst *> llvm::StatepointBase< FunTy, InstructionTy, ValueTy, CallTy >::getRelocates ( ) const
inline

Definition at line 342 of file Statepoint.h.

◆ operator bool()

template<typename FunTy, typename InstructionTy, typename ValueTy, typename CallTy>
llvm::StatepointBase< FunTy, InstructionTy, ValueTy, CallTy >::operator bool ( ) const
inlineexplicit

Definition at line 231 of file Statepoint.h.

◆ operator new() [1/2]

template<typename FunTy, typename InstructionTy, typename ValueTy, typename CallTy>
void* llvm::StatepointBase< FunTy, InstructionTy, ValueTy, CallTy >::operator new ( size_t  ,
unsigned   
)
delete

◆ operator new() [2/2]

template<typename FunTy, typename InstructionTy, typename ValueTy, typename CallTy>
void* llvm::StatepointBase< FunTy, InstructionTy, ValueTy, CallTy >::operator new ( size_t  s)
delete

◆ paramHasAttr()

template<typename FunTy, typename InstructionTy, typename ValueTy, typename CallTy>
bool llvm::StatepointBase< FunTy, InstructionTy, ValueTy, CallTy >::paramHasAttr ( unsigned  i,
Attribute::AttrKind  A 
) const
inline

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

Definition at line 281 of file Statepoint.h.

◆ verify()

template<typename FunTy, typename InstructionTy, typename ValueTy, typename CallTy>
void llvm::StatepointBase< FunTy, InstructionTy, ValueTy, CallTy >::verify ( )
inline

Asserts if this statepoint is malformed.

Common cases for failure include incorrect length prefixes for variable length sections or illegal values for parameters.

Definition at line 353 of file Statepoint.h.

Referenced by llvm::SelectionDAGBuilder::LowerStatepoint().


The documentation for this class was generated from the following file: