- Changed keep logic: all nodes can be keeped yet, thi is necessary to fix fehler152
[libfirm] / ir / ir / iropt.c
index b4cf9fb..219c7d7 100644 (file)
@@ -1262,8 +1262,8 @@ restart:
                        if (get_mode_arithmetic(n_mode) == irma_twos_complement &&
                            get_mode_arithmetic(a_mode) == irma_ieee754) {
                                /* ConvI(ConvF(I)) -> I, iff float mantissa >= int mode */
-                               size_t int_mantissa = get_mode_size_bits(n_mode) - (mode_is_signed(n_mode) ? 1 : 0);
-                               size_t float_mantissa = tarval_ieee754_get_mantissa_size(a_mode);
+                               unsigned int_mantissa   = get_mode_size_bits(n_mode) - (mode_is_signed(n_mode) ? 1 : 0);
+                               unsigned float_mantissa = tarval_ieee754_get_mantissa_size(a_mode);
 
                                if (float_mantissa >= int_mantissa) {
                                        n = b;
@@ -5316,9 +5316,7 @@ static ir_node *transform_node_End(ir_node *n) {
                } else if (is_irn_pinned_in_irg(ka) && is_Block_dead(get_nodes_block(ka))) {
                        continue;
                }
-               /* FIXME: beabi need to keep a Proj(M) */
-               if (is_Phi(ka) || is_irn_keep(ka) || is_Proj(ka))
-                       in[j++] = ka;
+               in[j++] = ka;
        }
        if (j != n_keepalives)
                set_End_keepalives(n, j, in);