29 auto *WCDecl =
F.getParent()->getFunction(
31 if (!WCDecl || WCDecl->use_empty())
39 for (
auto *U : WCDecl->users())
40 if (
auto *CI = dyn_cast<CallInst>(U))
41 if (CI->getFunction() == &
F)
47 for (
auto *CI : ToLower) {
49 CI->eraseFromParent();
static bool lowerWidenableCondition(Function &F)
Module.h This file contains the declarations for the Module class.
This file defines the SmallVector class.
A container for analyses that lazily runs them and caches their results.
static ConstantInt * getTrue(LLVMContext &Context)
A set of analyses that are preserved following a run of a transformation pass.
static PreservedAnalyses none()
Convenience factory function for the empty preserved set.
static PreservedAnalyses all()
Construct a special preserved set that preserves all passes.
void push_back(const T &Elt)
This is a 'vector' (really, a variable-sized array), optimized for the case when the array is small.
StringRef getName(ID id)
Return the LLVM name for an intrinsic, such as "llvm.ppc.altivec.lvx".
This is an optimization pass for GlobalISel generic memory operations.
PreservedAnalyses run(Function &F, FunctionAnalysisManager &AM)