Re: [PATCH] Reducing number of alias checks in vectorization.

2013-11-08 Thread Dominique Dhumieres
> Thank you for the report. I have submitted a bug fix patch waiting to > be reviewed. The patch fixes the fortran failures (tested on gfortran an libgomp only). Thanks, Dominique

Re: [PATCH] Reducing number of alias checks in vectorization.

2013-11-08 Thread Cong Hou
Thank you for the report. I have submitted a bug fix patch waiting to be reviewed. thanks, Cong On Fri, Nov 8, 2013 at 5:26 AM, Dominique Dhumieres wrote: > According to http://gcc.gnu.org/ml/gcc-regression/2013-11/msg00197.html > revision 204538 is breaking several tests. On x86_64-apple-dar

Re: [PATCH] Reducing number of alias checks in vectorization.

2013-11-08 Thread Dominique Dhumieres
According to http://gcc.gnu.org/ml/gcc-regression/2013-11/msg00197.html revision 204538 is breaking several tests. On x86_64-apple-darwin* the failures I have looked at are of the kind /opt/gcc/work/gcc/testsuite/gfortran.dg/typebound_operator_9.f03: In function 'nabla2_cart2d': /opt/gcc/work/gcc

Re: [PATCH] Reducing number of alias checks in vectorization.

2013-10-18 Thread Richard Biener
On Tue, Oct 15, 2013 at 12:43 AM, Cong Hou wrote: > Sorry for forgetting using plain-text mode. Resend it. > > > -- Forwarded message -- > From: Cong Hou > Date: Mon, Oct 14, 2013 at 3:29 PM > Subject: Re: [PATCH] Reducing number of alias checks in vectori

Re: [PATCH] Reducing number of alias checks in vectorization.

2013-10-18 Thread Richard Biener
On Wed, Oct 2, 2013 at 8:26 PM, Jakub Jelinek wrote: > On Wed, Oct 02, 2013 at 10:50:21AM -0700, Cong Hou wrote: >> >> + if (int_cst_value (p11.offset) != int_cst_value (p21.offset)) >> >> +return int_cst_value (p11.offset) < int_cst_value (p21.offset); >> > >> > This is going to ICE whenever

Fwd: [PATCH] Reducing number of alias checks in vectorization.

2013-10-14 Thread Cong Hou
Sorry for forgetting using plain-text mode. Resend it. -- Forwarded message -- From: Cong Hou Date: Mon, Oct 14, 2013 at 3:29 PM Subject: Re: [PATCH] Reducing number of alias checks in vectorization. To: Richard Biener , GCC Patches Cc: Jakub Jelinek I have made a new patch

Re: [PATCH] Reducing number of alias checks in vectorization.

2013-10-03 Thread Cong Hou
Forget about this "aux" idea as the segment length for one data ref can be different in different dr pairs. In my patch I created a struct as shown below: struct dr_addr_with_seg_len { data_reference *dr; tree basic_addr; tree offset; tree seg_len; }; Note that basic_addr and offset can

Re: [PATCH] Reducing number of alias checks in vectorization.

2013-10-03 Thread Cong Hou
On Thu, Oct 3, 2013 at 2:06 PM, Joseph S. Myers wrote: > On Tue, 1 Oct 2013, Cong Hou wrote: > >> +#include >> +#include >> +#include >> + >> #include "config.h" > > Whatever the other issues about including these headers at all, any system > header (C or C++) must always be included *after* c

Re: [PATCH] Reducing number of alias checks in vectorization.

2013-10-03 Thread Joseph S. Myers
On Tue, 1 Oct 2013, Cong Hou wrote: > +#include > +#include > +#include > + > #include "config.h" Whatever the other issues about including these headers at all, any system header (C or C++) must always be included *after* config.h, as config.h may define feature test macros that are only p

Re: [PATCH] Reducing number of alias checks in vectorization.

2013-10-03 Thread Xinliang David Li
Looks reasonable to me. David On Thu, Oct 3, 2013 at 10:57 AM, Cong Hou wrote: > I noticed that there is a "struct dataref_aux" defined in > tree-vectorizer.h which is specific to the vectorizer pass and is > stored in (void*)aux in "struct data_reference". Can we add one more > field "segment_l

Re: [PATCH] Reducing number of alias checks in vectorization.

2013-10-03 Thread Cong Hou
I noticed that there is a "struct dataref_aux" defined in tree-vectorizer.h which is specific to the vectorizer pass and is stored in (void*)aux in "struct data_reference". Can we add one more field "segment_length" to dataref_aux so that we can pass this information for merging alias checks? Then

Re: [PATCH] Reducing number of alias checks in vectorization.

2013-10-03 Thread Xinliang David Li
On Wed, Oct 2, 2013 at 5:30 PM, Cong Hou wrote: > On Wed, Oct 2, 2013 at 2:47 PM, Xinliang David Li wrote: >> I think you need to augment (using a wrapper class) the DDR to capture >> more information about aliased memory pairs. It should be flexible >> enough to handle the following cases (you d

Re: [PATCH] Reducing number of alias checks in vectorization.

2013-10-03 Thread Xinliang David Li
General loop multi-versioning (pass) can be a very powerful enabler, especially when combined with FDO. The loop MV can be done based on many different conditions: 1) loop trip count (e.g, when we do value profiling on trip count, not based on average count); 2) memory aliasing 3) target options --

Re: [PATCH] Reducing number of alias checks in vectorization.

2013-10-02 Thread Cong Hou
On Wed, Oct 2, 2013 at 2:47 PM, Xinliang David Li wrote: > I think you need to augment (using a wrapper class) the DDR to capture > more information about aliased memory pairs. It should be flexible > enough to handle the following cases (you don't have to handle all > cases in your first patch, b

Re: [PATCH] Reducing number of alias checks in vectorization.

2013-10-02 Thread Cong Hou
Forget to mention that the alias check merger can reduce the number of checks from 7 to 2 for this example: struct A { int *base; int offset; int offset2; int offset3; int offset4; int offset5; int offset6; int offset7; int offset8; }; void foo (struct A * ar1, struct A* ar2) {

Re: [PATCH] Reducing number of alias checks in vectorization.

2013-10-02 Thread Cong Hou
On Wed, Oct 2, 2013 at 2:18 PM, Xinliang David Li wrote: > On Wed, Oct 2, 2013 at 4:24 AM, Richard Biener wrote: >> On Tue, 1 Oct 2013, Cong Hou wrote: >> >>> When alias exists between data refs in a loop, to vectorize it GCC >>> does loop versioning and adds runtime alias checks. Basically for e

Re: [PATCH] Reducing number of alias checks in vectorization.

2013-10-02 Thread Xinliang David Li
I think you need to augment (using a wrapper class) the DDR to capture more information about aliased memory pairs. It should be flexible enough to handle the following cases (you don't have to handle all cases in your first patch, but keep those in mind). 1) All accesses in the same group have co

Re: [PATCH] Reducing number of alias checks in vectorization.

2013-10-02 Thread Cong Hou
On Wed, Oct 2, 2013 at 4:24 AM, Richard Biener wrote: > On Tue, 1 Oct 2013, Cong Hou wrote: > >> When alias exists between data refs in a loop, to vectorize it GCC >> does loop versioning and adds runtime alias checks. Basically for each >> pair of data refs with possible data dependence, there wi

Re: [PATCH] Reducing number of alias checks in vectorization.

2013-10-02 Thread Xinliang David Li
On Wed, Oct 2, 2013 at 4:24 AM, Richard Biener wrote: > On Tue, 1 Oct 2013, Cong Hou wrote: > >> When alias exists between data refs in a loop, to vectorize it GCC >> does loop versioning and adds runtime alias checks. Basically for each >> pair of data refs with possible data dependence, there wi

Re: [PATCH] Reducing number of alias checks in vectorization.

2013-10-02 Thread Dehao Chen
On Wed, Oct 2, 2013 at 10:50 AM, Cong Hou wrote: > On Tue, Oct 1, 2013 at 11:35 PM, Jakub Jelinek wrote: >> On Tue, Oct 01, 2013 at 07:12:54PM -0700, Cong Hou wrote: >>> --- gcc/tree-vect-loop-manip.c (revision 202662) >>> +++ gcc/tree-vect-loop-manip.c (working copy) >> >> Your mailer ate all th

Re: [PATCH] Reducing number of alias checks in vectorization.

2013-10-02 Thread Jakub Jelinek
On Wed, Oct 02, 2013 at 10:50:21AM -0700, Cong Hou wrote: > >> + if (int_cst_value (p11.offset) != int_cst_value (p21.offset)) > >> +return int_cst_value (p11.offset) < int_cst_value (p21.offset); > > > > This is going to ICE whenever the offsets wouldn't fit into a > > HOST_WIDE_INT. > > > >

Re: [PATCH] Reducing number of alias checks in vectorization.

2013-10-02 Thread Cong Hou
On Tue, Oct 1, 2013 at 11:35 PM, Jakub Jelinek wrote: > On Tue, Oct 01, 2013 at 07:12:54PM -0700, Cong Hou wrote: >> --- gcc/tree-vect-loop-manip.c (revision 202662) >> +++ gcc/tree-vect-loop-manip.c (working copy) > > Your mailer ate all the tabs, so the formatting of the whole patch > can't be c

Re: [PATCH] Reducing number of alias checks in vectorization.

2013-10-02 Thread Richard Biener
On Tue, 1 Oct 2013, Cong Hou wrote: > When alias exists between data refs in a loop, to vectorize it GCC > does loop versioning and adds runtime alias checks. Basically for each > pair of data refs with possible data dependence, there will be two > comparisons generated to make sure there is no al

Re: [PATCH] Reducing number of alias checks in vectorization.

2013-10-01 Thread Jakub Jelinek
On Tue, Oct 01, 2013 at 07:12:54PM -0700, Cong Hou wrote: > --- gcc/tree-vect-loop-manip.c (revision 202662) > +++ gcc/tree-vect-loop-manip.c (working copy) Your mailer ate all the tabs, so the formatting of the whole patch can't be checked. > @@ -19,6 +19,10 @@ You should have received a copy of

Re: [PATCH] Reducing number of alias checks in vectorization.

2013-10-01 Thread pinskia
> On Oct 1, 2013, at 7:12 PM, Cong Hou wrote: > > When alias exists between data refs in a loop, to vectorize it GCC > does loop versioning and adds runtime alias checks. Basically for each > pair of data refs with possible data dependence, there will be two > comparisons generated to make sure

[PATCH] Reducing number of alias checks in vectorization.

2013-10-01 Thread Cong Hou
When alias exists between data refs in a loop, to vectorize it GCC does loop versioning and adds runtime alias checks. Basically for each pair of data refs with possible data dependence, there will be two comparisons generated to make sure there is no aliasing between them in each iteration of the