------- 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

Reply via email to