[LLVMdev] Creation of Intrinsics with Pointer Return Types

Dan Gohman
2008-05-07T18:28:23Z

Hello,

LLVM's intrinsic overloading mechanism does not currently support
overloading on pointer types. Patches to implement this would be
welcome.

Dan

On May 7, 2008, at 9:25 AM, aditya vishnubhotla wrote:

> Hi,
> I tried creating intrinsics which are to be
> placeholders for a  set of instructions (actually a section of a
> basic block) to be executed elsewhere(for e.g. in HW).
> These intrinsics are to take care of the data dependencies of the
> set of instructions being replaced by them.
> In the process I created a "migrate_begin" variable argument
> intrinsic which handles the incoming data dependenices to these set
> of instructions.
> Entry  in the  Intrinsics.td file:
> def int_migrate_begin : Intrinsic<[llvm_i32_ty,llvm_vararg_ty],
> [IntrWriteMem],"llvm.migrate_begin">;
>
> I want to replace the instructions from this set , having outgoing
> data dependencies, with " migrate_end " intrinsic instructions.
> I created two migrate_end intrinsics with return types anyint(iAny
> Value Type) and any float(fAny Value Type).
> Entries  in the Intrinsics.td file:
> def int_migrate_end_int :
> Intrinsic<[llvm_anyint_ty,llvm_i32_ty,llvm_i32_ty],
> [IntrWriteMem],"llvm.migrate_end_int">;
> def int_migrate_end_float :
> Intrinsic<[llvm_anyfloat_ty,llvm_i32_ty,llvm_i32_ty],
> [IntrWriteMem],"llvm.migrate_end_float">;
>
> I am not able to handle all of the pointer return type instructions.
>
> I tried using the types such as:
>
> def llvm_vararg_ty     : LLVMType<isVoid>;   // this means vararg
here
> def llvm_iPTR_ty       : LLVMType<iPTR>
> def llvm_descriptor_ty : LLVMPointerType<llvm_empty_ty>;
> and adding  types
> def llvm_ptriAny_ty    : LLVMPointerType<llvm_anyint_ty>;
> def llvm_ptrfAny_ty    : LLVMPointerType<llvm_anyfloat_ty>;
>
> but in vain.
> I would be happy to know the type or types required for handling a
> pointer return type for an LLVM instruction, to create the
> "migrate_end" intrinsic.
>
> Thank You,
> Aditya
>
>
>
> Be a better friend, newshound, and know-it-all with Yahoo! Mobile.
> Try it now. _______________________________________________
> LLVM Developers mailing list
> LLVMdev at cs.uiuc.edu         http://llvm.cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev