LLVM  3.7.0
Public Types | Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
llvm::CallSiteBase< FunTy, BBTy, ValTy, UserTy, InstrTy, CallTy, InvokeTy, IterTy > Class Template Reference

#include <CallSite.h>

Inheritance diagram for llvm::CallSiteBase< FunTy, BBTy, ValTy, UserTy, InstrTy, CallTy, InvokeTy, IterTy >:
[legend]
Collaboration diagram for llvm::CallSiteBase< FunTy, BBTy, ValTy, UserTy, InstrTy, CallTy, InvokeTy, IterTy >:
[legend]

Public Types

typedef IterTy arg_iterator
 arg_iterator - The type of iterator to use when looping over actual arguments at this call site. More...
 

Public Member Functions

bool isCall () const
 isCall - true if a CallInst is enclosed. More...
 
bool isInvoke () const
 isInvoke - true if a InvokeInst is enclosed. More...
 
InstrTy * getInstruction () const
 
InstrTy * operator-> () const
 
 operator bool () const
 
BBTy * getParent () const
 Get the basic block containing the call site. More...
 
ValTy * getCalledValue () const
 getCalledValue - Return the pointer to function that is being called. More...
 
FunTy * getCalledFunction () const
 getCalledFunction - Return the function being called if this is a direct call, otherwise return null (if it's an indirect call). More...
 
void setCalledFunction (Value *V)
 setCalledFunction - Set the callee to the specified value. More...
 
bool isCallee (Value::const_user_iterator UI) const
 isCallee - Determine whether the passed iterator points to the callee operand's Use. More...
 
bool isCallee (const Use *U) const
 Determine whether this Use is the callee operand's Use. More...
 
ValTy * getArgument (unsigned ArgNo) const
 
void setArgument (unsigned ArgNo, Value *newVal)
 
unsigned getArgumentNo (Value::const_user_iterator I) const
 Given a value use iterator, returns the argument that corresponds to it. More...
 
unsigned getArgumentNo (const Use *U) const
 Given a use for an argument, get the argument number that corresponds to it. More...
 
IterTy arg_begin () const
 arg_begin/arg_end - Return iterators corresponding to the actual argument list for a call site. More...
 
IterTy arg_end () const
 
iterator_range< IterTy > args () const
 
bool arg_empty () const
 
unsigned arg_size () const
 
TypegetType () const
 getType - Return the type of the instruction that generated this call site More...
 
FunTy * getCaller () const
 getCaller - Return the caller function for this call site More...
 
bool isMustTailCall () const
 Tests if this call site must be tail call optimized. More...
 
bool isTailCall () const
 Tests if this call site is marked as a tail call. More...
 
unsigned getNumArgOperands () const
 
ValTy * getArgOperand (unsigned i) const
 
bool isInlineAsm () const
 
CallingConv::ID getCallingConv () const
 getCallingConv/setCallingConv - get or set the calling convention of the call. More...
 
void setCallingConv (CallingConv::ID CC)
 
FunctionTypegetFunctionType () const
 
void mutateFunctionType (FunctionType *Ty) const
 
const AttributeSetgetAttributes () const
 getAttributes/setAttributes - get or set the parameter attributes of the call. More...
 
void setAttributes (const AttributeSet &PAL)
 
bool hasFnAttr (Attribute::AttrKind A) const
 Return true if this function has the given attribute. More...
 
bool paramHasAttr (unsigned i, Attribute::AttrKind A) const
 Return true if the call or the callee has the given attribute. More...
 
uint16_t getParamAlignment (uint16_t i) const
 Extract the alignment for a call or parameter (0=unknown). More...
 
uint64_t getDereferenceableBytes (uint16_t i) const
 Extract the number of dereferenceable bytes for a call or parameter (0=unknown). More...
 
uint64_t getDereferenceableOrNullBytes (uint16_t i) const
 Extract the number of dereferenceable_or_null bytes for a call or parameter (0=unknown). More...
 
bool isNoBuiltin () const
 Return true if the call should not be treated as a call to a builtin. More...
 
bool isNoInline () const
 Return true if the call should not be inlined. More...
 
void setIsNoInline (bool Value=true)
 
bool doesNotAccessMemory () const
 Determine if the call does not access memory. More...
 
void setDoesNotAccessMemory ()
 
bool onlyReadsMemory () const
 Determine if the call does not access or only reads memory. More...
 
void setOnlyReadsMemory ()
 
bool onlyAccessesArgMemory () const
 Determine if the call can access memmory only using pointers based on its arguments. More...
 
void setOnlyAccessesArgMemory ()
 
bool doesNotReturn () const
 Determine if the call cannot return. More...
 
void setDoesNotReturn ()
 
bool doesNotThrow () const
 Determine if the call cannot unwind. More...
 
void setDoesNotThrow ()
 
bool doesNotCapture (unsigned ArgNo) const
 Determine whether this argument is not captured. More...
 
bool isByValArgument (unsigned ArgNo) const
 Determine whether this argument is passed by value. More...
 
bool isInAllocaArgument (unsigned ArgNo) const
 Determine whether this argument is passed in an alloca. More...
 
bool isByValOrInAllocaArgument (unsigned ArgNo) const
 Determine whether this argument is passed by value or in an alloca. More...
 
bool hasInAllocaArgument () const
 Determine if there are is an inalloca argument. More...
 
bool doesNotAccessMemory (unsigned ArgNo) const
 
bool onlyReadsMemory (unsigned ArgNo) const
 
bool isReturnNonNull () const
 Return true if the return value is known to be not null. More...
 
bool hasArgument (const Value *Arg) const
 hasArgument - Returns true if this CallSite passes the given Value* as an argument to the called function. More...
 

Protected Member Functions

 CallSiteBase ()
 
 CallSiteBase (CallTy *CI)
 
 CallSiteBase (InvokeTy *II)
 
 CallSiteBase (ValTy *II)
 

Protected Attributes

PointerIntPair< InstrTy
*, 1, bool
I
 

Detailed Description

template<typename FunTy = const Function, typename BBTy = const BasicBlock, typename ValTy = const Value, typename UserTy = const User, typename InstrTy = const Instruction, typename CallTy = const CallInst, typename InvokeTy = const InvokeInst, typename IterTy = User::const_op_iterator>
class llvm::CallSiteBase< FunTy, BBTy, ValTy, UserTy, InstrTy, CallTy, InvokeTy, IterTy >

Definition at line 48 of file CallSite.h.

Member Typedef Documentation

template<typename FunTy = const Function, typename BBTy = const BasicBlock, typename ValTy = const Value, typename UserTy = const User, typename InstrTy = const Instruction, typename CallTy = const CallInst, typename InvokeTy = const InvokeInst, typename IterTy = User::const_op_iterator>
typedef IterTy llvm::CallSiteBase< FunTy, BBTy, ValTy, UserTy, InstrTy, CallTy, InvokeTy, IterTy >::arg_iterator

arg_iterator - The type of iterator to use when looping over actual arguments at this call site.

Definition at line 147 of file CallSite.h.

Constructor & Destructor Documentation

template<typename FunTy = const Function, typename BBTy = const BasicBlock, typename ValTy = const Value, typename UserTy = const User, typename InstrTy = const Instruction, typename CallTy = const CallInst, typename InvokeTy = const InvokeInst, typename IterTy = User::const_op_iterator>
llvm::CallSiteBase< FunTy, BBTy, ValTy, UserTy, InstrTy, CallTy, InvokeTy, IterTy >::CallSiteBase ( )
inlineprotected

Definition at line 52 of file CallSite.h.

template<typename FunTy = const Function, typename BBTy = const BasicBlock, typename ValTy = const Value, typename UserTy = const User, typename InstrTy = const Instruction, typename CallTy = const CallInst, typename InvokeTy = const InvokeInst, typename IterTy = User::const_op_iterator>
llvm::CallSiteBase< FunTy, BBTy, ValTy, UserTy, InstrTy, CallTy, InvokeTy, IterTy >::CallSiteBase ( CallTy *  CI)
inlineprotected

Definition at line 53 of file CallSite.h.

template<typename FunTy = const Function, typename BBTy = const BasicBlock, typename ValTy = const Value, typename UserTy = const User, typename InstrTy = const Instruction, typename CallTy = const CallInst, typename InvokeTy = const InvokeInst, typename IterTy = User::const_op_iterator>
llvm::CallSiteBase< FunTy, BBTy, ValTy, UserTy, InstrTy, CallTy, InvokeTy, IterTy >::CallSiteBase ( InvokeTy *  II)
inlineprotected

Definition at line 54 of file CallSite.h.

template<typename FunTy = const Function, typename BBTy = const BasicBlock, typename ValTy = const Value, typename UserTy = const User, typename InstrTy = const Instruction, typename CallTy = const CallInst, typename InvokeTy = const InvokeInst, typename IterTy = User::const_op_iterator>
llvm::CallSiteBase< FunTy, BBTy, ValTy, UserTy, InstrTy, CallTy, InvokeTy, IterTy >::CallSiteBase ( ValTy *  II)
inlineexplicitprotected

Definition at line 55 of file CallSite.h.

Member Function Documentation

template<typename FunTy = const Function, typename BBTy = const BasicBlock, typename ValTy = const Value, typename UserTy = const User, typename InstrTy = const Instruction, typename CallTy = const CallInst, typename InvokeTy = const InvokeInst, typename IterTy = User::const_op_iterator>
IterTy llvm::CallSiteBase< FunTy, BBTy, ValTy, UserTy, InstrTy, CallTy, InvokeTy, IterTy >::arg_begin ( ) const
inline

arg_begin/arg_end - Return iterators corresponding to the actual argument list for a call site.

Definition at line 151 of file CallSite.h.

Referenced by llvm::CallSiteBase< Function, BasicBlock, Value, User, Instruction, CallInst, InvokeInst, User::op_iterator >::arg_empty(), llvm::CallSiteBase< Function, BasicBlock, Value, User, Instruction, CallInst, InvokeInst, User::op_iterator >::arg_size(), llvm::CallSiteBase< Function, BasicBlock, Value, User, Instruction, CallInst, InvokeInst, User::op_iterator >::args(), llvm::AliasAnalysis::callCapturesBefore(), llvm::objcarc::CanAlterRefCount(), determinePointerReadAttrs(), llvm::CallSiteBase< Function, BasicBlock, Value, User, Instruction, CallInst, InvokeInst, User::op_iterator >::getArgument(), llvm::CallSiteBase< Function, BasicBlock, Value, User, Instruction, CallInst, InvokeInst, User::op_iterator >::getArgumentNo(), llvm::GCRelocateOperands::getBasePtr(), llvm::objcarc::GetCallSiteClass(), llvm::GCRelocateOperands::getDerivedPtr(), llvm::AliasAnalysis::getModRefInfo(), HandleCallsInBlockInlinedThroughInvoke(), llvm::CallSiteBase< Function, BasicBlock, Value, User, Instruction, CallInst, InvokeInst, User::op_iterator >::hasArgument(), llvm::InlineFunction(), llvm::FastISel::lowerCall(), llvm::SelectionDAGBuilder::LowerCallTo(), llvm::IntrinsicLowering::LowerIntrinsicCall(), makeStatepointExplicitImpl(), llvm::PointerMayBeCaptured(), ReplaceFPIntrinsicWithCall(), ReplaceWithStatepoint(), llvm::CallSiteBase< Function, BasicBlock, Value, User, Instruction, CallInst, InvokeInst, User::op_iterator >::setArgument(), llvm::SimplifyInstruction(), and llvm::Interpreter::visitCallSite().

template<typename FunTy = const Function, typename BBTy = const BasicBlock, typename ValTy = const Value, typename UserTy = const User, typename InstrTy = const Instruction, typename CallTy = const CallInst, typename InvokeTy = const InvokeInst, typename IterTy = User::const_op_iterator>
bool llvm::CallSiteBase< FunTy, BBTy, ValTy, UserTy, InstrTy, CallTy, InvokeTy, IterTy >::arg_empty ( ) const
inline

Definition at line 161 of file CallSite.h.

template<typename FunTy = const Function, typename BBTy = const BasicBlock, typename ValTy = const Value, typename UserTy = const User, typename InstrTy = const Instruction, typename CallTy = const CallInst, typename InvokeTy = const InvokeInst, typename IterTy = User::const_op_iterator>
IterTy llvm::CallSiteBase< FunTy, BBTy, ValTy, UserTy, InstrTy, CallTy, InvokeTy, IterTy >::arg_end ( ) const
inline
template<typename FunTy = const Function, typename BBTy = const BasicBlock, typename ValTy = const Value, typename UserTy = const User, typename InstrTy = const Instruction, typename CallTy = const CallInst, typename InvokeTy = const InvokeInst, typename IterTy = User::const_op_iterator>
unsigned llvm::CallSiteBase< FunTy, BBTy, ValTy, UserTy, InstrTy, CallTy, InvokeTy, IterTy >::arg_size ( ) const
inline
template<typename FunTy = const Function, typename BBTy = const BasicBlock, typename ValTy = const Value, typename UserTy = const User, typename InstrTy = const Instruction, typename CallTy = const CallInst, typename InvokeTy = const InvokeInst, typename IterTy = User::const_op_iterator>
iterator_range<IterTy> llvm::CallSiteBase< FunTy, BBTy, ValTy, UserTy, InstrTy, CallTy, InvokeTy, IterTy >::args ( ) const
inline

Definition at line 158 of file CallSite.h.

template<typename FunTy = const Function, typename BBTy = const BasicBlock, typename ValTy = const Value, typename UserTy = const User, typename InstrTy = const Instruction, typename CallTy = const CallInst, typename InvokeTy = const InvokeInst, typename IterTy = User::const_op_iterator>
bool llvm::CallSiteBase< FunTy, BBTy, ValTy, UserTy, InstrTy, CallTy, InvokeTy, IterTy >::doesNotAccessMemory ( ) const
inline
template<typename FunTy = const Function, typename BBTy = const BasicBlock, typename ValTy = const Value, typename UserTy = const User, typename InstrTy = const Instruction, typename CallTy = const CallInst, typename InvokeTy = const InvokeInst, typename IterTy = User::const_op_iterator>
bool llvm::CallSiteBase< FunTy, BBTy, ValTy, UserTy, InstrTy, CallTy, InvokeTy, IterTy >::doesNotAccessMemory ( unsigned  ArgNo) const
inline

Definition at line 348 of file CallSite.h.

template<typename FunTy = const Function, typename BBTy = const BasicBlock, typename ValTy = const Value, typename UserTy = const User, typename InstrTy = const Instruction, typename CallTy = const CallInst, typename InvokeTy = const InvokeInst, typename IterTy = User::const_op_iterator>
bool llvm::CallSiteBase< FunTy, BBTy, ValTy, UserTy, InstrTy, CallTy, InvokeTy, IterTy >::doesNotCapture ( unsigned  ArgNo) const
inline

Determine whether this argument is not captured.

Definition at line 322 of file CallSite.h.

Referenced by llvm::AliasAnalysis::callCapturesBefore(), determinePointerReadAttrs(), and llvm::PointerMayBeCaptured().

template<typename FunTy = const Function, typename BBTy = const BasicBlock, typename ValTy = const Value, typename UserTy = const User, typename InstrTy = const Instruction, typename CallTy = const CallInst, typename InvokeTy = const InvokeInst, typename IterTy = User::const_op_iterator>
bool llvm::CallSiteBase< FunTy, BBTy, ValTy, UserTy, InstrTy, CallTy, InvokeTy, IterTy >::doesNotReturn ( ) const
inline
template<typename FunTy = const Function, typename BBTy = const BasicBlock, typename ValTy = const Value, typename UserTy = const User, typename InstrTy = const Instruction, typename CallTy = const CallInst, typename InvokeTy = const InvokeInst, typename IterTy = User::const_op_iterator>
bool llvm::CallSiteBase< FunTy, BBTy, ValTy, UserTy, InstrTy, CallTy, InvokeTy, IterTy >::doesNotThrow ( ) const
inline
template<typename FunTy = const Function, typename BBTy = const BasicBlock, typename ValTy = const Value, typename UserTy = const User, typename InstrTy = const Instruction, typename CallTy = const CallInst, typename InvokeTy = const InvokeInst, typename IterTy = User::const_op_iterator>
ValTy* llvm::CallSiteBase< FunTy, BBTy, ValTy, UserTy, InstrTy, CallTy, InvokeTy, IterTy >::getArgOperand ( unsigned  i) const
inline
template<typename FunTy = const Function, typename BBTy = const BasicBlock, typename ValTy = const Value, typename UserTy = const User, typename InstrTy = const Instruction, typename CallTy = const CallInst, typename InvokeTy = const InvokeInst, typename IterTy = User::const_op_iterator>
ValTy* llvm::CallSiteBase< FunTy, BBTy, ValTy, UserTy, InstrTy, CallTy, InvokeTy, IterTy >::getArgument ( unsigned  ArgNo) const
inline
template<typename FunTy = const Function, typename BBTy = const BasicBlock, typename ValTy = const Value, typename UserTy = const User, typename InstrTy = const Instruction, typename CallTy = const CallInst, typename InvokeTy = const InvokeInst, typename IterTy = User::const_op_iterator>
unsigned llvm::CallSiteBase< FunTy, BBTy, ValTy, UserTy, InstrTy, CallTy, InvokeTy, IterTy >::getArgumentNo ( Value::const_user_iterator  I) const
inline

Given a value use iterator, returns the argument that corresponds to it.

Iterator must actually correspond to an argument.

Definition at line 132 of file CallSite.h.

Referenced by llvm::CallSiteBase< Function, BasicBlock, Value, User, Instruction, CallInst, InvokeInst, User::op_iterator >::getArgumentNo().

template<typename FunTy = const Function, typename BBTy = const BasicBlock, typename ValTy = const Value, typename UserTy = const User, typename InstrTy = const Instruction, typename CallTy = const CallInst, typename InvokeTy = const InvokeInst, typename IterTy = User::const_op_iterator>
unsigned llvm::CallSiteBase< FunTy, BBTy, ValTy, UserTy, InstrTy, CallTy, InvokeTy, IterTy >::getArgumentNo ( const Use U) const
inline

Given a use for an argument, get the argument number that corresponds to it.

Definition at line 138 of file CallSite.h.

template<typename FunTy = const Function, typename BBTy = const BasicBlock, typename ValTy = const Value, typename UserTy = const User, typename InstrTy = const Instruction, typename CallTy = const CallInst, typename InvokeTy = const InvokeInst, typename IterTy = User::const_op_iterator>
const AttributeSet& llvm::CallSiteBase< FunTy, BBTy, ValTy, UserTy, InstrTy, CallTy, InvokeTy, IterTy >::getAttributes ( ) const
inline
template<typename FunTy = const Function, typename BBTy = const BasicBlock, typename ValTy = const Value, typename UserTy = const User, typename InstrTy = const Instruction, typename CallTy = const CallInst, typename InvokeTy = const InvokeInst, typename IterTy = User::const_op_iterator>
FunTy* llvm::CallSiteBase< FunTy, BBTy, ValTy, UserTy, InstrTy, CallTy, InvokeTy, IterTy >::getCalledFunction ( ) const
inline
template<typename FunTy = const Function, typename BBTy = const BasicBlock, typename ValTy = const Value, typename UserTy = const User, typename InstrTy = const Instruction, typename CallTy = const CallInst, typename InvokeTy = const InvokeInst, typename IterTy = User::const_op_iterator>
ValTy* llvm::CallSiteBase< FunTy, BBTy, ValTy, UserTy, InstrTy, CallTy, InvokeTy, IterTy >::getCalledValue ( ) const
inline
template<typename FunTy = const Function, typename BBTy = const BasicBlock, typename ValTy = const Value, typename UserTy = const User, typename InstrTy = const Instruction, typename CallTy = const CallInst, typename InvokeTy = const InvokeInst, typename IterTy = User::const_op_iterator>
FunTy* llvm::CallSiteBase< FunTy, BBTy, ValTy, UserTy, InstrTy, CallTy, InvokeTy, IterTy >::getCaller ( ) const
inline

getCaller - Return the caller function for this call site

Definition at line 170 of file CallSite.h.

Referenced by AddAlignmentAssumptions(), emitAnalysis(), llvm::InlineCostAnalysis::getInlineCost(), llvm::Inliner::getInlineThreshold(), InlineCallIfPossible(), and llvm::Inliner::runOnSCC().

template<typename FunTy = const Function, typename BBTy = const BasicBlock, typename ValTy = const Value, typename UserTy = const User, typename InstrTy = const Instruction, typename CallTy = const CallInst, typename InvokeTy = const InvokeInst, typename IterTy = User::const_op_iterator>
CallingConv::ID llvm::CallSiteBase< FunTy, BBTy, ValTy, UserTy, InstrTy, CallTy, InvokeTy, IterTy >::getCallingConv ( ) const
inline
template<typename FunTy = const Function, typename BBTy = const BasicBlock, typename ValTy = const Value, typename UserTy = const User, typename InstrTy = const Instruction, typename CallTy = const CallInst, typename InvokeTy = const InvokeInst, typename IterTy = User::const_op_iterator>
uint64_t llvm::CallSiteBase< FunTy, BBTy, ValTy, UserTy, InstrTy, CallTy, InvokeTy, IterTy >::getDereferenceableBytes ( uint16_t  i) const
inline
template<typename FunTy = const Function, typename BBTy = const BasicBlock, typename ValTy = const Value, typename UserTy = const User, typename InstrTy = const Instruction, typename CallTy = const CallInst, typename InvokeTy = const InvokeInst, typename IterTy = User::const_op_iterator>
uint64_t llvm::CallSiteBase< FunTy, BBTy, ValTy, UserTy, InstrTy, CallTy, InvokeTy, IterTy >::getDereferenceableOrNullBytes ( uint16_t  i) const
inline

Extract the number of dereferenceable_or_null bytes for a call or parameter (0=unknown).

Definition at line 259 of file CallSite.h.

Referenced by llvm::CallSiteBase< Function, BasicBlock, Value, User, Instruction, CallInst, InvokeInst, User::op_iterator >::getDereferenceableOrNullBytes().

template<typename FunTy = const Function, typename BBTy = const BasicBlock, typename ValTy = const Value, typename UserTy = const User, typename InstrTy = const Instruction, typename CallTy = const CallInst, typename InvokeTy = const InvokeInst, typename IterTy = User::const_op_iterator>
FunctionType* llvm::CallSiteBase< FunTy, BBTy, ValTy, UserTy, InstrTy, CallTy, InvokeTy, IterTy >::getFunctionType ( ) const
inline
template<typename FunTy = const Function, typename BBTy = const BasicBlock, typename ValTy = const Value, typename UserTy = const User, typename InstrTy = const Instruction, typename CallTy = const CallInst, typename InvokeTy = const InvokeInst, typename IterTy = User::const_op_iterator>
InstrTy* llvm::CallSiteBase< FunTy, BBTy, ValTy, UserTy, InstrTy, CallTy, InvokeTy, IterTy >::getInstruction ( ) const
inline

Definition at line 82 of file CallSite.h.

Referenced by AddAlignmentAssumptions(), llvm::CallGraphNode::addCalledFunction(), analyzeParsePointLiveness(), llvm::CallSiteBase< Function, BasicBlock, Value, User, Instruction, CallInst, InvokeInst, User::op_iterator >::arg_begin(), llvm::AliasAnalysis::callCapturesBefore(), CloneAliasScopeMetadata(), doesNotRequireEntrySafepointBefore(), emitAnalysis(), llvm::CallSiteBase< Function, BasicBlock, Value, User, Instruction, CallInst, InvokeInst, User::op_iterator >::getArgumentNo(), getCalledFunction(), llvm::CallSiteBase< Function, BasicBlock, Value, User, Instruction, CallInst, InvokeInst, User::op_iterator >::getCalledValue(), llvm::MemoryLocation::getForArgument(), llvm::MemoryDependenceAnalysis::getNonLocalCallDependency(), llvm::CallSiteBase< Function, BasicBlock, Value, User, Instruction, CallInst, InvokeInst, User::op_iterator >::getParent(), llvm::NVPTXTargetLowering::getPrototype(), llvm::InlineFunction(), insertParsePoints(), insertUseHolderAfter(), isAssumeIntrinsic(), llvm::isGCRelocate(), llvm::isGCResult(), llvm::CallSiteBase< Function, BasicBlock, Value, User, Instruction, CallInst, InvokeInst, User::op_iterator >::isInlineAsm(), llvm::InlineCostAnalysis::isInlineViable(), llvm::isInTailCallPosition(), llvm::CallSiteBase< Function, BasicBlock, Value, User, Instruction, CallInst, InvokeInst, User::op_iterator >::isInvoke(), llvm::CallSiteBase< Function, BasicBlock, Value, User, Instruction, CallInst, InvokeInst, User::op_iterator >::isMustTailCall(), llvm::isStatepoint(), llvm::CallSiteBase< Function, BasicBlock, Value, User, Instruction, CallInst, InvokeInst, User::op_iterator >::isTailCall(), llvm::FastISel::lowerCallTo(), llvm::SelectionDAGBuilder::LowerCallTo(), llvm::TargetLowering::LowerCallTo(), lowerStatepointMetaArgs(), makeStatepointExplicit(), makeStatepointExplicitImpl(), needsStatepoint(), llvm::CallSite::operator<(), PrintModRefResults(), recomputeLiveInValues(), rematerializeLiveValues(), llvm::CallGraphNode::removeCallEdgeFor(), llvm::CallGraphNode::replaceCallEdge(), ReplaceWithStatepoint(), llvm::Inliner::runOnSCC(), llvm::CallSiteBase< Function, BasicBlock, Value, User, Instruction, CallInst, InvokeInst, User::op_iterator >::setArgument(), llvm::CallSiteBase< Function, BasicBlock, Value, User, Instruction, CallInst, InvokeInst, User::op_iterator >::setCalledFunction(), llvm::FastISel::CallLoweringInfo::setCallee(), llvm::TargetLowering::CallLoweringInfo::setCallee(), UpdateCallGraphAfterInlining(), llvm::Interpreter::visitCallSite(), llvm::ObjectSizeOffsetVisitor::visitCallSite(), llvm::InstVisitor< ObjectSizeOffsetVisitor, SizeOffsetType >::visitCallSite(), llvm::ObjectSizeOffsetEvaluator::visitCallSite(), and llvm::PtrUseVisitor< SliceBuilder >::visitCallSite().

template<typename FunTy = const Function, typename BBTy = const BasicBlock, typename ValTy = const Value, typename UserTy = const User, typename InstrTy = const Instruction, typename CallTy = const CallInst, typename InvokeTy = const InvokeInst, typename IterTy = User::const_op_iterator>
unsigned llvm::CallSiteBase< FunTy, BBTy, ValTy, UserTy, InstrTy, CallTy, InvokeTy, IterTy >::getNumArgOperands ( ) const
inline
template<typename FunTy = const Function, typename BBTy = const BasicBlock, typename ValTy = const Value, typename UserTy = const User, typename InstrTy = const Instruction, typename CallTy = const CallInst, typename InvokeTy = const InvokeInst, typename IterTy = User::const_op_iterator>
uint16_t llvm::CallSiteBase< FunTy, BBTy, ValTy, UserTy, InstrTy, CallTy, InvokeTy, IterTy >::getParamAlignment ( uint16_t  i) const
inline
template<typename FunTy = const Function, typename BBTy = const BasicBlock, typename ValTy = const Value, typename UserTy = const User, typename InstrTy = const Instruction, typename CallTy = const CallInst, typename InvokeTy = const InvokeInst, typename IterTy = User::const_op_iterator>
BBTy* llvm::CallSiteBase< FunTy, BBTy, ValTy, UserTy, InstrTy, CallTy, InvokeTy, IterTy >::getParent ( ) const
inline

Get the basic block containing the call site.

Definition at line 87 of file CallSite.h.

template<typename FunTy = const Function, typename BBTy = const BasicBlock, typename ValTy = const Value, typename UserTy = const User, typename InstrTy = const Instruction, typename CallTy = const CallInst, typename InvokeTy = const InvokeInst, typename IterTy = User::const_op_iterator>
Type* llvm::CallSiteBase< FunTy, BBTy, ValTy, UserTy, InstrTy, CallTy, InvokeTy, IterTy >::getType ( ) const
inline
template<typename FunTy = const Function, typename BBTy = const BasicBlock, typename ValTy = const Value, typename UserTy = const User, typename InstrTy = const Instruction, typename CallTy = const CallInst, typename InvokeTy = const InvokeInst, typename IterTy = User::const_op_iterator>
bool llvm::CallSiteBase< FunTy, BBTy, ValTy, UserTy, InstrTy, CallTy, InvokeTy, IterTy >::hasArgument ( const Value Arg) const
inline

hasArgument - Returns true if this CallSite passes the given Value* as an argument to the called function.

Definition at line 372 of file CallSite.h.

template<typename FunTy = const Function, typename BBTy = const BasicBlock, typename ValTy = const Value, typename UserTy = const User, typename InstrTy = const Instruction, typename CallTy = const CallInst, typename InvokeTy = const InvokeInst, typename IterTy = User::const_op_iterator>
bool llvm::CallSiteBase< FunTy, BBTy, ValTy, UserTy, InstrTy, CallTy, InvokeTy, IterTy >::hasFnAttr ( Attribute::AttrKind  A) const
inline
template<typename FunTy = const Function, typename BBTy = const BasicBlock, typename ValTy = const Value, typename UserTy = const User, typename InstrTy = const Instruction, typename CallTy = const CallInst, typename InvokeTy = const InvokeInst, typename IterTy = User::const_op_iterator>
bool llvm::CallSiteBase< FunTy, BBTy, ValTy, UserTy, InstrTy, CallTy, InvokeTy, IterTy >::hasInAllocaArgument ( ) const
inline

Determine if there are is an inalloca argument.

Only the last argument can have the inalloca attribute.

Definition at line 344 of file CallSite.h.

template<typename FunTy = const Function, typename BBTy = const BasicBlock, typename ValTy = const Value, typename UserTy = const User, typename InstrTy = const Instruction, typename CallTy = const CallInst, typename InvokeTy = const InvokeInst, typename IterTy = User::const_op_iterator>
bool llvm::CallSiteBase< FunTy, BBTy, ValTy, UserTy, InstrTy, CallTy, InvokeTy, IterTy >::isByValArgument ( unsigned  ArgNo) const
inline

Determine whether this argument is passed by value.

Definition at line 327 of file CallSite.h.

Referenced by llvm::AliasAnalysis::callCapturesBefore(), and llvm::InlineFunction().

template<typename FunTy = const Function, typename BBTy = const BasicBlock, typename ValTy = const Value, typename UserTy = const User, typename InstrTy = const Instruction, typename CallTy = const CallInst, typename InvokeTy = const InvokeInst, typename IterTy = User::const_op_iterator>
bool llvm::CallSiteBase< FunTy, BBTy, ValTy, UserTy, InstrTy, CallTy, InvokeTy, IterTy >::isByValOrInAllocaArgument ( unsigned  ArgNo) const
inline

Determine whether this argument is passed by value or in an alloca.

Definition at line 337 of file CallSite.h.

Referenced by isSafeToEliminateVarargsCast().

template<typename FunTy = const Function, typename BBTy = const BasicBlock, typename ValTy = const Value, typename UserTy = const User, typename InstrTy = const Instruction, typename CallTy = const CallInst, typename InvokeTy = const InvokeInst, typename IterTy = User::const_op_iterator>
bool llvm::CallSiteBase< FunTy, BBTy, ValTy, UserTy, InstrTy, CallTy, InvokeTy, IterTy >::isCall ( ) const
inline
template<typename FunTy = const Function, typename BBTy = const BasicBlock, typename ValTy = const Value, typename UserTy = const User, typename InstrTy = const Instruction, typename CallTy = const CallInst, typename InvokeTy = const InvokeInst, typename IterTy = User::const_op_iterator>
bool llvm::CallSiteBase< FunTy, BBTy, ValTy, UserTy, InstrTy, CallTy, InvokeTy, IterTy >::isCallee ( Value::const_user_iterator  UI) const
inline

isCallee - Determine whether the passed iterator points to the callee operand's Use.

Definition at line 112 of file CallSite.h.

Referenced by AddressIsTaken(), and llvm::CallSiteBase< Function, BasicBlock, Value, User, Instruction, CallInst, InvokeInst, User::op_iterator >::isCallee().

template<typename FunTy = const Function, typename BBTy = const BasicBlock, typename ValTy = const Value, typename UserTy = const User, typename InstrTy = const Instruction, typename CallTy = const CallInst, typename InvokeTy = const InvokeInst, typename IterTy = User::const_op_iterator>
bool llvm::CallSiteBase< FunTy, BBTy, ValTy, UserTy, InstrTy, CallTy, InvokeTy, IterTy >::isCallee ( const Use U) const
inline

Determine whether this Use is the callee operand's Use.

Definition at line 117 of file CallSite.h.

template<typename FunTy = const Function, typename BBTy = const BasicBlock, typename ValTy = const Value, typename UserTy = const User, typename InstrTy = const Instruction, typename CallTy = const CallInst, typename InvokeTy = const InvokeInst, typename IterTy = User::const_op_iterator>
bool llvm::CallSiteBase< FunTy, BBTy, ValTy, UserTy, InstrTy, CallTy, InvokeTy, IterTy >::isInAllocaArgument ( unsigned  ArgNo) const
inline

Determine whether this argument is passed in an alloca.

Definition at line 332 of file CallSite.h.

template<typename FunTy = const Function, typename BBTy = const BasicBlock, typename ValTy = const Value, typename UserTy = const User, typename InstrTy = const Instruction, typename CallTy = const CallInst, typename InvokeTy = const InvokeInst, typename IterTy = User::const_op_iterator>
bool llvm::CallSiteBase< FunTy, BBTy, ValTy, UserTy, InstrTy, CallTy, InvokeTy, IterTy >::isInlineAsm ( ) const
inline
template<typename FunTy = const Function, typename BBTy = const BasicBlock, typename ValTy = const Value, typename UserTy = const User, typename InstrTy = const Instruction, typename CallTy = const CallInst, typename InvokeTy = const InvokeInst, typename IterTy = User::const_op_iterator>
bool llvm::CallSiteBase< FunTy, BBTy, ValTy, UserTy, InstrTy, CallTy, InvokeTy, IterTy >::isInvoke ( ) const
inline
template<typename FunTy = const Function, typename BBTy = const BasicBlock, typename ValTy = const Value, typename UserTy = const User, typename InstrTy = const Instruction, typename CallTy = const CallInst, typename InvokeTy = const InvokeInst, typename IterTy = User::const_op_iterator>
bool llvm::CallSiteBase< FunTy, BBTy, ValTy, UserTy, InstrTy, CallTy, InvokeTy, IterTy >::isMustTailCall ( ) const
inline

Tests if this call site must be tail call optimized.

Only a CallInst can be tail call optimized.

Definition at line 174 of file CallSite.h.

Referenced by llvm::CallSiteBase< Function, BasicBlock, Value, User, Instruction, CallInst, InvokeInst, User::op_iterator >::isMustTailCall().

template<typename FunTy = const Function, typename BBTy = const BasicBlock, typename ValTy = const Value, typename UserTy = const User, typename InstrTy = const Instruction, typename CallTy = const CallInst, typename InvokeTy = const InvokeInst, typename IterTy = User::const_op_iterator>
bool llvm::CallSiteBase< FunTy, BBTy, ValTy, UserTy, InstrTy, CallTy, InvokeTy, IterTy >::isNoBuiltin ( ) const
inline

Return true if the call should not be treated as a call to a builtin.

Definition at line 265 of file CallSite.h.

Referenced by getCalledFunction(), and llvm::CallSiteBase< Function, BasicBlock, Value, User, Instruction, CallInst, InvokeInst, User::op_iterator >::isNoBuiltin().

template<typename FunTy = const Function, typename BBTy = const BasicBlock, typename ValTy = const Value, typename UserTy = const User, typename InstrTy = const Instruction, typename CallTy = const CallInst, typename InvokeTy = const InvokeInst, typename IterTy = User::const_op_iterator>
bool llvm::CallSiteBase< FunTy, BBTy, ValTy, UserTy, InstrTy, CallTy, InvokeTy, IterTy >::isNoInline ( ) const
inline
template<typename FunTy = const Function, typename BBTy = const BasicBlock, typename ValTy = const Value, typename UserTy = const User, typename InstrTy = const Instruction, typename CallTy = const CallInst, typename InvokeTy = const InvokeInst, typename IterTy = User::const_op_iterator>
bool llvm::CallSiteBase< FunTy, BBTy, ValTy, UserTy, InstrTy, CallTy, InvokeTy, IterTy >::isReturnNonNull ( ) const
inline

Return true if the return value is known to be not null.

This may be because it has the nonnull attribute, or because at least one byte is dereferenceable and the pointer is in addrspace(0).

Definition at line 360 of file CallSite.h.

template<typename FunTy = const Function, typename BBTy = const BasicBlock, typename ValTy = const Value, typename UserTy = const User, typename InstrTy = const Instruction, typename CallTy = const CallInst, typename InvokeTy = const InvokeInst, typename IterTy = User::const_op_iterator>
bool llvm::CallSiteBase< FunTy, BBTy, ValTy, UserTy, InstrTy, CallTy, InvokeTy, IterTy >::isTailCall ( ) const
inline

Tests if this call site is marked as a tail call.

Definition at line 179 of file CallSite.h.

Referenced by llvm::CallSiteBase< Function, BasicBlock, Value, User, Instruction, CallInst, InvokeInst, User::op_iterator >::isTailCall().

template<typename FunTy = const Function, typename BBTy = const BasicBlock, typename ValTy = const Value, typename UserTy = const User, typename InstrTy = const Instruction, typename CallTy = const CallInst, typename InvokeTy = const InvokeInst, typename IterTy = User::const_op_iterator>
void llvm::CallSiteBase< FunTy, BBTy, ValTy, UserTy, InstrTy, CallTy, InvokeTy, IterTy >::mutateFunctionType ( FunctionType Ty) const
inline
template<typename FunTy = const Function, typename BBTy = const BasicBlock, typename ValTy = const Value, typename UserTy = const User, typename InstrTy = const Instruction, typename CallTy = const CallInst, typename InvokeTy = const InvokeInst, typename IterTy = User::const_op_iterator>
bool llvm::CallSiteBase< FunTy, BBTy, ValTy, UserTy, InstrTy, CallTy, InvokeTy, IterTy >::onlyAccessesArgMemory ( ) const
inline

Determine if the call can access memmory only using pointers based on its arguments.

Definition at line 295 of file CallSite.h.

Referenced by llvm::CallSiteBase< Function, BasicBlock, Value, User, Instruction, CallInst, InvokeInst, User::op_iterator >::onlyAccessesArgMemory().

template<typename FunTy = const Function, typename BBTy = const BasicBlock, typename ValTy = const Value, typename UserTy = const User, typename InstrTy = const Instruction, typename CallTy = const CallInst, typename InvokeTy = const InvokeInst, typename IterTy = User::const_op_iterator>
bool llvm::CallSiteBase< FunTy, BBTy, ValTy, UserTy, InstrTy, CallTy, InvokeTy, IterTy >::onlyReadsMemory ( ) const
inline
template<typename FunTy = const Function, typename BBTy = const BasicBlock, typename ValTy = const Value, typename UserTy = const User, typename InstrTy = const Instruction, typename CallTy = const CallInst, typename InvokeTy = const InvokeInst, typename IterTy = User::const_op_iterator>
bool llvm::CallSiteBase< FunTy, BBTy, ValTy, UserTy, InstrTy, CallTy, InvokeTy, IterTy >::onlyReadsMemory ( unsigned  ArgNo) const
inline

Definition at line 352 of file CallSite.h.

template<typename FunTy = const Function, typename BBTy = const BasicBlock, typename ValTy = const Value, typename UserTy = const User, typename InstrTy = const Instruction, typename CallTy = const CallInst, typename InvokeTy = const InvokeInst, typename IterTy = User::const_op_iterator>
llvm::CallSiteBase< FunTy, BBTy, ValTy, UserTy, InstrTy, CallTy, InvokeTy, IterTy >::operator bool ( ) const
inlineexplicit

Definition at line 84 of file CallSite.h.

template<typename FunTy = const Function, typename BBTy = const BasicBlock, typename ValTy = const Value, typename UserTy = const User, typename InstrTy = const Instruction, typename CallTy = const CallInst, typename InvokeTy = const InvokeInst, typename IterTy = User::const_op_iterator>
InstrTy* llvm::CallSiteBase< FunTy, BBTy, ValTy, UserTy, InstrTy, CallTy, InvokeTy, IterTy >::operator-> ( ) const
inline

Definition at line 83 of file CallSite.h.

template<typename FunTy = const Function, typename BBTy = const BasicBlock, typename ValTy = const Value, typename UserTy = const User, typename InstrTy = const Instruction, typename CallTy = const CallInst, typename InvokeTy = const InvokeInst, typename IterTy = User::const_op_iterator>
bool llvm::CallSiteBase< FunTy, BBTy, ValTy, UserTy, InstrTy, CallTy, InvokeTy, IterTy >::paramHasAttr ( unsigned  i,
Attribute::AttrKind  A 
) const
inline

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

Definition at line 242 of file CallSite.h.

Referenced by computeBytesPoppedByCallee(), llvm::CallSiteBase< Function, BasicBlock, Value, User, Instruction, CallInst, InvokeInst, User::op_iterator >::doesNotAccessMemory(), llvm::CallSiteBase< Function, BasicBlock, Value, User, Instruction, CallInst, InvokeInst, User::op_iterator >::doesNotCapture(), llvm::CallSiteBase< Function, BasicBlock, Value, User, Instruction, CallInst, InvokeInst, User::op_iterator >::hasInAllocaArgument(), llvm::CallSiteBase< Function, BasicBlock, Value, User, Instruction, CallInst, InvokeInst, User::op_iterator >::isByValArgument(), llvm::CallSiteBase< Function, BasicBlock, Value, User, Instruction, CallInst, InvokeInst, User::op_iterator >::isByValOrInAllocaArgument(), llvm::CallSiteBase< Function, BasicBlock, Value, User, Instruction, CallInst, InvokeInst, User::op_iterator >::isInAllocaArgument(), llvm::isNoAliasCall(), llvm::CallSiteBase< Function, BasicBlock, Value, User, Instruction, CallInst, InvokeInst, User::op_iterator >::isReturnNonNull(), llvm::CallSiteBase< Function, BasicBlock, Value, User, Instruction, CallInst, InvokeInst, User::op_iterator >::onlyReadsMemory(), llvm::CallSiteBase< Function, BasicBlock, Value, User, Instruction, CallInst, InvokeInst, User::op_iterator >::paramHasAttr(), llvm::FastISel::ArgListEntry::setAttributes(), llvm::TargetLowering::ArgListEntry::setAttributes(), llvm::FastISel::CallLoweringInfo::setCallee(), and llvm::TargetLowering::CallLoweringInfo::setCallee().

template<typename FunTy = const Function, typename BBTy = const BasicBlock, typename ValTy = const Value, typename UserTy = const User, typename InstrTy = const Instruction, typename CallTy = const CallInst, typename InvokeTy = const InvokeInst, typename IterTy = User::const_op_iterator>
void llvm::CallSiteBase< FunTy, BBTy, ValTy, UserTy, InstrTy, CallTy, InvokeTy, IterTy >::setArgument ( unsigned  ArgNo,
Value newVal 
)
inline

Definition at line 124 of file CallSite.h.

Referenced by OptimizeAwayTrappingUsesOfValue().

template<typename FunTy = const Function, typename BBTy = const BasicBlock, typename ValTy = const Value, typename UserTy = const User, typename InstrTy = const Instruction, typename CallTy = const CallInst, typename InvokeTy = const InvokeInst, typename IterTy = User::const_op_iterator>
void llvm::CallSiteBase< FunTy, BBTy, ValTy, UserTy, InstrTy, CallTy, InvokeTy, IterTy >::setAttributes ( const AttributeSet PAL)
inline
template<typename FunTy = const Function, typename BBTy = const BasicBlock, typename ValTy = const Value, typename UserTy = const User, typename InstrTy = const Instruction, typename CallTy = const CallInst, typename InvokeTy = const InvokeInst, typename IterTy = User::const_op_iterator>
void llvm::CallSiteBase< FunTy, BBTy, ValTy, UserTy, InstrTy, CallTy, InvokeTy, IterTy >::setCalledFunction ( Value V)
inline

setCalledFunction - Set the callee to the specified value.

Definition at line 105 of file CallSite.h.

Referenced by OptimizeAwayTrappingUsesOfValue().

template<typename FunTy = const Function, typename BBTy = const BasicBlock, typename ValTy = const Value, typename UserTy = const User, typename InstrTy = const Instruction, typename CallTy = const CallInst, typename InvokeTy = const InvokeInst, typename IterTy = User::const_op_iterator>
void llvm::CallSiteBase< FunTy, BBTy, ValTy, UserTy, InstrTy, CallTy, InvokeTy, IterTy >::setCallingConv ( CallingConv::ID  CC)
inline
template<typename FunTy = const Function, typename BBTy = const BasicBlock, typename ValTy = const Value, typename UserTy = const User, typename InstrTy = const Instruction, typename CallTy = const CallInst, typename InvokeTy = const InvokeInst, typename IterTy = User::const_op_iterator>
void llvm::CallSiteBase< FunTy, BBTy, ValTy, UserTy, InstrTy, CallTy, InvokeTy, IterTy >::setDoesNotAccessMemory ( )
inline
template<typename FunTy = const Function, typename BBTy = const BasicBlock, typename ValTy = const Value, typename UserTy = const User, typename InstrTy = const Instruction, typename CallTy = const CallInst, typename InvokeTy = const InvokeInst, typename IterTy = User::const_op_iterator>
void llvm::CallSiteBase< FunTy, BBTy, ValTy, UserTy, InstrTy, CallTy, InvokeTy, IterTy >::setDoesNotReturn ( )
inline
template<typename FunTy = const Function, typename BBTy = const BasicBlock, typename ValTy = const Value, typename UserTy = const User, typename InstrTy = const Instruction, typename CallTy = const CallInst, typename InvokeTy = const InvokeInst, typename IterTy = User::const_op_iterator>
void llvm::CallSiteBase< FunTy, BBTy, ValTy, UserTy, InstrTy, CallTy, InvokeTy, IterTy >::setDoesNotThrow ( )
inline
template<typename FunTy = const Function, typename BBTy = const BasicBlock, typename ValTy = const Value, typename UserTy = const User, typename InstrTy = const Instruction, typename CallTy = const CallInst, typename InvokeTy = const InvokeInst, typename IterTy = User::const_op_iterator>
void llvm::CallSiteBase< FunTy, BBTy, ValTy, UserTy, InstrTy, CallTy, InvokeTy, IterTy >::setIsNoInline ( bool  Value = true)
inline
template<typename FunTy = const Function, typename BBTy = const BasicBlock, typename ValTy = const Value, typename UserTy = const User, typename InstrTy = const Instruction, typename CallTy = const CallInst, typename InvokeTy = const InvokeInst, typename IterTy = User::const_op_iterator>
void llvm::CallSiteBase< FunTy, BBTy, ValTy, UserTy, InstrTy, CallTy, InvokeTy, IterTy >::setOnlyAccessesArgMemory ( )
inline
template<typename FunTy = const Function, typename BBTy = const BasicBlock, typename ValTy = const Value, typename UserTy = const User, typename InstrTy = const Instruction, typename CallTy = const CallInst, typename InvokeTy = const InvokeInst, typename IterTy = User::const_op_iterator>
void llvm::CallSiteBase< FunTy, BBTy, ValTy, UserTy, InstrTy, CallTy, InvokeTy, IterTy >::setOnlyReadsMemory ( )
inline

Member Data Documentation

template<typename FunTy = const Function, typename BBTy = const BasicBlock, typename ValTy = const Value, typename UserTy = const User, typename InstrTy = const Instruction, typename CallTy = const CallInst, typename InvokeTy = const InvokeInst, typename IterTy = User::const_op_iterator>
PointerIntPair<InstrTy*, 1, bool> llvm::CallSiteBase< FunTy, BBTy, ValTy, UserTy, InstrTy, CallTy, InvokeTy, IterTy >::I
protected

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