The LLVM IR generated by Clang trunk for spir target is not conformant to SPIR 
spec 1.2 or 2.0 even without my change. For example, it differs from SPIR spec 
about LLVM version, image type name, sampler type representation, blocks 
representation, etc. It is the result of evolution of the original SPIR for a 
better solution of many issues of SPIR.

If we look back at the RFC about the new kernel argument metadata, there was 
agreement that the original kernel argument metadata is difficult to work with, 
therefore the proposal to use function metadata was accepted to alleviate this 
issue. The new function metadata was more concise and easier to work with.

For SPIR consumer, the new format conveys equivalent information as the old 
format. There is no reason they cannot consume this new format.

If users want to generate SPIR conformant LLVM IR, they should use khronos SPIR 
producer instead of clang trunk.

Sam

-----Original Message-----
From: Pan Xiuli [mailto:xiuli...@outlook.com] 
Sent: Monday, August 1, 2016 10:40 PM
To: 'Anastasia Stulova' <anastasia.stul...@arm.com>; 
reviews+d20979+public+e2872c9c869f1...@reviews.llvm.org; 
alexey.ba...@intel.com; Liu, Yaxun (Sam) <yaxun....@amd.com>
Cc: Stellard, Thomas <tom.stell...@amd.com>; cfe-commits@lists.llvm.org; 'nd' 
<n...@arm.com>
Subject: RE: [PATCH] D20979: [OpenCL] Use function metadata to represent kernel 
attributes

Hi,

What I mean is the spec of spir 1.2/2.0 has very clear example about how the 
metadata should organized. But now with this patch, the result of spir is 
changed and not like it before. So what I want to know is why we change the old 
spir example style code, but not add something alongside.
Now we have metadata after each function but spir shows a opencl.kernels 
metadata is need for all modules:
"Each SPIR module has a opencl.kernels named metadata node containing a list of 
metadata objects."

I think this patch maybe useful for some other target, but we should not break 
the old spir as now we have not had a substitute one.

Thanks
Xiuli

-----Original Message-----
From: Anastasia Stulova [mailto:anastasia.stul...@arm.com] 
Sent: Tuesday, August 2, 2016 2:14 AM
To: Pan Xiuli <xiuli...@outlook.com>; 
reviews+d20979+public+e2872c9c869f1...@reviews.llvm.org; 
alexey.ba...@intel.com; Liu, Yaxun (Sam) (yaxun....@amd.com) <yaxun....@amd.com>
Cc: thomas.stell...@amd.com; cfe-commits@lists.llvm.org; nd <n...@arm.com>
Subject: RE: [PATCH] D20979: [OpenCL] Use function metadata to represent kernel 
attributes

Hi Xiuli,

Could you please elaborate what do you think it broken exactly?

Because we haven't actually removed opencl.kernels metadata but just changed 
the format of it. 

Basically, we are using function metadata instead of generic metadata as it was 
before.

Thanks,
Anastasia

-----Original Message-----
From: Pan Xiuli [mailto:xiuli...@outlook.com] 
Sent: 01 August 2016 05:54
To: reviews+d20979+public+e2872c9c869f1...@reviews.llvm.org; Anastasia Stulova; 
alexey.ba...@intel.com
Cc: thomas.stell...@amd.com; cfe-commits@lists.llvm.org
Subject: RE: [PATCH] D20979: [OpenCL] Use function metadata to represent kernel 
attributes

Hi Sam,

I am now using llvm39 to enable our opencl driver, but I found this patch broke 
the spir target as well.
The opencl.kernels metadata is required by spir spec. I think we should keep 
the old code for spir target.

Thanks
Xiuli

-----Original Message-----
From: Yaxun Liu [mailto:yaxun....@amd.com] 
Sent: Wednesday, June 22, 2016 11:04 PM
To: yaxun....@amd.com; xiuli...@outlook.com; anastasia.stul...@arm.com; 
alexey.ba...@intel.com
Cc: thomas.stell...@amd.com; cfe-commits@lists.llvm.org
Subject: Re: [PATCH] D20979: [OpenCL] Use function metadata to represent kernel 
attributes

This revision was automatically updated to reflect the committed changes.
Closed by commit rL273425: [OpenCL] Use function metadata to represent kernel 
attributes (authored by yaxunl).

Changed prior to commit:
  http://reviews.llvm.org/D20979?vs=60545&id=61555#toc

Repository:
  rL LLVM

http://reviews.llvm.org/D20979

Files:
  cfe/trunk/lib/CodeGen/CodeGenFunction.cpp
  cfe/trunk/test/CodeGenOpenCL/kernel-arg-info.cl
  cfe/trunk/test/CodeGenOpenCL/kernel-attributes.cl
  cfe/trunk/test/CodeGenOpenCL/kernel-metadata.cl

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

Reply via email to