Compatible Return Type for Intrinsics

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
2 messages Options
Reply | Threaded
Open this post in threaded view
|

Compatible Return Type for Intrinsics

aditya vishnubhotla


Hi,
I tried creating  intrinsics which
are to be placeholders for a set of instructions which
should not be executed by the backend.

In this process I want to replace the uses of each
instruction with the intrinsic(Call) instruction.

I am puzzled about the return type to be used in the
intrinsic defintion(for creating the intrinsic) which
is to be included in the Intrinsics.td file.

Do we need to create a number of intrinsics with
different  return types?
If so i want to know the set of types which
collectively encompass all the possibilities posed by
the instruction type

I would for example try to map all dependencies via
overloading to
 three
intrinsic types: anyint,anyfloat and ptr_ty. Would
that be sufficient
 or is
there any simpler approach to this? As far as i
understand void_ty
 means "no
return value" and not the C semantics of void. The
strong type system
 makes
me fear that this approach won't work either?

Thank You
Aditya



      ____________________________________________________________________________________
Looking for last minute shopping deals?  
Find them fast with Yahoo! Search.  http://tools.search.yahoo.com/newsearch/category.php?category=shopping
_______________________________________________
LLVM Developers mailing list
[hidden email]         http://llvm.cs.uiuc.edu
http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev
Reply | Threaded
Open this post in threaded view
|

Re: Compatible Return Type for Intrinsics

Dan Gohman-2
On Tue, February 26, 2008 3:53 am, aditya vishnubhotla wrote:
>
> I would for example try to map all dependencies via
> overloading to
>  three
> intrinsic types: anyint,anyfloat and ptr_ty. Would
> that be sufficient
>  or is
> there any simpler approach to this?

It's a little unclear from your message what you're trying to do, but
using intrinsics with returns types of anyint, anyfloat, ptr, and void
will allow you to create an intrinsic with the same return type as any
instruction.

One possible exception is that if you're working on LLVM trunk, you
may see the new multiple-return-values. These aren't described
in the Manual yet though, and I suspect the intrinsics framework isn't
currently prepared for them either.

Dan


_______________________________________________
LLVM Developers mailing list
[hidden email]         http://llvm.cs.uiuc.edu
http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev