|
LLVM
4.0.0
|
Analogous to CallSiteBase, this provides most of the actual functionality for Statepoint and ImmutableStatepoint. More...
#include <Statepoint.h>
Public Types | |
| enum | { IDPos = 0, NumPatchBytesPos = 1, CalledFunctionPos = 2, NumCallArgsPos = 3, FlagsPos = 4, CallArgsBeginPos = 5 } |
| typedef CallSiteTy::arg_iterator | 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 | vm_state_begin () const |
| CallSiteTy::arg_iterator | vm_state_end () const |
| iterator_range< arg_iterator > | vm_state_args () 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 73 of file Statepoint.h.
| typedef CallSiteTy::arg_iterator llvm::StatepointBase< FunTy, InstructionTy, ValueTy, CallSiteTy >::arg_iterator |
Definition at line 90 of file Statepoint.h.
| anonymous enum |
| Enumerator | |
|---|---|
| IDPos | |
| NumPatchBytesPos | |
| CalledFunctionPos | |
| NumCallArgsPos | |
| FlagsPos | |
| CallArgsBeginPos | |
Definition at line 92 of file Statepoint.h.
|
inlineexplicitprotected |
Definition at line 77 of file Statepoint.h.
|
inlineexplicitprotected |
Definition at line 84 of file Statepoint.h.
|
inline |
Definition at line 174 of file Statepoint.h.
Referenced by llvm::StatepointBase< Function, Instruction, Value, CallSite >::arg_end(), llvm::StatepointBase< Function, Instruction, Value, CallSite >::call_args(), llvm::StatepointBase< Function, Instruction, Value, CallSite >::getArgument(), and llvm::StatepointBase< Function, Instruction, Value, CallSite >::verify().
|
inline |
Definition at line 178 of file Statepoint.h.
Referenced by llvm::StatepointBase< Function, Instruction, Value, CallSite >::arg_end(), llvm::StatepointBase< Function, Instruction, Value, CallSite >::call_args(), llvm::StatepointBase< Function, Instruction, Value, CallSite >::gc_transition_args_begin(), llvm::StatepointBase< Function, Instruction, Value, CallSite >::gc_transition_args_end(), llvm::StatepointBase< Function, Instruction, Value, CallSite >::getNumTotalGCTransitionArgs(), llvm::StatepointBase< Function, Instruction, Value, CallSite >::verify(), llvm::StatepointBase< Function, Instruction, Value, CallSite >::vm_state_begin(), and llvm::StatepointBase< Function, Instruction, Value, CallSite >::vm_state_end().
|
inline |
|
inline |
range adapter for call arguments
Definition at line 190 of file Statepoint.h.
|
inline |
Determine if the statepoint cannot unwind.
Definition at line 154 of file Statepoint.h.
|
inline |
range adapter for gc arguments
Definition at line 257 of file Statepoint.h.
Referenced by insertParsePoints().
|
inline |
Definition at line 245 of file Statepoint.h.
Referenced by llvm::StatepointBase< Function, Instruction, Value, CallSite >::gc_args(), llvm::StatepointBase< Function, Instruction, Value, CallSite >::gcArgsStartIdx(), insertParsePoints(), llvm::SelectionDAGBuilder::LowerStatepoint(), and llvm::StatepointBase< Function, Instruction, Value, CallSite >::verify().
|
inline |
|
inline |
range adapter for GC transition arguments
Definition at line 218 of file Statepoint.h.
|
inline |
Definition at line 206 of file Statepoint.h.
Referenced by llvm::StatepointBase< Function, Instruction, Value, CallSite >::gc_transition_args(), llvm::StatepointBase< Function, Instruction, Value, CallSite >::gc_transition_args_end(), and llvm::StatepointBase< Function, Instruction, Value, CallSite >::verify().
|
inline |
Definition at line 211 of file Statepoint.h.
Referenced by llvm::StatepointBase< Function, Instruction, Value, CallSite >::gc_transition_args(), llvm::StatepointBase< Function, Instruction, Value, CallSite >::getNumTotalVMSArgs(), llvm::StatepointBase< Function, Instruction, Value, CallSite >::verify(), and llvm::StatepointBase< Function, Instruction, Value, CallSite >::vm_state_begin().
|
inline |
Definition at line 252 of file Statepoint.h.
Referenced by makeStatepointExplicitImpl().
|
inline |
Return the type of the value returned by the call underlying the statepoint.
Definition at line 161 of file Statepoint.h.
Referenced by llvm::SelectionDAGBuilder::LowerStatepoint().
|
inline |
Definition at line 184 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 146 of file Statepoint.h.
Referenced by llvm::StatepointBase< Function, Instruction, Value, CallSite >::doesNotThrow(), and llvm::StatepointBase< Function, Instruction, Value, CallSite >::paramHasAttr().
|
inline |
Return the value actually being called or invoked.
Definition at line 136 of file Statepoint.h.
Referenced by llvm::StatepointBase< Function, Instruction, Value, CallSite >::getActualReturnType(), llvm::StatepointBase< Function, Instruction, Value, CallSite >::getCalledFunction(), and llvm::SelectionDAGBuilder::LowerStatepoint().
|
inline |
Return the caller function for this statepoint.
Definition at line 151 of file Statepoint.h.
|
inline |
Return the underlying CallSite.
Definition at line 110 of file Statepoint.h.
Referenced by llvm::StatepointBase< Function, Instruction, Value, CallSite >::arg_begin(), llvm::StatepointBase< Function, Instruction, Value, CallSite >::arg_end(), llvm::StatepointBase< Function, Instruction, Value, CallSite >::doesNotThrow(), llvm::StatepointBase< Function, Instruction, Value, CallSite >::gc_args_end(), llvm::StatepointBase< Function, Instruction, Value, CallSite >::gc_transition_args_begin(), llvm::StatepointBase< Function, Instruction, Value, CallSite >::gc_transition_args_end(), llvm::StatepointBase< Function, Instruction, Value, CallSite >::getCalledValue(), llvm::StatepointBase< Function, Instruction, Value, CallSite >::getCaller(), llvm::StatepointBase< Function, Instruction, Value, CallSite >::getFlags(), llvm::StatepointBase< Function, Instruction, Value, CallSite >::getID(), llvm::StatepointBase< Function, Instruction, Value, CallSite >::getInstruction(), llvm::StatepointBase< Function, Instruction, Value, CallSite >::getNumCallArgs(), llvm::StatepointBase< Function, Instruction, Value, CallSite >::getNumPatchBytes(), llvm::SelectionDAGBuilder::LowerStatepoint(), llvm::StatepointBase< Function, Instruction, Value, CallSite >::paramHasAttr(), llvm::StatepointBase< Function, Instruction, Value, CallSite >::vm_state_begin(), and llvm::StatepointBase< Function, Instruction, Value, CallSite >::vm_state_end().
|
inline |
Definition at line 115 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 270 of file Statepoint.h.
Referenced by llvm::SelectionDAGBuilder::LowerStatepoint().
|
inline |
Return the ID associated with this statepoint.
Definition at line 121 of file Statepoint.h.
Referenced by llvm::SelectionDAGBuilder::LowerStatepoint().
|
inline |
|
inline |
Number of arguments to be passed to the actual callee.
Definition at line 168 of file Statepoint.h.
Referenced by llvm::StatepointBase< Function, Instruction, Value, CallSite >::arg_size(), llvm::SelectionDAGBuilder::LowerStatepoint(), and llvm::StatepointBase< Function, Instruction, Value, CallSite >::verify().
|
inline |
Return the number of patchable bytes associated with this statepoint.
Definition at line 127 of file Statepoint.h.
Referenced by llvm::SelectionDAGBuilder::LowerStatepoint().
|
inline |
Number of GC transition args.
Definition at line 202 of file Statepoint.h.
Referenced by llvm::StatepointBase< Function, Instruction, Value, CallSite >::gc_transition_args_end().
|
inline |
Number of additional arguments excluding those intended for garbage collection.
Definition at line 224 of file Statepoint.h.
Referenced by llvm::StatepointBase< Function, Instruction, Value, CallSite >::vm_state_end().
| 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 414 of file Statepoint.h.
References users, and llvm::Value::users().
Referenced by llvm::SelectionDAGBuilder::LowerStatepoint().
|
inlineexplicit |
Definition at line 104 of file Statepoint.h.
|
delete |
|
delete |
|
inline |
Return true if the call or the callee has the given attribute.
Definition at line 195 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 281 of file Statepoint.h.
Referenced by llvm::SelectionDAGBuilder::LowerStatepoint().
|
inline |
range adapter for vm state arguments
Definition at line 241 of file Statepoint.h.
|
inline |
Definition at line 229 of file Statepoint.h.
Referenced by llvm::SelectionDAGBuilder::LowerStatepoint(), llvm::StatepointBase< Function, Instruction, Value, CallSite >::verify(), llvm::StatepointBase< Function, Instruction, Value, CallSite >::vm_state_args(), and llvm::StatepointBase< Function, Instruction, Value, CallSite >::vm_state_end().
|
inline |
Definition at line 234 of file Statepoint.h.
Referenced by llvm::StatepointBase< Function, Instruction, Value, CallSite >::gc_args_begin(), llvm::SelectionDAGBuilder::LowerStatepoint(), llvm::StatepointBase< Function, Instruction, Value, CallSite >::verify(), and llvm::StatepointBase< Function, Instruction, Value, CallSite >::vm_state_args().
1.8.6