LLVM 20.0.0git
Namespaces | Functions
CallPromotionUtils.h File Reference

Go to the source code of this file.

Namespaces

namespace  llvm
 This is an optimization pass for GlobalISel generic memory operations.
 

Functions

bool llvm::isLegalToPromote (const CallBase &CB, Function *Callee, const char **FailureReason=nullptr)
 Return true if the given indirect call site can be made to call Callee.
 
CallBasellvm::promoteCall (CallBase &CB, Function *Callee, CastInst **RetBitCast=nullptr)
 Promote the given indirect call site to unconditionally call Callee.
 
CallBasellvm::promoteCallWithIfThenElse (CallBase &CB, Function *Callee, MDNode *BranchWeights=nullptr)
 Promote the given indirect call site to conditionally call Callee.
 
CallBasellvm::promoteCallWithVTableCmp (CallBase &CB, Instruction *VPtr, Function *Callee, ArrayRef< Constant * > AddressPoints, MDNode *BranchWeights)
 This is similar to promoteCallWithIfThenElse except that the condition to promote a virtual call is that VPtr is the same as any of AddressPoints.
 
bool llvm::tryPromoteCall (CallBase &CB)
 Try to promote (devirtualize) a virtual call on an Alloca.
 
CallBasellvm::versionCallSite (CallBase &CB, Value *Callee, MDNode *BranchWeights)
 Predicate and clone the given call site.