/// Given a LoadInst LI this adds assume(LI != null) after it. static void addAssumeNonNull(AssumptionCache *AC, LoadInst *LI) { Function *AssumeIntrinsic = Intrinsic::getDeclaration(LI->getModule(), Intrinsic::assume); ICmpInst *LoadNotNull = new ICmpInst(ICmpInst::ICMP_NE, LI, Constant::getNullValue(LI->getType())); LoadNotNull->insertAfter(LI); CallInst *CI = CallInst::Create(AssumeIntrinsic, {LoadNotNull}); CI->insertAfter(LoadNotNull); AC->registerAssumption(CI); }