Lines Matching refs:CI

326 Instruction *InstCombiner::visitCallInst(CallInst &CI) {  in visitCallInst()  argument
327 auto Args = CI.arg_operands(); in visitCallInst()
328 if (Value *V = SimplifyCall(CI.getCalledValue(), Args.begin(), Args.end(), DL, in visitCallInst()
330 return ReplaceInstUsesWith(CI, V); in visitCallInst()
332 if (isFreeCall(&CI, TLI)) in visitCallInst()
333 return visitFree(CI); in visitCallInst()
337 if (CI.getParent()->getParent()->doesNotThrow() && in visitCallInst()
338 !CI.doesNotThrow()) { in visitCallInst()
339 CI.setDoesNotThrow(); in visitCallInst()
340 return &CI; in visitCallInst()
343 IntrinsicInst *II = dyn_cast<IntrinsicInst>(&CI); in visitCallInst()
344 if (!II) return visitCallSite(&CI); in visitCallInst()
354 return EraseInstFromFunction(CI); in visitCallInst()
356 if (ConstantInt *CI = dyn_cast<ConstantInt>(NumBytes)) in visitCallInst() local
357 if (CI->getZExtValue() == 1) { in visitCallInst()
374 Module *M = CI.getParent()->getParent()->getParent(); in visitCallInst()
376 Type *Tys[3] = { CI.getArgOperand(0)->getType(), in visitCallInst()
377 CI.getArgOperand(1)->getType(), in visitCallInst()
378 CI.getArgOperand(2)->getType() }; in visitCallInst()
379 CI.setCalledFunction(Intrinsic::getDeclaration(M, MemCpyID, Tys)); in visitCallInst()
387 return EraseInstFromFunction(CI); in visitCallInst()
408 return ReplaceInstUsesWith(CI, ConstantInt::get(CI.getType(), Size)); in visitCallInst()
417 return ReplaceInstUsesWith(CI, X); in visitCallInst()
434 return ReplaceInstUsesWith(CI, ConstantFP::get(CI.getType(), 1.0)); in visitCallInst()
437 return ReplaceInstUsesWith(CI, II->getArgOperand(0)); in visitCallInst()
440 return BinaryOperator::CreateFDiv(ConstantFP::get(CI.getType(), 1.0), in visitCallInst()
457 return ReplaceInstUsesWith(CI, ConstantInt::get(IT, in visitCallInst()
475 return ReplaceInstUsesWith(CI, ConstantInt::get(IT, in visitCallInst()
517 return ReplaceInstUsesWith(CI, Arg0); in visitCallInst()
531 return ReplaceInstUsesWith(CI, Arg0); in visitCallInst()
538 return ReplaceInstUsesWith(CI, Arg1); in visitCallInst()
542 return ReplaceInstUsesWith(CI, Arg0); in visitCallInst()
551 return ReplaceInstUsesWith(CI, Arg1); in visitCallInst()
558 return ReplaceInstUsesWith(CI, Arg0); in visitCallInst()
566 return ReplaceInstUsesWith(CI, Arg1); in visitCallInst()
574 return ReplaceInstUsesWith(CI, Arg1); in visitCallInst()
581 return ReplaceInstUsesWith(CI, Arg0); in visitCallInst()
589 return ReplaceInstUsesWith(CI, Arg1); in visitCallInst()
751 CI, ConstantAggregateZero::get(Vec->getType())); in visitCallInst()
824 return ReplaceInstUsesWith(CI, UndefValue::get(II->getType())); in visitCallInst()
831 CI, in visitCallInst()
874 Module *M = CI.getParent()->getParent()->getParent(); in visitCallInst()
877 return ReplaceInstUsesWith(CI, Builder->CreateCall(F, Args)); in visitCallInst()
964 return ReplaceInstUsesWith(CI, Shuffle); in visitCallInst()
1029 return CastInst::Create(Instruction::BitCast, Result, CI.getType()); in visitCallInst()
1069 return ReplaceInstUsesWith(CI, ConstantAggregateZero::get(II->getType())); in visitCallInst()
1081 return ReplaceInstUsesWith(CI, ConstantExpr::getMul(CV0, CV1)); in visitCallInst()
1108 return ReplaceInstUsesWith(CI, ConstantFP::get(II->getContext(), Val)); in visitCallInst()
1120 return EraseInstFromFunction(CI); in visitCallInst()
1138 return EraseInstFromFunction(CI); in visitCallInst()
1153 return EraseInstFromFunction(CI); in visitCallInst()
1267 const CastInst *const CI, in isSafeToEliminateVarargsCast() argument
1269 if (!CI->isLosslessCast()) in isSafeToEliminateVarargsCast()
1287 cast<PointerType>(CI->getOperand(0)->getType())->getElementType(); in isSafeToEliminateVarargsCast()
1288 Type* DstTy = cast<PointerType>(CI->getType())->getElementType(); in isSafeToEliminateVarargsCast()
1300 Instruction *InstCombiner::tryOptimizeCall(CallInst *CI) { in tryOptimizeCall() argument
1301 if (!CI->getCalledFunction()) return nullptr; in tryOptimizeCall()
1307 if (Value *With = Simplifier.optimizeCall(CI)) { in tryOptimizeCall()
1309 return CI->use_empty() ? CI : ReplaceInstUsesWith(*CI, With); in tryOptimizeCall()
1482 CastInst *CI = dyn_cast<CastInst>(*I); in visitCallSite() local
1483 if (CI && isSafeToEliminateVarargsCast(CS, DL, CI, ix)) { in visitCallSite()
1484 *I = CI->getOperand(0); in visitCallSite()
1499 if (CallInst *CI = dyn_cast<CallInst>(CS.getInstruction())) { in visitCallSite() local
1500 Instruction *I = tryOptimizeCall(CI); in visitCallSite()
1736 CallInst *CI = cast<CallInst>(Caller); in transformConstExprCastCall() local
1738 NC->takeName(CI); in transformConstExprCastCall()
1739 if (CI->isTailCall()) in transformConstExprCastCall()
1741 cast<CallInst>(NC)->setCallingConv(CI->getCallingConv()); in transformConstExprCastCall()