[llvm] r301360 - AMDGPU: Fix ValueKind code object metadata for images

Konstantin Zhuravlyov via llvm-commits llvm-commits at lists.llvm.org
Tue Apr 25 13:38:26 PDT 2017


Author: kzhuravl
Date: Tue Apr 25 15:38:26 2017
New Revision: 301360

URL: http://llvm.org/viewvc/llvm-project?rev=301360&view=rev
Log:
AMDGPU: Fix ValueKind code object metadata for images

Differential Revision: https://reviews.llvm.org/D32504

Added:
    llvm/trunk/test/CodeGen/AMDGPU/code-object-metadata-images.ll
Modified:
    llvm/trunk/lib/Target/AMDGPU/MCTargetDesc/AMDGPUCodeObjectMetadataStreamer.cpp

Modified: llvm/trunk/lib/Target/AMDGPU/MCTargetDesc/AMDGPUCodeObjectMetadataStreamer.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/AMDGPU/MCTargetDesc/AMDGPUCodeObjectMetadataStreamer.cpp?rev=301360&r1=301359&r2=301360&view=diff
==============================================================================
--- llvm/trunk/lib/Target/AMDGPU/MCTargetDesc/AMDGPUCodeObjectMetadataStreamer.cpp (original)
+++ llvm/trunk/lib/Target/AMDGPU/MCTargetDesc/AMDGPUCodeObjectMetadataStreamer.cpp Tue Apr 25 15:38:26 2017
@@ -286,20 +286,20 @@ ValueKind MetadataStreamer::getValueKind
     return ValueKind::Pipe;
 
   return StringSwitch<ValueKind>(BaseTypeName)
+             .Case("image1d_t", ValueKind::Image)
+             .Case("image1d_array_t", ValueKind::Image)
+             .Case("image1d_buffer_t", ValueKind::Image)
+             .Case("image2d_t", ValueKind::Image)
+             .Case("image2d_array_t", ValueKind::Image)
+             .Case("image2d_array_depth_t", ValueKind::Image)
+             .Case("image2d_array_msaa_t", ValueKind::Image)
+             .Case("image2d_array_msaa_depth_t", ValueKind::Image)
+             .Case("image2d_depth_t", ValueKind::Image)
+             .Case("image2d_msaa_t", ValueKind::Image)
+             .Case("image2d_msaa_depth_t", ValueKind::Image)
+             .Case("image3d_t", ValueKind::Image)
              .Case("sampler_t", ValueKind::Sampler)
              .Case("queue_t", ValueKind::Queue)
-             .Cases("image1d_t",
-                    "image1d_array_t",
-                    "image1d_buffer_t",
-                    "image2d_t" ,
-                    "image2d_array_t",
-                    "image2d_array_depth_t",
-                    "image2d_array_msaa_t"
-                    "image2d_array_msaa_depth_t"
-                    "image2d_depth_t",
-                    "image2d_msaa_t",
-                    "image2d_msaa_depth_t",
-                    "image3d_t", ValueKind::Image)
              .Default(isa<PointerType>(Ty) ?
                           (Ty->getPointerAddressSpace() ==
                            AMDGPUASI.LOCAL_ADDRESS ?

Added: llvm/trunk/test/CodeGen/AMDGPU/code-object-metadata-images.ll
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/AMDGPU/code-object-metadata-images.ll?rev=301360&view=auto
==============================================================================
--- llvm/trunk/test/CodeGen/AMDGPU/code-object-metadata-images.ll (added)
+++ llvm/trunk/test/CodeGen/AMDGPU/code-object-metadata-images.ll Tue Apr 25 15:38:26 2017
@@ -0,0 +1,80 @@
+; RUN: llc -mtriple=amdgcn-amd-amdhsa -mcpu=gfx700 -filetype=obj -o - < %s | llvm-readobj -amdgpu-code-object-metadata -elf-output-style=GNU -notes | FileCheck --check-prefix=CHECK --check-prefix=GFX700 --check-prefix=NOTES %s
+; RUN: llc -mtriple=amdgcn-amd-amdhsa -mcpu=gfx800 -filetype=obj -o - < %s | llvm-readobj -amdgpu-code-object-metadata -elf-output-style=GNU -notes | FileCheck --check-prefix=CHECK --check-prefix=GFX800 --check-prefix=NOTES %s
+; RUN: llc -mtriple=amdgcn-amd-amdhsa -mcpu=gfx900 -filetype=obj -o - < %s | llvm-readobj -amdgpu-code-object-metadata -elf-output-style=GNU -notes | FileCheck --check-prefix=CHECK --check-prefix=GFX900 --check-prefix=NOTES %s
+
+%opencl.image1d_t = type opaque
+%opencl.image1d_array_t = type opaque
+%opencl.image1d_buffer_t = type opaque
+%opencl.image2d_t = type opaque
+%opencl.image2d_array_t = type opaque
+%opencl.image2d_array_depth_t = type opaque
+%opencl.image2d_array_msaa_t = type opaque
+%opencl.image2d_array_msaa_depth_t = type opaque
+%opencl.image2d_depth_t = type opaque
+%opencl.image2d_msaa_t = type opaque
+%opencl.image2d_msaa_depth_t = type opaque
+%opencl.image3d_t = type opaque
+
+; CHECK: ---
+; CHECK:  Version: [ 1, 0 ]
+
+; CHECK:  Kernels:
+; CHECK:    - Name: test
+; CHECK:      Args:
+; CHECK:        - Size:      8
+; CHECK:          ValueKind: Image
+; CHECK:          TypeName:  image1d_t
+; CHECK:        - Size:      8
+; CHECK:          ValueKind: Image
+; CHECK:          TypeName:  image1d_array_t
+; CHECK:        - Size:      8
+; CHECK:          ValueKind: Image
+; CHECK:          TypeName:  image1d_buffer_t
+; CHECK:        - Size:      8
+; CHECK:          ValueKind: Image
+; CHECK:          TypeName:  image2d_t
+; CHECK:        - Size:      8
+; CHECK:          ValueKind: Image
+; CHECK:          TypeName:  image2d_array_t
+; CHECK:        - Size:      8
+; CHECK:          ValueKind: Image
+; CHECK:          TypeName:  image2d_array_depth_t
+; CHECK:        - Size:      8
+; CHECK:          ValueKind: Image
+; CHECK:          TypeName:  image2d_array_msaa_t
+; CHECK:        - Size:      8
+; CHECK:          ValueKind: Image
+; CHECK:          TypeName:  image2d_array_msaa_depth_t
+; CHECK:        - Size:      8
+; CHECK:          ValueKind: Image
+; CHECK:          TypeName:  image2d_depth_t
+; CHECK:        - Size:      8
+; CHECK:          ValueKind: Image
+; CHECK:          TypeName:  image2d_msaa_t
+; CHECK:        - Size:      8
+; CHECK:          ValueKind: Image
+; CHECK:          TypeName:  image2d_msaa_depth_t
+; CHECK:        - Size:      8
+; CHECK:          ValueKind: Image
+; CHECK:          TypeName:  image3d_t
+define amdgpu_kernel void @test(%opencl.image1d_t addrspace(1)* %a,
+                                %opencl.image1d_array_t addrspace(1)* %b,
+                                %opencl.image1d_buffer_t addrspace(1)* %c,
+                                %opencl.image2d_t addrspace(1)* %d,
+                                %opencl.image2d_array_t addrspace(1)* %e,
+                                %opencl.image2d_array_depth_t addrspace(1)* %f,
+                                %opencl.image2d_array_msaa_t addrspace(1)* %g,
+                                %opencl.image2d_array_msaa_depth_t addrspace(1)* %h,
+                                %opencl.image2d_depth_t addrspace(1)* %i,
+                                %opencl.image2d_msaa_t addrspace(1)* %j,
+                                %opencl.image2d_msaa_depth_t addrspace(1)* %k,
+                                %opencl.image3d_t addrspace(1)* %l)
+    !kernel_arg_type !1 !kernel_arg_base_type !1 {
+  ret void
+}
+
+!1 = !{!"image1d_t", !"image1d_array_t", !"image1d_buffer_t",
+       !"image2d_t", !"image2d_array_t", !"image2d_array_depth_t",
+       !"image2d_array_msaa_t", !"image2d_array_msaa_depth_t",
+       !"image2d_depth_t", !"image2d_msaa_t", !"image2d_msaa_depth_t",
+       !"image3d_t"}




More information about the llvm-commits mailing list