Louis Li via llvm-dev
2016-Nov-04 02:48 UTC
[llvm-dev] Enforcing that an intrinsic takes a struct
Hi there -- new to LLVM development. I'm trying to define an intrinsic function that takes a pointer to an LLVM struct type (e.g., MyStruct*). def int_mynewintrinsic : Intrinsic<[], [llvm_ptr_ty]>>From what I can see in Intrinsics.td, it's only possible to specify that ittakes some pointer, whose responsibility is it to enforce / how can I enforce that the pointer points to a struct of the desired type? Related question: Intrinsic has the signature below, but nearly all of the functions do not define name "" -- why do some do it and some don't? (e.g., llvm.va_copy does) class Intrinsic<list<LLVMType> ret_types, list<LLVMType> param_types = [], list<IntrinsicProperty> properties = [], string name = ""> : Thanks, Louis -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20161104/e7243108/attachment.html>
Ryan Taylor via llvm-dev
2016-Nov-04 12:26 UTC
[llvm-dev] Enforcing that an intrinsic takes a struct
You might want to take a look at the Semantic Checker. (tools/clang/lib/Sema/SemaChecking.cpp). I believe the intrinsic name defaults to intrinsic var name (ie int_sqrt defaults to llvm.sqrt... since Intrinsic is llvm::Intrinsic). On Thu, Nov 3, 2016 at 10:48 PM, Louis Li via llvm-dev < llvm-dev at lists.llvm.org> wrote:> Hi there -- new to LLVM development. I'm trying to define an intrinsic > function that takes a pointer to an LLVM struct type (e.g., MyStruct*). > def int_mynewintrinsic : Intrinsic<[], [llvm_ptr_ty]> > > From what I can see in Intrinsics.td, it's only possible to specify that > it takes some pointer, whose responsibility is it to enforce / how can I > enforce that the pointer points to a struct of the desired type? > > Related question: Intrinsic has the signature below, but nearly all of the > functions do not define name "" -- why do some do it and some don't? (e.g., > llvm.va_copy does) > > class Intrinsic<list<LLVMType> ret_types, > list<LLVMType> param_types = [], > list<IntrinsicProperty> properties = [], > string name = ""> : > > Thanks, > Louis > > > > _______________________________________________ > 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/20161104/6953fe5e/attachment-0001.html>