[Bug middle-end/71062] [7 regression] r235622 and restrict pointers

2016-05-12 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71062

Richard Biener  changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution|--- |FIXED

--- Comment #5 from Richard Biener  ---
Fixed.

[Bug middle-end/71062] [7 regression] r235622 and restrict pointers

2016-05-12 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71062

--- Comment #4 from Richard Biener  ---
Author: rguenth
Date: Thu May 12 13:05:13 2016
New Revision: 236174

URL: https://gcc.gnu.org/viewcvs?rev=236174&root=gcc&view=rev
Log:
2016-05-12  Richard Biener  

PR tree-optimization/71062
* tree-ssa-alias.h (struct pt_solution): Add vars_contains_restrict
field.
* tree-ssa-structalias.c (set_uids_in_ptset): Set
vars_contains_restrict
if the var is a restrict tag.
* tree-ssa-alias.c (ptrs_compare_unequal): If vars_contains_restrict
do not disambiguate pointers against it.
(dump_points_to_solution): Re-structure and adjust for new
vars_contains_restrict flag.
* gimple-pretty-print.c (pp_points_to_solution): Likewise.

* gcc.dg/torture/pr71062.c: New testcase.

Added:
trunk/gcc/testsuite/gcc.dg/torture/pr71062.c
Modified:
trunk/gcc/ChangeLog
trunk/gcc/gimple-pretty-print.c
trunk/gcc/testsuite/ChangeLog
trunk/gcc/tree-ssa-alias.c
trunk/gcc/tree-ssa-alias.h
trunk/gcc/tree-ssa-structalias.c

[Bug middle-end/71062] [7 regression] r235622 and restrict pointers

2016-05-12 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71062

Richard Biener  changed:

   What|Removed |Added

   Keywords||wrong-code
 Status|UNCONFIRMED |ASSIGNED
   Last reconfirmed||2016-05-12
   Assignee|unassigned at gcc dot gnu.org  |rguenth at gcc dot 
gnu.org
   Target Milestone|--- |7.0
 Ever confirmed|0   |1

--- Comment #3 from Richard Biener  ---
Mine.

[Bug middle-end/71062] [7 regression] r235622 and restrict pointers

2016-05-11 Thread joseph at codesourcery dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71062

--- Comment #2 from joseph at codesourcery dot com  ---
I don't think it's valid to optimize for comparisons, where dereference 
doesn't occur, based on restrict; restrict is only about how an object is 
accessed (and as long as the object doesn't get modified, multiple 
pointers, restricted and otherwise, can be used to access it; it's only if 
the object is modified[*] that the rules about restrict come into play).

[*] Including the deemed modifications from "Every access that modifies X 
shall be considered also to modify P, for the purposes of this subclause." 
to deal with multiple levels of restricted pointers.

[Bug middle-end/71062] [7 regression] r235622 and restrict pointers

2016-05-11 Thread andre.simoesdiasvieira at arm dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71062

Andre Vieira  changed:

   What|Removed |Added

 Target||arm
Summary|[bugzilla] r235622 and  |[7 regression] r235622 and
   |restrict pointers   |restrict pointers

--- Comment #1 from Andre Vieira  ---
Register keyword here is superfluous. It is all down to the restrict keyword.