forked from OSchip/llvm-project
[InstCombine] Remove redundant code from SimplifyUsingDistributiveLaws
The code I've removed here exists in ExpandBinOp in InstSimplify which we call into before SimplifyUsingDistributiveLaws. The code in InstSimplify looks to have been copied from here. I verified this code doesn't fire on any lit tests. Not that that proves its definitely dead. Differential Revision: https://reviews.llvm.org/D32472 llvm-svn: 301341
This commit is contained in:
parent
b0ff0a69c3
commit
09a5878d33
|
@ -641,14 +641,6 @@ Value *InstCombiner::SimplifyUsingDistributiveLaws(BinaryOperator &I) {
|
||||||
if (Value *R = SimplifyBinOp(TopLevelOpcode, B, C, DL)) {
|
if (Value *R = SimplifyBinOp(TopLevelOpcode, B, C, DL)) {
|
||||||
// They do! Return "L op' R".
|
// They do! Return "L op' R".
|
||||||
++NumExpand;
|
++NumExpand;
|
||||||
// If "L op' R" equals "A op' B" then "L op' R" is just the LHS.
|
|
||||||
if ((L == A && R == B) ||
|
|
||||||
(Instruction::isCommutative(InnerOpcode) && L == B && R == A))
|
|
||||||
return Op0;
|
|
||||||
// Otherwise return "L op' R" if it simplifies.
|
|
||||||
if (Value *V = SimplifyBinOp(InnerOpcode, L, R, DL))
|
|
||||||
return V;
|
|
||||||
// Otherwise, create a new instruction.
|
|
||||||
C = Builder->CreateBinOp(InnerOpcode, L, R);
|
C = Builder->CreateBinOp(InnerOpcode, L, R);
|
||||||
C->takeName(&I);
|
C->takeName(&I);
|
||||||
return C;
|
return C;
|
||||||
|
@ -666,14 +658,6 @@ Value *InstCombiner::SimplifyUsingDistributiveLaws(BinaryOperator &I) {
|
||||||
if (Value *R = SimplifyBinOp(TopLevelOpcode, A, C, DL)) {
|
if (Value *R = SimplifyBinOp(TopLevelOpcode, A, C, DL)) {
|
||||||
// They do! Return "L op' R".
|
// They do! Return "L op' R".
|
||||||
++NumExpand;
|
++NumExpand;
|
||||||
// If "L op' R" equals "B op' C" then "L op' R" is just the RHS.
|
|
||||||
if ((L == B && R == C) ||
|
|
||||||
(Instruction::isCommutative(InnerOpcode) && L == C && R == B))
|
|
||||||
return Op1;
|
|
||||||
// Otherwise return "L op' R" if it simplifies.
|
|
||||||
if (Value *V = SimplifyBinOp(InnerOpcode, L, R, DL))
|
|
||||||
return V;
|
|
||||||
// Otherwise, create a new instruction.
|
|
||||||
A = Builder->CreateBinOp(InnerOpcode, L, R);
|
A = Builder->CreateBinOp(InnerOpcode, L, R);
|
||||||
A->takeName(&I);
|
A->takeName(&I);
|
||||||
return A;
|
return A;
|
||||||
|
|
Loading…
Reference in New Issue