------- Comment #14 from ebotcazou at gcc dot gnu dot org 2007-07-13 20:43 ------- > Instead, where we init everything to VN_TOP, init everything with > SSA_NAME_OCCURS_IN_ABNORMAL_PHI to itself instead of VN_TOP.
@@ -1912,13 +1912,16 @@ init_scc_vn (void) VN_TOP = create_tmp_var_raw (void_type_node, "vn_top"); /* Create the VN_INFO structures, and initialize value numbers to - TOP. */ + TOP, except for SSA names appearing in abnormal PHI nodes. */ for (i = 0; i < num_ssa_names; i++) { tree name = ssa_name (i); if (name) { - VN_INFO_GET (name)->valnum = VN_TOP; + if (SSA_NAME_OCCURS_IN_ABNORMAL_PHI (name)) + VN_INFO_GET (name)->valnum = name; + else + VN_INFO_GET (name)->valnum = VN_TOP; VN_INFO (name)->expr = name; } } is not sufficient to eliminate all the failures. I get the same assertion failure for non-degenerate PHI nodes without SSA_NAME_OCCURS_IN_ABNORMAL_PHI anywhere, all operands having SSA_VAL set to VN_TOP. Top-level function too. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=32705