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
[email protected]
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits