forked from OSchip/llvm-project
[InstCombine] don't try SimplifyDemandedInstructionBits from zext/sext because it's slow and unnecessary
This one seems more obvious than D30270 that it can't make improvements because an extension always needs all of the incoming bits. There's one specific transform in SimplifyDemandedInstructionBits of converting a sext to a zext when the sign-bit is known zero, but that is handled explicitly in visitSext() with ComputeSignBit(). Like D30270, there are no IR differences (other than instruction names) for the case in PR32037: https://bugs.llvm.org//show_bug.cgi?id=32037 ...and no regression test differences. Zext/sext are a smaller part of the profile, but this still appears to shave off another 0.5% or so from 'opt -O2'. Differential Revision: https://reviews.llvm.org/D30280 llvm-svn: 296129
This commit is contained in:
parent
9f0fa52aa2
commit
ec9a8de0e6
|
@ -838,11 +838,6 @@ Instruction *InstCombiner::visitZExt(ZExtInst &CI) {
|
|||
if (Instruction *Result = commonCastTransforms(CI))
|
||||
return Result;
|
||||
|
||||
// See if we can simplify any instructions used by the input whose sole
|
||||
// purpose is to compute bits we don't care about.
|
||||
if (SimplifyDemandedInstructionBits(CI))
|
||||
return &CI;
|
||||
|
||||
Value *Src = CI.getOperand(0);
|
||||
Type *SrcTy = Src->getType(), *DestTy = CI.getType();
|
||||
|
||||
|
@ -1124,11 +1119,6 @@ Instruction *InstCombiner::visitSExt(SExtInst &CI) {
|
|||
if (Instruction *I = commonCastTransforms(CI))
|
||||
return I;
|
||||
|
||||
// See if we can simplify any instructions used by the input whose sole
|
||||
// purpose is to compute bits we don't care about.
|
||||
if (SimplifyDemandedInstructionBits(CI))
|
||||
return &CI;
|
||||
|
||||
Value *Src = CI.getOperand(0);
|
||||
Type *SrcTy = Src->getType(), *DestTy = CI.getType();
|
||||
|
||||
|
|
Loading…
Reference in New Issue