Re: [Mesa-dev] [PATCH] radv/ac: enable loop unrolling.

2017-02-27 Thread Tom Stellard
On Fri, Feb 24, 2017 at 03:30:50PM -0800, Matt Arsenault wrote: > > > On Feb 24, 2017, at 14:39, Marek Olšák wrote: > > > > On Fri, Feb 24, 2017 at 7:20 PM, Matt Arsenault wrote: > >> > >> On Feb 24, 2017, at 01:45, Marek Olšák wrote: > >> > >> The main requirement is that if there is indire

Re: [Mesa-dev] [PATCH] radv/ac: enable loop unrolling. (v2)

2017-02-26 Thread Michael Schellenberger Costa
Hi Dave, -Ursprüngliche Nachricht- Von: mesa-dev [mailto:mesa-dev-boun...@lists.freedesktop.org] Im Auftrag von Dave Airlie Gesendet: Freitag, 24. Februar 2017 04:59 An: mesa-dev@lists.freedesktop.org Betreff: [Mesa-dev] [PATCH] radv/ac: enable loop unrolling. (v2) From: Dave Airlie

Re: [Mesa-dev] [PATCH] radv/ac: enable loop unrolling.

2017-02-24 Thread Matt Arsenault
> On Feb 24, 2017, at 14:39, Marek Olšák wrote: > > On Fri, Feb 24, 2017 at 7:20 PM, Matt Arsenault wrote: >> >> On Feb 24, 2017, at 01:45, Marek Olšák wrote: >> >> The main requirement is that if there is indirect indexing inside a >> loop, we always want to unroll the whole loop to get rid

Re: [Mesa-dev] [PATCH] radv/ac: enable loop unrolling.

2017-02-24 Thread Marek Olšák
On Fri, Feb 24, 2017 at 7:20 PM, Matt Arsenault wrote: > > On Feb 24, 2017, at 01:45, Marek Olšák wrote: > > The main requirement is that if there is indirect indexing inside a > loop, we always want to unroll the whole loop to get rid of the > indexing, which can decrease scratch usage. > > Mare

Re: [Mesa-dev] [PATCH] radv/ac: enable loop unrolling.

2017-02-24 Thread Matt Arsenault
> On Feb 24, 2017, at 01:45, Marek Olšák wrote: > > The main requirement is that if there is indirect indexing inside a > loop, we always want to unroll the whole loop to get rid of the > indexing, which can decrease scratch usage. > > Marek We boost the unroll thresholds when there is private

Re: [Mesa-dev] [PATCH] radv/ac: enable loop unrolling.

2017-02-24 Thread Marek Olšák
On Fri, Feb 24, 2017 at 5:36 AM, Matt Arsenault wrote: > > On Feb 23, 2017, at 19:44, Dave Airlie wrote: > > On 24 February 2017 at 13:36, Matt Arsenault wrote: > > > On Feb 23, 2017, at 19:27, Dave Airlie wrote: > > +static void set_unroll_metadata(struct nir_to_llvm_context *ctx, > +L

Re: [Mesa-dev] [PATCH] radv/ac: enable loop unrolling.

2017-02-23 Thread Matt Arsenault
> On Feb 23, 2017, at 19:44, Dave Airlie wrote: > > On 24 February 2017 at 13:36, Matt Arsenault > wrote: >> >> On Feb 23, 2017, at 19:27, Dave Airlie wrote: >> >> +static void set_unroll_metadata(struct nir_to_llvm_context *ctx, >> +LLVMValueRef br) >> +{ >

[Mesa-dev] [PATCH] radv/ac: enable loop unrolling. (v2)

2017-02-23 Thread Dave Airlie
From: Dave Airlie This enables LLVM loop unrolling. v2: limit unroll count to 32, don't fully unroll. (arsenm) Signed-off-by: Dave Airlie --- src/amd/common/ac_llvm_helper.cpp | 22 ++ src/amd/common/ac_llvm_util.h | 1 + src/amd/common/ac_nir_to_llvm.c | 26 +++

Re: [Mesa-dev] [PATCH] radv/ac: enable loop unrolling.

2017-02-23 Thread Dave Airlie
On 24 February 2017 at 13:36, Matt Arsenault wrote: > > On Feb 23, 2017, at 19:27, Dave Airlie wrote: > > +static void set_unroll_metadata(struct nir_to_llvm_context *ctx, > +LLVMValueRef br) > +{ > + unsigned kind = LLVMGetMDKindIDInContext(ctx->context, "llvm.loop", 9); > + LLVMValueRef

Re: [Mesa-dev] [PATCH] radv/ac: enable loop unrolling.

2017-02-23 Thread Matt Arsenault
> On Feb 23, 2017, at 19:27, Dave Airlie wrote: > > +static void set_unroll_metadata(struct nir_to_llvm_context *ctx, > +LLVMValueRef br) > +{ > + unsigned kind = LLVMGetMDKindIDInContext(ctx->context, "llvm.loop", 9); > + LLVMValueRef md_unroll; > + LLVMV

Re: [Mesa-dev] [PATCH] radv/ac: enable loop unrolling.

2017-02-23 Thread Dave Airlie
On 24 February 2017 at 13:27, Dave Airlie wrote: > From: Dave Airlie > > This enables LLVM loop unrolling. Meant to also say it's based on a radeonsi patch Marek wrote. Dave. > > Signed-off-by: Dave Airlie > --- > src/amd/common/ac_llvm_helper.cpp | 22 ++ > src/amd/common

[Mesa-dev] [PATCH] radv/ac: enable loop unrolling.

2017-02-23 Thread Dave Airlie
From: Dave Airlie This enables LLVM loop unrolling. Signed-off-by: Dave Airlie --- src/amd/common/ac_llvm_helper.cpp | 22 ++ src/amd/common/ac_llvm_util.h | 1 + src/amd/common/ac_nir_to_llvm.c | 24 ++-- 3 files changed, 45 insertions(+), 2 dele