This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug middle-end/32273] 'restrict' is forgotten after loop unrolling



------- Comment #4 from pinskia at gcc dot gnu dot org  2007-06-11 00:21 -------
Yes this is fixed on the pointer_plus branch, the pointer_plus branch is better
at keeping track of what the decl is the restrict pointer's base.

-;; *D.1537 = *D.1539 + *D.1537
+;; *D.1538 = *D.1541 + *D.1538
 (insn 14 13 15 t.c:16 (set (reg:SI 66)
-        (mem:SI (reg:SI 59 [ D.1539 ]) [8 S4 A32])) -1 (nil)
+        (mem:SI (reg:SI 59 [ D.1541 ]) [2 S4 A32])) -1 (nil)
     (nil))

 (insn 15 14 0 t.c:16 (parallel [
-            (set (mem:SI (reg:SI 60 [ D.1537 ]) [7 S4 A32])
-                (plus:SI (mem:SI (reg:SI 60 [ D.1537 ]) [7 S4 A32])
+            (set (mem:SI (reg:SI 60 [ D.1538 ]) [2 S4 A32])
+                (plus:SI (mem:SI (reg:SI 60 [ D.1538 ]) [2 S4 A32])
                     (reg:SI 66)))
             (clobber (reg:CC 17 flags))
         ]) -1 (nil)
-    (expr_list:REG_EQUAL (plus:SI (mem:SI (reg:SI 60 [ D.1537 ]) [7 S4 A32])
-            (mem:SI (reg:SI 59 [ D.1539 ]) [8 S4 A32]))
+    (expr_list:REG_EQUAL (plus:SI (mem:SI (reg:SI 60 [ D.1538 ]) [2 S4 A32])
+            (mem:SI (reg:SI 59 [ D.1541 ]) [2 S4 A32]))
         (nil)))


See how the - has different aliasing sets than the +, the - has the correct
aliasing set.

So this is now mine.


-- 

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
  GCC build triplet|i686-pc-linux-gnu           |
   GCC host triplet|i686-pc-linux-gnu           |
 GCC target triplet|i686-pc-linux-gnu           |
   Last reconfirmed|0000-00-00 00:00:00         |2007-06-11 00:21:57
               date|                            |


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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]