LLVM
8.0.1
|
Analogous to CallSiteBase, this provides most of the actual functionality for Statepoint and ImmutableStatepoint. More...
#include "llvm/IR/Statepoint.h"
Public Types | |
enum | { IDPos = 0, NumPatchBytesPos = 1, CalledFunctionPos = 2, NumCallArgsPos = 3, FlagsPos = 4, CallArgsBeginPos = 5 } |
using | arg_iterator = typename CallSiteTy::arg_iterator |
Public Member Functions | |
void * | operator new (size_t, unsigned)=delete |
void * | operator new (size_t s)=delete |
operator bool () const | |
CallSiteTy | getCallSite () const |
Return the underlying CallSite. More... | |
uint64_t | getFlags () const |
uint64_t | getID () const |
Return the ID associated with this statepoint. More... | |
uint32_t | getNumPatchBytes () const |
Return the number of patchable bytes associated with this statepoint. More... | |
ValueTy * | getCalledValue () const |
Return the value actually being called or invoked. More... | |
InstructionTy * | getInstruction () const |
FunTy * | getCalledFunction () const |
Return the function being called if this is a direct call, otherwise return null (if it's an indirect call). More... | |
FunTy * | getCaller () const |
Return the caller function for this statepoint. More... | |
bool | doesNotThrow () const |
Determine if the statepoint cannot unwind. More... | |
Type * | getActualReturnType () const |
Return the type of the value returned by the call underlying the statepoint. More... | |
int | getNumCallArgs () const |
Number of arguments to be passed to the actual callee. More... | |
size_t | arg_size () const |
CallSiteTy::arg_iterator | arg_begin () const |
CallSiteTy::arg_iterator | arg_end () const |
ValueTy * | getArgument (unsigned Index) |
iterator_range< arg_iterator > | call_args () const |
range adapter for call arguments More... | |
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... | |
CallSiteTy::arg_iterator | gc_transition_args_begin () const |
CallSiteTy::arg_iterator | gc_transition_args_end () const |
iterator_range< arg_iterator > | gc_transition_args () const |
range adapter for GC transition arguments More... | |
int | getNumTotalVMSArgs () const |
Number of additional arguments excluding those intended for garbage collection. More... | |
CallSiteTy::arg_iterator | deopt_begin () const |
CallSiteTy::arg_iterator | deopt_end () const |
iterator_range< arg_iterator > | deopt_operands () const |
range adapter for vm state arguments More... | |
CallSiteTy::arg_iterator | gc_args_begin () const |
CallSiteTy::arg_iterator | gc_args_end () const |
unsigned | gcArgsStartIdx () const |
iterator_range< arg_iterator > | gc_args () const |
range adapter for gc arguments More... | |
std::vector< const GCRelocateInst * > | getRelocates () const |
Get list of all gc reloactes linked to this statepoint May contain several relocations for the same base/derived pair. More... | |
const GCResultInst * | getGCResult () const |
Get the experimental_gc_result call tied to this statepoint. More... | |
void | verify () |
Asserts if this statepoint is malformed. More... | |
Protected Member Functions | |
StatepointBase (InstructionTy *I) | |
StatepointBase (CallSiteTy CS) | |
Analogous to CallSiteBase, 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. This is structured analogous to CallSite rather than the IntrinsicInst.h helpers since we need to support invokable statepoints.
Definition at line 78 of file Statepoint.h.
using llvm::StatepointBase< FunTy, InstructionTy, ValueTy, CallSiteTy >::arg_iterator = typename CallSiteTy::arg_iterator |
Definition at line 95 of file Statepoint.h.
anonymous enum |
Enumerator | |
---|---|
IDPos | |
NumPatchBytesPos | |
CalledFunctionPos | |
NumCallArgsPos | |
FlagsPos | |
CallArgsBeginPos |
Definition at line 97 of file Statepoint.h.
|
inlineexplicitprotected |
Definition at line 82 of file Statepoint.h.
|
inlineexplicitprotected |
Definition at line 89 of file Statepoint.h.
|
inline |
Definition at line 179 of file Statepoint.h.
|
inline |
Definition at line 183 of file Statepoint.h.
|
inline |
Definition at line 178 of file Statepoint.h.
|
inline |
range adapter for call arguments
Definition at line 195 of file Statepoint.h.
|
inline |
Definition at line 234 of file Statepoint.h.
Referenced by llvm::SelectionDAGBuilder::LowerStatepoint().
|
inline |
Definition at line 239 of file Statepoint.h.
Referenced by llvm::SelectionDAGBuilder::LowerStatepoint().
|
inline |
range adapter for vm state arguments
Definition at line 246 of file Statepoint.h.
|
inline |
Determine if the statepoint cannot unwind.
Definition at line 159 of file Statepoint.h.
|
inline |
range adapter for gc arguments
Definition at line 262 of file Statepoint.h.
Referenced by insertParsePoints().
|
inline |
Definition at line 250 of file Statepoint.h.
Referenced by insertParsePoints(), and llvm::SelectionDAGBuilder::LowerStatepoint().
|
inline |
Definition at line 253 of file Statepoint.h.
Referenced by insertParsePoints(), and llvm::SelectionDAGBuilder::LowerStatepoint().
|
inline |
range adapter for GC transition arguments
Definition at line 223 of file Statepoint.h.
|
inline |
Definition at line 211 of file Statepoint.h.
|
inline |
Definition at line 216 of file Statepoint.h.
|
inline |
Definition at line 257 of file Statepoint.h.
Referenced by makeStatepointExplicitImpl().
|
inline |
Return the type of the value returned by the call underlying the statepoint.
Definition at line 166 of file Statepoint.h.
Referenced by llvm::SelectionDAGBuilder::LowerStatepoint().
|
inline |
Definition at line 189 of file Statepoint.h.
|
inline |
Return the function being called if this is a direct call, otherwise return null (if it's an indirect call).
Definition at line 151 of file Statepoint.h.
|
inline |
Return the value actually being called or invoked.
Definition at line 141 of file Statepoint.h.
Referenced by llvm::SelectionDAGBuilder::LowerCallSiteWithDeoptBundle(), and llvm::SelectionDAGBuilder::LowerStatepoint().
|
inline |
Return the caller function for this statepoint.
Definition at line 156 of file Statepoint.h.
|
inline |
Return the underlying CallSite.
Definition at line 115 of file Statepoint.h.
Referenced by llvm::SelectionDAGBuilder::LowerStatepoint().
|
inline |
Definition at line 120 of file Statepoint.h.
Referenced by llvm::SelectionDAGBuilder::LowerStatepoint().
|
inline |
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.
Definition at line 275 of file Statepoint.h.
Referenced by llvm::SelectionDAGBuilder::LowerStatepoint().
|
inline |
Return the ID associated with this statepoint.
Definition at line 126 of file Statepoint.h.
Referenced by llvm::SelectionDAGBuilder::LowerStatepoint().
|
inline |
Definition at line 145 of file Statepoint.h.
Referenced by llvm::SelectionDAGBuilder::LowerStatepoint().
|
inline |
Number of arguments to be passed to the actual callee.
Definition at line 173 of file Statepoint.h.
Referenced by llvm::SelectionDAGBuilder::LowerStatepoint().
|
inline |
Return the number of patchable bytes associated with this statepoint.
Definition at line 132 of file Statepoint.h.
Referenced by llvm::SelectionDAGBuilder::LowerStatepoint().
|
inline |
Number of GC transition args.
Definition at line 207 of file Statepoint.h.
|
inline |
Number of additional arguments excluding those intended for garbage collection.
Definition at line 229 of file Statepoint.h.
std::vector< const GCRelocateInst * > llvm::StatepointBase< FunTy, InstructionTy, ValueTy, CallSiteTy >::getRelocates | ( | ) | const |
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.
Definition at line 423 of file Statepoint.h.
Referenced by llvm::SelectionDAGBuilder::LowerStatepoint().
|
inlineexplicit |
Definition at line 109 of file Statepoint.h.
|
delete |
|
delete |
|
inline |
Return true if the call or the callee has the given attribute.
Definition at line 200 of file Statepoint.h.
|
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 286 of file Statepoint.h.
Referenced by llvm::SelectionDAGBuilder::LowerStatepoint().