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

#include "llvm/IR/CallSite.h"

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

Public Types

using arg_iterator = IterTy
 The type of iterator to use when looping over actual arguments at this call site. More...
 
using data_operand_iterator = IterTy
 Type of iterator to use when looping over data operands at this call site (see below). More...
 

Public Member Functions

bool isCall () const
 Return true if a CallInst is enclosed. More...
 
bool isInvoke () const
 Return true if a InvokeInst is enclosed. More...
 
bool isCallBr () const
 Return true if a CallBrInst 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
 Return the pointer to function that is being called. More...
 
FunTy * getCalledFunction () const
 Return the function being called if this is a direct call, otherwise return null (if it's an indirect call). More...
 
bool isIndirectCall () const
 Return true if the callsite is an indirect call. More...
 
void setCalledFunction (Value *V)
 Set the callee to the specified value. More...
 
Intrinsic::ID getIntrinsicID () const
 Return the intrinsic ID of the intrinsic called by this CallSite, or Intrinsic::not_intrinsic if the called function is not an intrinsic, or if this CallSite is an indirect call. More...
 
bool isCallee (Value::const_user_iterator UI) const
 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...
 
bool isArgOperand (Value::const_user_iterator UI) const
 Determine whether the passed iterator points to an argument operand. More...
 
bool isArgOperand (const Use *U) const
 Determine whether the passed use points to an argument operand. More...
 
bool isBundleOperand (Value::const_user_iterator UI) const
 Determine whether the passed iterator points to a bundle operand. More...
 
bool isBundleOperand (const Use *U) const
 Determine whether the passed use points to a bundle operand. More...
 
bool isDataOperand (Value::const_user_iterator UI) const
 Determine whether the passed iterator points to a data operand. More...
 
bool isDataOperand (const Use *U) const
 Determine whether the passed use points to a data operand. 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...
 
iterator_range< IterTy > args () const
 
bool arg_empty () const
 
unsigned arg_size () const
 
unsigned getDataOperandNo (Value::const_user_iterator UI) const
 Given a value use iterator, return the data operand corresponding to it. More...
 
unsigned getDataOperandNo (const Use *U) const
 Given a use for a data operand, get the data operand number that corresponds to it. More...
 
IterTy data_operands_begin () const
 data_operands_begin/data_operands_end - Return iterators iterating over the call / invoke / callbr argument list and bundle operands. More...
 
IterTy data_operands_end () const
 
iterator_range< IterTy > data_ops () const
 
bool data_operands_empty () const
 
unsigned data_operands_size () const
 
TypegetType () const
 Return the type of the instruction that generated this call site. More...
 
FunTy * getCaller () const
 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
 
ValTy * getReturnedArgOperand () const
 
bool isInlineAsm () const
 
CallingConv::ID getCallingConv () const
 Get the calling convention of the call. More...
 
void setCallingConv (CallingConv::ID CC)
 Set the calling convention of the call. More...
 
FunctionTypegetFunctionType () const
 
void mutateFunctionType (FunctionType *Ty) const
 
AttributeList getAttributes () const
 Get the parameter attributes of the call. More...
 
void setAttributes (AttributeList PAL)
 Set the parameter attributes of the call. More...
 
void addAttribute (unsigned i, Attribute::AttrKind Kind)
 
void addAttribute (unsigned i, Attribute Attr)
 
void addParamAttr (unsigned ArgNo, Attribute::AttrKind Kind)
 
void removeAttribute (unsigned i, Attribute::AttrKind Kind)
 
void removeAttribute (unsigned i, StringRef Kind)
 
void removeParamAttr (unsigned ArgNo, Attribute::AttrKind Kind)
 
bool hasFnAttr (Attribute::AttrKind Kind) const
 Return true if this function has the given attribute. More...
 
bool hasFnAttr (StringRef Kind) const
 Return true if this function has the given attribute. More...
 
bool hasRetAttr (Attribute::AttrKind Kind) const
 Return true if this return value has the given attribute. More...
 
bool paramHasAttr (unsigned ArgNo, Attribute::AttrKind Kind) const
 Return true if the call or the callee has the given attribute. More...
 
Attribute getAttribute (unsigned i, Attribute::AttrKind Kind) const
 
Attribute getAttribute (unsigned i, StringRef Kind) const
 
bool dataOperandHasImpliedAttr (unsigned i, Attribute::AttrKind Kind) const
 Return true if the data operand at index i directly or indirectly has the attribute A. More...
 
unsigned getRetAlignment () const
 Extract the alignment of the return value. More...
 
unsigned getParamAlignment (unsigned ArgNo) const
 Extract the alignment for a call or parameter (0=unknown). More...
 
uint64_t getDereferenceableBytes (unsigned i) const
 Extract the number of dereferenceable bytes for a call or parameter (0=unknown). More...
 
uint64_t getDereferenceableOrNullBytes (unsigned i) const
 Extract the number of dereferenceable_or_null bytes for a call or parameter (0=unknown). More...
 
bool returnDoesNotAlias () const
 Determine if the return value is marked with NoAlias attribute. More...
 
bool isNoBuiltin () const
 Return true if the call should not be treated as a call to a builtin. More...
 
bool isStrictFP () const
 Return true if the call requires strict floating point semantics. 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 doesNotReadMemory () const
 Determine if the call does not access or only writes memory. More...
 
void setDoesNotReadMemory ()
 
bool onlyAccessesArgMemory () const
 Determine if the call can access memmory only using pointers based on its arguments. More...
 
void setOnlyAccessesArgMemory ()
 
bool onlyAccessesInaccessibleMemory () const
 Determine if the function may only access memory that is inaccessible from the IR. More...
 
void setOnlyAccessesInaccessibleMemory ()
 
bool onlyAccessesInaccessibleMemOrArgMem () const
 Determine if the function may only access memory that is either inaccessible from the IR or pointed to by its arguments. More...
 
void setOnlyAccessesInaccessibleMemOrArgMem ()
 
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 cannotDuplicate () const
 Determine if the call can be duplicated. More...
 
void setCannotDuplicate ()
 
bool isConvergent () const
 Determine if the call is convergent. More...
 
void setConvergent ()
 
void setNotConvergent ()
 
unsigned getNumOperandBundles () const
 
bool hasOperandBundles () const
 
unsigned getBundleOperandsStartIndex () const
 
unsigned getBundleOperandsEndIndex () const
 
unsigned getNumTotalBundleOperands () const
 
OperandBundleUse getOperandBundleAt (unsigned Index) const
 
Optional< OperandBundleUsegetOperandBundle (StringRef Name) const
 
Optional< OperandBundleUsegetOperandBundle (uint32_t ID) const
 
unsigned countOperandBundlesOfType (uint32_t ID) const
 
bool isBundleOperand (unsigned Idx) const
 
IterTy arg_begin () const
 
IterTy arg_end () const
 
void getOperandBundlesAsDefs (SmallVectorImpl< OperandBundleDef > &Defs) const
 
bool doesNotCapture (unsigned OpNo) const
 Determine whether this data operand 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 OpNo) const
 
bool onlyReadsMemory (unsigned OpNo) const
 
bool doesNotReadMemory (unsigned OpNo) const
 
bool isReturnNonNull () const
 Return true if the return value is known to be not null. More...
 
bool hasArgument (const Value *Arg) const
 Returns true if this CallSite passes the given Value* as an argument to the called function. More...
 

Protected Member Functions

 CallSiteBase ()=default
 
 CallSiteBase (CallTy *CI)
 
 CallSiteBase (InvokeTy *II)
 
 CallSiteBase (CallBrTy *CBI)
 
 CallSiteBase (ValTy *II)
 

Protected Attributes

PointerIntPair< InstrTy *, 2, int > I
 

Detailed Description

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

Definition at line 58 of file CallSite.h.

Member Typedef Documentation

◆ arg_iterator

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

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

Definition at line 220 of file CallSite.h.

◆ data_operand_iterator

template<typename FunTy = const Function, typename BBTy = const BasicBlock, typename ValTy = const Value, typename UserTy = const User, typename UseTy = const Use, typename InstrTy = const Instruction, typename CallTy = const CallInst, typename InvokeTy = const InvokeInst, typename CallBrTy = const CallBrInst, typename IterTy = User::const_op_iterator>
using llvm::CallSiteBase< FunTy, BBTy, ValTy, UserTy, UseTy, InstrTy, CallTy, InvokeTy, CallBrTy, IterTy >::data_operand_iterator = IterTy

Type of iterator to use when looping over data operands at this call site (see below).

Definition at line 244 of file CallSite.h.

Constructor & Destructor Documentation

◆ CallSiteBase() [1/5]

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

◆ CallSiteBase() [2/5]

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

Definition at line 63 of file CallSite.h.

◆ CallSiteBase() [3/5]

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

Definition at line 64 of file CallSite.h.

◆ CallSiteBase() [4/5]

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

Definition at line 65 of file CallSite.h.

◆ CallSiteBase() [5/5]

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

Definition at line 66 of file CallSite.h.

Member Function Documentation

◆ addAttribute() [1/2]

template<typename FunTy = const Function, typename BBTy = const BasicBlock, typename ValTy = const Value, typename UserTy = const User, typename UseTy = const Use, typename InstrTy = const Instruction, typename CallTy = const CallInst, typename InvokeTy = const InvokeInst, typename CallBrTy = const CallBrInst, typename IterTy = User::const_op_iterator>
void llvm::CallSiteBase< FunTy, BBTy, ValTy, UserTy, UseTy, InstrTy, CallTy, InvokeTy, CallBrTy, IterTy >::addAttribute ( unsigned  i,
Attribute::AttrKind  Kind 
)
inline

Definition at line 345 of file CallSite.h.

Referenced by setInlineRemark().

◆ addAttribute() [2/2]

template<typename FunTy = const Function, typename BBTy = const BasicBlock, typename ValTy = const Value, typename UserTy = const User, typename UseTy = const Use, typename InstrTy = const Instruction, typename CallTy = const CallInst, typename InvokeTy = const InvokeInst, typename CallBrTy = const CallBrInst, typename IterTy = User::const_op_iterator>
void llvm::CallSiteBase< FunTy, BBTy, ValTy, UserTy, UseTy, InstrTy, CallTy, InvokeTy, CallBrTy, IterTy >::addAttribute ( unsigned  i,
Attribute  Attr 
)
inline

Definition at line 349 of file CallSite.h.

◆ addParamAttr()

template<typename FunTy = const Function, typename BBTy = const BasicBlock, typename ValTy = const Value, typename UserTy = const User, typename UseTy = const Use, typename InstrTy = const Instruction, typename CallTy = const CallInst, typename InvokeTy = const InvokeInst, typename CallBrTy = const CallBrInst, typename IterTy = User::const_op_iterator>
void llvm::CallSiteBase< FunTy, BBTy, ValTy, UserTy, UseTy, InstrTy, CallTy, InvokeTy, CallBrTy, IterTy >::addParamAttr ( unsigned  ArgNo,
Attribute::AttrKind  Kind 
)
inline

Definition at line 353 of file CallSite.h.

Referenced by addNonNullAttribute().

◆ arg_begin()

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

◆ arg_empty()

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

◆ arg_end()

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

◆ arg_size()

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

◆ args()

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

◆ cannotDuplicate()

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

Determine if the call can be duplicated.

Definition at line 521 of file CallSite.h.

◆ countOperandBundlesOfType()

template<typename FunTy = const Function, typename BBTy = const BasicBlock, typename ValTy = const Value, typename UserTy = const User, typename UseTy = const Use, typename InstrTy = const Instruction, typename CallTy = const CallInst, typename InvokeTy = const InvokeInst, typename CallBrTy = const CallBrInst, typename IterTy = User::const_op_iterator>
unsigned llvm::CallSiteBase< FunTy, BBTy, ValTy, UserTy, UseTy, InstrTy, CallTy, InvokeTy, CallBrTy, IterTy >::countOperandBundlesOfType ( uint32_t  ID) const
inline

Definition at line 571 of file CallSite.h.

◆ data_operands_begin()

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

data_operands_begin/data_operands_end - Return iterators iterating over the call / invoke / callbr argument list and bundle operands.

For invokes, this is the set of instruction operands except the invoke target and the two successor blocks; for calls this is the set of instruction operands except the call target; for callbrs the number of labels to skip must be determined first.

Definition at line 253 of file CallSite.h.

◆ data_operands_empty()

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

Definition at line 264 of file CallSite.h.

◆ data_operands_end()

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

Definition at line 257 of file CallSite.h.

◆ data_operands_size()

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

Definition at line 267 of file CallSite.h.

Referenced by determinePointerReadAttrs().

◆ data_ops()

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

Definition at line 261 of file CallSite.h.

◆ dataOperandHasImpliedAttr()

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

Return true if the data operand at index i directly or indirectly has the attribute A.

Normal call, invoke or callbr arguments have per operand attributes, as specified in the attribute set attached to this instruction, while operand bundle operands may have some attributes implied by the type of its containing operand bundle.

Definition at line 404 of file CallSite.h.

◆ doesNotAccessMemory() [1/2]

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

Determine if the call does not access memory.

Definition at line 454 of file CallSite.h.

Referenced by determinePointerReadAttrs(), and getSuccState().

◆ doesNotAccessMemory() [2/2]

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

Definition at line 623 of file CallSite.h.

◆ doesNotCapture()

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

Determine whether this data operand is not captured.

Definition at line 597 of file CallSite.h.

Referenced by canTRE(), determinePointerReadAttrs(), and moveUp().

◆ doesNotReadMemory() [1/2]

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

Determine if the call does not access or only writes memory.

Definition at line 470 of file CallSite.h.

◆ doesNotReadMemory() [2/2]

template<typename FunTy = const Function, typename BBTy = const BasicBlock, typename ValTy = const Value, typename UserTy = const User, typename UseTy = const Use, typename InstrTy = const Instruction, typename CallTy = const CallInst, typename InvokeTy = const InvokeInst, typename CallBrTy = const CallBrInst, typename IterTy = User::const_op_iterator>
bool llvm::CallSiteBase< FunTy, BBTy, ValTy, UserTy, UseTy, InstrTy, CallTy, InvokeTy, CallBrTy, IterTy >::doesNotReadMemory ( unsigned  OpNo) const
inline

Definition at line 632 of file CallSite.h.

◆ doesNotReturn()

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

Determine if the call cannot return.

Definition at line 505 of file CallSite.h.

Referenced by instrumentMaskedLoadOrStore(), llvm::FastISel::CallLoweringInfo::setCallee(), and llvm::TargetLowering::CallLoweringInfo::setCallee().

◆ doesNotThrow()

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

Determine if the call cannot unwind.

Definition at line 513 of file CallSite.h.

Referenced by getSuccState(), and llvm::InlineFunction().

◆ getArgOperand()

template<typename FunTy = const Function, typename BBTy = const BasicBlock, typename ValTy = const Value, typename UserTy = const User, typename UseTy = const Use, typename InstrTy = const Instruction, typename CallTy = const CallInst, typename InvokeTy = const InvokeInst, typename CallBrTy = const CallBrInst, typename IterTy = User::const_op_iterator>
ValTy* llvm::CallSiteBase< FunTy, BBTy, ValTy, UserTy, UseTy, InstrTy, CallTy, InvokeTy, CallBrTy, IterTy >::getArgOperand ( unsigned  i) const
inline

◆ getArgument()

template<typename FunTy = const Function, typename BBTy = const BasicBlock, typename ValTy = const Value, typename UserTy = const User, typename UseTy = const Use, typename InstrTy = const Instruction, typename CallTy = const CallInst, typename InvokeTy = const InvokeInst, typename CallBrTy = const CallBrInst, typename IterTy = User::const_op_iterator>
ValTy* llvm::CallSiteBase< FunTy, BBTy, ValTy, UserTy, UseTy, InstrTy, CallTy, InvokeTy, CallBrTy, IterTy >::getArgument ( unsigned  ArgNo) const
inline

◆ getArgumentNo() [1/2]

template<typename FunTy = const Function, typename BBTy = const BasicBlock, typename ValTy = const Value, typename UserTy = const User, typename UseTy = const Use, typename InstrTy = const Instruction, typename CallTy = const CallInst, typename InvokeTy = const InvokeInst, typename CallBrTy = const CallBrInst, typename IterTy = User::const_op_iterator>
unsigned llvm::CallSiteBase< FunTy, BBTy, ValTy, UserTy, UseTy, InstrTy, CallTy, InvokeTy, CallBrTy, 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 206 of file CallSite.h.

Referenced by llvm::AbstractCallSite::AbstractCallSite(), canTRE(), and llvm::AbstractCallSite::isCallee().

◆ getArgumentNo() [2/2]

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

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

Definition at line 212 of file CallSite.h.

◆ getAttribute() [1/2]

template<typename FunTy = const Function, typename BBTy = const BasicBlock, typename ValTy = const Value, typename UserTy = const User, typename UseTy = const Use, typename InstrTy = const Instruction, typename CallTy = const CallInst, typename InvokeTy = const InvokeInst, typename CallBrTy = const CallBrInst, typename IterTy = User::const_op_iterator>
Attribute llvm::CallSiteBase< FunTy, BBTy, ValTy, UserTy, UseTy, InstrTy, CallTy, InvokeTy, CallBrTy, IterTy >::getAttribute ( unsigned  i,
Attribute::AttrKind  Kind 
) const
inline

Definition at line 389 of file CallSite.h.

◆ getAttribute() [2/2]

template<typename FunTy = const Function, typename BBTy = const BasicBlock, typename ValTy = const Value, typename UserTy = const User, typename UseTy = const Use, typename InstrTy = const Instruction, typename CallTy = const CallInst, typename InvokeTy = const InvokeInst, typename CallBrTy = const CallBrInst, typename IterTy = User::const_op_iterator>
Attribute llvm::CallSiteBase< FunTy, BBTy, ValTy, UserTy, UseTy, InstrTy, CallTy, InvokeTy, CallBrTy, IterTy >::getAttribute ( unsigned  i,
StringRef  Kind 
) const
inline

Definition at line 393 of file CallSite.h.

◆ getAttributes()

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

◆ getBundleOperandsEndIndex()

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

Definition at line 551 of file CallSite.h.

◆ getBundleOperandsStartIndex()

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

Definition at line 547 of file CallSite.h.

◆ getCalledFunction()

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

◆ getCalledValue()

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

◆ getCaller()

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

◆ getCallingConv()

template<typename FunTy = const Function, typename BBTy = const BasicBlock, typename ValTy = const Value, typename UserTy = const User, typename UseTy = const Use, typename InstrTy = const Instruction, typename CallTy = const CallInst, typename InvokeTy = const InvokeInst, typename CallBrTy = const CallBrInst, typename IterTy = User::const_op_iterator>
CallingConv::ID llvm::CallSiteBase< FunTy, BBTy, ValTy, UserTy, UseTy, InstrTy, CallTy, InvokeTy, CallBrTy, IterTy >::getCallingConv ( ) const
inline

◆ getDataOperandNo() [1/2]

template<typename FunTy = const Function, typename BBTy = const BasicBlock, typename ValTy = const Value, typename UserTy = const User, typename UseTy = const Use, typename InstrTy = const Instruction, typename CallTy = const CallInst, typename InvokeTy = const InvokeInst, typename CallBrTy = const CallBrInst, typename IterTy = User::const_op_iterator>
unsigned llvm::CallSiteBase< FunTy, BBTy, ValTy, UserTy, UseTy, InstrTy, CallTy, InvokeTy, CallBrTy, IterTy >::getDataOperandNo ( Value::const_user_iterator  UI) const
inline

Given a value use iterator, return the data operand corresponding to it.

Iterator must actually correspond to a data operand.

Definition at line 230 of file CallSite.h.

Referenced by canTRE().

◆ getDataOperandNo() [2/2]

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

Given a use for a data operand, get the data operand number that corresponds to it.

Definition at line 236 of file CallSite.h.

◆ getDereferenceableBytes()

template<typename FunTy = const Function, typename BBTy = const BasicBlock, typename ValTy = const Value, typename UserTy = const User, typename UseTy = const Use, typename InstrTy = const Instruction, typename CallTy = const CallInst, typename InvokeTy = const InvokeInst, typename CallBrTy = const CallBrInst, typename IterTy = User::const_op_iterator>
uint64_t llvm::CallSiteBase< FunTy, BBTy, ValTy, UserTy, UseTy, InstrTy, CallTy, InvokeTy, CallBrTy, IterTy >::getDereferenceableBytes ( unsigned  i) const
inline

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

Definition at line 420 of file CallSite.h.

◆ getDereferenceableOrNullBytes()

template<typename FunTy = const Function, typename BBTy = const BasicBlock, typename ValTy = const Value, typename UserTy = const User, typename UseTy = const Use, typename InstrTy = const Instruction, typename CallTy = const CallInst, typename InvokeTy = const InvokeInst, typename CallBrTy = const CallBrInst, typename IterTy = User::const_op_iterator>
uint64_t llvm::CallSiteBase< FunTy, BBTy, ValTy, UserTy, UseTy, InstrTy, CallTy, InvokeTy, CallBrTy, IterTy >::getDereferenceableOrNullBytes ( unsigned  i) const
inline

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

Definition at line 426 of file CallSite.h.

◆ getFunctionType()

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

◆ getInstruction()

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

Definition at line 96 of file CallSite.h.

Referenced by AddAlignmentAssumptions(), addStackMapLiveVars(), canSplitCallSite(), canTRE(), CloneAliasScopeMetadata(), llvm::createArgumentPromotionPass(), llvm::createDeadArgHackingPass(), llvm::createObjCARCOptPass(), createRetBitCast(), doPromotion(), emitSignedInt64(), llvm::Evaluator::EvaluateBlock(), llvm::Interpreter::exitCalled(), findMatchingInlineAsmOperand(), getCalledFunction(), llvm::AbstractCallSite::getInstruction(), getMOVL(), llvm::NVPTXTargetLowering::getPrototype(), getRetComponentType(), getSuccState(), hasProfileData(), hasUndefContents(), INITIALIZE_PASS(), llvm::InlineFunction(), instrumentMaskedLoadOrStore(), llvm::ProfileSummaryInfo::isColdCallSite(), isColdCallSite(), llvm::DenseMapInfo< VTableSlot >::isEqual(), llvm::ProfileSummaryInfo::isHotCallSite(), llvm::isInlineViable(), llvm::isInTailCallPosition(), llvm::isLegalToPromote(), isPredicatedOnPHI(), isValidCandidateForColdCC(), llvm::HexagonTargetLowering::LowerCall(), llvm::SITargetLowering::LowerCall(), llvm::FastISel::lowerCallTo(), llvm::SelectionDAGBuilder::LowerCallTo(), llvm::SelectionDAGBuilder::lowerInvokable(), llvm::CallSite::operator<(), processCallSite(), llvm::promoteCall(), PropagateParallelLoopAccessMetadata(), RedzoneSizeForScale(), llvm::SyntheticCountsPropagation::run(), llvm::CGProfilePass::run(), llvm::WholeProgramDevirtPass::run(), llvm::TargetLoweringBase::ArgListEntry::setAttributes(), llvm::FastISel::CallLoweringInfo::setCallee(), llvm::TargetLowering::CallLoweringInfo::setCallee(), shouldInline(), shouldSplitOnPHIPredicatedArgument(), shouldSplitOnPredicatedArgument(), splitCallSite(), TypeSizeToSizeIndex(), UpdateCallGraphAfterInlining(), versionCallSite(), llvm::Interpreter::visitCallSite(), llvm::ObjectSizeOffsetVisitor::visitCallSite(), llvm::InstVisitor< ObjectSizeOffsetVisitor, SizeOffsetType >::visitCallSite(), llvm::PtrUseVisitor< SliceBuilder >::visitCallSite(), and llvm::ObjectSizeOffsetEvaluator::visitCallSite().

◆ getIntrinsicID()

template<typename FunTy = const Function, typename BBTy = const BasicBlock, typename ValTy = const Value, typename UserTy = const User, typename UseTy = const Use, typename InstrTy = const Instruction, typename CallTy = const CallInst, typename InvokeTy = const InvokeInst, typename CallBrTy = const CallBrInst, typename IterTy = User::const_op_iterator>
Intrinsic::ID llvm::CallSiteBase< FunTy, BBTy, ValTy, UserTy, UseTy, InstrTy, CallTy, InvokeTy, CallBrTy, IterTy >::getIntrinsicID ( ) const
inline

Return the intrinsic ID of the intrinsic called by this CallSite, or Intrinsic::not_intrinsic if the called function is not an intrinsic, or if this CallSite is an indirect call.

Definition at line 141 of file CallSite.h.

Referenced by setCannotDuplicate().

◆ getNumArgOperands()

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

◆ getNumOperandBundles()

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

◆ getNumTotalBundleOperands()

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

Definition at line 555 of file CallSite.h.

◆ getOperandBundle() [1/2]

template<typename FunTy = const Function, typename BBTy = const BasicBlock, typename ValTy = const Value, typename UserTy = const User, typename UseTy = const Use, typename InstrTy = const Instruction, typename CallTy = const CallInst, typename InvokeTy = const InvokeInst, typename CallBrTy = const CallBrInst, typename IterTy = User::const_op_iterator>
Optional<OperandBundleUse> llvm::CallSiteBase< FunTy, BBTy, ValTy, UserTy, UseTy, InstrTy, CallTy, InvokeTy, CallBrTy, IterTy >::getOperandBundle ( StringRef  Name) const
inline

Definition at line 563 of file CallSite.h.

Referenced by llvm::InlineFunction(), and processCallSite().

◆ getOperandBundle() [2/2]

template<typename FunTy = const Function, typename BBTy = const BasicBlock, typename ValTy = const Value, typename UserTy = const User, typename UseTy = const Use, typename InstrTy = const Instruction, typename CallTy = const CallInst, typename InvokeTy = const InvokeInst, typename CallBrTy = const CallBrInst, typename IterTy = User::const_op_iterator>
Optional<OperandBundleUse> llvm::CallSiteBase< FunTy, BBTy, ValTy, UserTy, UseTy, InstrTy, CallTy, InvokeTy, CallBrTy, IterTy >::getOperandBundle ( uint32_t  ID) const
inline

Definition at line 567 of file CallSite.h.

◆ getOperandBundleAt()

template<typename FunTy = const Function, typename BBTy = const BasicBlock, typename ValTy = const Value, typename UserTy = const User, typename UseTy = const Use, typename InstrTy = const Instruction, typename CallTy = const CallInst, typename InvokeTy = const InvokeInst, typename CallBrTy = const CallBrInst, typename IterTy = User::const_op_iterator>
OperandBundleUse llvm::CallSiteBase< FunTy, BBTy, ValTy, UserTy, UseTy, InstrTy, CallTy, InvokeTy, CallBrTy, IterTy >::getOperandBundleAt ( unsigned  Index) const
inline

◆ getOperandBundlesAsDefs()

template<typename FunTy = const Function, typename BBTy = const BasicBlock, typename ValTy = const Value, typename UserTy = const User, typename UseTy = const Use, typename InstrTy = const Instruction, typename CallTy = const CallInst, typename InvokeTy = const InvokeInst, typename CallBrTy = const CallBrInst, typename IterTy = User::const_op_iterator>
void llvm::CallSiteBase< FunTy, BBTy, ValTy, UserTy, UseTy, InstrTy, CallTy, InvokeTy, CallBrTy, IterTy >::getOperandBundlesAsDefs ( SmallVectorImpl< OperandBundleDef > &  Defs) const
inline

◆ getParamAlignment()

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

Extract the alignment for a call or parameter (0=unknown).

Definition at line 414 of file CallSite.h.

Referenced by hasUndefContents().

◆ getParent()

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

◆ getRetAlignment()

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

Extract the alignment of the return value.

Definition at line 409 of file CallSite.h.

◆ getReturnedArgOperand()

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

Definition at line 311 of file CallSite.h.

Referenced by computeKnownBitsFromOperator(), and getRangeForAffineARHelper().

◆ getType()

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

◆ hasArgument()

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

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

Definition at line 653 of file CallSite.h.

◆ hasFnAttr() [1/2]

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

Return true if this function has the given attribute.

Definition at line 370 of file CallSite.h.

Referenced by llvm::createAlwaysInlinerLegacyPass(), llvm::getInlineCost(), hasReturnsTwiceAttr(), and isWrapperOnlyCall().

◆ hasFnAttr() [2/2]

template<typename FunTy = const Function, typename BBTy = const BasicBlock, typename ValTy = const Value, typename UserTy = const User, typename UseTy = const Use, typename InstrTy = const Instruction, typename CallTy = const CallInst, typename InvokeTy = const InvokeInst, typename CallBrTy = const CallBrInst, typename IterTy = User::const_op_iterator>
bool llvm::CallSiteBase< FunTy, BBTy, ValTy, UserTy, UseTy, InstrTy, CallTy, InvokeTy, CallBrTy, IterTy >::hasFnAttr ( StringRef  Kind) const
inline

Return true if this function has the given attribute.

Definition at line 375 of file CallSite.h.

◆ hasInAllocaArgument()

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

Determine if there are is an inalloca argument.

Only the last argument can have the inalloca attribute.

Definition at line 619 of file CallSite.h.

◆ hasOperandBundles()

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

Definition at line 543 of file CallSite.h.

Referenced by llvm::InlineFunction().

◆ hasRetAttr()

template<typename FunTy = const Function, typename BBTy = const BasicBlock, typename ValTy = const Value, typename UserTy = const User, typename UseTy = const Use, typename InstrTy = const Instruction, typename CallTy = const CallInst, typename InvokeTy = const InvokeInst, typename CallBrTy = const CallBrInst, typename IterTy = User::const_op_iterator>
bool llvm::CallSiteBase< FunTy, BBTy, ValTy, UserTy, UseTy, InstrTy, CallTy, InvokeTy, CallBrTy, IterTy >::hasRetAttr ( Attribute::AttrKind  Kind) const
inline

Return true if this return value has the given attribute.

Definition at line 380 of file CallSite.h.

Referenced by hasNoAliasAttr(), isFunctionMallocLike(), llvm::FastISel::CallLoweringInfo::setCallee(), and llvm::TargetLowering::CallLoweringInfo::setCallee().

◆ isArgOperand() [1/2]

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

Determine whether the passed iterator points to an argument operand.

Definition at line 158 of file CallSite.h.

Referenced by canTRE().

◆ isArgOperand() [2/2]

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

Determine whether the passed use points to an argument operand.

Definition at line 163 of file CallSite.h.

◆ isBundleOperand() [1/3]

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

Determine whether the passed iterator points to a bundle operand.

Definition at line 169 of file CallSite.h.

Referenced by llvm::canReplaceOperandWithVariable().

◆ isBundleOperand() [2/3]

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

Determine whether the passed use points to a bundle operand.

Definition at line 174 of file CallSite.h.

◆ isBundleOperand() [3/3]

template<typename FunTy = const Function, typename BBTy = const BasicBlock, typename ValTy = const Value, typename UserTy = const User, typename UseTy = const Use, typename InstrTy = const Instruction, typename CallTy = const CallInst, typename InvokeTy = const InvokeInst, typename CallBrTy = const CallBrInst, typename IterTy = User::const_op_iterator>
bool llvm::CallSiteBase< FunTy, BBTy, ValTy, UserTy, UseTy, InstrTy, CallTy, InvokeTy, CallBrTy, IterTy >::isBundleOperand ( unsigned  Idx) const
inline

Definition at line 575 of file CallSite.h.

◆ isByValArgument()

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

Determine whether this argument is passed by value.

Definition at line 602 of file CallSite.h.

Referenced by canTRE(), llvm::getCallsiteCost(), llvm::getInlineCost(), hasUndefContents(), and llvm::InlineFunction().

◆ isByValOrInAllocaArgument()

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

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

Definition at line 612 of file CallSite.h.

◆ isCall()

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

◆ isCallBr()

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

Return true if a CallBrInst is enclosed.

Definition at line 94 of file CallSite.h.

Referenced by llvm::InlineFunction().

◆ isCallee() [1/2]

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

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

Definition at line 150 of file CallSite.h.

Referenced by llvm::AbstractCallSite::AbstractCallSite(), findRefEdges(), llvm::AbstractCallSite::isCallee(), and isDirectCall().

◆ isCallee() [2/2]

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

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

Definition at line 155 of file CallSite.h.

◆ isConvergent()

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

Determine if the call is convergent.

Definition at line 529 of file CallSite.h.

Referenced by findMatchingInlineAsmOperand(), InstrBreaksNonConvergent(), and llvm::SelectionDAGBuilder::LowerCallTo().

◆ isDataOperand() [1/2]

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

Determine whether the passed iterator points to a data operand.

Definition at line 184 of file CallSite.h.

Referenced by canTRE().

◆ isDataOperand() [2/2]

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

Determine whether the passed use points to a data operand.

Definition at line 189 of file CallSite.h.

◆ isInAllocaArgument()

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

Determine whether this argument is passed in an alloca.

Definition at line 607 of file CallSite.h.

◆ isIndirectCall()

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

Return true if the callsite is an indirect call.

Definition at line 116 of file CallSite.h.

Referenced by llvm::AbstractCallSite::isDirectCall(), llvm::AbstractCallSite::isIndirectCall(), and llvm::CGProfilePass::run().

◆ isInlineAsm()

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

Definition at line 315 of file CallSite.h.

◆ isInvoke()

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

Return true if a InvokeInst is enclosed.

!I.getInt() may also signify a NULL instruction pointer, so check that.

Definition at line 91 of file CallSite.h.

Referenced by getMOVL(), llvm::TargetLowering::CallLoweringInfo::setCallee(), and TypeSizeToSizeIndex().

◆ isMustTailCall()

template<typename FunTy = const Function, typename BBTy = const BasicBlock, typename ValTy = const Value, typename UserTy = const User, typename UseTy = const Use, typename InstrTy = const Instruction, typename CallTy = const CallInst, typename InvokeTy = const InvokeInst, typename CallBrTy = const CallBrInst, typename IterTy = User::const_op_iterator>
bool llvm::CallSiteBase< FunTy, BBTy, ValTy, UserTy, UseTy, InstrTy, CallTy, InvokeTy, CallBrTy, 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 279 of file CallSite.h.

Referenced by llvm::ARMTargetLowering::CCAssignFnForReturn(), doCallSiteSplitting(), getMOVL(), llvm::SITargetLowering::LowerCall(), PrepareCall(), and splitCallSite().

◆ isNoBuiltin()

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

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

Definition at line 436 of file CallSite.h.

Referenced by getCalledFunction(), and llvm::TargetLibraryInfo::getLibFunc().

◆ isNoInline()

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

Return true if the call should not be inlined.

Definition at line 446 of file CallSite.h.

Referenced by llvm::getInlineCost(), and isWrapperOnlyCall().

◆ isReturnNonNull()

template<typename FunTy = const Function, typename BBTy = const BasicBlock, typename ValTy = const Value, typename UserTy = const User, typename UseTy = const Use, typename InstrTy = const Instruction, typename CallTy = const CallInst, typename InvokeTy = const InvokeInst, typename CallBrTy = const CallBrInst, typename IterTy = User::const_op_iterator>
bool llvm::CallSiteBase< FunTy, BBTy, ValTy, UserTy, UseTy, InstrTy, CallTy, InvokeTy, CallBrTy, 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 640 of file CallSite.h.

◆ isStrictFP()

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

Return true if the call requires strict floating point semantics.

Definition at line 441 of file CallSite.h.

◆ isTailCall()

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

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

Definition at line 284 of file CallSite.h.

◆ mutateFunctionType()

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

Definition at line 332 of file CallSite.h.

Referenced by llvm::promoteCall().

◆ onlyAccessesArgMemory()

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

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

Definition at line 479 of file CallSite.h.

◆ onlyAccessesInaccessibleMemOrArgMem()

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

Determine if the function may only access memory that is either inaccessible from the IR or pointed to by its arguments.

Definition at line 497 of file CallSite.h.

◆ onlyAccessesInaccessibleMemory()

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

Determine if the function may only access memory that is inaccessible from the IR.

Definition at line 488 of file CallSite.h.

◆ onlyReadsMemory() [1/2]

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

Determine if the call does not access or only reads memory.

Definition at line 462 of file CallSite.h.

Referenced by canTRE(), determinePointerReadAttrs(), llvm::objcarc::GetCallSiteClass(), and llvm::getIntrinsicForCallSite().

◆ onlyReadsMemory() [2/2]

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

Definition at line 627 of file CallSite.h.

◆ operator bool()

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

Definition at line 98 of file CallSite.h.

◆ operator->()

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

Definition at line 97 of file CallSite.h.

◆ paramHasAttr()

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

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

Definition at line 385 of file CallSite.h.

Referenced by computeBytesPoppedByCalleeForSRet(), getComparePred(), INITIALIZE_PASS(), isCondRelevantToAnyCallArgument(), and processCallSite().

◆ removeAttribute() [1/2]

template<typename FunTy = const Function, typename BBTy = const BasicBlock, typename ValTy = const Value, typename UserTy = const User, typename UseTy = const Use, typename InstrTy = const Instruction, typename CallTy = const CallInst, typename InvokeTy = const InvokeInst, typename CallBrTy = const CallBrInst, typename IterTy = User::const_op_iterator>
void llvm::CallSiteBase< FunTy, BBTy, ValTy, UserTy, UseTy, InstrTy, CallTy, InvokeTy, CallBrTy, IterTy >::removeAttribute ( unsigned  i,
Attribute::AttrKind  Kind 
)
inline

Definition at line 357 of file CallSite.h.

◆ removeAttribute() [2/2]

template<typename FunTy = const Function, typename BBTy = const BasicBlock, typename ValTy = const Value, typename UserTy = const User, typename UseTy = const Use, typename InstrTy = const Instruction, typename CallTy = const CallInst, typename InvokeTy = const InvokeInst, typename CallBrTy = const CallBrInst, typename IterTy = User::const_op_iterator>
void llvm::CallSiteBase< FunTy, BBTy, ValTy, UserTy, UseTy, InstrTy, CallTy, InvokeTy, CallBrTy, IterTy >::removeAttribute ( unsigned  i,
StringRef  Kind 
)
inline

Definition at line 361 of file CallSite.h.

◆ removeParamAttr()

template<typename FunTy = const Function, typename BBTy = const BasicBlock, typename ValTy = const Value, typename UserTy = const User, typename UseTy = const Use, typename InstrTy = const Instruction, typename CallTy = const CallInst, typename InvokeTy = const InvokeInst, typename CallBrTy = const CallBrInst, typename IterTy = User::const_op_iterator>
void llvm::CallSiteBase< FunTy, BBTy, ValTy, UserTy, UseTy, InstrTy, CallTy, InvokeTy, CallBrTy, IterTy >::removeParamAttr ( unsigned  ArgNo,
Attribute::AttrKind  Kind 
)
inline

Definition at line 365 of file CallSite.h.

Referenced by promoteArguments(), and setConstantInArgument().

◆ returnDoesNotAlias()

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

Determine if the return value is marked with NoAlias attribute.

Definition at line 431 of file CallSite.h.

◆ setArgument()

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

◆ setAttributes()

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

◆ setCalledFunction()

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

Set the callee to the specified value.

Unlike the function of the same name on CallBase, does not modify the type!

Definition at line 130 of file CallSite.h.

Referenced by INITIALIZE_PASS(), and OptimizeAwayTrappingUsesOfValue().

◆ setCallingConv()

template<typename FunTy = const Function, typename BBTy = const BasicBlock, typename ValTy = const Value, typename UserTy = const User, typename UseTy = const Use, typename InstrTy = const Instruction, typename CallTy = const CallInst, typename InvokeTy = const InvokeInst, typename CallBrTy = const CallBrInst, typename IterTy = User::const_op_iterator>
void llvm::CallSiteBase< FunTy, BBTy, ValTy, UserTy, UseTy, InstrTy, CallTy, InvokeTy, CallBrTy, IterTy >::setCallingConv ( CallingConv::ID  CC)
inline

◆ setCannotDuplicate()

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

Definition at line 524 of file CallSite.h.

Referenced by setCannotDuplicate().

◆ setConvergent()

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

Definition at line 532 of file CallSite.h.

◆ setDoesNotAccessMemory()

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

Definition at line 457 of file CallSite.h.

◆ setDoesNotReadMemory()

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

Definition at line 473 of file CallSite.h.

◆ setDoesNotReturn()

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

Definition at line 508 of file CallSite.h.

◆ setDoesNotThrow()

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

Definition at line 516 of file CallSite.h.

◆ setIsNoInline()

template<typename FunTy = const Function, typename BBTy = const BasicBlock, typename ValTy = const Value, typename UserTy = const User, typename UseTy = const Use, typename InstrTy = const Instruction, typename CallTy = const CallInst, typename InvokeTy = const InvokeInst, typename CallBrTy = const CallBrInst, typename IterTy = User::const_op_iterator>
void llvm::CallSiteBase< FunTy, BBTy, ValTy, UserTy, UseTy, InstrTy, CallTy, InvokeTy, CallBrTy, IterTy >::setIsNoInline ( bool  Value = true)
inline

Definition at line 449 of file CallSite.h.

◆ setNotConvergent()

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

Definition at line 535 of file CallSite.h.

◆ setOnlyAccessesArgMemory()

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

Definition at line 482 of file CallSite.h.

◆ setOnlyAccessesInaccessibleMemOrArgMem()

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

Definition at line 500 of file CallSite.h.

◆ setOnlyAccessesInaccessibleMemory()

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

Definition at line 491 of file CallSite.h.

◆ setOnlyReadsMemory()

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

Definition at line 465 of file CallSite.h.

Member Data Documentation

◆ I

template<typename FunTy = const Function, typename BBTy = const BasicBlock, typename ValTy = const Value, typename UserTy = const User, typename UseTy = const Use, typename InstrTy = const Instruction, typename CallTy = const CallInst, typename InvokeTy = const InvokeInst, typename CallBrTy = const CallBrInst, typename IterTy = User::const_op_iterator>
PointerIntPair<InstrTy *, 2, int> llvm::CallSiteBase< FunTy, BBTy, ValTy, UserTy, UseTy, InstrTy, CallTy, InvokeTy, CallBrTy, IterTy >::I
protected

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