beinfo: assert() that be_get_info() is not called on Projs.
[libfirm] / ir / opt / fp-vrp.c
index 35c134c..3bee116 100644 (file)
@@ -435,9 +435,9 @@ undefined:
                                                ir_tarval* const rzn = tarval_or(rz, tarval_neg(rz));
                                                // Concatenate safe lower zeroes.
                                                if (tarval_cmp(lzn, rzn) == ir_relation_less) {
-                                                       z = tarval_mul(tarval_eor(lzn, tarval_shl(lzn, get_tarval_one(m))), rzn);
+                                                       z = tarval_mul(tarval_eor(lzn, tarval_shl_unsigned(lzn, 1)), rzn);
                                                } else {
-                                                       z = tarval_mul(tarval_eor(rzn, tarval_shl(rzn, get_tarval_one(m))), lzn);
+                                                       z = tarval_mul(tarval_eor(rzn, tarval_shl_unsigned(rzn, 1)), lzn);
                                                }
                                                o = get_tarval_null(m);
                                        }
@@ -690,8 +690,6 @@ static void apply_result(ir_node* const irn, void* ctx)
                } else if (m == mode_X) {
                        ir_graph* const irg = get_Block_irg(block);
                        if (z == get_tarval_b_true()) {
-                               // Might produce an endless loop, so keep the block.
-                               add_End_keepalive(get_irg_end(irg), block);
                                n = new_r_Jmp(block);
                        } else {
                                n = new_r_Bad(irg, mode_X);
@@ -789,7 +787,6 @@ static void queue_users(pdeq* const q, ir_node* const n)
                /* When the state of a control flow node changes, not only queue its
                 * successor blocks, but also the Phis in these blocks, because the Phis
                 * must reconsider this input path. */
-               ir_edge_t const* e;
                foreach_out_edge(n, e) {
                        ir_node*  const  src = get_edge_src_irn(e);
                        pdeq_putr(q, src);
@@ -801,7 +798,6 @@ static void queue_users(pdeq* const q, ir_node* const n)
                        }
                }
        } else {
-               ir_edge_t const* e;
                foreach_out_edge(n, e) {
                        ir_node* const src = get_edge_src_irn(e);
                        if (get_irn_mode(src) == mode_T) {