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
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