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