Unfortunately that does not work, since the bitcast will generate a convert
and the argument of the intrinsic will be a value type i8* and the
intrinsics is intended to map to an instruction that accepts only a
symbolic. The convert gets hoisted, possibly to a different block, and we
would like the symbolic variable to stay as an operand of the intrinsic
making it possible to write the correct instruction selection rule, or so I
think.
An alternative might be to not use intrinsic for this purpose and use the
proper signature for this function whose definition (to the right
instruction) is supplied by custom lowering of a predefined external
function. Can this work?
Thanks
Vinod
On Mon, Jul 13, 2009 at 8:57 PM, Chris Lattner <clattner at apple.com>
wrote:
>
> On Jul 13, 2009, at 8:41 PM, Vinod Grover wrote:
>
> > I was looking at the LLVM IR documentation and was wondering if it
> > is possible to define LLVM intrinsics which might be a pointer to
> > some pre-defined struct or opaque types?
> > If that is possible how would one go about doing that ?
>
> You mean something like FILE*? It's not possible to do that, but you
> can just define it as i8* and use a bitcast at the call site.
>
> -Chris
> _______________________________________________
> LLVM Developers mailing list
> LLVMdev at cs.uiuc.edu http://llvm.cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL:
<http://lists.llvm.org/pipermail/llvm-dev/attachments/20090713/44c0de2c/attachment.html>