same fix again on another place
authorMichael Beck <beck@ipd.info.uni-karlsruhe.de>
Wed, 24 Oct 2007 20:48:48 +0000 (20:48 +0000)
committerMichael Beck <beck@ipd.info.uni-karlsruhe.de>
Wed, 24 Oct 2007 20:48:48 +0000 (20:48 +0000)
[r16337]

ir/opt/reassoc.c

index d18719a..606b534 100644 (file)
@@ -723,7 +723,8 @@ static void reverse_rules(ir_node *node, void *env) {
                if (is_op_commutative(op)) {
                        wenv->changes |= res = move_consts_up(&node);
                }
-               if (op == op_Add || op == op_Sub) {
+               /* beware: move_consts_up might have changed the opcode, check again */
+               if (is_Add(node) || is_Sub(node)) {
                        wenv->changes |= res = reverse_rule_distributive(&node);
                }
        } while (res);