[Bug rtl-optimization/37219] [4.3/4.4 Regression] fwprop1 is broken for addresses

pinskia at gcc dot gnu dot org gcc-bugzilla@gcc.gnu.org
Sun Aug 24 03:57:00 GMT 2008



------- Comment #1 from pinskia at gcc dot gnu dot org  2008-08-24 03:55 -------
Here is the patch which I am testing:
Index: fwprop.c
===================================================================
--- fwprop.c    (revision 139496)
+++ fwprop.c    (working copy)
@@ -1056,7 +1056,9 @@ fwprop (void)
       struct df_ref *use = DF_USES_GET (i);
       if (use)
        if (DF_REF_TYPE (use) == DF_REF_REG_USE
-           || DF_REF_BB (use)->loop_father == NULL)
+           || DF_REF_BB (use)->loop_father == NULL
+           /* The outer most loop is not really a loop.  */
+           || loop_outer (DF_REF_BB (use)->loop_father) == NULL)
          forward_propagate_into (use);
     }

@@ -1099,7 +1101,9 @@ fwprop_addr (void)
       struct df_ref *use = DF_USES_GET (i);
       if (use)
        if (DF_REF_TYPE (use) != DF_REF_REG_USE
-           && DF_REF_BB (use)->loop_father != NULL)
+           && DF_REF_BB (use)->loop_father != NULL
+           /* The outer most loop is not really a loop.  */
+           && loop_outer (DF_REF_BB (use)->loop_father) != NULL)
          forward_propagate_into (use);
     }

--- CUT ---


-- 

pinskia at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
         AssignedTo|unassigned at gcc dot gnu   |pinskia at gcc dot gnu dot
                   |dot org                     |org
             Status|UNCONFIRMED                 |ASSIGNED
     Ever Confirmed|0                           |1
   Last reconfirmed|0000-00-00 00:00:00         |2008-08-24 03:55:43
               date|                            |
   Target Milestone|---                         |4.3.2


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



More information about the Gcc-bugs mailing list