[Libclc-dev] [PATCH 1/4] r600: Convert get_local_size to clc

Jan Vesely via Libclc-dev libclc-dev at lists.llvm.org
Wed Oct 31 09:13:01 PDT 2018


On Mon, 2018-10-29 at 07:58 -0500, Aaron Watry via Libclc-dev wrote:
> I'm out of town on vacation until tomorrow evening. I'll see when I have
> time to take a look at these.

thanks. These are the first cleanups to make transitioning to a new
build system easier.

The changes are now included in my semi-regular piglit runs [0,1,2],
and there is also an appveyor job that provides built libraries as
artifacts [3]

Jan

[0] https://jvesely.github.io/piglit/radeon-latest-5/problems.html
[1] https://jvesely.github.io/piglit/gcn-latest-3/problems.html
[2] https://jvesely.github.io/piglit/raven-latest-5/problems.html
[3] https://ci.appveyor.com/project/jvesely/libclc

> 
> --Aaron
> 
> On Mon, Oct 29, 2018, 1:40 AM Jan Vesely via Libclc-dev <
> libclc-dev at lists.llvm.org> wrote:
> 
> > Signed-off-by: Jan Vesely <jan.vesely at rutgers.edu>
> > ---
> > This series consolidates existing llvm asm variants to clc file.
> > I've verified that the code generated using llvm-5 is the same for
> > get-locl-size.cl, get-global-size.cl get-num-groups.cl, and
> > global-memory.cl piglits (and all of them pass on Turks).
> > 
> >  r600/lib/OVERRIDES_3.9                 |  1 -
> >  r600/lib/OVERRIDES_4.0                 |  1 -
> >  r600/lib/OVERRIDES_5.0                 |  1 -
> >  r600/lib/OVERRIDES_6.0                 |  1 -
> >  r600/lib/SOURCES                       |  2 +-
> >  r600/lib/SOURCES_3.9                   |  1 -
> >  r600/lib/SOURCES_4.0                   |  1 -
> >  r600/lib/SOURCES_5.0                   |  1 -
> >  r600/lib/SOURCES_6.0                   |  1 -
> >  r600/lib/workitem/get_local_size.39.ll | 20 --------------------
> >  r600/lib/workitem/get_local_size.cl    | 15 +++++++++++++++
> >  r600/lib/workitem/get_local_size.ll    | 20 --------------------
> >  12 files changed, 16 insertions(+), 49 deletions(-)
> >  delete mode 100644 r600/lib/workitem/get_local_size.39.ll
> >  create mode 100644 r600/lib/workitem/get_local_size.cl
> >  delete mode 100644 r600/lib/workitem/get_local_size.ll
> > 
> > diff --git a/r600/lib/OVERRIDES_3.9 b/r600/lib/OVERRIDES_3.9
> > index c055c6d..e1a6ae8 100644
> > --- a/r600/lib/OVERRIDES_3.9
> > +++ b/r600/lib/OVERRIDES_3.9
> > @@ -1,4 +1,3 @@
> >  synchronization/barrier_impl.ll
> >  workitem/get_global_size.ll
> > -workitem/get_local_size.ll
> >  workitem/get_num_groups.ll
> > diff --git a/r600/lib/OVERRIDES_4.0 b/r600/lib/OVERRIDES_4.0
> > index c055c6d..e1a6ae8 100644
> > --- a/r600/lib/OVERRIDES_4.0
> > +++ b/r600/lib/OVERRIDES_4.0
> > @@ -1,4 +1,3 @@
> >  synchronization/barrier_impl.ll
> >  workitem/get_global_size.ll
> > -workitem/get_local_size.ll
> >  workitem/get_num_groups.ll
> > diff --git a/r600/lib/OVERRIDES_5.0 b/r600/lib/OVERRIDES_5.0
> > index c055c6d..e1a6ae8 100644
> > --- a/r600/lib/OVERRIDES_5.0
> > +++ b/r600/lib/OVERRIDES_5.0
> > @@ -1,4 +1,3 @@
> >  synchronization/barrier_impl.ll
> >  workitem/get_global_size.ll
> > -workitem/get_local_size.ll
> >  workitem/get_num_groups.ll
> > diff --git a/r600/lib/OVERRIDES_6.0 b/r600/lib/OVERRIDES_6.0
> > index c055c6d..e1a6ae8 100644
> > --- a/r600/lib/OVERRIDES_6.0
> > +++ b/r600/lib/OVERRIDES_6.0
> > @@ -1,4 +1,3 @@
> >  synchronization/barrier_impl.ll
> >  workitem/get_global_size.ll
> > -workitem/get_local_size.ll
> >  workitem/get_num_groups.ll
> > diff --git a/r600/lib/SOURCES b/r600/lib/SOURCES
> > index e69be4a..75cf901 100644
> > --- a/r600/lib/SOURCES
> > +++ b/r600/lib/SOURCES
> > @@ -5,6 +5,6 @@ workitem/get_global_offset.cl
> >  workitem/get_group_id.cl
> >  workitem/get_global_size.ll
> >  workitem/get_local_id.cl
> > -workitem/get_local_size.ll
> > +workitem/get_local_size.cl
> >  workitem/get_num_groups.ll
> >  workitem/get_work_dim.cl
> > diff --git a/r600/lib/SOURCES_3.9 b/r600/lib/SOURCES_3.9
> > index ba09398..9f36052 100644
> > --- a/r600/lib/SOURCES_3.9
> > +++ b/r600/lib/SOURCES_3.9
> > @@ -15,5 +15,4 @@ image/write_imageui.cl
> >  image/write_image_impl.ll
> >  synchronization/barrier_impl.39.ll
> >  workitem/get_global_size.39.ll
> > -workitem/get_local_size.39.ll
> >  workitem/get_num_groups.39.ll
> > diff --git a/r600/lib/SOURCES_4.0 b/r600/lib/SOURCES_4.0
> > index 091990c..6ca2332 100644
> > --- a/r600/lib/SOURCES_4.0
> > +++ b/r600/lib/SOURCES_4.0
> > @@ -1,4 +1,3 @@
> >  synchronization/barrier_impl.39.ll
> >  workitem/get_global_size.39.ll
> > -workitem/get_local_size.39.ll
> >  workitem/get_num_groups.39.ll
> > diff --git a/r600/lib/SOURCES_5.0 b/r600/lib/SOURCES_5.0
> > index 091990c..6ca2332 100644
> > --- a/r600/lib/SOURCES_5.0
> > +++ b/r600/lib/SOURCES_5.0
> > @@ -1,4 +1,3 @@
> >  synchronization/barrier_impl.39.ll
> >  workitem/get_global_size.39.ll
> > -workitem/get_local_size.39.ll
> >  workitem/get_num_groups.39.ll
> > diff --git a/r600/lib/SOURCES_6.0 b/r600/lib/SOURCES_6.0
> > index 091990c..6ca2332 100644
> > --- a/r600/lib/SOURCES_6.0
> > +++ b/r600/lib/SOURCES_6.0
> > @@ -1,4 +1,3 @@
> >  synchronization/barrier_impl.39.ll
> >  workitem/get_global_size.39.ll
> > -workitem/get_local_size.39.ll
> >  workitem/get_num_groups.39.ll
> > diff --git a/r600/lib/workitem/get_local_size.39.ll
> > b/r600/lib/workitem/get_local_size.39.ll
> > deleted file mode 100644
> > index c9f2c84..0000000
> > --- a/r600/lib/workitem/get_local_size.39.ll
> > +++ /dev/null
> > @@ -1,20 +0,0 @@
> > -declare i32 @llvm.r600.read.local.size.x() nounwind readnone
> > -declare i32 @llvm.r600.read.local.size.y() nounwind readnone
> > -declare i32 @llvm.r600.read.local.size.z() nounwind readnone
> > -
> > -target datalayout =
> > "e-p:32:32-i64:64-v16:16-v24:32-v32:32-v48:64-v96:128-v192:256-v256:256-v512:512-v1024:1024-v2048:2048-n32:64"
> > -
> > -define i32 @get_local_size(i32 %dim) nounwind readnone alwaysinline {
> > -  switch i32 %dim, label %default [i32 0, label %x_dim i32 1, label
> > %y_dim i32 2, label %z_dim]
> > -x_dim:
> > -  %x = call i32 @llvm.r600.read.local.size.x()
> > -  ret i32 %x
> > -y_dim:
> > -  %y = call i32 @llvm.r600.read.local.size.y()
> > -  ret i32 %y
> > -z_dim:
> > -  %z = call i32 @llvm.r600.read.local.size.z()
> > -  ret i32 %z
> > -default:
> > -  ret i32 1
> > -}
> > diff --git a/r600/lib/workitem/get_local_size.cl b/r600/lib/workitem/
> > get_local_size.cl
> > new file mode 100644
> > index 0000000..89e2612
> > --- /dev/null
> > +++ b/r600/lib/workitem/get_local_size.cl
> > @@ -0,0 +1,15 @@
> > +#include <clc/clc.h>
> > +
> > +uint __clc_r600_get_local_size_x(void)
> > __asm("llvm.r600.read.local.size.x");
> > +uint __clc_r600_get_local_size_y(void)
> > __asm("llvm.r600.read.local.size.y");
> > +uint __clc_r600_get_local_size_z(void)
> > __asm("llvm.r600.read.local.size.z");
> > +
> > +_CLC_DEF size_t get_local_size(uint dim)
> > +{
> > +       switch (dim) {
> > +       case 0: return __clc_r600_get_local_size_x();
> > +       case 1: return __clc_r600_get_local_size_y();
> > +       case 2: return __clc_r600_get_local_size_z();
> > +       default: return 1;
> > +       }
> > +}
> > diff --git a/r600/lib/workitem/get_local_size.ll
> > b/r600/lib/workitem/get_local_size.ll
> > deleted file mode 100644
> > index 04ce076..0000000
> > --- a/r600/lib/workitem/get_local_size.ll
> > +++ /dev/null
> > @@ -1,20 +0,0 @@
> > -declare i32 @llvm.r600.read.local.size.x() nounwind readnone
> > -declare i32 @llvm.r600.read.local.size.y() nounwind readnone
> > -declare i32 @llvm.r600.read.local.size.z() nounwind readnone
> > -
> > -target datalayout =
> > "e-p:32:32-i64:64-v16:16-v24:32-v32:32-v48:64-v96:128-v192:256-v256:256-v512:512-v1024:1024-v2048:2048-n32:64-S32-A5"
> > -
> > -define i32 @get_local_size(i32 %dim) nounwind readnone alwaysinline {
> > -  switch i32 %dim, label %default [i32 0, label %x_dim i32 1, label
> > %y_dim i32 2, label %z_dim]
> > -x_dim:
> > -  %x = call i32 @llvm.r600.read.local.size.x()
> > -  ret i32 %x
> > -y_dim:
> > -  %y = call i32 @llvm.r600.read.local.size.y()
> > -  ret i32 %y
> > -z_dim:
> > -  %z = call i32 @llvm.r600.read.local.size.z()
> > -  ret i32 %z
> > -default:
> > -  ret i32 1
> > -}
> > --
> > 2.18.1
> > 
> > _______________________________________________
> > Libclc-dev mailing list
> > Libclc-dev at lists.llvm.org
> > http://lists.llvm.org/cgi-bin/mailman/listinfo/libclc-dev
> > 
> 
> _______________________________________________
> Libclc-dev mailing list
> Libclc-dev at lists.llvm.org
> http://lists.llvm.org/cgi-bin/mailman/listinfo/libclc-dev

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 488 bytes
Desc: This is a digitally signed message part
URL: <http://lists.llvm.org/pipermail/libclc-dev/attachments/20181031/c76af221/attachment.sig>


More information about the Libclc-dev mailing list