Anastasia added inline comments.

================
Comment at: test/CodeGenOpenCL/sampler.cl:62
+
+  const sampler_t const_smp = CLK_ADDRESS_CLAMP_TO_EDGE | 
CLK_NORMALIZED_COORDS_TRUE | CLK_FILTER_LINEAR;
+  // CHECK: [[CONST_SAMP:%[0-9]+]] = call %opencl.sampler_t addrspace(2)* 
@__translate_sampler_initializer(i32 35)
----------------
bader wrote:
> yaxunl wrote:
> > what if address of const_smp is taken and assigned to a pointer to 
> > sampler_t ? Do we have diagnosis in place?
> AFAIK, we have diagnostics for both:
> - declaration of a pointer to sampler
> - taking address of sampler variable
Btw, strangely I don't hit any unreachable and don't seem to have any static 
variable generated either. I was trying to compile this code on r305798:

  void fnc4smp(sampler_t s) {}
  kernel void foo(sampler_t smp_par) {
    const sampler_t const_smp = 0;
    fnc4smp(const_smp);
  }

This is the IR which is produced for me:

  %opencl.sampler_t = type opaque

  ; Function Attrs: noinline nounwind optnone
  define spir_func void @fnc4smp(%opencl.sampler_t addrspace(2)* %s) #0 {
  entry:
    %s.addr = alloca %opencl.sampler_t addrspace(2)*, align 4
    store %opencl.sampler_t addrspace(2)* %s, %opencl.sampler_t addrspace(2)** 
%s.addr, align 4
    ret void
  }

  ; Function Attrs: noinline nounwind optnone
  define spir_kernel void @foo(%opencl.sampler_t addrspace(2)* %smp_par) #0 
!kernel_arg_addr_space !4 !kernel_arg_access_qual !5 !kernel_arg_type !6 
!kernel_arg_base_type !6 !kernel_arg_type_qual !7 {
  entry:
    %smp_par.addr = alloca %opencl.sampler_t addrspace(2)*, align 4
    %const_smp = alloca %opencl.sampler_t addrspace(2)*, align 4
    store %opencl.sampler_t addrspace(2)* %smp_par, %opencl.sampler_t 
addrspace(2)** %smp_par.addr, align 4
    %0 = call %opencl.sampler_t addrspace(2)* 
@__translate_sampler_initializer(i32 0)
    store %opencl.sampler_t addrspace(2)* %0, %opencl.sampler_t addrspace(2)** 
%const_smp, align 4
    %1 = load %opencl.sampler_t addrspace(2)*, %opencl.sampler_t addrspace(2)** 
%const_smp, align 4
    call spir_func void @fnc4smp(%opencl.sampler_t addrspace(2)* %1)
    ret void
  }

  declare %opencl.sampler_t addrspace(2)* @__translate_sampler_initializer(i32)


https://reviews.llvm.org/D34342



_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to