[Bug tree-optimization/91091] [missed optimization] Missing optimization in unaliased pointers
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91091 --- Comment #6 from Richard Biener --- Author: rguenth Date: Fri Oct 11 13:10:15 2019 New Revision: 276882 URL: https://gcc.gnu.org/viewcvs?rev=276882=gcc=rev Log: 2019-10-11 Richard Biener PR tree-optimization/90883 PR tree-optimization/91091 * tree-ssa-sccvn.c (vn_reference_lookup_3): Use correct alias-sets both for recording VN table entries and continuing walking after translating through copies. Handle same-sized reads from SSA names by returning the plain SSA name. (eliminate_dom_walker::eliminate_stmt): Properly handle non-size precision stores in redundant store elimination. * gcc.dg/torture/20191011-1.c: New testcase. * gcc.dg/tree-ssa/ssa-fre-82.c: Likewise. * gcc.dg/tree-ssa/ssa-fre-83.c: Likewise. * gcc.dg/tree-ssa/redundant-assign-zero-1.c: Disable FRE. * gcc.dg/tree-ssa/redundant-assign-zero-2.c: Likewise. Added: trunk/gcc/testsuite/gcc.dg/torture/20191011-1.c trunk/gcc/testsuite/gcc.dg/tree-ssa/ssa-fre-82.c trunk/gcc/testsuite/gcc.dg/tree-ssa/ssa-fre-83.c Modified: trunk/gcc/ChangeLog trunk/gcc/testsuite/ChangeLog trunk/gcc/testsuite/gcc.dg/tree-ssa/redundant-assign-zero-1.c trunk/gcc/testsuite/gcc.dg/tree-ssa/redundant-assign-zero-2.c trunk/gcc/tree-ssa-sccvn.c
[Bug tree-optimization/91091] [missed optimization] Missing optimization in unaliased pointers
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91091 --- Comment #5 from Richard Biener --- Author: rguenth Date: Thu Aug 15 12:02:47 2019 New Revision: 274532 URL: https://gcc.gnu.org/viewcvs?rev=274532=gcc=rev Log: 2019-08-15 Richard Biener PR tree-optimization/91445 * gcc.dg/torture/pr91445.c: New testcase. Backport from mainline 2019-07-05 Richard Biener PR tree-optimization/91091 * tree-ssa-alias.h (get_continuation_for_phi): Add tbaa_p parameter. (walk_non_aliased_vuses): Likewise. * tree-ssa-alias.c (maybe_skip_until): Pass down tbaa_p. (get_continuation_for_phi): New tbaa_p parameter and pass it down. (walk_non_aliased_vuses): Likewise. * tree-ssa-pre.c (translate_vuse_through_block): Likewise. * tree-ssa-scopedtables.c (avail_exprs_stack::lookup_avail_expr): Likewise. * tree-ssa-sccvn.c (struct vn_walk_cb_data): Add tbaa_p flag. (vn_reference_lookup_3): Handle and pass down tbaa_p flag. (vn_reference_lookup_pieces): Adjust. (vn_reference_lookup): Remove alias-set altering, instead pass down false as tbaa_p. * gcc.dg/tree-ssa/pr91091-2.c: New testcase. 2019-07-04 Richard Biener * tree-ssa-sccvn.h (vn_reference_lookup): Add last_vuse_ptr argument. * tree-ssa-sccvn.c (last_vuse_ptr, vn_walk_kind): Move globals into... (struct vn_walk_cb_data): New callback data struct. (vn_reference_lookup_2): Adjust. (vn_reference_lookup_3): Likewise. (vn_reference_lookup_pieces): Likewise. (vn_reference_lookup): Likewise, get last_vuse_ptr argument. (visit_reference_op_load): Adjust. Added: branches/gcc-9-branch/gcc/testsuite/gcc.dg/torture/pr91445.c branches/gcc-9-branch/gcc/testsuite/gcc.dg/tree-ssa/pr91091-2.c Modified: branches/gcc-9-branch/gcc/ChangeLog branches/gcc-9-branch/gcc/testsuite/ChangeLog branches/gcc-9-branch/gcc/tree-ssa-alias.c branches/gcc-9-branch/gcc/tree-ssa-alias.h branches/gcc-9-branch/gcc/tree-ssa-pre.c branches/gcc-9-branch/gcc/tree-ssa-sccvn.c branches/gcc-9-branch/gcc/tree-ssa-sccvn.h branches/gcc-9-branch/gcc/tree-ssa-scopedtables.c
[Bug tree-optimization/91091] [missed optimization] Missing optimization in unaliased pointers
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91091 Bug 91091 depends on bug 91419, which changed state. Bug 91419 Summary: [10 Regression]: gcc.dg/tree-ssa/pr91091-2.c, ssa-fre-61.c, ssa-fre-61.c with r273232 https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91419 What|Removed |Added Status|NEW |RESOLVED Resolution|--- |FIXED
[Bug tree-optimization/91091] [missed optimization] Missing optimization in unaliased pointers
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91091 Richard Biener changed: What|Removed |Added Status|ASSIGNED|RESOLVED Known to work||10.0 Resolution|--- |FIXED --- Comment #3 from Richard Biener --- Fixed for GCC 10.
[Bug tree-optimization/91091] [missed optimization] Missing optimization in unaliased pointers
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91091 --- Comment #4 from Richard Biener --- Author: rguenth Date: Fri Jul 5 12:50:45 2019 New Revision: 273135 URL: https://gcc.gnu.org/viewcvs?rev=273135=gcc=rev Log: 2019-07-05 Richard Biener PR tree-optimization/91091 * tree-ssa-alias.h (get_continuation_for_phi): Add tbaa_p parameter. (walk_non_aliased_vuses): Likewise. * tree-ssa-alias.c (maybe_skip_until): Pass down tbaa_p. (get_continuation_for_phi): New tbaa_p parameter and pass it down. (walk_non_aliased_vuses): Likewise. * ipa-prop.c (determine_known_aggregate_parts): Adjust. * tree-ssa-pre.c (translate_vuse_through_block): Likewise. * tree-ssa-scopedtables.c (avail_exprs_stack::lookup_avail_expr): Likewise. * tree-ssa-sccvn.c (struct vn_walk_cb_data): Add tbaa_p flag. (adjust_offsets_for_equal_base_address): New function. (vn_reference_lookup_3): Use it to catch more base equivalences. Handle and pass down tbaa_p flag. (vn_reference_lookup_pieces): Adjust. (vn_reference_lookup): Remove alias-set altering, instead pass down false as tbaa_p. * gcc.dg/tree-ssa/pr91091-2.c: New testcase. * gcc.dg/tree-ssa/ssa-fre-70.c: Likewise. * gcc.dg/tree-ssa/ssa-fre-71.c: Likewise. * gcc.dg/tree-ssa/ssa-fre-72.c: Likewise. Added: trunk/gcc/testsuite/gcc.dg/tree-ssa/pr91091-2.c trunk/gcc/testsuite/gcc.dg/tree-ssa/ssa-fre-70.c trunk/gcc/testsuite/gcc.dg/tree-ssa/ssa-fre-71.c trunk/gcc/testsuite/gcc.dg/tree-ssa/ssa-fre-72.c Modified: trunk/gcc/ChangeLog trunk/gcc/ipa-prop.c trunk/gcc/testsuite/ChangeLog trunk/gcc/tree-ssa-alias.c trunk/gcc/tree-ssa-alias.h trunk/gcc/tree-ssa-pre.c trunk/gcc/tree-ssa-sccvn.c trunk/gcc/tree-ssa-scopedtables.c
[Bug tree-optimization/91091] [missed optimization] Missing optimization in unaliased pointers
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91091 --- Comment #2 from Richard Biener --- Author: rguenth Date: Fri Jul 5 12:48:42 2019 New Revision: 273134 URL: https://gcc.gnu.org/viewcvs?rev=273134=gcc=rev Log: 2019-07-05 Richard Biener PR tree-optimization/91091 * tree-ssa-sccvn.c (vn_reference_lookup_3): Overlap of accesses can happen with -fno-strict-aliasing. * gcc.dg/tree-ssa/pr91091-1.c: New testcase. * gcc.dg/tree-ssa/ssa-fre-61.c: Adjust. Added: trunk/gcc/testsuite/gcc.dg/tree-ssa/pr91091-1.c Modified: trunk/gcc/ChangeLog trunk/gcc/testsuite/ChangeLog trunk/gcc/testsuite/gcc.dg/tree-ssa/ssa-fre-61.c trunk/gcc/tree-ssa-sccvn.c
[Bug tree-optimization/91091] [missed optimization] Missing optimization in unaliased pointers
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91091 Richard Biener changed: What|Removed |Added Keywords||missed-optimization Status|UNCONFIRMED |ASSIGNED Last reconfirmed||2019-07-05 Assignee|unassigned at gcc dot gnu.org |rguenth at gcc dot gnu.org Ever confirmed|0 |1 --- Comment #1 from Richard Biener --- Note that GCC middle-end semantics would allow partial overlaps here unless you factor in alignment requirements. There is actually code in GCC9+ that is supposed to handle this situation but for some reason it doesn't work here. I'll see why.