Re: Do we need to do a loop invariant motion after loop interchange ?

2020-11-12 Thread Jeff Law via Gcc
On 11/23/19 11:26 PM, Bin.Cheng wrote: > On Fri, Nov 22, 2019 at 3:23 PM Bin.Cheng wrote: >> On Fri, Nov 22, 2019 at 3:19 PM Richard Biener >> wrote: >>> On November 22, 2019 6:51:38 AM GMT+01:00, Li Jia He >>> wrote: On 2019/11/21 8:10 PM, Richard Biener wrote: > On Thu, Nov

Re: Do we need to do a loop invariant motion after loop interchange ?

2020-09-22 Thread Bin.Cheng via Gcc-patches
On Tue, Sep 22, 2020 at 10:30 AM HAO CHEN GUI wrote: > > Bin, > > I just tested your patch on current trunk. Here is my summary. > > 1. About some iv aren't moved out of inner loop (Lijia mentioned in his > last email) > >[local count: 955630226]: ># l_32 = PHI <1(12), l_54(21)> >#

Re: Do we need to do a loop invariant motion after loop interchange ?

2020-09-22 Thread Richard Biener via Gcc-patches
On Tue, Sep 22, 2020 at 4:31 AM HAO CHEN GUI via Gcc-patches wrote: > > Bin, > > I just tested your patch on current trunk. Here is my summary. > > 1. About some iv aren't moved out of inner loop (Lijia mentioned in his > last email) > >[local count: 955630226]: ># l_32 = PHI <1(12),

Re: Do we need to do a loop invariant motion after loop interchange ?

2020-09-21 Thread HAO CHEN GUI via Gcc-patches
Bin, I just tested your patch on current trunk.  Here is my summary. 1. About some iv aren't moved out of inner loop (Lijia mentioned in his last email)   [local count: 955630226]:   # l_32 = PHI <1(12), l_54(21)>   # ivtmp_165 = PHI <_446(12), ivtmp_155(21)>   _26 = (integer(kind=8)) l_32;  

Re: Do we need to do a loop invariant motion after loop interchange ?

2020-09-08 Thread Bin.Cheng via Gcc-patches
On Mon, Sep 7, 2020 at 5:42 PM HAO CHEN GUI wrote: > > Hi, > > I want to follow Lijia's work as I gained the performance benefit on > some SPEC workloads by adding a im pass after loop interchange. Could > you send me the latest patches? I could do further testing. Thanks a lot. Hi, Hmm, not

Re: Do we need to do a loop invariant motion after loop interchange ?

2020-09-07 Thread Richard Biener via Gcc-patches
On Mon, Sep 7, 2020 at 11:43 AM HAO CHEN GUI via Gcc-patches wrote: > > Hi, > > I want to follow Lijia's work as I gained the performance benefit on > some SPEC workloads by adding a im pass after loop interchange. Could > you send me the latest patches? I could do further testing. Thanks a lot.

Do we need to do a loop invariant motion after loop interchange ?

2020-09-07 Thread HAO CHEN GUI via Gcc-patches
Hi, I want to follow Lijia's work as I gained the performance benefit on some SPEC workloads by adding a im pass after loop interchange.  Could you send me the latest patches? I could do further testing. Thanks a lot. https://gcc.gnu.org/pipermail/gcc/2020-February/232091.html

Re: Do we need to do a loop invariant motion after loop interchange ?

2020-02-12 Thread Li Jia He
Hi, On 2019/11/25 5:55 PM, Bin.Cheng wrote: On Mon, Nov 25, 2019 at 5:29 PM Li Jia He wrote: On 2019/11/24 2:26 PM, Bin.Cheng wrote: On Fri, Nov 22, 2019 at 3:23 PM Bin.Cheng wrote: On Fri, Nov 22, 2019 at 3:19 PM Richard Biener wrote: On November 22, 2019 6:51:38 AM GMT+01:00, Li

Re: Do we need to do a loop invariant motion after loop interchange ?

2019-11-25 Thread Bin.Cheng
On Mon, Nov 25, 2019 at 5:29 PM Li Jia He wrote: > > > > On 2019/11/24 2:26 PM, Bin.Cheng wrote: > > On Fri, Nov 22, 2019 at 3:23 PM Bin.Cheng wrote: > >> > >> On Fri, Nov 22, 2019 at 3:19 PM Richard Biener > >> wrote: > >>> > >>> On November 22, 2019 6:51:38 AM GMT+01:00, Li Jia He > >>>

Re: Do we need to do a loop invariant motion after loop interchange ?

2019-11-25 Thread Li Jia He
On 2019/11/24 2:26 PM, Bin.Cheng wrote: On Fri, Nov 22, 2019 at 3:23 PM Bin.Cheng wrote: On Fri, Nov 22, 2019 at 3:19 PM Richard Biener wrote: On November 22, 2019 6:51:38 AM GMT+01:00, Li Jia He wrote: On 2019/11/21 8:10 PM, Richard Biener wrote: On Thu, Nov 21, 2019 at 10:22 AM

Re: Do we need to do a loop invariant motion after loop interchange ?

2019-11-23 Thread Bin.Cheng
On Fri, Nov 22, 2019 at 3:23 PM Bin.Cheng wrote: > > On Fri, Nov 22, 2019 at 3:19 PM Richard Biener > wrote: > > > > On November 22, 2019 6:51:38 AM GMT+01:00, Li Jia He > > wrote: > > > > > > > > >On 2019/11/21 8:10 PM, Richard Biener wrote: > > >> On Thu, Nov 21, 2019 at 10:22 AM Li Jia He

Re: Do we need to do a loop invariant motion after loop interchange ?

2019-11-21 Thread Bin.Cheng
On Fri, Nov 22, 2019 at 3:19 PM Richard Biener wrote: > > On November 22, 2019 6:51:38 AM GMT+01:00, Li Jia He > wrote: > > > > > >On 2019/11/21 8:10 PM, Richard Biener wrote: > >> On Thu, Nov 21, 2019 at 10:22 AM Li Jia He > >wrote: > >>> > >>> Hi, > >>> > >>> I found for the follow code: >

Re: Do we need to do a loop invariant motion after loop interchange ?

2019-11-21 Thread Richard Biener
On November 22, 2019 6:51:38 AM GMT+01:00, Li Jia He wrote: > > >On 2019/11/21 8:10 PM, Richard Biener wrote: >> On Thu, Nov 21, 2019 at 10:22 AM Li Jia He >wrote: >>> >>> Hi, >>> >>> I found for the follow code: >>> >>> #define N 256 >>> int a[N][N][N], b[N][N][N]; >>> int d[N][N], c[N][N];

Re: Do we need to do a loop invariant motion after loop interchange ?

2019-11-21 Thread Li Jia He
On 2019/11/21 8:10 PM, Richard Biener wrote: On Thu, Nov 21, 2019 at 10:22 AM Li Jia He wrote: Hi, I found for the follow code: #define N 256 int a[N][N][N], b[N][N][N]; int d[N][N], c[N][N]; void __attribute__((noinline)) double_reduc (int n) { for (int k = 0; k < n; k++) {

Re: Do we need to do a loop invariant motion after loop interchange ?

2019-11-21 Thread Richard Biener
On Thu, Nov 21, 2019 at 10:22 AM Li Jia He wrote: > > Hi, > > I found for the follow code: > > #define N 256 > int a[N][N][N], b[N][N][N]; > int d[N][N], c[N][N]; > void __attribute__((noinline)) > double_reduc (int n) > { >for (int k = 0; k < n; k++) >{ > for (int l = 0; l < n; l++)

Do we need to do a loop invariant motion after loop interchange ?

2019-11-21 Thread Li Jia He
Hi, I found for the follow code: #define N 256 int a[N][N][N], b[N][N][N]; int d[N][N], c[N][N]; void __attribute__((noinline)) double_reduc (int n) { for (int k = 0; k < n; k++) { for (int l = 0; l < n; l++) { c[k][l] = 0; for (int m = 0; m < n; m++)