Re: Add a loop versioning pass

2018-12-15 Thread Richard Biener
On December 14, 2018 5:18:38 PM GMT+01:00, Richard Sandiford wrote: >Richard Biener writes: >> On December 12, 2018 7:43:10 PM GMT+01:00, Richard Sandiford > wrote: >>>Richard Biener writes: On Thu, Dec 6, 2018 at 2:19 PM Richard Sandiford > Tested on x86_64-linux-gnu,

Re: Add a loop versioning pass

2018-12-14 Thread Richard Sandiford
Richard Biener writes: > On December 12, 2018 7:43:10 PM GMT+01:00, Richard Sandiford > wrote: >>Richard Biener writes: >>> On Thu, Dec 6, 2018 at 2:19 PM Richard Sandiford Tested on x86_64-linux-gnu, aarch64-linux-gnu and aarch64_be-elf. Also repeated the performance testing (but

Re: Add a loop versioning pass

2018-12-13 Thread Richard Biener
On December 12, 2018 7:43:10 PM GMT+01:00, Richard Sandiford wrote: >Richard Biener writes: >> On Thu, Dec 6, 2018 at 2:19 PM Richard Sandiford >>> Tested on x86_64-linux-gnu, aarch64-linux-gnu and aarch64_be-elf. >>> Also repeated the performance testing (but haven't yet tried an >>> LTO

Re: Add a loop versioning pass

2018-12-12 Thread Richard Sandiford
Richard Biener writes: > On Thu, Dec 6, 2018 at 2:19 PM Richard Sandiford >> Tested on x86_64-linux-gnu, aarch64-linux-gnu and aarch64_be-elf. >> Also repeated the performance testing (but haven't yet tried an >> LTO variant; will do that over the weekend). > > Any results? Sorry, I should've

Re: Add a loop versioning pass

2018-12-12 Thread Richard Biener
On Thu, Dec 6, 2018 at 2:19 PM Richard Sandiford wrote: > > Richard Biener writes: > >> > The pass contains an awful lot of heuristics :/ Like last year > >> > with the interchange pass I would suggest to rip most of it out > >> > and first lay infrastructure with the cases you can positively >

Re: Add a loop versioning pass

2018-12-06 Thread Richard Sandiford
Richard Biener writes: >> > The pass contains an awful lot of heuristics :/ Like last year >> > with the interchange pass I would suggest to rip most of it out >> > and first lay infrastructure with the cases you can positively >> > identify without applying heuristics or "hacks" like stripping

Re: Add a loop versioning pass

2018-12-03 Thread Richard Biener
On Wed, 28 Nov 2018, Richard Sandiford wrote: > Thanks for the review and sorry for the long time replying. Likewise ... > Richard Biener writes: > >> This patch adds a pass that versions loops with variable index strides > >> for the case in which the stride is 1. E.g.: > >> > >> for

Re: Add a loop versioning pass

2018-11-29 Thread Martin Jambor
Hi, On Wed, Nov 28 2018, Richard Sandiford wrote: >>> The pass gives a 7.6% improvement on Cortex-A72 for 554.roms_r at -O3 >>> and a 2.4% improvement for 465.tonto. I haven't found any SPEC tests >>> that regress. >>> >>> Sizewise, there's a 10% increase in .text for both 554.roms_r and >>>

Re: Add a loop versioning pass

2018-11-28 Thread Richard Sandiford
Thanks for the review and sorry for the long time replying. Richard Biener writes: >> This patch adds a pass that versions loops with variable index strides >> for the case in which the stride is 1. E.g.: >> >> for (int i = 0; i < n; ++i) >> x[i * stride] = ...; >> >> becomes: >>

Re: Add a loop versioning pass

2018-11-28 Thread Richard Sandiford
David Malcolm writes: > On Wed, 2018-10-24 at 14:05 +0100, Richard Sandiford wrote: >> This patch adds a pass that versions loops with variable index >> strides >> for the case in which the stride is 1. E.g.: >> >> for (int i = 0; i < n; ++i) >> x[i * stride] = ...; >> >> becomes: >>

Re: Add a loop versioning pass

2018-10-30 Thread Richard Biener
(sorry for breaking threading -- I composed a review mail offline but gmail has no way of nicely sending that neither has it a way to bounce messages...) > This patch adds a pass that versions loops with variable index strides > for the case in which the stride is 1. E.g.: > > for (int i

Re: Add a loop versioning pass

2018-10-26 Thread Richard Biener
On Thu, Oct 25, 2018 at 3:52 PM Richard Biener wrote: > > On Wed, Oct 24, 2018 at 3:05 PM Richard Sandiford > wrote: > > > > This patch adds a pass that versions loops with variable index strides > > for the case in which the stride is 1. E.g.: > > > > for (int i = 0; i < n; ++i) > >

Re: Add a loop versioning pass

2018-10-25 Thread David Malcolm
On Wed, 2018-10-24 at 14:05 +0100, Richard Sandiford wrote: > This patch adds a pass that versions loops with variable index > strides > for the case in which the stride is 1. E.g.: > > for (int i = 0; i < n; ++i) > x[i * stride] = ...; > > becomes: > > if (stepx == 1) >

Re: Add a loop versioning pass

2018-10-25 Thread Richard Sandiford
Richard Biener writes: > On Wed, Oct 24, 2018 at 3:05 PM Richard Sandiford > wrote: >> >> This patch adds a pass that versions loops with variable index strides >> for the case in which the stride is 1. E.g.: >> >> for (int i = 0; i < n; ++i) >> x[i * stride] = ...; >> >> becomes: >>

Re: Add a loop versioning pass

2018-10-25 Thread Richard Biener
On Wed, Oct 24, 2018 at 3:05 PM Richard Sandiford wrote: > > This patch adds a pass that versions loops with variable index strides > for the case in which the stride is 1. E.g.: > > for (int i = 0; i < n; ++i) > x[i * stride] = ...; > > becomes: > > if (stepx == 1) > for