@@ -386,32 +386,21 @@ class LLVMAnyType<ValueType vt> : LLVMType<vt> {
386386 assert isAny, "LLVMAnyType.VT should have isOverloaded";
387387}
388388
389- class LLVMQualPointerType<LLVMType elty, int addrspace>
390- : LLVMType<iPTR>{
391- LLVMType ElTy = elty;
389+ class LLVMQualPointerType<int addrspace>
390+ : LLVMType<iPTR> {
392391 assert !and(!le(0, addrspace), !le(addrspace, 255)),
393392 "Address space exceeds 255";
394393
395- // D63507: LLVMPointerType<llvm_any_ty>
396- let isAny = elty.isAny;
397-
398- let Sig = !listconcat(
394+ let Sig =
399395 !if(addrspace, [
400396 IIT_ANYPTR.Number,
401397 addrspace,
402398 ], [
403399 IIT_PTR.Number,
404- ]),
405- ElTy.Sig);
400+ ]);
406401}
407402
408- class LLVMPointerType<LLVMType elty>
409- : LLVMQualPointerType<elty, 0>;
410-
411- class LLVMAnyPointerType<LLVMType elty>
412- : LLVMAnyType<iPTRAny> {
413- LLVMType ElTy = elty;
414-
403+ class LLVMAnyPointerType : LLVMAnyType<iPTRAny> {
415404 assert isAny, "iPTRAny should have isOverloaded";
416405}
417406
@@ -499,16 +488,13 @@ def llvm_double_ty : LLVMType<f64>;
499488def llvm_f80_ty : LLVMType<f80>;
500489def llvm_f128_ty : LLVMType<f128>;
501490def llvm_ppcf128_ty : LLVMType<ppcf128>;
502- def llvm_ptr_ty : LLVMPointerType<llvm_i8_ty>; // i8*
503- def llvm_ptrptr_ty : LLVMPointerType<llvm_ptr_ty>; // i8**
504- def llvm_anyptr_ty : LLVMAnyPointerType<llvm_i8_ty>; // (space)i8*
505- def llvm_empty_ty : LLVMType<OtherVT>; // { }
506- def llvm_descriptor_ty : LLVMPointerType<llvm_empty_ty>; // { }*
507- def llvm_metadata_ty : LLVMType<MetadataVT>; // !{...}
508- def llvm_token_ty : LLVMType<token>; // token
491+ def llvm_ptr_ty : LLVMQualPointerType<0>; // ptr
492+ def llvm_anyptr_ty : LLVMAnyPointerType; // ptr addrspace(N)
493+ def llvm_empty_ty : LLVMType<OtherVT>; // { }
494+ def llvm_metadata_ty : LLVMType<MetadataVT>; // !{...}
495+ def llvm_token_ty : LLVMType<token>; // token
509496
510497def llvm_x86mmx_ty : LLVMType<x86mmx>;
511- def llvm_ptrx86mmx_ty : LLVMPointerType<llvm_x86mmx_ty>; // <1 x i64>*
512498
513499def llvm_aarch64_svcount_ty : LLVMType<aarch64svcount>;
514500
@@ -719,12 +705,12 @@ def int_vaend : DefaultAttrsIntrinsic<[], [llvm_ptr_ty], [], "llvm.va_end">;
719705//===------------------- Garbage Collection Intrinsics --------------------===//
720706//
721707def int_gcroot : Intrinsic<[],
722- [llvm_ptrptr_ty , llvm_ptr_ty]>;
708+ [llvm_ptr_ty , llvm_ptr_ty]>;
723709def int_gcread : Intrinsic<[llvm_ptr_ty],
724- [llvm_ptr_ty, llvm_ptrptr_ty ],
710+ [llvm_ptr_ty, llvm_ptr_ty ],
725711 [IntrReadMem, IntrArgMemOnly]>;
726712def int_gcwrite : Intrinsic<[],
727- [llvm_ptr_ty, llvm_ptr_ty, llvm_ptrptr_ty ],
713+ [llvm_ptr_ty, llvm_ptr_ty, llvm_ptr_ty ],
728714 [IntrArgMemOnly, NoCapture<ArgIndex<1>>,
729715 NoCapture<ArgIndex<2>>]>;
730716
@@ -742,19 +728,19 @@ def int_objc_autoreleaseReturnValue : Intrinsic<[llvm_ptr_ty],
742728 [llvm_ptr_ty],
743729 [Returned<ArgIndex<0>>]>;
744730def int_objc_copyWeak : Intrinsic<[],
745- [llvm_ptrptr_ty ,
746- llvm_ptrptr_ty ]>;
747- def int_objc_destroyWeak : Intrinsic<[], [llvm_ptrptr_ty ]>;
731+ [llvm_ptr_ty ,
732+ llvm_ptr_ty ]>;
733+ def int_objc_destroyWeak : Intrinsic<[], [llvm_ptr_ty ]>;
748734def int_objc_initWeak : Intrinsic<[llvm_ptr_ty],
749- [llvm_ptrptr_ty ,
735+ [llvm_ptr_ty ,
750736 llvm_ptr_ty]>;
751737def int_objc_loadWeak : Intrinsic<[llvm_ptr_ty],
752- [llvm_ptrptr_ty ]>;
738+ [llvm_ptr_ty ]>;
753739def int_objc_loadWeakRetained : Intrinsic<[llvm_ptr_ty],
754- [llvm_ptrptr_ty ]>;
740+ [llvm_ptr_ty ]>;
755741def int_objc_moveWeak : Intrinsic<[],
756- [llvm_ptrptr_ty ,
757- llvm_ptrptr_ty ]>;
742+ [llvm_ptr_ty ,
743+ llvm_ptr_ty ]>;
758744def int_objc_release : Intrinsic<[], [llvm_ptr_ty]>;
759745def int_objc_retain : Intrinsic<[llvm_ptr_ty],
760746 [llvm_ptr_ty],
@@ -770,10 +756,10 @@ def int_objc_retainAutoreleasedReturnValue : Intrinsic<[llvm_ptr_ty],
770756def int_objc_retainBlock : Intrinsic<[llvm_ptr_ty],
771757 [llvm_ptr_ty]>;
772758def int_objc_storeStrong : Intrinsic<[],
773- [llvm_ptrptr_ty ,
759+ [llvm_ptr_ty ,
774760 llvm_ptr_ty]>;
775761def int_objc_storeWeak : Intrinsic<[llvm_ptr_ty],
776- [llvm_ptrptr_ty ,
762+ [llvm_ptr_ty ,
777763 llvm_ptr_ty]>;
778764def int_objc_clang_arc_use : Intrinsic<[],
779765 [llvm_vararg_ty]>;
@@ -796,23 +782,23 @@ def int_objc_sync_enter : Intrinsic<[llvm_i32_ty],
796782def int_objc_sync_exit : Intrinsic<[llvm_i32_ty],
797783 [llvm_ptr_ty]>;
798784def int_objc_arc_annotation_topdown_bbstart : Intrinsic<[],
799- [llvm_ptrptr_ty ,
800- llvm_ptrptr_ty ]>;
785+ [llvm_ptr_ty ,
786+ llvm_ptr_ty ]>;
801787def int_objc_arc_annotation_topdown_bbend : Intrinsic<[],
802- [llvm_ptrptr_ty ,
803- llvm_ptrptr_ty ]>;
788+ [llvm_ptr_ty ,
789+ llvm_ptr_ty ]>;
804790def int_objc_arc_annotation_bottomup_bbstart : Intrinsic<[],
805- [llvm_ptrptr_ty ,
806- llvm_ptrptr_ty ]>;
791+ [llvm_ptr_ty ,
792+ llvm_ptr_ty ]>;
807793def int_objc_arc_annotation_bottomup_bbend : Intrinsic<[],
808- [llvm_ptrptr_ty ,
809- llvm_ptrptr_ty ]>;
794+ [llvm_ptr_ty ,
795+ llvm_ptr_ty ]>;
810796//===--------------- Swift asynchronous context intrinsics ----------------===//
811797
812798// Returns the location of the Swift asynchronous context (usually stored just
813799// before the frame pointer), and triggers the creation of a null context if it
814800// would otherwise be unneeded.
815- def int_swift_async_context_addr : Intrinsic<[llvm_ptrptr_ty ], [], []>;
801+ def int_swift_async_context_addr : Intrinsic<[llvm_ptr_ty ], [], []>;
816802
817803//===--------------------- Code Generator Intrinsics ----------------------===//
818804//
@@ -901,7 +887,7 @@ def int_experimental_noalias_scope_decl
901887
902888// Stack Protector Intrinsic - The stackprotector intrinsic writes the stack
903889// guard to the correct place on the stack frame.
904- def int_stackprotector : DefaultAttrsIntrinsic<[], [llvm_ptr_ty, llvm_ptrptr_ty ], []>;
890+ def int_stackprotector : DefaultAttrsIntrinsic<[], [llvm_ptr_ty, llvm_ptr_ty ], []>;
905891def int_stackguard : DefaultAttrsIntrinsic<[llvm_ptr_ty], [], []>;
906892
907893// A cover for instrumentation based profiling.
@@ -1507,7 +1493,7 @@ def int_var_annotation : DefaultAttrsIntrinsic<
15071493 [IntrInaccessibleMemOnly], "llvm.var.annotation">;
15081494
15091495def int_ptr_annotation : DefaultAttrsIntrinsic<
1510- [LLVMAnyPointerType<llvm_anyint_ty> ],
1496+ [llvm_anyptr_ty ],
15111497 [LLVMMatchType<0>, llvm_anyptr_ty, LLVMMatchType<1>, llvm_i32_ty, LLVMMatchType<1>],
15121498 [IntrInaccessibleMemOnly], "llvm.ptr.annotation">;
15131499
@@ -1652,13 +1638,13 @@ def int_lifetime_end : DefaultAttrsIntrinsic<[],
16521638 [IntrArgMemOnly, IntrWillReturn,
16531639 NoCapture<ArgIndex<1>>,
16541640 ImmArg<ArgIndex<0>>]>;
1655- def int_invariant_start : DefaultAttrsIntrinsic<[llvm_descriptor_ty ],
1641+ def int_invariant_start : DefaultAttrsIntrinsic<[llvm_ptr_ty ],
16561642 [llvm_i64_ty, llvm_anyptr_ty],
16571643 [IntrArgMemOnly, IntrWillReturn,
16581644 NoCapture<ArgIndex<1>>,
16591645 ImmArg<ArgIndex<0>>]>;
16601646def int_invariant_end : DefaultAttrsIntrinsic<[],
1661- [llvm_descriptor_ty , llvm_i64_ty,
1647+ [llvm_ptr_ty , llvm_i64_ty,
16621648 llvm_anyptr_ty],
16631649 [IntrArgMemOnly, IntrWillReturn,
16641650 NoCapture<ArgIndex<2>>,
@@ -1889,13 +1875,13 @@ def int_experimental_stepvector : DefaultAttrsIntrinsic<[llvm_anyvector_ty],
18891875// Memory Intrinsics
18901876def int_vp_store : DefaultAttrsIntrinsic<[],
18911877 [ llvm_anyvector_ty,
1892- LLVMAnyPointerType<LLVMMatchType<0>> ,
1878+ llvm_anyptr_ty ,
18931879 LLVMScalarOrSameVectorWidth<0, llvm_i1_ty>,
18941880 llvm_i32_ty],
18951881 [ NoCapture<ArgIndex<1>>, IntrNoSync, IntrWriteMem, IntrArgMemOnly, IntrWillReturn ]>;
18961882
18971883def int_vp_load : DefaultAttrsIntrinsic<[ llvm_anyvector_ty],
1898- [ LLVMAnyPointerType<LLVMMatchType<0>> ,
1884+ [ llvm_anyptr_ty ,
18991885 LLVMScalarOrSameVectorWidth<0, llvm_i1_ty>,
19001886 llvm_i32_ty],
19011887 [ NoCapture<ArgIndex<0>>, IntrNoSync, IntrReadMem, IntrWillReturn, IntrArgMemOnly ]>;
@@ -2337,14 +2323,14 @@ def int_vp_is_fpclass:
23372323//
23382324def int_masked_load:
23392325 DefaultAttrsIntrinsic<[llvm_anyvector_ty],
2340- [LLVMAnyPointerType<LLVMMatchType<0>> , llvm_i32_ty,
2326+ [llvm_anyptr_ty , llvm_i32_ty,
23412327 LLVMScalarOrSameVectorWidth<0, llvm_i1_ty>, LLVMMatchType<0>],
23422328 [IntrReadMem, IntrArgMemOnly, IntrWillReturn, ImmArg<ArgIndex<1>>,
23432329 NoCapture<ArgIndex<0>>]>;
23442330
23452331def int_masked_store:
23462332 DefaultAttrsIntrinsic<[],
2347- [llvm_anyvector_ty, LLVMAnyPointerType<LLVMMatchType<0>> ,
2333+ [llvm_anyvector_ty, llvm_anyptr_ty ,
23482334 llvm_i32_ty, LLVMScalarOrSameVectorWidth<0, llvm_i1_ty>],
23492335 [IntrWriteMem, IntrArgMemOnly, IntrWillReturn,
23502336 ImmArg<ArgIndex<2>>, NoCapture<ArgIndex<1>>]>;
0 commit comments