------- Additional Comments From steven at gcc dot gnu dot org  2004-12-20 
09:10 -------
After alias2, we have this statement: 
 
#   NMT.24D.1619 = V_MAY_DEF <NMT.24D.1619>; 
#   NMT.25D.1620 = V_MAY_DEF <NMT.25D.1620>; 
#   NMT.26D.1621 = V_MAY_DEF <NMT.26D.1621>; 
#   NMT.27D.1622 = V_MAY_DEF <NMT.27D.1622>; 
foo_int_int (D.1505_6, D.1506_5); 
 
but in this loop: 
 
  /* Note that virtual definitions are irrelevant for computing KILLS 
     because a V_MAY_DEF does not constitute a killing definition of the 
     variable.  However, the operand of a virtual definitions is a use 
     of the variable, so it may cause the variable to be considered 
     live-on-entry.  */ 
  FOR_EACH_SSA_MAYDEF_OPERAND (def_p, use_p, stmt, iter) 
    { 
      if (prepare_use_operand_for_rename (use_p, &uid)) 
        { 
          /* If we do not already have an SSA_NAME for our destination, 
             then set the destination to the source.  */ 
          if (TREE_CODE (DEF_FROM_PTR (def_p)) != SSA_NAME) 
            SET_DEF (def_p, USE_FROM_PTR (use_p)); 
 
          set_livein_block (USE_FROM_PTR (use_p), bb); 
          set_def_block (DEF_FROM_PTR (def_p), bb, false, false); 
          REWRITE_THIS_STMT (stmt) = 1; 
        } 
    } 
 
we never return true for any of the NMTs in prepare_use_operand_for_rename, 
so we never mark this statement for renaming. 
 

-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=19080

Reply via email to