class CallBase

Declaration

class CallBase : public Instruction { /* full declaration omitted */ };

Declared at: llvm/include/llvm/IR/InstrTypes.h:1105

Inherits from: Instruction

Member Variables

protected llvm::AttributeList Attrs
parameter attributes for callable
protected llvm::FunctionType* FTy
protected static const int CalledOperandOpEndIdx = -1
The last operand is the called operand.

Inherited from Value:

protected SubclassOptionalData
protected NumUserOperands
protected IsUsedByMD
protected HasName
protected HasHungOffUses
protected HasDescriptor
public static MaxAlignmentExponent = 29
public static MaximumAlignment = 1U << MaxAlignmentExponent

Method Overview

Inherited from Instruction:

Inherited from User:

Inherited from Value:

Methods

template <class... ArgsTy>
CallBase(const llvm::AttributeList& A,
         llvm::FunctionType* FT,
         ArgsTy&&... Args)

Declared at: llvm/include/llvm/IR/InstrTypes.h:1114

Templates

ArgsTy

Parameters

const llvm::AttributeList& A
llvm::FunctionType* FT
ArgsTy&&... Args

static unsigned int CountBundleInputs(
    ArrayRef<llvm::OperandBundleDef> Bundles)

Description

Return the total number of values used in \p Bundles.

Declared at: llvm/include/llvm/IR/InstrTypes.h:2124

Parameters

ArrayRef<llvm::OperandBundleDef> Bundles

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

Description

adds the attribute to the list of attributes.

Declared at: llvm/include/llvm/IR/InstrTypes.h:1401

Parameters

unsigned int i
Attribute::AttrKind Kind

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

Description

adds the attribute to the list of attributes.

Declared at: llvm/include/llvm/IR/InstrTypes.h:1408

Parameters

unsigned int i
llvm::Attribute Attr

void addDereferenceableAttr(unsigned int i,
                            uint64_t Bytes)

Description

adds the dereferenceable attribute to the list of attributes.

Declared at: llvm/include/llvm/IR/InstrTypes.h:1461

Parameters

unsigned int i
uint64_t Bytes

void addDereferenceableOrNullAttr(unsigned int i,
                                  uint64_t Bytes)

Description

adds the dereferenceable_or_null attribute to the list of attributes.

Declared at: llvm/include/llvm/IR/InstrTypes.h:1469

Parameters

unsigned int i
uint64_t Bytes

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

Description

Adds the attribute to the indicated argument

Declared at: llvm/include/llvm/IR/InstrTypes.h:1415

Parameters

unsigned int ArgNo
Attribute::AttrKind Kind

void addParamAttr(unsigned int ArgNo,
                  llvm::Attribute Attr)

Description

Adds the attribute to the indicated argument

Declared at: llvm/include/llvm/IR/InstrTypes.h:1423

Parameters

unsigned int ArgNo
llvm::Attribute Attr

User::const_op_iterator arg_begin() const

Declared at: llvm/include/llvm/IR/InstrTypes.h:1212

User::op_iterator arg_begin()

Description

Return the iterator pointing to the beginning of the argument list.

Declared at: llvm/include/llvm/IR/InstrTypes.h:1211

bool arg_empty() const

Declared at: llvm/include/llvm/IR/InstrTypes.h:1233

User::const_op_iterator arg_end() const

Declared at: llvm/include/llvm/IR/InstrTypes.h:1222

User::op_iterator arg_end()

Description

Return the iterator pointing to the end of the argument list.

Declared at: llvm/include/llvm/IR/InstrTypes.h:1217

iterator_range<User::const_op_iterator>
arg_operands() const

Declared at: llvm/include/llvm/IR/InstrTypes.h:1241

iterator_range<User::op_iterator> arg_operands()

Declared at: llvm/include/llvm/IR/InstrTypes.h:1238

unsigned int arg_size() const

Declared at: llvm/include/llvm/IR/InstrTypes.h:1234

iterator_range<User::op_iterator> args()

Declared at: llvm/include/llvm/IR/InstrTypes.h:1227

iterator_range<User::const_op_iterator> args()
    const

Declared at: llvm/include/llvm/IR/InstrTypes.h:1230

bool bundleOperandHasAttr(
    unsigned int OpIdx,
    Attribute::AttrKind A) const

Description

Return true if the bundle operand at index \p OpIdx has the attribute \p A.

Declared at: llvm/include/llvm/IR/InstrTypes.h:1919

Parameters

unsigned int OpIdx
Attribute::AttrKind A

llvm::CallBase::bundle_op_iterator
bundle_op_info_begin()

Description

Return the start of the list of BundleOpInfo instances associated with this OperandBundleUser. OperandBundleUser uses the descriptor area co-allocated with the host User to store some meta information about which operands are "normal" operands, and which ones belong to some operand bundle. The layout of an operand bundle user is +-----------uint32_t End-------------------------------------+ | | | +--------uint32_t Begin--------------------+ | | | | | ^ ^ v v |------|------|----|----|----|----|----|---------|----|---------|----|----- | BOI0 | BOI1 | .. | DU | U0 | U1 | .. | BOI0_U0 | .. | BOI1_U0 | .. | Un |------|------|----|----|----|----|----|---------|----|---------|----|----- v v ^ ^ | | | | | +--------uint32_t Begin------------+ | | | +-----------uint32_t End-----------------------------+ BOI0, BOI1 ... are descriptions of operand bundles in this User's use list. These descriptions are installed and managed by this class, and they're all instances of OperandBundleUser <T >::BundleOpInfo. DU is an additional descriptor installed by User's 'operator new' to keep track of the 'BOI0 ... BOIN' co-allocation. OperandBundleUser does not access or modify DU in any way, it's an implementation detail private to User. The regular Use & vector for the User starts at U0. The operand bundle uses are part of the Use & vector, just like normal uses. In the diagram above, the operand bundle uses start at BOI0_U0. Each instance of BundleOpInfo has information about a contiguous set of uses constituting an operand bundle, and the total set of operand bundle uses themselves form a contiguous set of uses (i.e. there are no gaps between uses corresponding to individual operand bundles). This class does not know the location of the set of operand bundle uses within the use list -- that is decided by the User using this class via the BeginIdx argument in populateBundleOperandInfos. Currently operand bundle users with hung-off operands are not supported.

Declared at: llvm/include/llvm/IR/InstrTypes.h:2059

llvm::CallBase::const_bundle_op_iterator
bundle_op_info_begin() const

Description

Return the start of the list of BundleOpInfo instances associated with this OperandBundleUser.

Declared at: llvm/include/llvm/IR/InstrTypes.h:2069

llvm::CallBase::bundle_op_iterator
bundle_op_info_end()

Description

Return the end of the list of BundleOpInfo instances associated with this OperandBundleUser.

Declared at: llvm/include/llvm/IR/InstrTypes.h:2076

llvm::CallBase::const_bundle_op_iterator
bundle_op_info_end() const

Description

Return the end of the list of BundleOpInfo instances associated with this OperandBundleUser.

Declared at: llvm/include/llvm/IR/InstrTypes.h:2086

iterator_range<
    llvm::CallBase::const_bundle_op_iterator>
bundle_op_infos() const

Declared at: llvm/include/llvm/IR/InstrTypes.h:2097

iterator_range<llvm::CallBase::bundle_op_iterator>
bundle_op_infos()

Declared at: llvm/include/llvm/IR/InstrTypes.h:2092

bool cannotDuplicate() const

Description

Determine if the invoke cannot be duplicated.

Declared at: llvm/include/llvm/IR/InstrTypes.h:1725

static bool classof(const llvm::Value* V)

Declared at: llvm/include/llvm/IR/InstrTypes.h:1145

Parameters

const llvm::Value* V

static bool classof(const llvm::Instruction* I)

Declared at: llvm/include/llvm/IR/InstrTypes.h:1140

Parameters

const llvm::Instruction* I

unsigned int countOperandBundlesOfType(
    llvm::StringRef Name) const

Description

Return the number of operand bundles with the tag Name attached to this instruction.

Declared at: llvm/include/llvm/IR/InstrTypes.h:1820

Parameters

llvm::StringRef Name

unsigned int countOperandBundlesOfType(
    uint32_t ID) const

Description

Return the number of operand bundles with the tag ID attached to this instruction.

Declared at: llvm/include/llvm/IR/InstrTypes.h:1831

Parameters

uint32_t ID

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

Description

Return true if the data operand at index \p i has the attribute \p A. Data operands include call arguments and values used in operand bundles, but does not include the callee operand. This routine dispatches to the underlying AttributeList or the OperandBundleUser as appropriate. The index \p i is interpreted as \p i == Attribute::ReturnIndex -> the return value\p i in [1, arg_size + 1) -> argument number (\p i - 1)\p i in [arg_size + 1, data_operand_size + 1) -> bundle operand at index (\p i - 1) in the operand list.

Declared at: llvm/include/llvm/IR/InstrTypes.h:1516

Parameters

unsigned int i
Attribute::AttrKind Kind

User::op_iterator data_operands_begin()

Description

data_operands_begin/data_operands_end - Return iterators iterating over the call / invoke argument list and bundle operands. For invokes, this is the set of instruction operands except the invoke target and the two successor blocks; and for calls this is the set of instruction operands except the call target.

Declared at: llvm/include/llvm/IR/InstrTypes.h:1163

User::const_op_iterator data_operands_begin()
    const

Declared at: llvm/include/llvm/IR/InstrTypes.h:1164

bool data_operands_empty() const

Declared at: llvm/include/llvm/IR/InstrTypes.h:1181

User::const_op_iterator data_operands_end() const

Declared at: llvm/include/llvm/IR/InstrTypes.h:1172

User::op_iterator data_operands_end()

Declared at: llvm/include/llvm/IR/InstrTypes.h:1167

unsigned int data_operands_size() const

Declared at: llvm/include/llvm/IR/InstrTypes.h:1184

iterator_range<User::const_op_iterator> data_ops()
    const

Declared at: llvm/include/llvm/IR/InstrTypes.h:1178

iterator_range<User::op_iterator> data_ops()

Declared at: llvm/include/llvm/IR/InstrTypes.h:1175

bool doesNoCfCheck() const

Description

Determine if the call should not perform indirect branch tracking.

Declared at: llvm/include/llvm/IR/InstrTypes.h:1716

bool doesNotAccessMemory(unsigned int OpNo) const

Declared at: llvm/include/llvm/IR/InstrTypes.h:1569

Parameters

unsigned int OpNo

bool doesNotAccessMemory() const

Description

Determine if the call does not access memory.

Declared at: llvm/include/llvm/IR/InstrTypes.h:1661

bool doesNotCapture(unsigned int OpNo) const

Description

Determine whether this data operand is not captured.

Declared at: llvm/include/llvm/IR/InstrTypes.h:1541

Parameters

unsigned int OpNo

bool doesNotReadMemory(unsigned int OpNo) const

Declared at: llvm/include/llvm/IR/InstrTypes.h:1582

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/InstrTypes.h:1675

bool doesNotReturn() const

Description

Determine if the call cannot return.

Declared at: llvm/include/llvm/IR/InstrTypes.h:1710

bool doesNotThrow() const

Description

Determine if the call cannot unwind.

Declared at: llvm/include/llvm/IR/InstrTypes.h:1719

llvm::Value* getArgOperand(unsigned int i) const

Declared at: llvm/include/llvm/IR/InstrTypes.h:1246

Parameters

unsigned int i

unsigned int getArgOperandNo(
    Value::const_user_iterator UI) const

Description

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

Declared at: llvm/include/llvm/IR/InstrTypes.h:1284

Parameters

Value::const_user_iterator UI

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

Description

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

Declared at: llvm/include/llvm/IR/InstrTypes.h:1277

Parameters

const llvm::Use* U

llvm::Use& getArgOperandUse(unsigned int i)

Declared at: llvm/include/llvm/IR/InstrTypes.h:1261

Parameters

unsigned int i

const llvm::Use& getArgOperandUse(
    unsigned int i) const

Description

Wrappers for getting the \c Use of a call argument.

Declared at: llvm/include/llvm/IR/InstrTypes.h:1257

Parameters

unsigned int i

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

Description

Get the attribute of a given kind at a position.

Declared at: llvm/include/llvm/IR/InstrTypes.h:1482

Parameters

unsigned int i
Attribute::AttrKind Kind

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

Description

Get the attribute of a given kind at a position.

Declared at: llvm/include/llvm/IR/InstrTypes.h:1487

Parameters

unsigned int i
llvm::StringRef Kind

llvm::AttributeList getAttributes() const

Description

Return the parameter attributes for this call.

Declared at: llvm/include/llvm/IR/InstrTypes.h:1384

const llvm::CallBase::BundleOpInfo&
getBundleOpInfoForOperand(
    unsigned int OpIdx) const

Description

Return the BundleOpInfo for the operand at index OpIdx. It is an error to call this with an OpIdx that does not correspond to an bundle operand.

Declared at: llvm/include/llvm/IR/InstrTypes.h:2114

Parameters

unsigned int OpIdx

unsigned int getBundleOperandsEndIndex() const

Description

Return the index of the last bundle operand in the Use array.

Declared at: llvm/include/llvm/IR/InstrTypes.h:1778

unsigned int getBundleOperandsStartIndex() const

Description

Return the index of the first bundle operand in the Use array.

Declared at: llvm/include/llvm/IR/InstrTypes.h:1772

llvm::Function* getCalledFunction() const

Description

Returns the function called, or null if this is an indirect function invocation.

Declared at: llvm/include/llvm/IR/InstrTypes.h:1305

llvm::Value* getCalledOperand() const

Declared at: llvm/include/llvm/IR/InstrTypes.h:1294

llvm::Use& getCalledOperandUse()

Declared at: llvm/include/llvm/IR/InstrTypes.h:1301

const llvm::Use& getCalledOperandUse() const

Declared at: llvm/include/llvm/IR/InstrTypes.h:1300

llvm::Value* getCalledValue() const

Declared at: llvm/include/llvm/IR/InstrTypes.h:1298

const llvm::Function* getCaller() const

Declared at: llvm/include/llvm/IR/InstrTypes.h:1322

llvm::Function* getCaller()

Description

Helper to get the caller (the parent function).

Declared at: llvm/include/llvm/IR/InstrTypes.h:1321

CallingConv::ID getCallingConv() const

Declared at: llvm/include/llvm/IR/InstrTypes.h:1362

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/InstrTypes.h:1205

Parameters

const llvm::Use* U

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/InstrTypes.h:1199

Parameters

Value::const_user_iterator UI

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/InstrTypes.h:1621

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/InstrTypes.h:1627

Parameters

unsigned int i

llvm::FunctionType* getFunctionType() const

Declared at: llvm/include/llvm/IR/InstrTypes.h:1149

Intrinsic::ID getIntrinsicID() const

Description

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

Declared at: llvm/include/llvm/IR/InstrTypes.h:1336

unsigned int getNumArgOperands() const

Declared at: llvm/include/llvm/IR/InstrTypes.h:1244

unsigned int getNumOperandBundles() const

Description

Return the number of operand bundles associated with this User.

Declared at: llvm/include/llvm/IR/InstrTypes.h:1764

unsigned int getNumSubclassExtraOperands() const

Declared at: llvm/include/llvm/IR/InstrTypes.h:1121

unsigned int getNumSubclassExtraOperandsDynamic()
    const

Description

Get the number of extra operands for instructions that don't have a fixed number of extra operands.

Declared at: llvm/include/llvm/IR/InstrTypes.h:1135

unsigned int getNumTotalBundleOperands() const

Description

Return the total number operands (not operand bundles) used by every operand bundle in this OperandBundleUser.

Declared at: llvm/include/llvm/IR/InstrTypes.h:1801

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

Declared at: llvm/include/llvm/IR/InstrTypes.h:1860

Parameters

uint32_t ID

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

Declared at: llvm/include/llvm/IR/InstrTypes.h:1844

Parameters

llvm::StringRef Name

llvm::OperandBundleUse getOperandBundleAt(
    unsigned int Index) const

Description

Return the operand bundle at a specific index.

Declared at: llvm/include/llvm/IR/InstrTypes.h:1813

Parameters

unsigned int Index

llvm::OperandBundleUse getOperandBundleForOperand(
    unsigned int OpIdx) const

Description

Return the operand bundle for the operand at index OpIdx. It is an error to call this with an OpIdx that does not correspond to an bundle operand.

Declared at: llvm/include/llvm/IR/InstrTypes.h:1888

Parameters

unsigned int OpIdx

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

Description

Return the list of operand bundles attached to this instruction as a vector of OperandBundleDefs. This function copies the OperandBundeUse instances associated with this OperandBundleUser to a vector of OperandBundleDefs. Note: OperandBundeUses and OperandBundleDefs are non-trivially *different* representations of operand bundles (see documentation above).

Declared at: llvm/include/llvm/IR/InstrTypes.h:1879

Parameters

SmallVectorImpl<llvm::OperandBundleDef>& Defs

llvm::MaybeAlign getParamAlign(
    unsigned int ArgNo) const

Description

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

Declared at: llvm/include/llvm/IR/InstrTypes.h:1609

Parameters

unsigned int ArgNo

unsigned int getParamAlignment(
    unsigned int ArgNo) const

Description

Extract the alignment for a call or parameter (0=unknown). FIXME: Remove this function once transition to Align is over. Use getParamAlign() instead.

Declared at: llvm/include/llvm/IR/InstrTypes.h:1602

Parameters

unsigned int ArgNo

llvm::Attribute getParamAttr(
    unsigned int ArgNo,
    llvm::StringRef Kind) const

Description

Get the attribute of a given kind from a given arg

Declared at: llvm/include/llvm/IR/InstrTypes.h:1498

Parameters

unsigned int ArgNo
llvm::StringRef Kind

llvm::Attribute getParamAttr(
    unsigned int ArgNo,
    Attribute::AttrKind Kind) const

Description

Get the attribute of a given kind from a given arg

Declared at: llvm/include/llvm/IR/InstrTypes.h:1492

Parameters

unsigned int ArgNo
Attribute::AttrKind Kind

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

Description

Extract the byval type for a call or parameter.

Declared at: llvm/include/llvm/IR/InstrTypes.h:1614

Parameters

unsigned int ArgNo

llvm::MaybeAlign getRetAlign() const

Description

Extract the alignment of the return value.

Declared at: llvm/include/llvm/IR/InstrTypes.h:1597

unsigned int getRetAlignment() const

Description

Extract the alignment of the return value. FIXME: Remove this function once transition to Align is over. Use getRetAlign() instead.

Declared at: llvm/include/llvm/IR/InstrTypes.h:1590

llvm::Value* getReturnedArgOperand() const

Description

If one of the arguments has the 'returned' attribute, returns its operand value. Otherwise, return nullptr.

Declared at: llvm/include/llvm/IR/InstrTypes.h:1643

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

Description

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

Declared at: llvm/include/llvm/IR/InstrTypes.h:1290

Parameters

const llvm::Value* V

bool hasByValArgument() const

Description

Determine if any call argument is an aggregate passed by value.

Declared at: llvm/include/llvm/IR/InstrTypes.h:1750

bool hasClobberingOperandBundles() const

Description

Return true if this operand bundle user has operand bundles that may write to the heap.

Declared at: llvm/include/llvm/IR/InstrTypes.h:1903

bool hasDescriptor() const

Declared at: llvm/include/llvm/IR/InstrTypes.h:1119

bool hasFnAttr(Attribute::AttrKind Kind) const

Description

Determine whether this call has the given attribute.

Declared at: llvm/include/llvm/IR/InstrTypes.h:1391

Parameters

Attribute::AttrKind Kind

bool hasFnAttr(llvm::StringRef Kind) const

Description

Determine whether this call has the given attribute.

Declared at: llvm/include/llvm/IR/InstrTypes.h:1398

Parameters

llvm::StringRef Kind

bool hasIdenticalOperandBundleSchema(
    const llvm::CallBase& Other) const

Description

Return true if \p Other has the same sequence of operand bundle tags with the same number of operands on each one of them as this OperandBundleUser.

Declared at: llvm/include/llvm/IR/InstrTypes.h:1928

Parameters

const llvm::CallBase& Other

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/InstrTypes.h:1563

bool hasOperandBundles() const

Description

Return true if this User has any operand bundles.

Declared at: llvm/include/llvm/IR/InstrTypes.h:1769

bool hasOperandBundlesOtherThan(
    ArrayRef<uint32_t> IDs) const

Description

Return true if this operand bundle user contains operand bundles with tags other than those specified in \p IDs.

Declared at: llvm/include/llvm/IR/InstrTypes.h:1938

Parameters

ArrayRef<uint32_t> IDs

bool hasReadingOperandBundles() const

Description

Return true if this operand bundle user has operand bundles that may read from the heap.

Declared at: llvm/include/llvm/IR/InstrTypes.h:1894

bool hasRetAttr(Attribute::AttrKind Kind) const

Description

Determine whether the return value has the given attribute.

Declared at: llvm/include/llvm/IR/InstrTypes.h:1476

Parameters

Attribute::AttrKind Kind

bool hasStructRetAttr() const

Description

Determine if the call returns a structure through first pointer argument.

Declared at: llvm/include/llvm/IR/InstrTypes.h:1741

bool isArgOperand(
    Value::const_user_iterator UI) const

Declared at: llvm/include/llvm/IR/InstrTypes.h:1271

Parameters

Value::const_user_iterator UI

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

Declared at: llvm/include/llvm/IR/InstrTypes.h:1266

Parameters

const llvm::Use* U

bool isBundleOperand(
    Value::const_user_iterator UI) const

Declared at: llvm/include/llvm/IR/InstrTypes.h:1795

Parameters

Value::const_user_iterator UI

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

Description

Returns true if the use is a bundle operand.

Declared at: llvm/include/llvm/IR/InstrTypes.h:1790

Parameters

const llvm::Use* U

bool isBundleOperand(unsigned int Idx) const

Description

Return true if the operand at index \p Idx is a bundle operand.

Declared at: llvm/include/llvm/IR/InstrTypes.h:1784

Parameters

unsigned int Idx

bool isByValArgument(unsigned int ArgNo) const

Description

Determine whether this argument is passed by value.

Declared at: llvm/include/llvm/IR/InstrTypes.h:1546

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/InstrTypes.h:1556

Parameters

unsigned int ArgNo

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

Description

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

Declared at: llvm/include/llvm/IR/InstrTypes.h:1318

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/InstrTypes.h:1313

Parameters

Value::const_user_iterator UI

bool isConvergent() const

Description

Determine if the invoke is convergent

Declared at: llvm/include/llvm/IR/InstrTypes.h:1731

bool isDataOperand(
    Value::const_user_iterator UI) const

Declared at: llvm/include/llvm/IR/InstrTypes.h:1193

Parameters

Value::const_user_iterator UI

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

Declared at: llvm/include/llvm/IR/InstrTypes.h:1188

Parameters

const llvm::Use* U

bool isFnAttrDisallowedByOpBundle(
    Attribute::AttrKind A) const

Description

Is the function attribute A disallowed by some operand bundle on this operand bundle user?

Declared at: llvm/include/llvm/IR/InstrTypes.h:1957

Parameters

Attribute::AttrKind A

bool isFnAttrDisallowedByOpBundle(
    llvm::StringRef S) const

Description

Is the function attribute S disallowed by some operand bundle on this operand bundle user?

Declared at: llvm/include/llvm/IR/InstrTypes.h:1949

Parameters

llvm::StringRef S

bool isInAllocaArgument(unsigned int ArgNo) const

Description

Determine whether this argument is passed in an alloca.

Declared at: llvm/include/llvm/IR/InstrTypes.h:1551

Parameters

unsigned int ArgNo

bool isIndirectCall() const

Description

Return true if the callsite is an indirect call.

Declared at: llvm/include/llvm/IR/InstrTypes.h:1310

bool isInlineAsm() const

Description

Check if this call is an inline asm statement.

Declared at: llvm/include/llvm/IR/InstrTypes.h:1374

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/InstrTypes.h:1328

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/InstrTypes.h:1647

bool isNoInline() const

Description

Return true if the call should not be inlined.

Declared at: llvm/include/llvm/IR/InstrTypes.h:1656

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/InstrTypes.h:1634

bool isStrictFP() const

Description

Determine if the call requires strict floating point semantics.

Declared at: llvm/include/llvm/IR/InstrTypes.h:1653

bool isTailCall() const

Description

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

Declared at: llvm/include/llvm/IR/InstrTypes.h:1331

void mutateFunctionType(llvm::FunctionType* FTy)

Declared at: llvm/include/llvm/IR/InstrTypes.h:1151

Parameters

llvm::FunctionType* FTy

bool onlyAccessesArgMemory() const

Description

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

Declared at: llvm/include/llvm/IR/InstrTypes.h:1684

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/InstrTypes.h:1702

bool onlyAccessesInaccessibleMemory() const

Description

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

Declared at: llvm/include/llvm/IR/InstrTypes.h:1693

bool onlyReadsMemory() const

Description

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

Declared at: llvm/include/llvm/IR/InstrTypes.h:1667

bool onlyReadsMemory(unsigned int OpNo) const

Declared at: llvm/include/llvm/IR/InstrTypes.h:1575

Parameters

unsigned int OpNo

llvm::OperandBundleUse
operandBundleFromBundleOpInfo(
    const llvm::CallBase::BundleOpInfo& BOI) const

Description

Simple helper function to map a BundleOpInfo to an OperandBundleUse.

Declared at: llvm/include/llvm/IR/InstrTypes.h:2004

Parameters

const llvm::CallBase::BundleOpInfo& BOI

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

Description

Determine whether the argument or parameter has the given attribute.

Declared at: llvm/include/llvm/IR/InstrTypes.h:1479

Parameters

unsigned int ArgNo
Attribute::AttrKind Kind

llvm::User::op_iterator
populateBundleOperandInfos(
    ArrayRef<llvm::OperandBundleDef> Bundles,
    const unsigned int BeginIndex)

Description

Populate the BundleOpInfo instances and the Use & vector from \p Bundles. Return the op_iterator pointing to the Use & one past the last last bundle operand use. Each \p OperandBundleDef instance is tracked by a OperandBundleInfo instance allocated in this User's descriptor.

Declared at: llvm/include/llvm/IR/InstrTypes.h:2107

Parameters

ArrayRef<llvm::OperandBundleDef> Bundles
const unsigned int BeginIndex

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

Description

removes the attribute from the list of attributes.

Declared at: llvm/include/llvm/IR/InstrTypes.h:1431

Parameters

unsigned int i
Attribute::AttrKind Kind

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

Description

removes the attribute from the list of attributes.

Declared at: llvm/include/llvm/IR/InstrTypes.h:1438

Parameters

unsigned int i
llvm::StringRef Kind

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

Description

Removes the attribute from the given argument

Declared at: llvm/include/llvm/IR/InstrTypes.h:1445

Parameters

unsigned int ArgNo
Attribute::AttrKind Kind

void removeParamAttr(unsigned int ArgNo,
                     llvm::StringRef Kind)

Description

Removes the attribute from the given argument

Declared at: llvm/include/llvm/IR/InstrTypes.h:1453

Parameters

unsigned int ArgNo
llvm::StringRef Kind

bool returnDoesNotAlias() const

Description

Determine if the return value is marked with NoAlias attribute.

Declared at: llvm/include/llvm/IR/InstrTypes.h:1637

void setArgOperand(unsigned int i, llvm::Value* v)

Declared at: llvm/include/llvm/IR/InstrTypes.h:1251

Parameters

unsigned int i
llvm::Value* v

void setAttributes(llvm::AttributeList A)

Description

Set the parameter attributes for this call.

Declared at: llvm/include/llvm/IR/InstrTypes.h:1388

Parameters

llvm::AttributeList A

void setCalledFunction(llvm::Function* Fn)

Description

Sets the function called, including updating the function type.

Declared at: llvm/include/llvm/IR/InstrTypes.h:1341

Parameters

llvm::Function* Fn

void setCalledFunction(llvm::FunctionCallee Fn)

Description

Sets the function called, including updating the function type.

Declared at: llvm/include/llvm/IR/InstrTypes.h:1346

Parameters

llvm::FunctionCallee Fn

void setCalledFunction(llvm::FunctionType* FTy,
                       llvm::Value* Fn)

Description

Sets the function called, including updating to the specified function type.

Declared at: llvm/include/llvm/IR/InstrTypes.h:1352

Parameters

llvm::FunctionType* FTy
llvm::Value* Fn

void setCalledOperand(llvm::Value* V)

Declared at: llvm/include/llvm/IR/InstrTypes.h:1338

Parameters

llvm::Value* V

void setCallingConv(CallingConv::ID CC)

Declared at: llvm/include/llvm/IR/InstrTypes.h:1366

Parameters

CallingConv::ID CC

void setCannotDuplicate()

Declared at: llvm/include/llvm/IR/InstrTypes.h:1726

void setConvergent()

Declared at: llvm/include/llvm/IR/InstrTypes.h:1732

void setDoesNotAccessMemory()

Declared at: llvm/include/llvm/IR/InstrTypes.h:1662

void setDoesNotReadMemory()

Declared at: llvm/include/llvm/IR/InstrTypes.h:1678

void setDoesNotReturn()

Declared at: llvm/include/llvm/IR/InstrTypes.h:1711

void setDoesNotThrow()

Declared at: llvm/include/llvm/IR/InstrTypes.h:1720

void setIsNoInline()

Declared at: llvm/include/llvm/IR/InstrTypes.h:1657

void setNotConvergent()

Declared at: llvm/include/llvm/IR/InstrTypes.h:1735

void setOnlyAccessesArgMemory()

Declared at: llvm/include/llvm/IR/InstrTypes.h:1687

void setOnlyAccessesInaccessibleMemOrArgMem()

Declared at: llvm/include/llvm/IR/InstrTypes.h:1705

void setOnlyAccessesInaccessibleMemory()

Declared at: llvm/include/llvm/IR/InstrTypes.h:1696

void setOnlyReadsMemory()

Declared at: llvm/include/llvm/IR/InstrTypes.h:1670