LLVM API Documentation

Public Types | Public Member Functions | Static Protected Member Functions | Protected Attributes
llvm::CallSiteBase< FunTy, ValTy, UserTy, InstrTy, CallTy, InvokeTy, IterTy > Class Template Reference

#include <CallSite.h>

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

List of all members.

Public Types

typedef IterTy arg_iterator

Public Member Functions

 CallSiteBase ()
 CallSiteBase (CallTy *CI)
 CallSiteBase (InvokeTy *II)
 CallSiteBase (ValTy *II)
bool isCall () const
bool isInvoke () const
InstrTy * getInstruction () const
InstrTy * operator-> () const
LLVM_EXPLICIT operator bool () const
ValTy * getCalledValue () const
FunTy * getCalledFunction () const
void setCalledFunction (Value *V)
bool isCallee (Value::const_user_iterator UI) const
bool isCallee (const Use *U) const
 Determine whether this Use is the callee operand's Use.
ValTy * getArgument (unsigned ArgNo) const
void setArgument (unsigned ArgNo, Value *newVal)
unsigned getArgumentNo (Value::const_user_iterator I) const
unsigned getArgumentNo (const Use *U) const
IterTy arg_begin () const
IterTy arg_end () const
bool arg_empty () const
unsigned arg_size () const
TypegetType () const
FunTy * getCaller () const
bool isMustTailCall () const
 Tests if this call site must be tail call optimized. Only a CallInst can be tail call optimized.
bool isTailCall () const
 Tests if this call site is marked as a tail call.
CallingConv::ID getCallingConv () const
void setCallingConv (CallingConv::ID CC)
const AttributeSetgetAttributes () const
void setAttributes (const AttributeSet &PAL)
bool hasFnAttr (Attribute::AttrKind A) const
 Return true if this function has the given attribute.
bool paramHasAttr (unsigned i, Attribute::AttrKind A) const
 Return true if the call or the callee has the given attribute.
uint16_t getParamAlignment (uint16_t i) const
 Extract the alignment for a call or parameter (0=unknown).
uint64_t getDereferenceableBytes (uint16_t i) const
 Extract the number of dereferenceable bytes for a call or parameter (0=unknown).
bool isNoBuiltin () const
 Return true if the call should not be treated as a call to a builtin.
bool isNoInline () const
 Return true if the call should not be inlined.
void setIsNoInline (bool Value=true)
bool doesNotAccessMemory () const
 Determine if the call does not access memory.
void setDoesNotAccessMemory ()
bool onlyReadsMemory () const
 Determine if the call does not access or only reads memory.
void setOnlyReadsMemory ()
bool doesNotReturn () const
 Determine if the call cannot return.
void setDoesNotReturn ()
bool doesNotThrow () const
 Determine if the call cannot unwind.
void setDoesNotThrow ()
bool doesNotCapture (unsigned ArgNo) const
 Determine whether this argument is not captured.
bool isByValArgument (unsigned ArgNo) const
 Determine whether this argument is passed by value.
bool isInAllocaArgument (unsigned ArgNo) const
 Determine whether this argument is passed in an alloca.
bool isByValOrInAllocaArgument (unsigned ArgNo) const
 Determine whether this argument is passed by value or in an alloca.
bool hasInAllocaArgument () const
 Determine if there are is an inalloca argument. Only the last argument can have the inalloca attribute.
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. This may be because it has the nonnull attribute, or because at least one byte is dereferenceable and the pointer is in addrspace(0).
bool hasArgument (const Value *Arg) const

Static Protected Member Functions

static CallSiteBase get (ValTy *V)

Protected Attributes

PointerIntPair< InstrTy
*, 1, bool
I

Detailed Description

template<typename FunTy = const Function, 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, ValTy, UserTy, InstrTy, CallTy, InvokeTy, IterTy >

Definition at line 46 of file CallSite.h.


Member Typedef Documentation

template<typename FunTy = const Function, 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, 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 141 of file CallSite.h.


Constructor & Destructor Documentation

template<typename FunTy = const Function, 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, ValTy, UserTy, InstrTy, CallTy, InvokeTy, IterTy >::CallSiteBase ( ) [inline]
template<typename FunTy = const Function, 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, ValTy, UserTy, InstrTy, CallTy, InvokeTy, IterTy >::CallSiteBase ( CallTy *  CI) [inline]

Definition at line 51 of file CallSite.h.

template<typename FunTy = const Function, 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, ValTy, UserTy, InstrTy, CallTy, InvokeTy, IterTy >::CallSiteBase ( InvokeTy *  II) [inline]

Definition at line 52 of file CallSite.h.

template<typename FunTy = const Function, 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, ValTy, UserTy, InstrTy, CallTy, InvokeTy, IterTy >::CallSiteBase ( ValTy *  II) [inline]

Definition at line 53 of file CallSite.h.


Member Function Documentation

template<typename FunTy = const Function, 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, ValTy, UserTy, InstrTy, CallTy, InvokeTy, IterTy >::arg_begin ( ) const [inline]
template<typename FunTy = const Function, 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, ValTy, UserTy, InstrTy, CallTy, InvokeTy, IterTy >::arg_empty ( ) const [inline]

Definition at line 152 of file CallSite.h.

template<typename FunTy = const Function, 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, ValTy, UserTy, InstrTy, CallTy, InvokeTy, IterTy >::arg_end ( ) const [inline]
template<typename FunTy = const Function, 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, ValTy, UserTy, InstrTy, CallTy, InvokeTy, IterTy >::arg_size ( ) const [inline]
template<typename FunTy = const Function, 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, ValTy, UserTy, InstrTy, CallTy, InvokeTy, IterTy >::doesNotAccessMemory ( ) const [inline]
template<typename FunTy = const Function, 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, ValTy, UserTy, InstrTy, CallTy, InvokeTy, IterTy >::doesNotAccessMemory ( unsigned  ArgNo) const [inline]

Definition at line 302 of file CallSite.h.

template<typename FunTy = const Function, 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, ValTy, UserTy, InstrTy, CallTy, InvokeTy, IterTy >::doesNotCapture ( unsigned  ArgNo) const [inline]

Determine whether this argument is not captured.

Definition at line 276 of file CallSite.h.

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

template<typename FunTy = const Function, 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, ValTy, UserTy, InstrTy, CallTy, InvokeTy, IterTy >::doesNotReturn ( ) const [inline]
template<typename FunTy = const Function, 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, ValTy, UserTy, InstrTy, CallTy, InvokeTy, IterTy >::doesNotThrow ( ) const [inline]
template<typename FunTy = const Function, 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>
static CallSiteBase llvm::CallSiteBase< FunTy, ValTy, UserTy, InstrTy, CallTy, InvokeTy, IterTy >::get ( ValTy *  V) [inline, static, protected]

CallSiteBase::get - This static method is sort of like a constructor. It will create an appropriate call site for a Call or Invoke instruction, but it can also create a null initialized CallSiteBase object for something which is NOT a call site.

Definition at line 60 of file CallSite.h.

template<typename FunTy = const Function, 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, ValTy, UserTy, InstrTy, CallTy, InvokeTy, IterTy >::getArgument ( unsigned  ArgNo) const [inline]
template<typename FunTy = const Function, 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, 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 126 of file CallSite.h.

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

template<typename FunTy = const Function, 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, 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 132 of file CallSite.h.

template<typename FunTy = const Function, 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, ValTy, UserTy, InstrTy, CallTy, InvokeTy, IterTy >::getAttributes ( ) const [inline]
template<typename FunTy = const Function, 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, ValTy, UserTy, InstrTy, CallTy, InvokeTy, IterTy >::getCalledFunction ( ) const [inline]
template<typename FunTy = const Function, 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, ValTy, UserTy, InstrTy, CallTy, InvokeTy, IterTy >::getCalledValue ( ) const [inline]
template<typename FunTy = const Function, 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, ValTy, UserTy, InstrTy, CallTy, InvokeTy, IterTy >::getCaller ( ) const [inline]

getCaller - Return the caller function for this call site

Definition at line 161 of file CallSite.h.

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

template<typename FunTy = const Function, 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, ValTy, UserTy, InstrTy, CallTy, InvokeTy, IterTy >::getCallingConv ( ) const [inline]
template<typename FunTy = const Function, 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, ValTy, UserTy, InstrTy, CallTy, InvokeTy, IterTy >::getDereferenceableBytes ( uint16_t  i) const [inline]
template<typename FunTy = const Function, 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, ValTy, UserTy, InstrTy, CallTy, InvokeTy, IterTy >::getInstruction ( ) const [inline]

Definition at line 79 of file CallSite.h.

Referenced by llvm::CallGraphNode::addCalledFunction(), llvm::CallSiteBase< Function, Value, User, Instruction, CallInst, InvokeInst, User::op_iterator >::arg_begin(), llvm::AliasAnalysis::callCapturesBefore(), CloneAliasScopeMetadata(), emitAnalysis(), llvm::CallSiteBase< Function, Value, User, Instruction, CallInst, InvokeInst, User::op_iterator >::getArgumentNo(), getCalledFunction(), llvm::CallSiteBase< Function, Value, User, Instruction, CallInst, InvokeInst, User::op_iterator >::getCalledValue(), llvm::MemoryDependenceAnalysis::getNonLocalCallDependency(), llvm::NVPTXTargetLowering::getPrototype(), llvm::InlineFunction(), isAssumeIntrinsic(), llvm::InlineCostAnalysis::isInlineViable(), llvm::isInTailCallPosition(), llvm::CallSiteBase< Function, Value, User, Instruction, CallInst, InvokeInst, User::op_iterator >::isInvoke(), llvm::CallSiteBase< Function, Value, User, Instruction, CallInst, InvokeInst, User::op_iterator >::isMustTailCall(), llvm::CallSiteBase< Function, Value, User, Instruction, CallInst, InvokeInst, User::op_iterator >::isTailCall(), llvm::FastISel::lowerCallTo(), llvm::SelectionDAGBuilder::LowerCallTo(), llvm::TargetLowering::LowerCallTo(), llvm::CallSite::operator<(), PrintModRefResults(), llvm::CallGraphNode::removeCallEdgeFor(), llvm::CallGraphNode::replaceCallEdge(), llvm::Inliner::runOnSCC(), llvm::CallSiteBase< Function, Value, User, Instruction, CallInst, InvokeInst, User::op_iterator >::setArgument(), llvm::CallSiteBase< Function, 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 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, ValTy, UserTy, InstrTy, CallTy, InvokeTy, IterTy >::getParamAlignment ( uint16_t  i) const [inline]
template<typename FunTy = const Function, 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, ValTy, UserTy, InstrTy, CallTy, InvokeTy, IterTy >::getType ( ) const [inline]

getType - Return the type of the instruction that generated this call site

Definition at line 157 of file CallSite.h.

Referenced by llvm::CallSiteBase< Function, Value, User, Instruction, CallInst, InvokeInst, User::op_iterator >::isReturnNonNull(), and llvm::TargetLowering::ParseConstraints().

template<typename FunTy = const Function, 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, 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 326 of file CallSite.h.

template<typename FunTy = const Function, 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, ValTy, UserTy, InstrTy, CallTy, InvokeTy, IterTy >::hasFnAttr ( Attribute::AttrKind  A) const [inline]
template<typename FunTy = const Function, 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, 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 298 of file CallSite.h.

template<typename FunTy = const Function, 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, ValTy, UserTy, InstrTy, CallTy, InvokeTy, IterTy >::isByValArgument ( unsigned  ArgNo) const [inline]

Determine whether this argument is passed by value.

Definition at line 281 of file CallSite.h.

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

template<typename FunTy = const Function, 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, 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 291 of file CallSite.h.

Referenced by isSafeToEliminateVarargsCast().

template<typename FunTy = const Function, 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, ValTy, UserTy, InstrTy, CallTy, InvokeTy, IterTy >::isCall ( ) const [inline]
template<typename FunTy = const Function, 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, 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 106 of file CallSite.h.

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

template<typename FunTy = const Function, 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, 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 111 of file CallSite.h.

template<typename FunTy = const Function, 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, ValTy, UserTy, InstrTy, CallTy, InvokeTy, IterTy >::isInAllocaArgument ( unsigned  ArgNo) const [inline]

Determine whether this argument is passed in an alloca.

Definition at line 286 of file CallSite.h.

template<typename FunTy = const Function, 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, ValTy, UserTy, InstrTy, CallTy, InvokeTy, IterTy >::isInvoke ( ) const [inline]

isInvoke - true if a InvokeInst is enclosed.

Definition at line 77 of file CallSite.h.

Referenced by llvm::InstVisitor< ObjectSizeOffsetVisitor, SizeOffsetType >::visitCallSite().

template<typename FunTy = const Function, 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, 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 165 of file CallSite.h.

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

template<typename FunTy = const Function, 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, 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 228 of file CallSite.h.

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

template<typename FunTy = const Function, 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, ValTy, UserTy, InstrTy, CallTy, InvokeTy, IterTy >::isNoInline ( ) const [inline]
template<typename FunTy = const Function, 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, 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 314 of file CallSite.h.

template<typename FunTy = const Function, 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, ValTy, UserTy, InstrTy, CallTy, InvokeTy, IterTy >::isTailCall ( ) const [inline]

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

Definition at line 170 of file CallSite.h.

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

template<typename FunTy = const Function, 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, ValTy, UserTy, InstrTy, CallTy, InvokeTy, IterTy >::onlyReadsMemory ( ) const [inline]
template<typename FunTy = const Function, 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, ValTy, UserTy, InstrTy, CallTy, InvokeTy, IterTy >::onlyReadsMemory ( unsigned  ArgNo) const [inline]

Definition at line 306 of file CallSite.h.

template<typename FunTy = const Function, 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_EXPLICIT llvm::CallSiteBase< FunTy, ValTy, UserTy, InstrTy, CallTy, InvokeTy, IterTy >::operator bool ( ) const [inline]

Definition at line 81 of file CallSite.h.

template<typename FunTy = const Function, 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, ValTy, UserTy, InstrTy, CallTy, InvokeTy, IterTy >::operator-> ( ) const [inline]

Definition at line 80 of file CallSite.h.

template<typename FunTy = const Function, 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, ValTy, UserTy, InstrTy, CallTy, InvokeTy, IterTy >::paramHasAttr ( unsigned  i,
Attribute::AttrKind  A 
) const [inline]
template<typename FunTy = const Function, 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, ValTy, UserTy, InstrTy, CallTy, InvokeTy, IterTy >::setArgument ( unsigned  ArgNo,
Value newVal 
) [inline]

Definition at line 118 of file CallSite.h.

Referenced by OptimizeAwayTrappingUsesOfValue().

template<typename FunTy = const Function, 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, ValTy, UserTy, InstrTy, CallTy, InvokeTy, IterTy >::setAttributes ( const AttributeSet PAL) [inline]
template<typename FunTy = const Function, 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, ValTy, UserTy, InstrTy, CallTy, InvokeTy, IterTy >::setCalledFunction ( Value V) [inline]

setCalledFunction - Set the callee to the specified value.

Definition at line 99 of file CallSite.h.

Referenced by OptimizeAwayTrappingUsesOfValue().

template<typename FunTy = const Function, 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, ValTy, UserTy, InstrTy, CallTy, InvokeTy, IterTy >::setCallingConv ( CallingConv::ID  CC) [inline]
template<typename FunTy = const Function, 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, ValTy, UserTy, InstrTy, CallTy, InvokeTy, IterTy >::setDoesNotAccessMemory ( ) [inline]
template<typename FunTy = const Function, 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, ValTy, UserTy, InstrTy, CallTy, InvokeTy, IterTy >::setDoesNotReturn ( ) [inline]
template<typename FunTy = const Function, 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, ValTy, UserTy, InstrTy, CallTy, InvokeTy, IterTy >::setDoesNotThrow ( ) [inline]
template<typename FunTy = const Function, 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, ValTy, UserTy, InstrTy, CallTy, InvokeTy, IterTy >::setIsNoInline ( bool  Value = true) [inline]
template<typename FunTy = const Function, 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, ValTy, UserTy, InstrTy, CallTy, InvokeTy, IterTy >::setOnlyReadsMemory ( ) [inline]

Member Data Documentation

template<typename FunTy = const Function, 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, ValTy, UserTy, InstrTy, CallTy, InvokeTy, IterTy >::I [protected]

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