@@ -15,7 +15,10 @@ target triple = "x86_64-apple-macosx10.7.0"
15
15
@"\01 L_OBJC_IMAGE_INFO_501d7eaffe8512eb" = constant <{ [8 x i8 ] }> zeroinitializer , section "__DATA,__objc_imageinfo,regular,no_dead_strip" , align 4
16
16
@"\01 L_OBJC_METH_VAR_NAME_501d7eaffe8512eb" = constant <{ [4 x i8 ] }> <{ [4 x i8 ] c "xyz\00 " }>, section "__TEXT,__objc_methname,cstring_literals" , align 1
17
17
@"\01 L_OBJC_SELECTOR_REFERENCES_501d7eaffe8512eb" = global <{ i8* }> <{ i8* getelementptr inbounds (<{ [4 x i8 ] }>, <{ [4 x i8 ] }>* @"\01 L_OBJC_METH_VAR_NAME_501d7eaffe8512eb" , i32 0 , i32 0 , i32 0 ) }>, section "__DATA,__objc_selrefs,literal_pointers" , align 8
18
- @llvm.compiler.used = appending global [4 x i8* ] [i8* getelementptr inbounds (<{ [8 x i8 ] }>, <{ [8 x i8 ] }>* @"\01 L_OBJC_IMAGE_INFO_43d7e4d3b832d234" , i32 0 , i32 0 , i32 0 ), i8* getelementptr inbounds (<{ [8 x i8 ] }>, <{ [8 x i8 ] }>* @"\01 L_OBJC_IMAGE_INFO_475a96ed80683d38" , i32 0 , i32 0 , i32 0 ), i8* getelementptr inbounds (<{ [8 x i8 ] }>, <{ [8 x i8 ] }>* @"\01 L_OBJC_IMAGE_INFO_501d7eaffe8512eb" , i32 0 , i32 0 , i32 0 ), i8* getelementptr inbounds (<{ [8 x i8 ] }>, <{ [8 x i8 ] }>* @"\01 L_OBJC_IMAGE_INFO_7ece3464aee33aa8" , i32 0 , i32 0 , i32 0 )], section "llvm.metadata"
18
+ @"\01 L_OBJC_IMAGE_INFO_17dedb23a5725885" = constant <{ [8 x i8 ] }> zeroinitializer , section "__DATA,__objc_imageinfo,regular,no_dead_strip" , align 4
19
+ @"\01 L_OBJC_METH_VAR_NAME_17dedb23a5725885" = constant <{ [9 x i8 ] }> <{ [9 x i8 ] c "generic:\00 " }>, section "__TEXT,__objc_methname,cstring_literals" , align 1
20
+ @"\01 L_OBJC_SELECTOR_REFERENCES_17dedb23a5725885" = global <{ i8* }> <{ i8* getelementptr inbounds (<{ [9 x i8 ] }>, <{ [9 x i8 ] }>* @"\01 L_OBJC_METH_VAR_NAME_17dedb23a5725885" , i32 0 , i32 0 , i32 0 ) }>, section "__DATA,__objc_selrefs,literal_pointers" , align 8
21
+ @llvm.compiler.used = appending global [5 x i8* ] [i8* getelementptr inbounds (<{ [8 x i8 ] }>, <{ [8 x i8 ] }>* @"\01 L_OBJC_IMAGE_INFO_17dedb23a5725885" , i32 0 , i32 0 , i32 0 ), i8* getelementptr inbounds (<{ [8 x i8 ] }>, <{ [8 x i8 ] }>* @"\01 L_OBJC_IMAGE_INFO_43d7e4d3b832d234" , i32 0 , i32 0 , i32 0 ), i8* getelementptr inbounds (<{ [8 x i8 ] }>, <{ [8 x i8 ] }>* @"\01 L_OBJC_IMAGE_INFO_475a96ed80683d38" , i32 0 , i32 0 , i32 0 ), i8* getelementptr inbounds (<{ [8 x i8 ] }>, <{ [8 x i8 ] }>* @"\01 L_OBJC_IMAGE_INFO_501d7eaffe8512eb" , i32 0 , i32 0 , i32 0 ), i8* getelementptr inbounds (<{ [8 x i8 ] }>, <{ [8 x i8 ] }>* @"\01 L_OBJC_IMAGE_INFO_7ece3464aee33aa8" , i32 0 , i32 0 , i32 0 )], section "llvm.metadata"
19
22
20
23
; Function Attrs: mustprogress nofree norecurse nounwind uwtable willreturn
21
24
define nonnull i8* @get_sel () unnamed_addr #0 {
@@ -48,6 +51,36 @@ start:
48
51
ret void
49
52
}
50
53
54
+ ; Function Attrs: mustprogress nofree norecurse nounwind uwtable willreturn
55
+ define void @use_fns ({ i8* , i8* , i8* }* noalias nocapture noundef writeonly sret ({ i8* , i8* , i8* }) dereferenceable (24 ) %0 ) unnamed_addr #0 {
56
+ start:
57
+ %1 = load volatile [4 x i8 ]*, [4 x i8 ]** bitcast (<{ i8* }>* @"\01 L_OBJC_SELECTOR_REFERENCES_43d7e4d3b832d234" to [4 x i8 ]**), align 8 , !nonnull !1
58
+ %2 = getelementptr [4 x i8 ], [4 x i8 ]* %1 , i64 0 , i64 0
59
+ %3 = load volatile [4 x i8 ]*, [4 x i8 ]** bitcast (<{ i8* }>* @"\01 L_OBJC_SELECTOR_REFERENCES_475a96ed80683d38" to [4 x i8 ]**), align 8 , !nonnull !1
60
+ %4 = getelementptr [4 x i8 ], [4 x i8 ]* %3 , i64 0 , i64 0
61
+ %5 = load volatile [4 x i8 ]*, [4 x i8 ]** bitcast (<{ i8* }>* @"\01 L_OBJC_SELECTOR_REFERENCES_7ece3464aee33aa8" to [4 x i8 ]**), align 8 , !nonnull !1
62
+ %6 = getelementptr [4 x i8 ], [4 x i8 ]* %5 , i64 0 , i64 0
63
+ %7 = getelementptr inbounds { i8* , i8* , i8* }, { i8* , i8* , i8* }* %0 , i64 0 , i32 0
64
+ store i8* %2 , i8** %7 , align 8
65
+ %8 = getelementptr inbounds { i8* , i8* , i8* }, { i8* , i8* , i8* }* %0 , i64 0 , i32 1
66
+ store i8* %4 , i8** %8 , align 8
67
+ %9 = getelementptr inbounds { i8* , i8* , i8* }, { i8* , i8* , i8* }* %0 , i64 0 , i32 2
68
+ store i8* %6 , i8** %9 , align 8
69
+ ret void
70
+ }
71
+
72
+ ; Function Attrs: mustprogress nofree norecurse nounwind uwtable willreturn
73
+ define { i8* , i8* } @use_generic () unnamed_addr #0 {
74
+ start:
75
+ %0 = load volatile [9 x i8 ]*, [9 x i8 ]** bitcast (<{ i8* }>* @"\01 L_OBJC_SELECTOR_REFERENCES_17dedb23a5725885" to [9 x i8 ]**), align 8 , !nonnull !1
76
+ %1 = getelementptr [9 x i8 ], [9 x i8 ]* %0 , i64 0 , i64 0
77
+ %2 = load volatile [9 x i8 ]*, [9 x i8 ]** bitcast (<{ i8* }>* @"\01 L_OBJC_SELECTOR_REFERENCES_17dedb23a5725885" to [9 x i8 ]**), align 8 , !nonnull !1
78
+ %3 = getelementptr [9 x i8 ], [9 x i8 ]* %2 , i64 0 , i64 0
79
+ %4 = insertvalue { i8* , i8* } undef , i8* %1 , 0
80
+ %5 = insertvalue { i8* , i8* } %4 , i8* %3 , 1
81
+ ret { i8* , i8* } %5
82
+ }
83
+
51
84
attributes #0 = { mustprogress nofree norecurse nounwind uwtable willreturn "frame-pointer" ="all" "probe-stack" ="__rust_probestack" "target-cpu" ="core2" }
52
85
53
86
!llvm.module.flags = !{!0 }
0 commit comments