[llvm-dev] define intrinsic function with pointer-typed parameter
Xiangyang Guo via llvm-dev
llvm-dev at lists.llvm.org
Mon Mar 21 16:33:32 PDT 2016
Hi,
If I define a intrinsic function with pointer-typed parameter, for example,
def llvm_foo_ptr_ty : LLVMPointerType<llvm_i16_ty>;
def int_foo_get : Intrinsic<[llvm_foo_ptr_ty], [llvm_foo_ptr_ty,
llvm_i32_ty], [IntrReadArgMem]>;
How to lower it for the backend? I'm not sure what kind of register (i16 or
i32 or i32) is needed in this case? If the parameter is
LLVMPointerType<llvm_i32_ty> instead of LLVMPointerType<llvm_i16_ty>, will
this make difference for the backend? Suppose my backend has three types of
register: i16, i32, i64.
When I check the debug information, I can see LLVM tries to use i32 to
lower the parameter to build SDAG. But why it chooses i32 instead of i64?
Any input is appreciable.
Regards,
Xiangyang
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20160321/2778a8a1/attachment.html>
More information about the llvm-dev
mailing list