class CallSiteBase

Declaration

template <typename FunTy = const llvm::Function,
          typename BBTy = const llvm::BasicBlock,
          typename ValTy = const llvm::Value,
          typename UserTy = const llvm::User,
          typename UseTy = const llvm::Use,
          typename InstrTy = const llvm::Instruction,
          typename CallTy = const llvm::CallInst,
          typename InvokeTy = const llvm::InvokeInst,
          typename CallBrTy = const llvm::CallBrInst,
          typename IterTy = User::const_op_iterator>
class CallSiteBase { /* full declaration omitted */ };

Declared at: llvm/include/llvm/IR/CallSite.h:58

Templates

FunTy = const llvm::Function
BBTy = const llvm::BasicBlock
ValTy = const llvm::Value
UserTy = const llvm::User
UseTy = const llvm::Use
InstrTy = const llvm::Instruction
CallTy = const llvm::CallInst
InvokeTy = const llvm::InvokeInst
CallBrTy = const llvm::CallBrInst
IterTy = User::const_op_iterator

Member Variables

protected int I

Method Overview

Methods

CallSiteBase<FunTy,
             BBTy,
             ValTy,
             UserTy,
             UseTy,
             InstrTy,
             CallTy,
             InvokeTy,
             CallBrTy,
             IterTy>(CallTy* CI)

Declared at: llvm/include/llvm/IR/CallSite.h:63

Parameters

CallTy* CI

CallSiteBase<FunTy,
             BBTy,
             ValTy,
             UserTy,
             UseTy,
             InstrTy,
             CallTy,
             InvokeTy,
             CallBrTy,
             IterTy>(InvokeTy* II)

Declared at: llvm/include/llvm/IR/CallSite.h:64

Parameters

InvokeTy* II

CallSiteBase<FunTy,
             BBTy,
             ValTy,
             UserTy,
             UseTy,
             InstrTy,
             CallTy,
             InvokeTy,
             CallBrTy,
             IterTy>(CallBrTy* CBI)

Declared at: llvm/include/llvm/IR/CallSite.h:65

Parameters

CallBrTy* CBI

CallSiteBase<FunTy,
             BBTy,
             ValTy,
             UserTy,
             UseTy,
             InstrTy,
             CallTy,
             InvokeTy,
             CallBrTy,
             IterTy>(ValTy* II)

Declared at: llvm/include/llvm/IR/CallSite.h:66

Parameters

ValTy* II

CallSiteBase<FunTy,
             BBTy,
             ValTy,
             UserTy,
             UseTy,
             InstrTy,
             CallTy,
             InvokeTy,
             CallBrTy,
             IterTy>()

Declared at: llvm/include/llvm/IR/CallSite.h:62

void addAttribute(unsigned int i,
                  llvm::Attribute Attr)

Declared at: llvm/include/llvm/IR/CallSite.h:349

Parameters

unsigned int i
llvm::Attribute Attr

void addAttribute(unsigned int i,
                  Attribute::AttrKind Kind)

Declared at: llvm/include/llvm/IR/CallSite.h:345

Parameters

unsigned int i
Attribute::AttrKind Kind

void addParamAttr(unsigned int ArgNo,
                  Attribute::AttrKind Kind)

Declared at: llvm/include/llvm/IR/CallSite.h:353

Parameters

unsigned int ArgNo
Attribute::AttrKind Kind

IterTy arg_begin() const

Declared at: llvm/include/llvm/IR/CallSite.h:584

bool arg_empty() const

Declared at: llvm/include/llvm/IR/CallSite.h:225

IterTy arg_end() const

Declared at: llvm/include/llvm/IR/CallSite.h:588

unsigned int arg_size() const

Declared at: llvm/include/llvm/IR/CallSite.h:226

iterator_range<IterTy> args() const

Declared at: llvm/include/llvm/IR/CallSite.h:222

bool cannotDuplicate() const

Description

Determine if the call can be duplicated.

Declared at: llvm/include/llvm/IR/CallSite.h:526

unsigned int countOperandBundlesOfType(
    uint32_t ID) const

Declared at: llvm/include/llvm/IR/CallSite.h:576

Parameters

uint32_t ID

bool dataOperandHasImpliedAttr(
    unsigned int i,
    Attribute::AttrKind Kind) const

Description

Return true if the data operand at index \p i directly or indirectly has the attribute \p 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.

Declared at: llvm/include/llvm/IR/CallSite.h:404

Parameters

unsigned int i
Attribute::AttrKind Kind

IterTy data_operands_begin() const

Description

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.

Declared at: llvm/include/llvm/IR/CallSite.h:253

bool data_operands_empty() const

Declared at: llvm/include/llvm/IR/CallSite.h:264

IterTy data_operands_end() const

Declared at: llvm/include/llvm/IR/CallSite.h:257

unsigned int data_operands_size() const

Declared at: llvm/include/llvm/IR/CallSite.h:267

iterator_range<IterTy> data_ops() const

Declared at: llvm/include/llvm/IR/CallSite.h:261

bool doesNotAccessMemory() const

Description

Determine if the call does not access memory.

Declared at: llvm/include/llvm/IR/CallSite.h:459

bool doesNotAccessMemory(unsigned int OpNo) const

Declared at: llvm/include/llvm/IR/CallSite.h:628

Parameters

unsigned int OpNo

bool doesNotCapture(unsigned int OpNo) const

Description

Determine whether this data operand is not captured.

Declared at: llvm/include/llvm/IR/CallSite.h:602

Parameters

unsigned int OpNo

bool doesNotReadMemory(unsigned int OpNo) const

Declared at: llvm/include/llvm/IR/CallSite.h:637

Parameters

unsigned int OpNo

bool doesNotReadMemory() const

Description

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

Declared at: llvm/include/llvm/IR/CallSite.h:475

bool doesNotReturn() const

Description

Determine if the call cannot return.

Declared at: llvm/include/llvm/IR/CallSite.h:510

bool doesNotThrow() const

Description

Determine if the call cannot unwind.

Declared at: llvm/include/llvm/IR/CallSite.h:518

ValTy* getArgOperand(unsigned int i) const

Declared at: llvm/include/llvm/IR/CallSite.h:307

Parameters

unsigned int i

ValTy* getArgument(unsigned int ArgNo) const

Declared at: llvm/include/llvm/IR/CallSite.h:193

Parameters

unsigned int ArgNo

unsigned int getArgumentNo(
    Value::const_user_iterator I) const

Description

Given a value use iterator, returns the argument that corresponds to it. Iterator must actually correspond to an argument.

Declared at: llvm/include/llvm/IR/CallSite.h:206

Parameters

Value::const_user_iterator I

unsigned int getArgumentNo(
    const llvm::Use* U) const

Description

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

Declared at: llvm/include/llvm/IR/CallSite.h:212

Parameters

const llvm::Use* U

llvm::Attribute getAttribute(
    unsigned int i,
    llvm::StringRef Kind) const

Declared at: llvm/include/llvm/IR/CallSite.h:393

Parameters

unsigned int i
llvm::StringRef Kind

llvm::Attribute getAttribute(
    unsigned int i,
    Attribute::AttrKind Kind) const

Declared at: llvm/include/llvm/IR/CallSite.h:389

Parameters

unsigned int i
Attribute::AttrKind Kind

llvm::AttributeList getAttributes() const

Description

Get the parameter attributes of the call.

Declared at: llvm/include/llvm/IR/CallSite.h:337

unsigned int getBundleOperandsEndIndex() const

Declared at: llvm/include/llvm/IR/CallSite.h:556

unsigned int getBundleOperandsStartIndex() const

Declared at: llvm/include/llvm/IR/CallSite.h:552

FunTy* getCalledFunction() const

Description

Return the function being called if this is a direct call, otherwise return null (if it's an indirect call).

Declared at: llvm/include/llvm/IR/CallSite.h:111

ValTy* getCalledValue() const

Description

Return the pointer to function that is being called.

Declared at: llvm/include/llvm/IR/CallSite.h:104

FunTy* getCaller() const

Description

Return the caller function for this call site.

Declared at: llvm/include/llvm/IR/CallSite.h:275

CallingConv::ID getCallingConv() const

Description

Get the calling convention of the call.

Declared at: llvm/include/llvm/IR/CallSite.h:320

unsigned int getDataOperandNo(
    Value::const_user_iterator UI) const

Description

Given a value use iterator, return the data operand corresponding to it. Iterator must actually correspond to a data operand.

Declared at: llvm/include/llvm/IR/CallSite.h:230

Parameters

Value::const_user_iterator UI

unsigned int getDataOperandNo(
    const llvm::Use* U) const

Description

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

Declared at: llvm/include/llvm/IR/CallSite.h:236

Parameters

const llvm::Use* U

uint64_t getDereferenceableBytes(
    unsigned int i) const

Description

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

Declared at: llvm/include/llvm/IR/CallSite.h:425

Parameters

unsigned int i

uint64_t getDereferenceableOrNullBytes(
    unsigned int i) const

Description

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

Declared at: llvm/include/llvm/IR/CallSite.h:431

Parameters

unsigned int i

llvm::FunctionType* getFunctionType() const

Declared at: llvm/include/llvm/IR/CallSite.h:328

InstrTy* getInstruction() const

Declared at: llvm/include/llvm/IR/CallSite.h:96

Intrinsic::ID getIntrinsicID() const

Description

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.

Declared at: llvm/include/llvm/IR/CallSite.h:141

unsigned int getNumArgOperands() const

Declared at: llvm/include/llvm/IR/CallSite.h:303

unsigned int getNumOperandBundles() const

Declared at: llvm/include/llvm/IR/CallSite.h:544

unsigned int getNumTotalBundleOperands() const

Declared at: llvm/include/llvm/IR/CallSite.h:560

Optional<llvm::OperandBundleUse> getOperandBundle(
    llvm::StringRef Name) const

Declared at: llvm/include/llvm/IR/CallSite.h:568

Parameters

llvm::StringRef Name

Optional<llvm::OperandBundleUse> getOperandBundle(
    uint32_t ID) const

Declared at: llvm/include/llvm/IR/CallSite.h:572

Parameters

uint32_t ID

llvm::OperandBundleUse getOperandBundleAt(
    unsigned int Index) const

Declared at: llvm/include/llvm/IR/CallSite.h:564

Parameters

unsigned int Index

void getOperandBundlesAsDefs(
    SmallVectorImpl<llvm::OperandBundleDef>& Defs)
    const

Declared at: llvm/include/llvm/IR/CallSite.h:595

Parameters

SmallVectorImpl<llvm::OperandBundleDef>& Defs

unsigned int getParamAlignment(
    unsigned int ArgNo) const

Description

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

Declared at: llvm/include/llvm/IR/CallSite.h:414

Parameters

unsigned int ArgNo

llvm::Type* getParamByValType(
    unsigned int ArgNo) const

Description

Extract the byval type for a call or parameter (nullptr=unknown).

Declared at: llvm/include/llvm/IR/CallSite.h:419

Parameters

unsigned int ArgNo

BBTy* getParent() const

Description

Get the basic block containing the call site.

Declared at: llvm/include/llvm/IR/CallSite.h:101

unsigned int getRetAlignment() const

Description

Extract the alignment of the return value.

Declared at: llvm/include/llvm/IR/CallSite.h:409

ValTy* getReturnedArgOperand() const

Declared at: llvm/include/llvm/IR/CallSite.h:311

llvm::Type* getType() const

Description

Return the type of the instruction that generated this call site.

Declared at: llvm/include/llvm/IR/CallSite.h:272

bool hasArgument(const llvm::Value* Arg) const

Description

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

Declared at: llvm/include/llvm/IR/CallSite.h:658

Parameters

const llvm::Value* Arg

bool hasFnAttr(llvm::StringRef Kind) const

Description

Return true if this function has the given attribute.

Declared at: llvm/include/llvm/IR/CallSite.h:375

Parameters

llvm::StringRef Kind

bool hasFnAttr(Attribute::AttrKind Kind) const

Description

Return true if this function has the given attribute.

Declared at: llvm/include/llvm/IR/CallSite.h:370

Parameters

Attribute::AttrKind Kind

bool hasInAllocaArgument() const

Description

Determine if there are is an inalloca argument. Only the last argument can have the inalloca attribute.

Declared at: llvm/include/llvm/IR/CallSite.h:624

bool hasOperandBundles() const

Declared at: llvm/include/llvm/IR/CallSite.h:548

bool hasRetAttr(Attribute::AttrKind Kind) const

Description

Return true if this return value has the given attribute.

Declared at: llvm/include/llvm/IR/CallSite.h:380

Parameters

Attribute::AttrKind Kind

bool isArgOperand(
    Value::const_user_iterator UI) const

Description

Determine whether the passed iterator points to an argument operand.

Declared at: llvm/include/llvm/IR/CallSite.h:158

Parameters

Value::const_user_iterator UI

bool isArgOperand(const llvm::Use* U) const

Description

Determine whether the passed use points to an argument operand.

Declared at: llvm/include/llvm/IR/CallSite.h:163

Parameters

const llvm::Use* U

bool isBundleOperand(unsigned int Idx) const

Declared at: llvm/include/llvm/IR/CallSite.h:580

Parameters

unsigned int Idx

bool isBundleOperand(
    Value::const_user_iterator UI) const

Description

Determine whether the passed iterator points to a bundle operand.

Declared at: llvm/include/llvm/IR/CallSite.h:169

Parameters

Value::const_user_iterator UI

bool isBundleOperand(const llvm::Use* U) const

Description

Determine whether the passed use points to a bundle operand.

Declared at: llvm/include/llvm/IR/CallSite.h:174

Parameters

const llvm::Use* U

bool isByValArgument(unsigned int ArgNo) const

Description

Determine whether this argument is passed by value.

Declared at: llvm/include/llvm/IR/CallSite.h:607

Parameters

unsigned int ArgNo

bool isByValOrInAllocaArgument(
    unsigned int ArgNo) const

Description

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

Declared at: llvm/include/llvm/IR/CallSite.h:617

Parameters

unsigned int ArgNo

bool isCall() const

Description

Return true if a CallInst is enclosed.

Declared at: llvm/include/llvm/IR/CallSite.h:87

bool isCallBr() const

Description

Return true if a CallBrInst is enclosed.

Declared at: llvm/include/llvm/IR/CallSite.h:94

bool isCallee(const llvm::Use* U) const

Description

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

Declared at: llvm/include/llvm/IR/CallSite.h:155

Parameters

const llvm::Use* U

bool isCallee(Value::const_user_iterator UI) const

Description

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

Declared at: llvm/include/llvm/IR/CallSite.h:150

Parameters

Value::const_user_iterator UI

bool isConvergent() const

Description

Determine if the call is convergent.

Declared at: llvm/include/llvm/IR/CallSite.h:534

bool isDataOperand(const llvm::Use* U) const

Description

Determine whether the passed use points to a data operand.

Declared at: llvm/include/llvm/IR/CallSite.h:189

Parameters

const llvm::Use* U

bool isDataOperand(
    Value::const_user_iterator UI) const

Description

Determine whether the passed iterator points to a data operand.

Declared at: llvm/include/llvm/IR/CallSite.h:184

Parameters

Value::const_user_iterator UI

bool isInAllocaArgument(unsigned int ArgNo) const

Description

Determine whether this argument is passed in an alloca.

Declared at: llvm/include/llvm/IR/CallSite.h:612

Parameters

unsigned int ArgNo

bool isIndirectCall() const

Description

Return true if the callsite is an indirect call.

Declared at: llvm/include/llvm/IR/CallSite.h:116

bool isInlineAsm() const

Declared at: llvm/include/llvm/IR/CallSite.h:315

bool isInvoke() const

Description

Return true if a InvokeInst is enclosed. !I.getInt() may also signify a NULL instruction pointer, so check that.

Declared at: llvm/include/llvm/IR/CallSite.h:91

bool isMustTailCall() const

Description

Tests if this call site must be tail call optimized. Only a CallInst can be tail call optimized.

Declared at: llvm/include/llvm/IR/CallSite.h:279

bool isNoBuiltin() const

Description

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

Declared at: llvm/include/llvm/IR/CallSite.h:441

bool isNoInline() const

Description

Return true if the call should not be inlined.

Declared at: llvm/include/llvm/IR/CallSite.h:451

bool isReturnNonNull() const

Description

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).

Declared at: llvm/include/llvm/IR/CallSite.h:645

bool isStrictFP() const

Description

Return true if the call requires strict floating point semantics.

Declared at: llvm/include/llvm/IR/CallSite.h:446

bool isTailCall() const

Description

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

Declared at: llvm/include/llvm/IR/CallSite.h:284

void mutateFunctionType(
    llvm::FunctionType* Ty) const

Declared at: llvm/include/llvm/IR/CallSite.h:332

Parameters

llvm::FunctionType* Ty

bool onlyAccessesArgMemory() const

Description

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

Declared at: llvm/include/llvm/IR/CallSite.h:484

bool onlyAccessesInaccessibleMemOrArgMem() const

Description

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

Declared at: llvm/include/llvm/IR/CallSite.h:502

bool onlyAccessesInaccessibleMemory() const

Description

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

Declared at: llvm/include/llvm/IR/CallSite.h:493

bool onlyReadsMemory() const

Description

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

Declared at: llvm/include/llvm/IR/CallSite.h:467

bool onlyReadsMemory(unsigned int OpNo) const

Declared at: llvm/include/llvm/IR/CallSite.h:632

Parameters

unsigned int OpNo

bool operator bool() const

Declared at: llvm/include/llvm/IR/CallSite.h:98

bool paramHasAttr(unsigned int ArgNo,
                  Attribute::AttrKind Kind) const

Description

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

Declared at: llvm/include/llvm/IR/CallSite.h:385

Parameters

unsigned int ArgNo
Attribute::AttrKind Kind

void removeAttribute(unsigned int i,
                     Attribute::AttrKind Kind)

Declared at: llvm/include/llvm/IR/CallSite.h:357

Parameters

unsigned int i
Attribute::AttrKind Kind

void removeAttribute(unsigned int i,
                     llvm::StringRef Kind)

Declared at: llvm/include/llvm/IR/CallSite.h:361

Parameters

unsigned int i
llvm::StringRef Kind

void removeParamAttr(unsigned int ArgNo,
                     Attribute::AttrKind Kind)

Declared at: llvm/include/llvm/IR/CallSite.h:365

Parameters

unsigned int ArgNo
Attribute::AttrKind Kind

bool returnDoesNotAlias() const

Description

Determine if the return value is marked with NoAlias attribute.

Declared at: llvm/include/llvm/IR/CallSite.h:436

void setArgument(unsigned int ArgNo,
                 llvm::Value* newVal)

Declared at: llvm/include/llvm/IR/CallSite.h:198

Parameters

unsigned int ArgNo
llvm::Value* newVal

void setAttributes(llvm::AttributeList PAL)

Description

Set the parameter attributes of the call.

Declared at: llvm/include/llvm/IR/CallSite.h:341

Parameters

llvm::AttributeList PAL

void setCalledFunction(llvm::Value* V)

Description

Set the callee to the specified value. Unlike the function of the same name on CallBase, does not modify the type!

Declared at: llvm/include/llvm/IR/CallSite.h:130

Parameters

llvm::Value* V

void setCallingConv(CallingConv::ID CC)

Description

Set the calling convention of the call.

Declared at: llvm/include/llvm/IR/CallSite.h:324

Parameters

CallingConv::ID CC

void setCannotDuplicate()

Declared at: llvm/include/llvm/IR/CallSite.h:529

void setConvergent()

Declared at: llvm/include/llvm/IR/CallSite.h:537

void setDoesNotAccessMemory()

Declared at: llvm/include/llvm/IR/CallSite.h:462

void setDoesNotReadMemory()

Declared at: llvm/include/llvm/IR/CallSite.h:478

void setDoesNotReturn()

Declared at: llvm/include/llvm/IR/CallSite.h:513

void setDoesNotThrow()

Declared at: llvm/include/llvm/IR/CallSite.h:521

void setIsNoInline(bool Value = true)

Declared at: llvm/include/llvm/IR/CallSite.h:454

Parameters

bool Value = true

void setNotConvergent()

Declared at: llvm/include/llvm/IR/CallSite.h:540

void setOnlyAccessesArgMemory()

Declared at: llvm/include/llvm/IR/CallSite.h:487

void setOnlyAccessesInaccessibleMemOrArgMem()

Declared at: llvm/include/llvm/IR/CallSite.h:505

void setOnlyAccessesInaccessibleMemory()

Declared at: llvm/include/llvm/IR/CallSite.h:496

void setOnlyReadsMemory()

Declared at: llvm/include/llvm/IR/CallSite.h:470