Re: RFC: [ARM] Disable peeling

2013-10-02 Thread Richard Biener
On Tue, Oct 1, 2013 at 5:49 PM, Christophe Lyon wrote: > Hi, > > I am resuming investigations about disabling peeling for > alignment (see thread at > http://gcc.gnu.org/ml/gcc/2012-12/msg00036.html). > > As a reminder, I have a simple patch which disables peeling > unconditionally and gives some

Re: RFC: [ARM] Disable peeling

2013-10-01 Thread Christophe Lyon
Hi, I am resuming investigations about disabling peeling for alignment (see thread at http://gcc.gnu.org/ml/gcc/2012-12/msg00036.html). As a reminder, I have a simple patch which disables peeling unconditionally and gives some improvement in benchmarks. However, I've noticed a regression where a

Re: RFC: [ARM] Disable peeling

2012-12-13 Thread Richard Biener
On Wed, Dec 12, 2012 at 6:50 PM, Andi Kleen wrote: > "H.J. Lu" writes: >> >> i386.c has >> >>{ >> /* When not optimize for size, enable vzeroupper optimization for >> TARGET_AVX with -fexpensive-optimizations and split 32-byte >> AVX unaligned load/store. */ > > This

Re: RFC: [ARM] Disable peeling

2012-12-12 Thread Andi Kleen
"H.J. Lu" writes: > > i386.c has > >{ > /* When not optimize for size, enable vzeroupper optimization for > TARGET_AVX with -fexpensive-optimizations and split 32-byte > AVX unaligned load/store. */ This is only for the load, not for deciding whether peeling is worthw

Re: RFC: [ARM] Disable peeling

2012-12-12 Thread H.J. Lu
On Wed, Dec 12, 2012 at 9:06 AM, Christophe Lyon wrote: > On 11 December 2012 13:26, Tim Prince wrote: >> On 12/11/2012 5:14 AM, Richard Earnshaw wrote: >>> >>> On 11/12/12 09:56, Richard Biener wrote: On Tue, Dec 11, 2012 at 10:48 AM, Richard Earnshaw wrote: > > On 11/12/

Re: RFC: [ARM] Disable peeling

2012-12-12 Thread Christophe Lyon
On 11 December 2012 13:26, Tim Prince wrote: > On 12/11/2012 5:14 AM, Richard Earnshaw wrote: >> >> On 11/12/12 09:56, Richard Biener wrote: >>> >>> On Tue, Dec 11, 2012 at 10:48 AM, Richard Earnshaw >>> wrote: On 11/12/12 09:45, Richard Biener wrote: > > > On Mon, Dec 10, 2

Re: RFC: [ARM] Disable peeling

2012-12-11 Thread Tim Prince
On 12/11/2012 5:14 AM, Richard Earnshaw wrote: On 11/12/12 09:56, Richard Biener wrote: On Tue, Dec 11, 2012 at 10:48 AM, Richard Earnshaw wrote: On 11/12/12 09:45, Richard Biener wrote: On Mon, Dec 10, 2012 at 10:07 PM, Andi Kleen wrote: Jan Hubicka writes: Note that I think Core has

Re: RFC: [ARM] Disable peeling

2012-12-11 Thread Richard Earnshaw
On 11/12/12 09:56, Richard Biener wrote: On Tue, Dec 11, 2012 at 10:48 AM, Richard Earnshaw wrote: On 11/12/12 09:45, Richard Biener wrote: On Mon, Dec 10, 2012 at 10:07 PM, Andi Kleen wrote: Jan Hubicka writes: Note that I think Core has similar characteristics - at least for string op

Re: RFC: [ARM] Disable peeling

2012-12-11 Thread Richard Biener
On Tue, Dec 11, 2012 at 10:48 AM, Richard Earnshaw wrote: > On 11/12/12 09:45, Richard Biener wrote: >> >> On Mon, Dec 10, 2012 at 10:07 PM, Andi Kleen wrote: >>> >>> Jan Hubicka writes: >>> Note that I think Core has similar characteristics - at least for string operations it far

Re: RFC: [ARM] Disable peeling

2012-12-11 Thread Richard Earnshaw
On 11/12/12 09:45, Richard Biener wrote: On Mon, Dec 10, 2012 at 10:07 PM, Andi Kleen wrote: Jan Hubicka writes: Note that I think Core has similar characteristics - at least for string operations it fares well with unalignes accesses. Nehalem and later has very fast unaligned vector load

Re: RFC: [ARM] Disable peeling

2012-12-11 Thread Richard Biener
On Mon, Dec 10, 2012 at 10:07 PM, Andi Kleen wrote: > Jan Hubicka writes: > >> Note that I think Core has similar characteristics - at least for string >> operations >> it fares well with unalignes accesses. > > Nehalem and later has very fast unaligned vector loads. There's still some > penalty

Re: RFC: [ARM] Disable peeling

2012-12-10 Thread Andi Kleen
Jan Hubicka writes: > Note that I think Core has similar characteristics - at least for string > operations > it fares well with unalignes accesses. Nehalem and later has very fast unaligned vector loads. There's still some penalty when they cross cache lines however. iirc the rule of thumb i

Re: RFC: [ARM] Disable peeling

2012-12-10 Thread Richard Biener
On Mon, Dec 10, 2012 at 4:42 PM, Christophe Lyon wrote: > On 10 December 2012 10:02, Richard Biener wrote: >> On Fri, Dec 7, 2012 at 6:30 PM, Richard Earnshaw wrote: >>> On 07/12/12 15:13, Christophe Lyon wrote: Hi, As ARM supports unaligned vector accesses for almost no pena

Re: RFC: [ARM] Disable peeling

2012-12-10 Thread Jan Hubicka
> > I agree that this is a sledgehammer. If aligned/unaligned loads/stores have > the same cost then reflect that in the vectorized stmt cost hook. If that > alone does not prevent peeling for alignment to happen then the fix is to > not consider doing peeling for alignment if aligned/unaligned

Re: RFC: [ARM] Disable peeling

2012-12-10 Thread Christophe Lyon
On 10 December 2012 10:02, Richard Biener wrote: > On Fri, Dec 7, 2012 at 6:30 PM, Richard Earnshaw wrote: >> On 07/12/12 15:13, Christophe Lyon wrote: >>> >>> Hi, >>> >>> As ARM supports unaligned vector accesses for almost no penalty, I'd >>> like to disable loop peeling on ARM targets. >>> >>>

Re: RFC: [ARM] Disable peeling

2012-12-10 Thread Richard Biener
On Mon, Dec 10, 2012 at 10:02 AM, Richard Biener wrote: > On Fri, Dec 7, 2012 at 6:30 PM, Richard Earnshaw wrote: >> On 07/12/12 15:13, Christophe Lyon wrote: >>> >>> Hi, >>> >>> As ARM supports unaligned vector accesses for almost no penalty, I'd >>> like to disable loop peeling on ARM targets.

Re: RFC: [ARM] Disable peeling

2012-12-10 Thread Richard Biener
On Fri, Dec 7, 2012 at 6:30 PM, Richard Earnshaw wrote: > On 07/12/12 15:13, Christophe Lyon wrote: >> >> Hi, >> >> As ARM supports unaligned vector accesses for almost no penalty, I'd >> like to disable loop peeling on ARM targets. >> >> I have ran benchmarks on cortex-A9 (hard-float) and noticed

Re: RFC: [ARM] Disable peeling

2012-12-07 Thread Richard Earnshaw
On 07/12/12 15:13, Christophe Lyon wrote: Hi, As ARM supports unaligned vector accesses for almost no penalty, I'd like to disable loop peeling on ARM targets. I have ran benchmarks on cortex-A9 (hard-float) and noticed these significant improvements: * 1.5% improvement on a popular embedded be

RFC: [ARM] Disable peeling

2012-12-07 Thread Christophe Lyon
Hi, As ARM supports unaligned vector accesses for almost no penalty, I'd like to disable loop peeling on ARM targets. I have ran benchmarks on cortex-A9 (hard-float) and noticed these significant improvements: * 1.5% improvement on a popular embedded benchmark (with peaks at +20% and +29%) * 2.1%