[LLVMdev] Creation of Intrinsics with Pointer Return Types
Dan Gohman
gohman at apple.com
Wed May 7 11:28:23 PDT 2008
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
More information about the llvm-dev
mailing list