[PATCH] Experimental stackmap and patchpoint intrinsic definitions.
Juergen Ributzka
juergen at apple.com
Mon Oct 28 11:45:41 PDT 2013
Hi Chris,
1.) The return type of the patchpoint intrinsic is independent of any of its arguments, so we couldn’t use the LLVMMatchType to let tblgen pattern match all the possible intrinsic names for us. A more generic approach would require extending tblgen to also handle this case.
2.) Not sure what you mean, because both patchpoint intrinsic versions take llvm_ptr_ty as an argument (3rd argument).
Cheers,
Juergen
On Oct 26, 2013, at 6:04 PM, Chris Lattner <clattner at apple.com> wrote:
>
> On Oct 21, 2013, at 8:11 PM, Andrew Trick <atrick at apple.com> wrote:
>
>> Hi lhames, ributzka, echristo,
>>
>> These new intrinsics require varargs support.
>
> Why is the _void and _i64 embedded into the intrinsic name? For the first one, are you expecting other versions of this? On the second, can/should it just take a llvm_ptr_ty, so that it is properly generic over any pointer type?
>
> -Chris
>
>>
>> http://llvm-reviews.chandlerc.com/D1993
>>
>> Files:
>> include/llvm/IR/Intrinsics.td
>>
>> Index: include/llvm/IR/Intrinsics.td
>> ===================================================================
>> --- include/llvm/IR/Intrinsics.td
>> +++ include/llvm/IR/Intrinsics.td
>> @@ -455,6 +455,19 @@
>> llvm_ptr_ty],
>> [IntrReadWriteArgMem, NoCapture<2>]>;
>>
>> +//===------------------------ Stackmap Intrinsics -------------------------===//
>> +//
>> +def int_experimental_stackmap : Intrinsic<[],
>> + [llvm_i32_ty, llvm_i32_ty, llvm_vararg_ty]>;
>> +def int_experimental_patchpoint_void : Intrinsic<[],
>> + [llvm_i32_ty, llvm_i32_ty,
>> + llvm_ptr_ty, llvm_i32_ty,
>> + llvm_vararg_ty]>;
>> +def int_experimental_patchpoint_i64 : Intrinsic<[llvm_i64_ty],
>> + [llvm_i32_ty, llvm_i32_ty,
>> + llvm_ptr_ty, llvm_i32_ty,
>> + llvm_vararg_ty]>;
>> +
>> //===-------------------------- Other Intrinsics --------------------------===//
>> //
>> def int_flt_rounds : Intrinsic<[llvm_i32_ty]>,
>> <D1993.1.patch>_______________________________________________
>> llvm-commits mailing list
>> llvm-commits at cs.uiuc.edu
>> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
>
> _______________________________________________
> llvm-commits mailing list
> llvm-commits at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
More information about the llvm-commits
mailing list