Re: [RFA][tree-optimization/90883] Improve DSE to handle redundant calls

2019-06-28 Thread Jeff Law
On 6/28/19 1:55 AM, Rainer Orth wrote: > Hi Christophe, > >> I've also noticed that >> FAIL: g++.dg/tree-ssa/pr90883.C scan-tree-dump dse1 "Deleted >> redundant store: .*.a = {}" >> on aarch64 > > it also FAILs on sparc, ia64, m68k, and mips64el. alpha is also affected. Jeff

Re: [RFA][tree-optimization/90883] Improve DSE to handle redundant calls

2019-06-28 Thread Jeff Law
On 6/28/19 1:55 AM, Rainer Orth wrote: > Hi Christophe, > >> I've also noticed that >> FAIL: g++.dg/tree-ssa/pr90883.C scan-tree-dump dse1 "Deleted >> redundant store: .*.a = {}" >> on aarch64 > > it also FAILs on sparc, ia64, m68k, and mips64el. It's an interaction with CLEAR_RATIO that's caus

Re: [RFA][tree-optimization/90883] Improve DSE to handle redundant calls

2019-06-28 Thread Jeff Law
On 6/28/19 1:55 AM, Rainer Orth wrote: > Hi Christophe, > >> I've also noticed that >> FAIL: g++.dg/tree-ssa/pr90883.C scan-tree-dump dse1 "Deleted >> redundant store: .*.a = {}" >> on aarch64 > > it also FAILs on sparc, ia64, m68k, and mips64el. sparc seems to be emitting a loop when we expect

Re: [RFA][tree-optimization/90883] Improve DSE to handle redundant calls

2019-06-28 Thread Rainer Orth
Hi Christophe, > I've also noticed that > FAIL: g++.dg/tree-ssa/pr90883.C scan-tree-dump dse1 "Deleted > redundant store: .*.a = {}" > on aarch64 it also FAILs on sparc, ia64, m68k, and mips64el. Rainer -- -

Re: [RFA][tree-optimization/90883] Improve DSE to handle redundant calls

2019-06-27 Thread Christophe Lyon
On Thu, 27 Jun 2019 at 04:23, Jeff Law wrote: > > On 6/26/19 7:14 PM, Bill Schmidt wrote: > > Looks like this patch breaks bootstrap. > > > > /home3/wschmidt/gcc/gcc-mainline-base/gcc/tree-ssa-dse.c: In function > > 'void dse\ > > _optimize_redundant_stores(gimple*)': > > /home3/wschmidt/gcc/gcc-m

Re: [RFA][tree-optimization/90883] Improve DSE to handle redundant calls

2019-06-26 Thread Jeff Law
On 6/26/19 7:14 PM, Bill Schmidt wrote: > Looks like this patch breaks bootstrap. > > /home3/wschmidt/gcc/gcc-mainline-base/gcc/tree-ssa-dse.c: In function > 'void dse\ > _optimize_redundant_stores(gimple*)': > /home3/wschmidt/gcc/gcc-mainline-base/gcc/tree-ssa-dse.c:649:46: error: > ISO C++\ >  f

Re: [RFA][tree-optimization/90883] Improve DSE to handle redundant calls

2019-06-26 Thread Bill Schmidt
Looks like this patch breaks bootstrap. /home3/wschmidt/gcc/gcc-mainline-base/gcc/tree-ssa-dse.c: In function 'void dse\ _optimize_redundant_stores(gimple*)': /home3/wschmidt/gcc/gcc-mainline-base/gcc/tree-ssa-dse.c:649:46: error: ISO C++\  forbids converting a string constant to 'char*' [-Werror=

Re: [RFA][tree-optimization/90883] Improve DSE to handle redundant calls

2019-06-26 Thread Jeff Law
On 6/26/19 5:53 AM, Richard Biener wrote: > On Wed, Jun 26, 2019 at 6:17 AM Jeff Law wrote: >> >> So based on the conversation in the BZ I cobbled together a patch to >> extend tree-ssa-dse.c to also detect redundant stores. >> >> To be clear, given two stores, the first store is dead if the later

Re: [RFA][tree-optimization/90883] Improve DSE to handle redundant calls

2019-06-26 Thread Jeff Law
On 6/26/19 5:53 AM, Richard Biener wrote: > On Wed, Jun 26, 2019 at 6:17 AM Jeff Law wrote: >> >> So based on the conversation in the BZ I cobbled together a patch to >> extend tree-ssa-dse.c to also detect redundant stores. >> >> To be clear, given two stores, the first store is dead if the later

Re: [RFA][tree-optimization/90883] Improve DSE to handle redundant calls

2019-06-26 Thread Richard Biener
On Wed, Jun 26, 2019 at 6:17 AM Jeff Law wrote: > > So based on the conversation in the BZ I cobbled together a patch to > extend tree-ssa-dse.c to also detect redundant stores. > > To be clear, given two stores, the first store is dead if the later > store overwrites all the live bytes set by the

[RFA][tree-optimization/90883] Improve DSE to handle redundant calls

2019-06-25 Thread Jeff Law
So based on the conversation in the BZ I cobbled together a patch to extend tree-ssa-dse.c to also detect redundant stores. To be clear, given two stores, the first store is dead if the later store overwrites all the live bytes set by the first store. In this case we delete the first store. If