This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [PATCH] Implement redundant store elimination, fix PR38513
On Tue, 30 Dec 2008, Richard Guenther wrote:
> On Tue, 30 Dec 2008, Richard Guenther wrote:
>
> >
> > This implements redundant store elimination (just like postreload CSE
> > does) from within FRE. It triggers quite some time for C++ code and
> > also breaks the following testcases for now
> >
> > FAIL: g++.dg/warn/Warray-bounds.C (test for warnings, line 32)
> > FAIL: g++.dg/warn/Warray-bounds.C (test for warnings, line 43)
> > FAIL: g++.dg/warn/Warray-bounds.C (test for warnings, line 54)
> >
> > FAIL: gcc.dg/Warray-bounds.c (test for warnings, line 32)
> > FAIL: gcc.dg/Warray-bounds.c (test for warnings, line 43)
> > FAIL: gcc.dg/Warray-bounds.c (test for warnings, line 54)
> > FAIL: gcc.dg/vect/vect-35.c scan-tree-dump-times vect "vectorized 1 loops" 1
> > FAIL: gcc.dg/vect/vect-multitypes-16.c scan-tree-dump-times vect
> > "vectorized 1 loops" 1
> > FAIL: gcc.dg/vect/vect-multitypes-17.c scan-tree-dump-times vect
> > "vectorized 1 loops" 1
> > FAIL: gcc.dg/vect/vect-reduc-dot-u8b.c scan-tree-dump-times vect
> > "vectorized 1 loops" 1
> > FAIL: gcc.dg/vect/slp-widen-mult-u8.c scan-tree-dump-times vect
> > "vectorized 1 loops" 1
> > FAIL: gcc.dg/vect/wrapv-vect-reduc-dot-s8b.c scan-tree-dump-times vect
> > "vectorized 1 loops" 1
> >
> > because all of them test for something on redundant stores that are
> > now removed. Before applying the patch I need to sort them out, but
> > I am just posting the patch now as it works and do that work later.
> >
> > Otherwise bootstrapped and tested on x86_64-unknown-linux-gnu.
>
> Oops. Old patch. This is the current one.
This is, of course, for 4.5 - just in case anyone wonders ;)
And here's another missing hunk ... (note to myself: diff from the
correct tree)
Richard.
* tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle
EXC_PTR_EXPR and FILTER_EXPR.
(get_ref_from_reference_ops): Likewise.
Index: gcc/tree-ssa-sccvn.c
===================================================================
*** gcc/tree-ssa-sccvn.c (revision 142960)
--- gcc/tree-ssa-sccvn.c (working copy)
*************** copy_reference_ops_from_ref (tree ref, V
*** 647,652 ****
--- 647,654 ----
case CONST_DECL:
case RESULT_DECL:
case SSA_NAME:
+ case EXC_PTR_EXPR:
+ case FILTER_EXPR:
temp.op0 = ref;
break;
case ADDR_EXPR:
*************** get_ref_from_reference_ops (VEC(vn_refer
*** 739,744 ****
--- 741,748 ----
case CONST_DECL:
case RESULT_DECL:
case SSA_NAME:
+ case FILTER_EXPR:
+ case EXC_PTR_EXPR:
*op0_p = op->op0;
break;