[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