This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug middle-end/32273] 'restrict' is forgotten after loop unrolling
- From: "pinskia at gcc dot gnu dot org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 11 Jun 2007 00:21:57 -0000
- Subject: [Bug middle-end/32273] 'restrict' is forgotten after loop unrolling
- References: <bug-32273-14680@http.gcc.gnu.org/bugzilla/>
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
------- 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