This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

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;
  


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]