@@ -386,32 +386,21 @@ class LLVMAnyType<ValueType vt> : LLVMType<vt> {
386
386
assert isAny, "LLVMAnyType.VT should have isOverloaded";
387
387
}
388
388
389
- class LLVMQualPointerType<LLVMType elty, int addrspace>
390
- : LLVMType<iPTR>{
391
- LLVMType ElTy = elty;
389
+ class LLVMQualPointerType<int addrspace>
390
+ : LLVMType<iPTR> {
392
391
assert !and(!le(0, addrspace), !le(addrspace, 255)),
393
392
"Address space exceeds 255";
394
393
395
- // D63507: LLVMPointerType<llvm_any_ty>
396
- let isAny = elty.isAny;
397
-
398
- let Sig = !listconcat(
394
+ let Sig =
399
395
!if(addrspace, [
400
396
IIT_ANYPTR.Number,
401
397
addrspace,
402
398
], [
403
399
IIT_PTR.Number,
404
- ]),
405
- ElTy.Sig);
400
+ ]);
406
401
}
407
402
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> {
415
404
assert isAny, "iPTRAny should have isOverloaded";
416
405
}
417
406
@@ -499,16 +488,13 @@ def llvm_double_ty : LLVMType<f64>;
499
488
def llvm_f80_ty : LLVMType<f80>;
500
489
def llvm_f128_ty : LLVMType<f128>;
501
490
def 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
509
496
510
497
def llvm_x86mmx_ty : LLVMType<x86mmx>;
511
- def llvm_ptrx86mmx_ty : LLVMPointerType<llvm_x86mmx_ty>; // <1 x i64>*
512
498
513
499
def llvm_aarch64_svcount_ty : LLVMType<aarch64svcount>;
514
500
@@ -719,12 +705,12 @@ def int_vaend : DefaultAttrsIntrinsic<[], [llvm_ptr_ty], [], "llvm.va_end">;
719
705
//===------------------- Garbage Collection Intrinsics --------------------===//
720
706
//
721
707
def int_gcroot : Intrinsic<[],
722
- [llvm_ptrptr_ty , llvm_ptr_ty]>;
708
+ [llvm_ptr_ty , llvm_ptr_ty]>;
723
709
def int_gcread : Intrinsic<[llvm_ptr_ty],
724
- [llvm_ptr_ty, llvm_ptrptr_ty ],
710
+ [llvm_ptr_ty, llvm_ptr_ty ],
725
711
[IntrReadMem, IntrArgMemOnly]>;
726
712
def int_gcwrite : Intrinsic<[],
727
- [llvm_ptr_ty, llvm_ptr_ty, llvm_ptrptr_ty ],
713
+ [llvm_ptr_ty, llvm_ptr_ty, llvm_ptr_ty ],
728
714
[IntrArgMemOnly, NoCapture<ArgIndex<1>>,
729
715
NoCapture<ArgIndex<2>>]>;
730
716
@@ -742,19 +728,19 @@ def int_objc_autoreleaseReturnValue : Intrinsic<[llvm_ptr_ty],
742
728
[llvm_ptr_ty],
743
729
[Returned<ArgIndex<0>>]>;
744
730
def 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 ]>;
748
734
def int_objc_initWeak : Intrinsic<[llvm_ptr_ty],
749
- [llvm_ptrptr_ty ,
735
+ [llvm_ptr_ty ,
750
736
llvm_ptr_ty]>;
751
737
def int_objc_loadWeak : Intrinsic<[llvm_ptr_ty],
752
- [llvm_ptrptr_ty ]>;
738
+ [llvm_ptr_ty ]>;
753
739
def int_objc_loadWeakRetained : Intrinsic<[llvm_ptr_ty],
754
- [llvm_ptrptr_ty ]>;
740
+ [llvm_ptr_ty ]>;
755
741
def int_objc_moveWeak : Intrinsic<[],
756
- [llvm_ptrptr_ty ,
757
- llvm_ptrptr_ty ]>;
742
+ [llvm_ptr_ty ,
743
+ llvm_ptr_ty ]>;
758
744
def int_objc_release : Intrinsic<[], [llvm_ptr_ty]>;
759
745
def int_objc_retain : Intrinsic<[llvm_ptr_ty],
760
746
[llvm_ptr_ty],
@@ -770,10 +756,10 @@ def int_objc_retainAutoreleasedReturnValue : Intrinsic<[llvm_ptr_ty],
770
756
def int_objc_retainBlock : Intrinsic<[llvm_ptr_ty],
771
757
[llvm_ptr_ty]>;
772
758
def int_objc_storeStrong : Intrinsic<[],
773
- [llvm_ptrptr_ty ,
759
+ [llvm_ptr_ty ,
774
760
llvm_ptr_ty]>;
775
761
def int_objc_storeWeak : Intrinsic<[llvm_ptr_ty],
776
- [llvm_ptrptr_ty ,
762
+ [llvm_ptr_ty ,
777
763
llvm_ptr_ty]>;
778
764
def int_objc_clang_arc_use : Intrinsic<[],
779
765
[llvm_vararg_ty]>;
@@ -796,23 +782,23 @@ def int_objc_sync_enter : Intrinsic<[llvm_i32_ty],
796
782
def int_objc_sync_exit : Intrinsic<[llvm_i32_ty],
797
783
[llvm_ptr_ty]>;
798
784
def int_objc_arc_annotation_topdown_bbstart : Intrinsic<[],
799
- [llvm_ptrptr_ty ,
800
- llvm_ptrptr_ty ]>;
785
+ [llvm_ptr_ty ,
786
+ llvm_ptr_ty ]>;
801
787
def int_objc_arc_annotation_topdown_bbend : Intrinsic<[],
802
- [llvm_ptrptr_ty ,
803
- llvm_ptrptr_ty ]>;
788
+ [llvm_ptr_ty ,
789
+ llvm_ptr_ty ]>;
804
790
def int_objc_arc_annotation_bottomup_bbstart : Intrinsic<[],
805
- [llvm_ptrptr_ty ,
806
- llvm_ptrptr_ty ]>;
791
+ [llvm_ptr_ty ,
792
+ llvm_ptr_ty ]>;
807
793
def int_objc_arc_annotation_bottomup_bbend : Intrinsic<[],
808
- [llvm_ptrptr_ty ,
809
- llvm_ptrptr_ty ]>;
794
+ [llvm_ptr_ty ,
795
+ llvm_ptr_ty ]>;
810
796
//===--------------- Swift asynchronous context intrinsics ----------------===//
811
797
812
798
// Returns the location of the Swift asynchronous context (usually stored just
813
799
// before the frame pointer), and triggers the creation of a null context if it
814
800
// 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 ], [], []>;
816
802
817
803
//===--------------------- Code Generator Intrinsics ----------------------===//
818
804
//
@@ -901,7 +887,7 @@ def int_experimental_noalias_scope_decl
901
887
902
888
// Stack Protector Intrinsic - The stackprotector intrinsic writes the stack
903
889
// 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 ], []>;
905
891
def int_stackguard : DefaultAttrsIntrinsic<[llvm_ptr_ty], [], []>;
906
892
907
893
// A cover for instrumentation based profiling.
@@ -1507,7 +1493,7 @@ def int_var_annotation : DefaultAttrsIntrinsic<
1507
1493
[IntrInaccessibleMemOnly], "llvm.var.annotation">;
1508
1494
1509
1495
def int_ptr_annotation : DefaultAttrsIntrinsic<
1510
- [LLVMAnyPointerType<llvm_anyint_ty> ],
1496
+ [llvm_anyptr_ty ],
1511
1497
[LLVMMatchType<0>, llvm_anyptr_ty, LLVMMatchType<1>, llvm_i32_ty, LLVMMatchType<1>],
1512
1498
[IntrInaccessibleMemOnly], "llvm.ptr.annotation">;
1513
1499
@@ -1652,13 +1638,13 @@ def int_lifetime_end : DefaultAttrsIntrinsic<[],
1652
1638
[IntrArgMemOnly, IntrWillReturn,
1653
1639
NoCapture<ArgIndex<1>>,
1654
1640
ImmArg<ArgIndex<0>>]>;
1655
- def int_invariant_start : DefaultAttrsIntrinsic<[llvm_descriptor_ty ],
1641
+ def int_invariant_start : DefaultAttrsIntrinsic<[llvm_ptr_ty ],
1656
1642
[llvm_i64_ty, llvm_anyptr_ty],
1657
1643
[IntrArgMemOnly, IntrWillReturn,
1658
1644
NoCapture<ArgIndex<1>>,
1659
1645
ImmArg<ArgIndex<0>>]>;
1660
1646
def int_invariant_end : DefaultAttrsIntrinsic<[],
1661
- [llvm_descriptor_ty , llvm_i64_ty,
1647
+ [llvm_ptr_ty , llvm_i64_ty,
1662
1648
llvm_anyptr_ty],
1663
1649
[IntrArgMemOnly, IntrWillReturn,
1664
1650
NoCapture<ArgIndex<2>>,
@@ -1889,13 +1875,13 @@ def int_experimental_stepvector : DefaultAttrsIntrinsic<[llvm_anyvector_ty],
1889
1875
// Memory Intrinsics
1890
1876
def int_vp_store : DefaultAttrsIntrinsic<[],
1891
1877
[ llvm_anyvector_ty,
1892
- LLVMAnyPointerType<LLVMMatchType<0>> ,
1878
+ llvm_anyptr_ty ,
1893
1879
LLVMScalarOrSameVectorWidth<0, llvm_i1_ty>,
1894
1880
llvm_i32_ty],
1895
1881
[ NoCapture<ArgIndex<1>>, IntrNoSync, IntrWriteMem, IntrArgMemOnly, IntrWillReturn ]>;
1896
1882
1897
1883
def int_vp_load : DefaultAttrsIntrinsic<[ llvm_anyvector_ty],
1898
- [ LLVMAnyPointerType<LLVMMatchType<0>> ,
1884
+ [ llvm_anyptr_ty ,
1899
1885
LLVMScalarOrSameVectorWidth<0, llvm_i1_ty>,
1900
1886
llvm_i32_ty],
1901
1887
[ NoCapture<ArgIndex<0>>, IntrNoSync, IntrReadMem, IntrWillReturn, IntrArgMemOnly ]>;
@@ -2337,14 +2323,14 @@ def int_vp_is_fpclass:
2337
2323
//
2338
2324
def int_masked_load:
2339
2325
DefaultAttrsIntrinsic<[llvm_anyvector_ty],
2340
- [LLVMAnyPointerType<LLVMMatchType<0>> , llvm_i32_ty,
2326
+ [llvm_anyptr_ty , llvm_i32_ty,
2341
2327
LLVMScalarOrSameVectorWidth<0, llvm_i1_ty>, LLVMMatchType<0>],
2342
2328
[IntrReadMem, IntrArgMemOnly, IntrWillReturn, ImmArg<ArgIndex<1>>,
2343
2329
NoCapture<ArgIndex<0>>]>;
2344
2330
2345
2331
def int_masked_store:
2346
2332
DefaultAttrsIntrinsic<[],
2347
- [llvm_anyvector_ty, LLVMAnyPointerType<LLVMMatchType<0>> ,
2333
+ [llvm_anyvector_ty, llvm_anyptr_ty ,
2348
2334
llvm_i32_ty, LLVMScalarOrSameVectorWidth<0, llvm_i1_ty>],
2349
2335
[IntrWriteMem, IntrArgMemOnly, IntrWillReturn,
2350
2336
ImmArg<ArgIndex<2>>, NoCapture<ArgIndex<1>>]>;
0 commit comments