<div dir="ltr"><br><div class="gmail_extra"><br><div class="gmail_quote">On Tue, May 10, 2016 at 3:17 PM, Liu, Yaxun (Sam) via cfe-dev <span dir="ltr"><<a href="mailto:cfe-dev@lists.llvm.org" target="_blank">cfe-dev@lists.llvm.org</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">





<div lang="EN-US" link="#0563C1" vlink="#954F72">
<div>
<p class="MsoNormal"><span style="color:#1f497d">+ llvm-dev<u></u><u></u></span></p>
<p class="MsoNormal"><span style="color:#1f497d"><u></u> <u></u></span></p>
<div>
<div style="border:none;border-top:solid #e1e1e1 1.0pt;padding:3.0pt 0in 0in 0in">
<p class="MsoNormal"><b>From:</b> Sumner, Brian <br>
<b>Sent:</b> Tuesday, May 10, 2016 3:11 PM<br>
<b>To:</b> Anastasia Stulova <<a href="mailto:Anastasia.Stulova@arm.com" target="_blank">Anastasia.Stulova@arm.com</a>>; Liu, Yaxun (Sam) <<a href="mailto:Yaxun.Liu@amd.com" target="_blank">Yaxun.Liu@amd.com</a>>; cfe-dev (<a href="mailto:cfe-dev@lists.llvm.org" target="_blank">cfe-dev@lists.llvm.org</a>) <<a href="mailto:cfe-dev@lists.llvm.org" target="_blank">cfe-dev@lists.llvm.org</a>>; Pan, Xiuli <<a href="mailto:xiuli.pan@intel.com" target="_blank">xiuli.pan@intel.com</a>>; Bader, Alexey (<a href="mailto:alexey.bader@intel.com" target="_blank">alexey.bader@intel.com</a>) <<a href="mailto:alexey.bader@intel.com" target="_blank">alexey.bader@intel.com</a>><br>
<b>Cc:</b> Stellard, Thomas <<a href="mailto:Tom.Stellard@amd.com" target="_blank">Tom.Stellard@amd.com</a>>; Mekhanoshin, Stanislav <<a href="mailto:Stanislav.Mekhanoshin@amd.com" target="_blank">Stanislav.Mekhanoshin@amd.com</a>>; nd <<a href="mailto:nd@arm.com" target="_blank">nd@arm.com</a>></p><div><div><br>
<b>Subject:</b> RE: [OpenCL] Question about pre-linking passes required to build OpenCL program<u></u><u></u></div></div><p></p>
</div>
</div><div><div>
<p class="MsoNormal"><u></u> <u></u></p>
<p class="MsoNormal"><span style="color:#1f497d">Hi Anastasia,<u></u><u></u></span></p>
<p class="MsoNormal"><span style="color:#1f497d"><u></u> <u></u></span></p>
<p class="MsoNormal"><span style="color:#1f497d">I’m glad to hear there could be some support for such a mechanism.  On our side, we use such pre-link passes to interface with the specifics of our built-in function library.  For example, we transform printf
 calls into a form that interacts with our library.  We also transform calls to pipe functions, kernel enqueue related functions, and transform calls to the atomic functions to corresponding LLVM atomic instructions (and keep track of the memory scope elsewhere
 currently).  You may have noticed that we have a proposal out to enable the atomic instructions to directly carry a memory scope.</span></p></div></div></div></div></blockquote><div><br></div><div>Hi Sam / Brian,</div><div><br></div><div>We have similar passes related to builtin functions but they are rather specific to our implementation and not too complex. We don't do much else before linking. What do you envision as the common infrastructure here?</div><div><br></div><div>Thanks,</div><div>Jeff</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div lang="EN-US" link="#0563C1" vlink="#954F72"><div><div><div>
<p class="MsoNormal"><span style="color:#1f497d">Thanks,<u></u><u></u></span></p>
<p class="MsoNormal"><span style="color:#1f497d">Brian<u></u><u></u></span></p>
<p class="MsoNormal"><span style="color:#1f497d"><u></u> <u></u></span></p>
<div>
<div style="border:none;border-top:solid #b5c4df 1.0pt;padding:3.0pt 0in 0in 0in">
<p class="MsoNormal"><b><span style="font-size:10.0pt;font-family:"Tahoma",sans-serif">From:</span></b><span style="font-size:10.0pt;font-family:"Tahoma",sans-serif"> Anastasia Stulova [<a href="mailto:Anastasia.Stulova@arm.com" target="_blank">mailto:Anastasia.Stulova@arm.com</a>]
<br>
<b>Sent:</b> Tuesday, May 10, 2016 11:45 AM<br>
<b>To:</b> Liu, Yaxun (Sam); cfe-dev (<a href="mailto:cfe-dev@lists.llvm.org" target="_blank">cfe-dev@lists.llvm.org</a>); Pan, Xiuli; Bader, Alexey (<a href="mailto:alexey.bader@intel.com" target="_blank">alexey.bader@intel.com</a>)<br>
<b>Cc:</b> Stellard, Thomas; Sumner, Brian; Mekhanoshin, Stanislav; nd<br>
<b>Subject:</b> RE: [OpenCL] Question about pre-linking passes required to build OpenCL program<u></u><u></u></span></p>
</div>
</div>
<p class="MsoNormal"><u></u> <u></u></p>
<p class="MsoNormal"><span lang="EN-GB" style="color:#1f497d">Hi Sam,<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-GB" style="color:#1f497d"><u></u> <u></u></span></p>
<p class="MsoNormal"><span lang="EN-GB" style="color:#1f497d">It seems to be generally useful to the community. Could you give some examples of those transformations that can be shared?<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-GB" style="color:#1f497d"><u></u> <u></u></span></p>
<p class="MsoNormal"><span lang="EN-GB" style="color:#1f497d">Also I am guessing this will be a part of LLVM code base. Do you intend it to be publically available on the master branch?  If yes, perhaps llvm-dev should be added to the discussion too.<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-GB" style="color:#1f497d"><u></u> <u></u></span></p>
<p class="MsoNormal"><span lang="EN-GB" style="color:#1f497d">Cheers,<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-GB" style="color:#1f497d">Anastasia <u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-GB" style="color:#1f497d"><u></u> <u></u></span></p>
<div>
<div style="border:none;border-top:solid #b5c4df 1.0pt;padding:3.0pt 0in 0in 0in">
<p class="MsoNormal"><b><span style="font-size:10.0pt;font-family:"Tahoma",sans-serif">From:</span></b><span style="font-size:10.0pt;font-family:"Tahoma",sans-serif"> Liu, Yaxun (Sam) [<a href="mailto:Yaxun.Liu@amd.com" target="_blank">mailto:Yaxun.Liu@amd.com</a>]
<br>
<b>Sent:</b> 09 May 2016 21:14<br>
<b>To:</b> cfe-dev (<a href="mailto:cfe-dev@lists.llvm.org" target="_blank">cfe-dev@lists.llvm.org</a>); Anastasia Stulova; Pan, Xiuli; Bader, Alexey (<a href="mailto:alexey.bader@intel.com" target="_blank">alexey.bader@intel.com</a>)<br>
<b>Cc:</b> Stellard, Thomas; Sumner, Brian; Mekhanoshin, Stanislav<br>
<b>Subject:</b> [OpenCL] Question about pre-linking passes required to build OpenCL program<u></u><u></u></span></p>
</div>
</div>
<p class="MsoNormal"><span lang="EN-GB"><u></u> <u></u></span></p>
<p class="MsoNormal">Hi,<u></u><u></u></p>
<p class="MsoNormal"><u></u> <u></u></p>
<p class="MsoNormal">We typically need to apply some transformations to the IR between clang and the standard linker. I am wondering if other OpenCL platforms require the same as well?<u></u><u></u></p>
<p class="MsoNormal"><u></u> <u></u></p>
<p class="MsoNormal">I’m wondering if we all need such transformations (likely target specific). Is there any way to collaborate on a common infrastructure for pre-linking transformation that would reduce the size of the additions we have to make?<u></u><u></u></p>
<p class="MsoNormal"><u></u> <u></u></p>
<p class="MsoNormal">Thanks.<u></u><u></u></p>
<p class="MsoNormal"><u></u> <u></u></p>
<p class="MsoNormal">Sam<u></u><u></u></p>
</div></div></div>
</div>

<br>_______________________________________________<br>
cfe-dev mailing list<br>
<a href="mailto:cfe-dev@lists.llvm.org" target="_blank">cfe-dev@lists.llvm.org</a><br>
<a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-dev" rel="noreferrer" target="_blank">http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-dev</a><br>
<br></blockquote></div><br></div></div>