Re: [PATCH PR71734] Add missed check that reference defined inside loop.

2016-08-09 Thread Richard Biener
On Tue, Aug 9, 2016 at 2:05 PM, Yuri Rumyantsev wrote: > Richard, > > I checked that this move helps. > Does it mean that I've got approval to integrate it to trunk? Yes, if it survives bootstrap & regtest. Richard. > 2016-08-09 14:33 GMT+03:00 Richard Biener

Re: [PATCH PR71734] Add missed check that reference defined inside loop.

2016-08-09 Thread Yuri Rumyantsev
Richard, I checked that this move helps. Does it mean that I've got approval to integrate it to trunk? 2016-08-09 14:33 GMT+03:00 Richard Biener : > On Tue, Aug 9, 2016 at 1:26 PM, Yuri Rumyantsev wrote: >> Richard, >> >> The patch proposed by you

Re: [PATCH PR71734] Add missed check that reference defined inside loop.

2016-08-09 Thread Richard Biener
On Tue, Aug 9, 2016 at 1:26 PM, Yuri Rumyantsev wrote: > Richard, > > The patch proposed by you does not work properly for > g++.dg/vect/pr70729-nest.cc test since the reference for this->S_n has > been cached as dependent for outer loop and loop is not vectorized: > > g++

Re: [PATCH PR71734] Add missed check that reference defined inside loop.

2016-08-09 Thread Yuri Rumyantsev
Richard, The patch proposed by you does not work properly for g++.dg/vect/pr70729-nest.cc test since the reference for this->S_n has been cached as dependent for outer loop and loop is not vectorized: g++ -Ofast -fopenmp -mavx2 pr70729-nest.cc -c -fdump-tree-vect-details grep 'LOOP VECTORIZED'

Re: [PATCH PR71734] Add missed check that reference defined inside loop.

2016-08-09 Thread Richard Biener
On Tue, Aug 9, 2016 at 11:20 AM, Yuri Rumyantsev wrote: > Yes it is impossible since all basic blocks are handled from outer > loops to innermost so we can not have the sequence with wrong > dependence, i.e. we cached that reference is independent (due to > safelen) but the

Re: [PATCH PR71734] Add missed check that reference defined inside loop.

2016-08-05 Thread Richard Biener
On Fri, Aug 5, 2016 at 3:28 PM, Yuri Rumyantsev wrote: > Richard, > > Here is updated patch which implements your proposal - I pass loop > instead of stmt to determine either REF is defined inside LOOP nest or > not. I checked that for pr70729-nest.cc the reference this->S_n

Re: [PATCH PR71734] Add missed check that reference defined inside loop.

2016-08-05 Thread Yuri Rumyantsev
Richard, Here is updated patch which implements your proposal - I pass loop instead of stmt to determine either REF is defined inside LOOP nest or not. I checked that for pr70729-nest.cc the reference this->S_n for statements which are out of innermost loop are not considered as independent as

Re: [PATCH PR71734] Add missed check that reference defined inside loop.

2016-08-03 Thread Richard Biener
On Fri, Jul 29, 2016 at 4:00 PM, Yuri Rumyantsev wrote: > Hi Richard. > > It turned out that the fix proposed by you does not work for liggomp > tests simd3 and simd4. > The reason is that we can't change safelen value for references not > defined inside loop. So I add missed

Re: [PATCH PR71734] Add missed check that reference defined inside loop.

2016-08-02 Thread Yuri Rumyantsev
Hi Richard, Did you have a chance to look at this patch? Thanks. 2016-07-29 17:00 GMT+03:00 Yuri Rumyantsev : > Hi Richard. > > It turned out that the fix proposed by you does not work for liggomp > tests simd3 and simd4. > The reason is that we can't change safelen value

Re: [PATCH PR71734] Add missed check that reference defined inside loop.

2016-07-29 Thread Yuri Rumyantsev
Hi Richard. It turned out that the fix proposed by you does not work for liggomp tests simd3 and simd4. The reason is that we can't change safelen value for references not defined inside loop. So I add missed check on it to patch. Is it OK for trunk? ChangeLog: 2016-07-29 Yuri Rumyantsev

Re: [PATCH PR71734] Add missed check that reference defined inside loop.

2016-07-28 Thread H.J. Lu
On Thu, Jul 28, 2016 at 6:49 AM, Yuri Rumyantsev wrote: > Richard, > > I prepare a patch which is based on yours. New test is also included. > Bootstrapping and regression testing did not show any new failures. > Is it OK for trunk? > > Thanks. > ChangeLog: > 2016-07-28 Yuri

Re: [PATCH PR71734] Add missed check that reference defined inside loop.

2016-07-28 Thread Richard Biener
On Thu, Jul 28, 2016 at 3:49 PM, Yuri Rumyantsev wrote: > Richard, > > I prepare a patch which is based on yours. New test is also included. > Bootstrapping and regression testing did not show any new failures. > Is it OK for trunk? Ok. Thanks, Richard. > Thanks. >

Re: [PATCH PR71734] Add missed check that reference defined inside loop.

2016-07-28 Thread Yuri Rumyantsev
Richard, I prepare a patch which is based on yours. New test is also included. Bootstrapping and regression testing did not show any new failures. Is it OK for trunk? Thanks. ChangeLog: 2016-07-28 Yuri Rumyantsev PR tree-optimization/71734 * tree-ssa-loop-im.c

Re: [PATCH PR71734] Add missed check that reference defined inside loop.

2016-07-27 Thread Richard Biener
On Tue, Jul 26, 2016 at 5:49 PM, Yuri Rumyantsev wrote: > Hi Richard, > > It turned out that the patch proposed by you does not work properly > for nested loop. If we slightly change pr70729.cc to > (non-essential part is omitted > void inline Ss::foo (float w) > { > #pragma

Re: [PATCH PR71734] Add missed check that reference defined inside loop.

2016-07-26 Thread Yuri Rumyantsev
Hi Richard, It turned out that the patch proposed by you does not work properly for nested loop. If we slightly change pr70729.cc to (non-essential part is omitted void inline Ss::foo (float w) { #pragma omp simd for (int i=0; i

Re: [PATCH PR71734] Add missed check that reference defined inside loop.

2016-07-20 Thread Yuri Rumyantsev
Richard, Jakub has already fixed it. Sorry for troubles. Yuri. 2016-07-19 18:29 GMT+03:00 Renlin Li : > Hi Yuri, > > I saw this test case runs on arm platforms, and maybe other platforms as > well. > > testsuite/g++.dg/vect/pr70729.cc:7:10: fatal error: xmmintrin.h: No

Re: [PATCH PR71734] Add missed check that reference defined inside loop.

2016-07-19 Thread Renlin Li
Hi Yuri, I saw this test case runs on arm platforms, and maybe other platforms as well. testsuite/g++.dg/vect/pr70729.cc:7:10: fatal error: xmmintrin.h: No such file or directory Before the change here, it's gated by vect_simd_clones target selector, which limit it to i?86/x86_64 platform

Re: [PATCH PR71734] Add missed check that reference defined inside loop.

2016-07-18 Thread Richard Biener
On Fri, Jul 8, 2016 at 4:07 PM, Yuri Rumyantsev wrote: > Hi Richard, > > Thanks for your help - your patch looks much better. > Here is new patch in which additional argument was added to determine > source loop of reference. > > Bootstrap and regression testing did not show

Re: [PATCH PR71734] Add missed check that reference defined inside loop.

2016-07-15 Thread Yuri Rumyantsev
Richard! Did you have a chance to look at this patch? Thanks. Yuri. 2016-07-08 17:07 GMT+03:00 Yuri Rumyantsev : > Hi Richard, > > Thanks for your help - your patch looks much better. > Here is new patch in which additional argument was added to determine > source loop of

Re: [PATCH PR71734] Add missed check that reference defined inside loop.

2016-07-08 Thread Yuri Rumyantsev
Hi Richard, Thanks for your help - your patch looks much better. Here is new patch in which additional argument was added to determine source loop of reference. Bootstrap and regression testing did not show any new failures. Is it OK for trunk? ChangeLog: 2016-07-08 Yuri Rumyantsev

Re: [PATCH PR71734] Add missed check that reference defined inside loop.

2016-07-06 Thread Richard Biener
On Wed, Jul 6, 2016 at 11:50 AM, Yuri Rumyantsev wrote: > Richard, > > I pointed out in the commentary that REF is defined inside loop and > this check is related to this statement. Should I clarify it? > > + /* We consider REF defined in LOOP as independent if at least 2

Re: [PATCH PR71734] Add missed check that reference defined inside loop.

2016-07-06 Thread Yuri Rumyantsev
Richard, I pointed out in the commentary that REF is defined inside loop and this check is related to this statement. Should I clarify it? + /* We consider REF defined in LOOP as independent if at least 2 loop + iterations are not dependent. */ 2016-07-06 12:38 GMT+03:00 Richard Biener

Re: [PATCH PR71734] Add missed check that reference defined inside loop.

2016-07-06 Thread Richard Biener
On Tue, Jul 5, 2016 at 4:56 PM, Yuri Rumyantsev wrote: > Hi All, > > Here is a simple fix to cure regressions introduced by my fix for > 70729. Patch also contains minor changes in test found by Jakub. > > Bootstrapping and regression testing did not show any new failures. > >

[PATCH PR71734] Add missed check that reference defined inside loop.

2016-07-05 Thread Yuri Rumyantsev
Hi All, Here is a simple fix to cure regressions introduced by my fix for 70729. Patch also contains minor changes in test found by Jakub. Bootstrapping and regression testing did not show any new failures. Is it OK for trunk? ChangeLog: 2016-07-05 Yuri Rumyantsev PR