<div dir="ltr">Thanks guys. <div>Do you it make sense to extend the definition in LangRef? If so I will be happy to upload a patch.<div><br></div><div>Piotr</div></div></div><div class="gmail_extra"><br><div class="gmail_quote">2017-04-28 17:58 GMT+02:00 Hal Finkel <span dir="ltr"><<a href="mailto:hfinkel@anl.gov" target="_blank">hfinkel@anl.gov</a>></span>:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div bgcolor="#FFFFFF" text="#000000"><span class="">
<p><br>
</p>
<br>
<div class="m_8302625407808295757moz-cite-prefix">On 04/28/2017 10:22 AM, Piotr Padlewski
via llvm-dev wrote:<br>
</div>
<blockquote type="cite">
<div dir="ltr">Hi,
<div>I have a question about semantics of nocapture attribute:</div>
<div>"<span>This
indicates that the callee does not make any copies of the
pointer that outlive the callee itself.</span><span> "</span></div>
<div><font color="#000000" face="lucida grande, lucida sans
unicode, geneva, verdana, sans-serif"><span style="font-size:14px">Is returing a pointer considered
outliving callee? For example is this code valid:</span></font></div>
</div>
</blockquote>
<br></span>
Yes, it includes returning the pointer. The code below is invalid.
The return value outlives the callee itself.<span class=""><br>
<br>
<blockquote type="cite">
<div dir="ltr">
<div><font color="#000000" face="lucida grande, lucida sans
unicode, geneva, verdana, sans-serif"><span style="font-size:14px"><br>
</span></font></div>
<div><font color="#000000" face="lucida grande, lucida sans
unicode, geneva, verdana, sans-serif"><span style="font-size:14px">define i8* @foo(i8* nocapture %p)</span></font></div>
<div><font color="#000000" face="lucida grande, lucida sans
unicode, geneva, verdana, sans-serif"><span style="font-size:14px"> ret i8* %p</span></font></div>
<div><font color="#000000" face="lucida grande, lucida sans
unicode, geneva, verdana, sans-serif"><span style="font-size:14px">}</span></font></div>
<div><font color="#000000" face="lucida grande, lucida sans
unicode, geneva, verdana, sans-serif"><span style="font-size:14px"><br>
</span></font></div>
<div><font color="#000000" face="lucida grande, lucida sans
unicode, geneva, verdana, sans-serif"><span style="font-size:14px">The documentation also mention that
"</span></font><span> </span><span>This
is not a valid attribute for return values.", but I
interpret that it is is about this case:</span></div>
<div><span><br>
</span></div>
<div>
<div><font color="#000000" face="lucida grande, lucida sans
unicode, geneva, verdana, sans-serif"><span style="font-size:14px">declare i8* nocapture @bar(i8*
%p)</span></font></div>
</div>
</div>
</blockquote>
<br></span>
Correct.<br>
<br>
-Hal<span class=""><br>
<br>
<blockquote type="cite">
<div dir="ltr">
<div>
<div><br>
</div>
</div>
<div>Piotr</div>
</div>
<br>
<fieldset class="m_8302625407808295757mimeAttachmentHeader"></fieldset>
<br>
<pre>______________________________<wbr>_________________
LLVM Developers mailing list
<a class="m_8302625407808295757moz-txt-link-abbreviated" href="mailto:llvm-dev@lists.llvm.org" target="_blank">llvm-dev@lists.llvm.org</a>
<a class="m_8302625407808295757moz-txt-link-freetext" href="http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev" target="_blank">http://lists.llvm.org/cgi-bin/<wbr>mailman/listinfo/llvm-dev</a>
</pre>
</blockquote>
<br>
</span><span class="HOEnZb"><font color="#888888"><pre class="m_8302625407808295757moz-signature" cols="72">--
Hal Finkel
Lead, Compiler Technology and Programming Languages
Leadership Computing Facility
Argonne National Laboratory</pre>
</font></span></div>
</blockquote></div><br></div>