--- Comment #1 from rguenth at gcc dot gnu dot org 2007-06-10 20:07 ---
Danny, as looked at restrict handling a few days ago - maybe you know instantly
why it doesn't work ;) (apart from us not recomputing aliasing after loop
optimizations on the tree level -- and the complete
--- Comment #2 from dberlin at gcc dot gnu dot org 2007-06-10 22:41 ---
Complete guess:
alias.c relies not on TYPE_RESTRICT, but on DECL_BASED_ON_RESTRICT_P
I never noticed we even had such a thing :)
My guess is that loop unrolling makes new ssa names, and when they get
transformed
--- Comment #3 from pinskia at gcc dot gnu dot org 2007-06-10 22:55 ---
This works on the pointer_plus branch :) Also Predictive commoning fixes it up
even without unrolling at the tree level so it works at -O3 (this is on the
pointer_plus branch I have not tried on the mainline).
--
--- 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