------- Comment #9 from rguenth at gcc dot gnu dot org 2009-02-17 13:23 ------- This happens to fix it:
Index: tree-ssa-pre.c =================================================================== --- tree-ssa-pre.c (revision 144226) +++ tree-ssa-pre.c (working copy) @@ -3537,7 +3537,10 @@ make_values_for_phi (gimple phi, basic_b actual computations. */ if (is_gimple_reg (result)) { - pre_expr e = get_or_alloc_expr_for_name (result); + pre_expr e; + if (VN_INFO (result)->valnum != VN_TOP) + result = VN_INFO (result)->valnum; + e = get_or_alloc_expr_for_name (result); add_to_value (get_expr_value_id (e), e); bitmap_insert_into_set (PHI_GEN (block), e); bitmap_value_insert_into_set (AVAIL_OUT (block), e); Jakub, can you verify this also fixes the original testcase? Danny, does the above make sense at all? -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=39204