Revert r228556: InstCombine: propagate nonNull through assume

This commit isn't using the correct context, and is transfoming calls
that are operands to loads rather than calls that are operands to an
icmp feeding into an assume. I've replied on the original review thread
with a very reduced test case and some thoughts on how to rework this.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@228677 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Chandler Carruth
2015-02-10 08:07:32 +00:00
parent e65664e90d
commit 3e77df419d
2 changed files with 1 additions and 45 deletions

View File

@ -1081,19 +1081,12 @@ Instruction *InstCombiner::visitCallInst(CallInst &CI) {
cast<Constant>(RHS)->isNullValue()) {
LoadInst* LI = cast<LoadInst>(LHS);
if (isValidAssumeForContext(II, LI, DL, DT)) {
// assume( load (call|invoke) != null ) -> add 'nonnull' return
// attribute
Value *LIOperand = LI->getOperand(0);
if (CallInst *I = dyn_cast<CallInst>(LIOperand))
I->addAttribute(AttributeSet::ReturnIndex, Attribute::NonNull);
else if (InvokeInst *I = dyn_cast<InvokeInst>(LIOperand))
I->addAttribute(AttributeSet::ReturnIndex, Attribute::NonNull);
MDNode *MD = MDNode::get(II->getContext(), None);
LI->setMetadata(LLVMContext::MD_nonnull, MD);
return EraseInstFromFunction(*II);
}
}
// TODO: apply nonnull return attributes to calls and invokes
// TODO: apply range metadata for range check patterns?
}
// If there is a dominating assume with the same condition as this one,