[llvm-dev] Return on nocapture pointer

Hal Finkel via llvm-dev llvm-dev at lists.llvm.org
Fri Apr 28 08:58:14 PDT 2017



On 04/28/2017 10:22 AM, Piotr Padlewski via llvm-dev wrote:
> Hi,
> I have a question about semantics of nocapture attribute:
> "This indicates that the callee does not make any copies of the 
> pointer that outlive the callee itself. "
> Is returing a pointer considered outliving callee? For example is this 
> code valid:

Yes, it includes returning the pointer. The code below is invalid. The 
return value outlives the callee itself.

>
> define i8* @foo(i8* nocapture %p)
>   ret i8* %p
> }
>
> The documentation also mention that "This is not a valid attribute for 
> return values.", but I interpret that it is is about this case:
>
> declare i8* nocapture @bar(i8* %p)

Correct.

  -Hal

>
> Piotr
>
>
> _______________________________________________
> LLVM Developers mailing list
> llvm-dev at lists.llvm.org
> http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev

-- 
Hal Finkel
Lead, Compiler Technology and Programming Languages
Leadership Computing Facility
Argonne National Laboratory

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20170428/be36d0cf/attachment.html>


More information about the llvm-dev mailing list