mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-01-14 16:33:28 +00:00
change an if to an assert, fix comment.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92364 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
94285e620b
commit
9cd1bc4f8b
@ -700,17 +700,17 @@ Value *Reassociate::OptimizeAdd(Instruction *I, std::vector<ValueEntry> &Ops) {
|
||||
// Now that we have inserted V and its sole use, optimize it. This allows
|
||||
// us to handle cases that require multiple factoring steps, such as this:
|
||||
// A*A*B + A*A*C --> A*(A*B+A*C) --> A*(A*(B+C))
|
||||
if (NumAddedValues > 1)
|
||||
ReassociateExpression(cast<BinaryOperator>(V));
|
||||
assert(NumAddedValues > 1 && "Each occurrence should contribute a value");
|
||||
ReassociateExpression(cast<BinaryOperator>(V));
|
||||
|
||||
// If every add operand included the factor (e.g. "A*B + A*C"), then the
|
||||
// entire result expression is just the multiply "A*(B+C)".
|
||||
if (Ops.empty())
|
||||
return V2;
|
||||
|
||||
// Otherwise, we had some input that didn't have the fact, such as
|
||||
// Otherwise, we had some input that didn't have the factor, such as
|
||||
// "A*B + A*C + D" -> "A*(B+C) + D". Add the new multiply to the list of
|
||||
// things being added.
|
||||
// things being added by this operation.
|
||||
Ops.insert(Ops.begin(), ValueEntry(getRank(V2), V2));
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user