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

2007-06-10 Thread rguenth at gcc dot gnu dot org
--- 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

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

2007-06-10 Thread dberlin at gcc dot gnu dot org
--- 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

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

2007-06-10 Thread pinskia at gcc dot gnu dot org
--- 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). --

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

2007-06-10 Thread pinskia 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