[PATCH] Experimental stackmap and patchpoint intrinsic definitions.

Chris Lattner clattner at apple.com
Wed Oct 30 12:52:12 PDT 2013


Ah, I see, got it!

-Chris

On Oct 28, 2013, at 11:45 AM, Juergen Ributzka <juergen at apple.com> wrote:

> 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