I don't think token was envisioned as something that could be exposed via C
builtins. Perhaps you could modify CGBuiltins.cpp to avoid the bitcast, but
you still won't be able to store the token to a variable in C. It will only
be usable in an expression, like this:
consume_token(produce_token(), foo(), bar());
This doesn't seem like a particularly good design direction either.
On Thu, Aug 2, 2018 at 7:34 PM Dounia Khaldi via llvm-dev <
llvm-dev at lists.llvm.org> wrote:
> Hello,
> I would like to add an intrinsic that returns a token type argument. The
> equivalent in C that I found other builtins using is void *(coro_id for
> instance).
>
> My question is how to generate the code in CGBuiltins.cpp to generate
> token type instead of void *. The usual code is not working.
>
> The intrinsic I get generated is:
> %1 = call token @llvm.new_intrinsic()
>
> but it wants to convert the token into void* like the following:
> %2 = bitcast token %1 to i8*
> store i8* %2, i8** %myvariable
>
> How to get it to use directly token type like this:
> %myvariale = call token @llvm.new_intrinsic()
>
> Did anyone have done this before: token in the intrinsic and void* in the
> builtin?
>
> Thanks,
> Dounia
>
> _______________________________________________
> LLVM Developers mailing list
> llvm-dev at lists.llvm.org
> http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL:
<http://lists.llvm.org/pipermail/llvm-dev/attachments/20180806/0c6c7600/attachment.html>