LLVM
8.0.1
|
#include "llvm/IR/CallSite.h"
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... | |
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 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 |
Type * | getType () 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... | |
FunctionType * | getFunctionType () 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< OperandBundleUse > | getOperandBundle (StringRef Name) const |
Optional< OperandBundleUse > | getOperandBundle (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 (ValTy *II) | |
Protected Attributes | |
PointerIntPair< InstrTy *, 1, bool > | I |
Definition at line 61 of file CallSite.h.
using llvm::CallSiteBase< FunTy, BBTy, ValTy, UserTy, UseTy, InstrTy, CallTy, InvokeTy, IterTy >::arg_iterator = IterTy |
The type of iterator to use when looping over actual arguments at this call site.
Definition at line 213 of file CallSite.h.
using llvm::CallSiteBase< FunTy, BBTy, ValTy, UserTy, UseTy, InstrTy, CallTy, InvokeTy, IterTy >::data_operand_iterator = IterTy |
Type of iterator to use when looping over data operands at this call site (see below).
Definition at line 237 of file CallSite.h.
|
protecteddefault |
|
inlineprotected |
Definition at line 66 of file CallSite.h.
|
inlineprotected |
Definition at line 67 of file CallSite.h.
|
inlineexplicitprotected |
Definition at line 68 of file CallSite.h.
|
inline |
Definition at line 337 of file CallSite.h.
Referenced by setInlineRemark().
|
inline |
Definition at line 341 of file CallSite.h.
|
inline |
Definition at line 345 of file CallSite.h.
Referenced by addNonNullAttribute().
|
inline |
Definition at line 571 of file CallSite.h.
Referenced by addVCallToSet(), llvm::createDeadArgHackingPass(), determinePointerReadAttrs(), findInitTrampoline(), findTRECandidate(), llvm::StackSafetyInfo::FunctionInfo::FunctionInfo(), llvm::GCRelocateInst::getBasePtr(), llvm::objcarc::GetCallSiteClass(), getComparePred(), llvm::GCRelocateInst::getDerivedPtr(), llvm::Evaluator::getFormalParams(), hasSameArgumentList(), INITIALIZE_PASS(), llvm::InlineFunction(), isCondRelevantToAnyCallArgument(), llvm::DenseMapInfo< VTableSlot >::isEqual(), llvm::FastISel::lowerCall(), llvm::SelectionDAGBuilder::LowerCallSiteWithDeoptBundleImpl(), llvm::SelectionDAGBuilder::LowerCallTo(), llvm::IntrinsicLowering::LowerIntrinsicCall(), makeStatepointExplicitImpl(), PropagateConstantsIntoArguments(), ReplaceFPIntrinsicWithCall(), llvm::SimplifyCall(), TypeSizeToSizeIndex(), and llvm::Interpreter::visitCallSite().
|
inline |
Definition at line 218 of file CallSite.h.
Referenced by computeBytesPoppedByCalleeForSRet(), and llvm::DenseMapInfo< VTableSlot >::isEqual().
|
inline |
Definition at line 575 of file CallSite.h.
Referenced by addVCallToSet(), findInitTrampoline(), findTRECandidate(), llvm::StackSafetyInfo::FunctionInfo::FunctionInfo(), llvm::StatepointBase< Function, Instruction, Value, CallSite >::gc_args_end(), llvm::objcarc::GetCallSiteClass(), getComparePred(), hasSameArgumentList(), INITIALIZE_PASS(), isCondRelevantToAnyCallArgument(), llvm::DenseMapInfo< VTableSlot >::isEqual(), llvm::FastISel::lowerCall(), llvm::SelectionDAGBuilder::LowerCallTo(), llvm::IntrinsicLowering::LowerIntrinsicCall(), makeStatepointExplicitImpl(), ReplaceFPIntrinsicWithCall(), llvm::SimplifyCall(), and llvm::Interpreter::visitCallSite().
|
inline |
Definition at line 219 of file CallSite.h.
Referenced by addStackMapLiveVars(), findInitTrampoline(), llvm::getCallsiteCost(), getComparePred(), llvm::getInlineCost(), hasSameArgumentList(), hasUndefContents(), INITIALIZE_PASS(), llvm::isLegalToPromote(), llvm::FastISel::lowerCall(), llvm::SelectionDAGBuilder::LowerCallTo(), moveUp(), OptimizeAwayTrappingUsesOfValue(), processCallSite(), stripNonValidDataFromBody(), tryToSplitCallSite(), and llvm::Interpreter::visitCallSite().
|
inline |
Definition at line 215 of file CallSite.h.
Referenced by addNonNullAttribute(), llvm::createAMDGPUFunctionInliningPass(), findInitTrampoline(), isPredicatedOnPHI(), llvm::CallLowering::lowerCall(), processCallSite(), setConstantInArgument(), and splitCallSite().
|
inline |
Determine if the call can be duplicated.
Definition at line 513 of file CallSite.h.
|
inline |
Definition at line 563 of file CallSite.h.
|
inline |
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.
Definition at line 245 of file CallSite.h.
|
inline |
Definition at line 256 of file CallSite.h.
|
inline |
Definition at line 249 of file CallSite.h.
|
inline |
Definition at line 259 of file CallSite.h.
Referenced by determinePointerReadAttrs().
|
inline |
Definition at line 253 of file CallSite.h.
|
inline |
Return true if the data operand at index i
directly or indirectly has the attribute A
.
Normal call or invoke 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 396 of file CallSite.h.
|
inline |
Determine if the call does not access memory.
Definition at line 446 of file CallSite.h.
Referenced by determinePointerReadAttrs(), and getSuccState().
|
inline |
Definition at line 619 of file CallSite.h.
|
inline |
Determine whether this data operand is not captured.
Definition at line 593 of file CallSite.h.
Referenced by canTRE(), determinePointerReadAttrs(), and moveUp().
|
inline |
Determine if the call does not access or only writes memory.
Definition at line 462 of file CallSite.h.
|
inline |
Definition at line 628 of file CallSite.h.
|
inline |
Determine if the call cannot return.
Definition at line 497 of file CallSite.h.
Referenced by instrumentMaskedLoadOrStore(), llvm::FastISel::CallLoweringInfo::setCallee(), and llvm::TargetLowering::CallLoweringInfo::setCallee().
|
inline |
Determine if the call cannot unwind.
Definition at line 505 of file CallSite.h.
Referenced by findInitTrampoline(), getSuccState(), and llvm::InlineFunction().
|
inline |
Definition at line 297 of file CallSite.h.
Referenced by INITIALIZE_PASS(), llvm::InlineFunction(), llvm::isMathLibCallNoop(), and llvm::WholeProgramDevirtPass::run().
|
inline |
Definition at line 186 of file CallSite.h.
Referenced by AddAlignmentAssumptions(), addStackMapLiveVars(), allCallersPassInValidPointerForArgument(), findMatchingInlineAsmOperand(), llvm::getCallsiteCost(), llvm::getInlineCost(), hasUndefContents(), INITIALIZE_PASS(), llvm::cflaa::instantiateInterfaceValue(), llvm::isLegalToPromote(), moveUp(), OptimizeAwayTrappingUsesOfValue(), llvm::TargetLowering::ParseConstraints(), llvm::promoteCall(), stripNonValidDataFromBody(), llvm::ObjectSizeOffsetVisitor::visitCallSite(), and llvm::ObjectSizeOffsetEvaluator::visitCallSite().
|
inline |
Given a value use iterator, returns the argument that corresponds to it.
Iterator must actually correspond to an argument.
Definition at line 199 of file CallSite.h.
Referenced by canTRE().
|
inline |
Given a use for an argument, get the argument number that corresponds to it.
Definition at line 205 of file CallSite.h.
|
inline |
Definition at line 381 of file CallSite.h.
|
inline |
Definition at line 385 of file CallSite.h.
|
inline |
Get the parameter attributes of the call.
Definition at line 329 of file CallSite.h.
Referenced by llvm::createDeadArgHackingPass(), findInitTrampoline(), getDeoptLowering(), INITIALIZE_PASS(), llvm::InlineFunction(), llvm::SelectionDAGBuilder::LowerCallSiteWithDeoptBundleImpl(), makeStatepointExplicitImpl(), processCallSite(), llvm::promoteCall(), RemoveNestAttribute(), and llvm::WholeProgramDevirtPass::run().
|
inline |
Definition at line 543 of file CallSite.h.
|
inline |
Definition at line 539 of file CallSite.h.
|
inline |
Return the function being called if this is a direct call, otherwise return null (if it's an indirect call).
Definition at line 107 of file CallSite.h.
Referenced by AddAliasScopeMetadata(), AddAlignmentAssumptions(), llvm::CallGraphNode::addCalledFunction(), llvm::CodeMetrics::analyzeBasicBlock(), llvm::callsGCLeafFunction(), callsiteIsHot(), CloneAliasScopeMetadata(), llvm::CloneAndPruneIntoFromInst(), copyFeaturesToFunction(), llvm::createAlwaysInlinerLegacyPass(), llvm::createAMDGPUFunctionInliningPass(), determinePointerReadAttrs(), doCallSiteSplitting(), getCalledFunction(), getDeoptLowering(), llvm::getInlineCost(), llvm::getIntrinsicForCallSite(), llvm::TargetLibraryInfo::getLibFunc(), llvm::NVPTXTargetLowering::getPrototype(), llvm::SystemZTTIImpl::getUnrollingPreferences(), llvm::ARMTTIImpl::getUnrollingPreferences(), llvm::BasicTTIImplBase< AMDGPUTTIImpl >::getUnrollingPreferences(), hasProfileData(), INITIALIZE_PASS(), InlineCallIfPossible(), llvm::InlineFunction(), InstrBreaksNonConvergent(), isFunctionMallocLike(), llvm::isInlineViable(), llvm::isLegalToPromote(), llvm::isMathLibCallNoop(), isReturnNonNull(), isWrapperOnlyCall(), llvm::CallLowering::lowerCall(), llvm::SITargetLowering::LowerCall(), llvm::SITargetLowering::passSpecialInputs(), llvm::promoteCall(), llvm::CGProfilePass::run(), llvm::InlinerPass::run(), shouldBeDeferred(), shouldInline(), shouldInstrumentBlock(), SortCallTargets(), tryToReplaceWithConstant(), UpdateCallGraphAfterInlining(), llvm::Interpreter::visitCallSite(), and llvm::InstCombiner::visitFDiv().
|
inline |
Return the pointer to function that is being called.
Definition at line 100 of file CallSite.h.
Referenced by llvm::CodeMetrics::analyzeBasicBlock(), analyzeParsePointLiveness(), llvm::Evaluator::EvaluateBlock(), findInitTrampoline(), findMatchingInlineAsmOperand(), llvm::StackSafetyInfo::FunctionInfo::FunctionInfo(), llvm::Evaluator::getCalleeWithFormalArgs(), getSuccState(), INITIALIZE_PASS(), llvm::InlineFunction(), instrumentOneFunc(), makeStatepointExplicitImpl(), OptimizeAwayTrappingUsesOfValue(), llvm::TargetLowering::ParseConstraints(), PrepareCall(), runCVP(), llvm::FunctionLoweringInfo::set(), llvm::FastISel::CallLoweringInfo::setCallee(), shouldInstrumentBlock(), llvm::SimplifyCall(), versionCallSite(), and llvm::Interpreter::visitCallSite().
|
inline |
Return the caller function for this call site.
Definition at line 267 of file CallSite.h.
Referenced by AddAlignmentAssumptions(), llvm::canConstantFoldCallTo(), llvm::createAMDGPUFunctionInliningPass(), llvm::getInlineCost(), hasProfileData(), hasUndefContents(), InlineCallIfPossible(), llvm::ProfileSummaryInfo::isColdCallSite(), isColdCallSite(), llvm::DenseMapInfo< VTableSlot >::isEqual(), isWrapperOnlyCall(), llvm::SyntheticCountsPropagation::run(), llvm::InlinerPass::run(), llvm::WholeProgramDevirtPass::run(), shouldInline(), and UpdateCallGraphAfterInlining().
|
inline |
Get the calling convention of the call.
Definition at line 312 of file CallSite.h.
Referenced by addStackMapLiveVars(), llvm::createDeadArgHackingPass(), findInitTrampoline(), getComparePred(), INITIALIZE_PASS(), llvm::CallLowering::lowerCall(), llvm::FastISel::lowerCallTo(), llvm::SelectionDAGBuilder::LowerStatepoint(), llvm::SelectionDAGBuilder::populateCallLoweringInfo(), llvm::WholeProgramDevirtPass::run(), llvm::FastISel::CallLoweringInfo::setCallee(), llvm::TargetLowering::CallLoweringInfo::setCallee(), and shouldGuaranteeTCO().
|
inline |
Given a value use iterator, return the data operand corresponding to it.
Iterator must actually correspond to a data operand.
Definition at line 223 of file CallSite.h.
Referenced by canTRE().
|
inline |
Given a use for a data operand, get the data operand number that corresponds to it.
Definition at line 229 of file CallSite.h.
|
inline |
Extract the number of dereferenceable bytes for a call or parameter (0=unknown).
Definition at line 412 of file CallSite.h.
|
inline |
Extract the number of dereferenceable_or_null bytes for a call or parameter (0=unknown).
Definition at line 418 of file CallSite.h.
|
inline |
Definition at line 320 of file CallSite.h.
Referenced by getComparePred(), llvm::HexagonTargetLowering::LowerCall(), llvm::CallLowering::lowerCall(), llvm::FastISel::lowerCall(), llvm::SelectionDAGBuilder::LowerCallSiteWithDeoptBundleImpl(), llvm::FastISel::lowerCallTo(), llvm::SelectionDAGBuilder::LowerCallTo(), llvm::promoteCall(), and llvm::WholeProgramDevirtPass::run().
|
inline |
Definition at line 92 of file CallSite.h.
Referenced by AddAlignmentAssumptions(), llvm::CallGraphNode::addCalledFunction(), addStackMapLiveVars(), analyzeParsePointLiveness(), canSplitCallSite(), canTRE(), CloneAliasScopeMetadata(), llvm::createArgumentPromotionPass(), llvm::createDeadArgHackingPass(), llvm::createObjCARCOptPass(), createRetBitCast(), doesNotRequireEntrySafepointBefore(), doPromotion(), emitSignedInt64(), llvm::Evaluator::EvaluateBlock(), llvm::Interpreter::exitCalled(), findInitTrampoline(), findMatchingInlineAsmOperand(), getCalledFunction(), getMOVL(), llvm::NVPTXTargetLowering::getPrototype(), getRetComponentType(), getSuccState(), hasProfileData(), hasUndefContents(), INITIALIZE_PASS(), llvm::InlineFunction(), insertParsePoints(), insertUseHolderAfter(), llvm::cflaa::instantiateInterfaceValue(), instrumentMaskedLoadOrStore(), llvm::ProfileSummaryInfo::isColdCallSite(), isColdCallSite(), llvm::DenseMapInfo< VTableSlot >::isEqual(), llvm::isGCRelocate(), llvm::isGCResult(), llvm::ProfileSummaryInfo::isHotCallSite(), llvm::isInlineViable(), llvm::isInTailCallPosition(), llvm::isLegalToPromote(), isPredicatedOnPHI(), isValidCandidateForColdCC(), llvm::HexagonTargetLowering::LowerCall(), llvm::SITargetLowering::LowerCall(), llvm::SelectionDAGBuilder::LowerCallSiteWithDeoptBundleImpl(), llvm::FastISel::lowerCallTo(), llvm::SelectionDAGBuilder::LowerCallTo(), llvm::SelectionDAGBuilder::lowerInvokable(), makeStatepointExplicitImpl(), needsStatepoint(), llvm::CallSite::operator<(), processCallSite(), llvm::promoteCall(), PropagateParallelLoopAccessMetadata(), recomputeLiveInValues(), RedzoneSizeForScale(), rematerializeLiveValues(), llvm::CallGraphNode::removeCallEdgeFor(), llvm::CallGraphNode::replaceCallEdge(), llvm::SyntheticCountsPropagation::run(), llvm::CGProfilePass::run(), llvm::WholeProgramDevirtPass::run(), llvm::FastISel::CallLoweringInfo::setCallee(), llvm::TargetLowering::CallLoweringInfo::setCallee(), shouldInline(), shouldSplitOnPHIPredicatedArgument(), shouldSplitOnPredicatedArgument(), llvm::SimplifyCall(), splitCallSite(), TypeSizeToSizeIndex(), versionCallSite(), llvm::Interpreter::visitCallSite(), llvm::ObjectSizeOffsetVisitor::visitCallSite(), llvm::InstVisitor< ObjectSizeOffsetVisitor, SizeOffsetType >::visitCallSite(), llvm::PtrUseVisitor< SliceBuilder >::visitCallSite(), and llvm::ObjectSizeOffsetEvaluator::visitCallSite().
|
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 134 of file CallSite.h.
Referenced by setCannotDuplicate().
|
inline |
Definition at line 293 of file CallSite.h.
Referenced by determinePointerReadAttrs(), llvm::Evaluator::getFormalParams(), INITIALIZE_PASS(), llvm::InlineFunction(), llvm::isMathLibCallNoop(), llvm::SelectionDAGBuilder::LowerCallSiteWithDeoptBundleImpl(), and llvm::WholeProgramDevirtPass::run().
|
inline |
Definition at line 531 of file CallSite.h.
Referenced by llvm::FunctionComparator::cmpMem(), emitSignedInt64(), and llvm::InlineFunction().
|
inline |
Definition at line 547 of file CallSite.h.
|
inline |
Definition at line 555 of file CallSite.h.
Referenced by GetDeoptBundleOperands(), llvm::InlineFunction(), llvm::SelectionDAGBuilder::LowerCallSiteWithDeoptBundleImpl(), and makeStatepointExplicitImpl().
|
inline |
Definition at line 559 of file CallSite.h.
|
inline |
Definition at line 551 of file CallSite.h.
Referenced by llvm::FunctionComparator::cmpMem(), emitSignedInt64(), and llvm::InlineFunction().
|
inline |
Definition at line 582 of file CallSite.h.
Referenced by llvm::createDeadArgHackingPass(), findInitTrampoline(), INITIALIZE_PASS(), and llvm::InlineFunction().
|
inline |
Extract the alignment for a call or parameter (0=unknown).
Definition at line 406 of file CallSite.h.
Referenced by hasUndefContents(), and llvm::TargetLoweringBase::ArgListEntry::setAttributes().
|
inline |
Get the basic block containing the call site.
Definition at line 97 of file CallSite.h.
Referenced by addNoRecurseAttrsTopDown(), llvm::canConstantFoldCallTo(), llvm::ARMTargetLowering::CCAssignFnForReturn(), getSuccState(), INITIALIZE_PASS(), llvm::DenseMapInfo< VTableSlot >::isEqual(), llvm::CallLowering::lowerCall(), llvm::SelectionDAGBuilder::LowerStatepoint(), and llvm::InlinerPass::run().
|
inline |
Extract the alignment of the return value.
Definition at line 401 of file CallSite.h.
|
inline |
Definition at line 301 of file CallSite.h.
Referenced by computeKnownBitsFromOperator(), and getRangeForAffineARHelper().
|
inline |
Return the type of the instruction that generated this call site.
Definition at line 264 of file CallSite.h.
Referenced by addStackMapLiveVars(), llvm::Interpreter::exitCalled(), findMatchingInlineAsmOperand(), INITIALIZE_PASS(), llvm::DenseMapInfo< VTableSlot >::isEqual(), llvm::CallLowering::lowerCall(), llvm::FastISel::lowerCall(), llvm::SelectionDAGBuilder::LowerCallSiteWithDeoptBundleImpl(), llvm::FastISel::lowerCallTo(), llvm::SelectionDAGBuilder::LowerCallTo(), makeStatepointExplicitImpl(), llvm::TargetLowering::ParseConstraints(), and stripNonValidDataFromBody().
|
inline |
Returns true if this CallSite passes the given Value* as an argument to the called function.
Definition at line 649 of file CallSite.h.
|
inline |
Return true if this function has the given attribute.
Definition at line 362 of file CallSite.h.
Referenced by llvm::callsGCLeafFunction(), llvm::createAlwaysInlinerLegacyPass(), getDeoptLowering(), llvm::getInlineCost(), hasReturnsTwiceAttr(), and isWrapperOnlyCall().
|
inline |
Return true if this function has the given attribute.
Definition at line 367 of file CallSite.h.
|
inline |
Determine if there are is an inalloca argument.
Only the last argument can have the inalloca attribute.
Definition at line 615 of file CallSite.h.
|
inline |
Definition at line 535 of file CallSite.h.
Referenced by llvm::InlineFunction().
|
inline |
Return true if this return value has the given attribute.
Definition at line 372 of file CallSite.h.
Referenced by hasNoAliasAttr(), isFunctionMallocLike(), llvm::FastISel::CallLoweringInfo::setCallee(), and llvm::TargetLowering::CallLoweringInfo::setCallee().
|
inline |
Determine whether the passed iterator points to an argument operand.
Definition at line 151 of file CallSite.h.
Referenced by canTRE().
|
inline |
Determine whether the passed use points to an argument operand.
Definition at line 156 of file CallSite.h.
|
inline |
Determine whether the passed iterator points to a bundle operand.
Definition at line 162 of file CallSite.h.
Referenced by llvm::canReplaceOperandWithVariable().
|
inline |
Determine whether the passed use points to a bundle operand.
Definition at line 167 of file CallSite.h.
|
inline |
Definition at line 567 of file CallSite.h.
|
inline |
Determine whether this argument is passed by value.
Definition at line 598 of file CallSite.h.
Referenced by canTRE(), llvm::getCallsiteCost(), llvm::getInlineCost(), hasUndefContents(), and llvm::InlineFunction().
|
inline |
Determine whether this argument is passed by value or in an alloca.
Definition at line 608 of file CallSite.h.
Referenced by isSafeToEliminateVarargsCast().
|
inline |
Return true if a CallInst is enclosed.
Note that !isCall() does not mean an InvokeInst is enclosed. It may also signify a NULL instruction pointer.
Definition at line 87 of file CallSite.h.
Referenced by llvm::FunctionComparator::cmpMem(), INITIALIZE_PASS(), llvm::InlineFunction(), insertUseHolderAfter(), llvm::isInlineViable(), makeStatepointExplicitImpl(), needsStatepoint(), rematerializeLiveValues(), llvm::WholeProgramDevirtPass::run(), and TypeSizeToSizeIndex().
|
inline |
Determine whether the passed iterator points to the callee operand's Use.
Definition at line 143 of file CallSite.h.
Referenced by findRefEdges(), isDirectCall(), and PropagateConstantsIntoArguments().
|
inline |
Determine whether this Use is the callee operand's Use.
Definition at line 148 of file CallSite.h.
|
inline |
Determine if the call is convergent.
Definition at line 521 of file CallSite.h.
Referenced by findInitTrampoline(), findMatchingInlineAsmOperand(), InstrBreaksNonConvergent(), and llvm::SelectionDAGBuilder::LowerCallTo().
|
inline |
Determine whether the passed iterator points to a data operand.
Definition at line 177 of file CallSite.h.
Referenced by canTRE().
|
inline |
Determine whether the passed use points to a data operand.
Definition at line 182 of file CallSite.h.
|
inline |
Determine whether this argument is passed in an alloca.
Definition at line 603 of file CallSite.h.
Referenced by findInitTrampoline().
|
inline |
Return true if the callsite is an indirect call.
Definition at line 112 of file CallSite.h.
Referenced by llvm::CGProfilePass::run().
|
inline |
Definition at line 305 of file CallSite.h.
Referenced by copyFeaturesToFunction().
|
inline |
Return true if a InvokeInst is enclosed.
Definition at line 90 of file CallSite.h.
Referenced by getMOVL(), insertParsePoints(), rematerializeLiveValues(), llvm::TargetLowering::CallLoweringInfo::setCallee(), and TypeSizeToSizeIndex().
|
inline |
Tests if this call site must be tail call optimized.
Only a CallInst can be tail call optimized.
Definition at line 271 of file CallSite.h.
Referenced by llvm::ARMTargetLowering::CCAssignFnForReturn(), doCallSiteSplitting(), findInitTrampoline(), getMOVL(), llvm::SITargetLowering::LowerCall(), PrepareCall(), and splitCallSite().
|
inline |
Return true if the call should not be treated as a call to a builtin.
Definition at line 428 of file CallSite.h.
Referenced by llvm::canConstantFoldCallTo(), llvm::ConstantFoldCall(), getCalledFunction(), llvm::TargetLibraryInfo::getLibFunc(), and llvm::isMathLibCallNoop().
|
inline |
Return true if the call should not be inlined.
Definition at line 438 of file CallSite.h.
Referenced by llvm::CodeMetrics::analyzeBasicBlock(), llvm::getInlineCost(), and isWrapperOnlyCall().
|
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 636 of file CallSite.h.
|
inline |
Return true if the call requires strict floating point semantics.
Definition at line 433 of file CallSite.h.
Referenced by llvm::canConstantFoldCallTo(), llvm::ConstantFoldCall(), and llvm::isMathLibCallNoop().
|
inline |
Tests if this call site is marked as a tail call.
Definition at line 276 of file CallSite.h.
|
inline |
Definition at line 324 of file CallSite.h.
Referenced by llvm::promoteCall().
|
inline |
Determine if the call can access memmory only using pointers based on its arguments.
Definition at line 471 of file CallSite.h.
|
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 489 of file CallSite.h.
|
inline |
Determine if the function may only access memory that is inaccessible from the IR.
Definition at line 480 of file CallSite.h.
|
inline |
Determine if the call does not access or only reads memory.
Definition at line 454 of file CallSite.h.
Referenced by canTRE(), determinePointerReadAttrs(), llvm::objcarc::GetCallSiteClass(), and llvm::getIntrinsicForCallSite().
|
inline |
Definition at line 623 of file CallSite.h.
|
inlineexplicit |
Definition at line 94 of file CallSite.h.
|
inline |
Definition at line 93 of file CallSite.h.
|
inline |
Return true if the call or the callee has the given attribute.
Definition at line 377 of file CallSite.h.
Referenced by computeBytesPoppedByCalleeForSRet(), findInitTrampoline(), getComparePred(), INITIALIZE_PASS(), isCondRelevantToAnyCallArgument(), processCallSite(), and llvm::TargetLoweringBase::ArgListEntry::setAttributes().
|
inline |
Definition at line 349 of file CallSite.h.
|
inline |
Definition at line 353 of file CallSite.h.
|
inline |
Definition at line 357 of file CallSite.h.
Referenced by promoteArguments(), and setConstantInArgument().
|
inline |
Determine if the return value is marked with NoAlias attribute.
Definition at line 423 of file CallSite.h.
|
inline |
Definition at line 191 of file CallSite.h.
Referenced by hasUndefContents(), moveUp(), OptimizeAwayTrappingUsesOfValue(), llvm::promoteCall(), and setConstantInArgument().
|
inline |
Set the parameter attributes of the call.
Definition at line 333 of file CallSite.h.
Referenced by llvm::createDeadArgHackingPass(), doPromotion(), findInitTrampoline(), getRetComponentType(), INITIALIZE_PASS(), processCallSite(), llvm::promoteCall(), RemoveNestAttribute(), and llvm::WholeProgramDevirtPass::run().
|
inline |
Set the callee to the specified value.
Definition at line 126 of file CallSite.h.
Referenced by findInitTrampoline(), INITIALIZE_PASS(), OptimizeAwayTrappingUsesOfValue(), and llvm::promoteCall().
|
inline |
Set the calling convention of the call.
Definition at line 316 of file CallSite.h.
Referenced by ChangeCalleesToFastCall(), changeCallSitesToColdCC(), llvm::createDeadArgHackingPass(), doPromotion(), findInitTrampoline(), getRetComponentType(), hasProfileData(), INITIALIZE_PASS(), and llvm::WholeProgramDevirtPass::run().
|
inline |
Definition at line 516 of file CallSite.h.
Referenced by setCannotDuplicate().
|
inline |
Definition at line 524 of file CallSite.h.
|
inline |
Definition at line 449 of file CallSite.h.
|
inline |
Definition at line 465 of file CallSite.h.
|
inline |
Definition at line 500 of file CallSite.h.
|
inline |
Definition at line 508 of file CallSite.h.
Referenced by findInitTrampoline().
|
inline |
Definition at line 441 of file CallSite.h.
|
inline |
Definition at line 527 of file CallSite.h.
Referenced by findInitTrampoline().
|
inline |
Definition at line 474 of file CallSite.h.
|
inline |
Definition at line 492 of file CallSite.h.
|
inline |
Definition at line 483 of file CallSite.h.
|
inline |
Definition at line 457 of file CallSite.h.
|
protected |
Definition at line 63 of file CallSite.h.
Referenced by llvm::DenseMapInfo< CallSite >::getEmptyKey(), llvm::DenseMapInfo< CallSite >::getHashValue(), llvm::DenseMapInfo< CallSite >::getTombstoneKey(), llvm::CallSite::operator!=(), and llvm::CallSite::operator==().