Closed mpeterv closed 9 years ago
LGTM. The associativity/commutativity logic seems sound, and it caused no problems for the automatically-generated tests. There were no changes under doc/ from this pull request ( @andywingo ). Waiting for a second review. Thank you, @mpeterv !
LGTM but I'd leave it to @andywingo for a final review. He knows this part of the code the most and I believe he would like to review it.
This change allows associative binop folding to always work if an expression tree contains at least two numbers. E.g.
(A + C1) + (B + C2)
now folds to(A + B) + (C1 + C2)
.This improves code generated for #215: 517 lines -> 472 lines, 270 arithmetic ops (number of pluses) -> 187 ops.