<table cellspacing='0' cellpadding='0' border='0' ><tr><td style='font: inherit;'>Hi,<br>I tried creating intrinsics which are to be<br>placeholders for a  set of instructions (actually a section of a basic block) to be executed elsewhere(for e.g. in HW).<br>These intrinsics are to take care of the data dependencies of the set of instructions being replaced by them.<br>In the process I created a "migrate_begin" variable argument intrinsic which handles the incoming data dependenices to these set of instructions.<br>Entry  in the  Intrinsics.td file:<br>def int_migrate_begin : Intrinsic<[llvm_i32_ty,llvm_vararg_ty],[IntrWriteMem],"llvm.migrate_begin">;<br>   <br>I want to replace the instructions from this set , having outgoing data dependencies, with " migrate_end " intrinsic instructions.<br>I created two migrate_end intrinsics with return types anyint(iAny Value Type) and any float(fAny Value Type).<br>Entries  in
 the Intrinsics.td file:<br>def int_migrate_end_int : Intrinsic<[llvm_anyint_ty,llvm_i32_ty,llvm_i32_ty],[IntrWriteMem],"llvm.migrate_end_int">;<br>def int_migrate_end_float : Intrinsic<[llvm_anyfloat_ty,llvm_i32_ty,llvm_i32_ty],[IntrWriteMem],"llvm.migrate_end_float">;<br><br>I am not able to handle all of the pointer return type instructions.<br><br>I tried using the types such as:<br><br>def llvm_vararg_ty     : LLVMType<isVoid>;   // this means vararg here<br>def llvm_iPTR_ty       : LLVMType<iPTR><br>def llvm_descriptor_ty : LLVMPointerType<llvm_empty_ty>;   <br>and adding  types<br>def llvm_ptriAny_ty    : LLVMPointerType<llvm_anyint_ty>;            <br>def llvm_ptrfAny_ty    : LLVMPointerType<llvm_anyfloat_ty>;<br><br>but in vain.  <br>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.<br><br>Thank You,<br>Aditya<br> <br><br></td></tr></table><br>

      <hr size=1>Be a better friend, newshound, and 
know-it-all with Yahoo! Mobile. <a href="http://us.rd.yahoo.com/evt=51733/*http://mobile.yahoo.com/;_ylt=Ahu06i62sR8HDtDypao8Wcj9tAcJ "> Try it now.</a>