Skip to content

Commit

Permalink
Remove the last bit of constant folding from LinearizeExprTree (most …
Browse files Browse the repository at this point in the history
…of it was

removed in commit 168035, but I missed this bit).


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@168292 91177308-0d34-0410-b5e6-96231b3b80d8
  • Loading branch information
CunningBaldrick committed Nov 18, 2012
1 parent b8e1111 commit 820b525
Showing 1 changed file with 0 additions and 11 deletions.
11 changes: 0 additions & 11 deletions lib/Transforms/Scalar/Reassociate.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -423,10 +423,6 @@ static bool LinearizeExprTree(BinaryOperator *I,
assert(Instruction::isAssociative(Opcode) &&
Instruction::isCommutative(Opcode) &&
"Expected an associative and commutative operation!");
// If we see an absorbing element then the entire expression must be equal to
// it. For example, if this is a multiplication expression and zero occurs as
// an operand somewhere in it then the result of the expression must be zero.
Constant *Absorber = ConstantExpr::getBinOpAbsorber(Opcode, I->getType());

// Visit all operands of the expression, keeping track of their weight (the
// number of paths from the expression root to the operand, or if you like
Expand Down Expand Up @@ -474,13 +470,6 @@ static bool LinearizeExprTree(BinaryOperator *I,
DEBUG(dbgs() << "OPERAND: " << *Op << " (" << Weight << ")\n");
assert(!Op->use_empty() && "No uses, so how did we get to it?!");

// If the expression contains an absorbing element then there is no need
// to analyze it further: it must evaluate to the absorbing element.
if (Op == Absorber && !Weight.isMinValue()) {
Ops.push_back(std::make_pair(Absorber, APInt(Bitwidth, 1)));
return MadeChange;
}

// If this is a binary operation of the right kind with only one use then
// add its operands to the expression.
if (BinaryOperator *BO = isReassociableOp(Op, Opcode)) {
Expand Down

0 comments on commit 820b525

Please sign in to comment.