|
LLVM
3.7.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 | |
| 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 |
| iterator_range< arg_iterator > | gc_args () const |
| range adapter for gc arguments More... | |
| std::vector< GCRelocateOperands > | getRelocates () const |
| Get list of all gc reloactes linked to this statepoint May contain several relocations for the same base/derived pair. More... | |
| InstructionTy * | 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 want to support invokable statepoints in the near future.
Definition at line 60 of file Statepoint.h.
| typedef CallSiteTy::arg_iterator llvm::StatepointBase< FunTy, InstructionTy, ValueTy, CallSiteTy >::arg_iterator |
Definition at line 78 of file Statepoint.h.
| anonymous enum |
| Enumerator | |
|---|---|
| IDPos | |
| NumPatchBytesPos | |
| CalledFunctionPos | |
| NumCallArgsPos | |
| FlagsPos | |
| CallArgsBeginPos | |
Definition at line 80 of file Statepoint.h.
|
inlineexplicitprotected |
Definition at line 66 of file Statepoint.h.
|
inlineexplicitprotected |
Definition at line 72 of file Statepoint.h.
|
inline |
Definition at line 159 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 163 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 175 of file Statepoint.h.
|
inline |
Determine if the statepoint cannot unwind.
Definition at line 139 of file Statepoint.h.
|
inline |
range adapter for gc arguments
Definition at line 239 of file Statepoint.h.
Referenced by insertParsePoints(), and lowerStatepointMetaArgs().
|
inline |
Definition at line 231 of file Statepoint.h.
Referenced by llvm::StatepointBase< Function, Instruction, Value, CallSite >::gc_args(), insertParsePoints(), and llvm::StatepointBase< Function, Instruction, Value, CallSite >::verify().
|
inline |
Definition at line 234 of file Statepoint.h.
Referenced by llvm::StatepointBase< Function, Instruction, Value, CallSite >::gc_args(), insertParsePoints(), and llvm::StatepointBase< Function, Instruction, Value, CallSite >::verify().
|
inline |
range adapter for GC transition arguments
Definition at line 203 of file Statepoint.h.
Referenced by llvm::SelectionDAGBuilder::LowerStatepoint().
|
inline |
Definition at line 191 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 196 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 |
Return the type of the value returned by the call underlying the statepoint.
Definition at line 146 of file Statepoint.h.
Referenced by lowerCallFromStatepoint().
|
inline |
Definition at line 169 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 131 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 121 of file Statepoint.h.
Referenced by llvm::StatepointBase< Function, Instruction, Value, CallSite >::getActualReturnType(), llvm::StatepointBase< Function, Instruction, Value, CallSite >::getCalledFunction(), and lowerCallFromStatepoint().
|
inline |
Return the caller function for this statepoint.
Definition at line 136 of file Statepoint.h.
|
inline |
Return the underlying CallSite.
Definition at line 95 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(), lowerCallFromStatepoint(), llvm::SelectionDAGBuilder::LowerStatepoint(), lowerStatepointMetaArgs(), 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 100 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 252 of file Statepoint.h.
|
inline |
Return the ID associated with this statepoint.
Definition at line 106 of file Statepoint.h.
Referenced by llvm::SelectionDAGBuilder::LowerStatepoint().
|
inline |
Definition at line 125 of file Statepoint.h.
Referenced by llvm::StatepointBase< Function, Instruction, Value, CallSite >::getGCResult().
|
inline |
Number of arguments to be passed to the actual callee.
Definition at line 153 of file Statepoint.h.
Referenced by llvm::StatepointBase< Function, Instruction, Value, CallSite >::arg_size(), lowerCallFromStatepoint(), and llvm::StatepointBase< Function, Instruction, Value, CallSite >::verify().
|
inline |
Return the number of patchable bytes associated with this statepoint.
Definition at line 112 of file Statepoint.h.
Referenced by llvm::SelectionDAGBuilder::LowerStatepoint().
|
inline |
Number of GC transition args.
Definition at line 187 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 210 of file Statepoint.h.
Referenced by lowerStatepointMetaArgs(), and llvm::StatepointBase< Function, Instruction, Value, CallSite >::vm_state_end().
| std::vector< GCRelocateOperands > 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 378 of file Statepoint.h.
References llvm::isGCRelocate(), users, and llvm::Value::users().
Referenced by getIncomingStatepointGCValues(), and lowerStatepointMetaArgs().
|
inlineexplicit |
Definition at line 89 of file Statepoint.h.
|
inline |
Return true if the call or the callee has the given attribute.
Definition at line 180 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 264 of file Statepoint.h.
Referenced by llvm::SelectionDAGBuilder::LowerStatepoint().
|
inline |
range adapter for vm state arguments
Definition at line 227 of file Statepoint.h.
Referenced by insertParsePoints(), and lowerStatepointMetaArgs().
|
inline |
Definition at line 215 of file Statepoint.h.
Referenced by lowerStatepointMetaArgs(), 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 220 of file Statepoint.h.
Referenced by llvm::StatepointBase< Function, Instruction, Value, CallSite >::gc_args_begin(), lowerStatepointMetaArgs(), llvm::StatepointBase< Function, Instruction, Value, CallSite >::verify(), and llvm::StatepointBase< Function, Instruction, Value, CallSite >::vm_state_args().
1.8.6