1# RUN: llc -O0 -start-before=livedebugvalues -filetype=obj -o - %s | llvm-dwarfdump -v - | FileCheck %s 2# 3# Derived from (clang -O0 -g -fsanitize=address -fobjc-arc) 4# @protocol NSObject 5# @end 6# @interface NSObject<NSObject>{} 7# + (instancetype)alloc; 8# @end 9# struct CGSize { 10# double width; 11# double height; 12# }; 13# typedef struct CGSize CGSize; 14# @interface Object : NSObject 15# - (instancetype)initWithSize:(CGSize)size; 16# - (id)aMessage; 17# @end 18# @implementation MyObject 19# + (id)doWithSize:(CGSize)imageSize andObject:(id)object { 20# return [object aMessage]; 21# } 22# @end 23# 24# CHECK: .debug_info contents: 25# CHECK: DW_TAG_subprogram 26# CHECK-NEXT: DW_AT_low_pc [DW_FORM_addr] (0x0000000000000000) 27# CHECK-NEXT: DW_AT_high_pc [DW_FORM_addr] ([[FN_END:.*]]) 28# CHECK: "_cmd" 29# CHECK: DW_TAG_formal_parameter 30# CHECK-NEXT: DW_AT_location 31# CHECK-NEXT: [0x{{.*}}, 0x{{.*}}): 32# CHECK-NOT: DW_AT_ 33# CHECK: [0x{{.*}}, [[FN_END]]): 34# CHECK-NEXT: DW_AT_name {{.*}}"imageSize" 35--- | 36 ; ModuleID = 'test/DebugInfo/AArch64/asan-stack-vars.ll' 37 source_filename = "m.m" 38 target datalayout = "e-m:o-i64:64-i128:128-n32:64-S128" 39 target triple = "arm64-apple-ios" 40 41 %0 = type opaque 42 %struct._class_t = type { ptr, ptr, ptr, ptr, ptr } 43 %struct._objc_cache = type opaque 44 %struct._class_ro_t = type { i32, i32, i32, ptr, ptr, ptr, ptr, ptr, ptr, ptr } 45 %struct.__method_list_t = type { i32, i32, [0 x %struct._objc_method] } 46 %struct._objc_method = type { ptr, ptr, ptr } 47 %struct._objc_protocol_list = type { i64, [0 x ptr] } 48 %struct._protocol_t = type { ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, i32, i32, ptr, ptr, ptr } 49 %struct._ivar_list_t = type { i32, i32, [0 x %struct._ivar_t] } 50 %struct._ivar_t = type { ptr, ptr, ptr, i32, i32 } 51 %struct._prop_list_t = type { i32, i32, [0 x %struct._prop_t] } 52 %struct._prop_t = type { ptr, ptr } 53 %struct.CGSize = type { double, double } 54 55 @"OBJC_CLASS_$_Object" = external global %struct._class_t 56 @"OBJC_CLASSLIST_REFERENCES_$_" = private global ptr @"OBJC_CLASS_$_Object", section "__DATA, __objc_classrefs, regular, no_dead_strip", align 8 57 @OBJC_METH_VAR_NAME_ = private unnamed_addr constant [6 x i8] c"alloc\00", section "__TEXT,__objc_methname,cstring_literals", align 1 58 @OBJC_SELECTOR_REFERENCES_ = private externally_initialized global ptr @OBJC_METH_VAR_NAME_, section "__DATA, __objc_selrefs, literal_pointers, no_dead_strip", align 8 59 @OBJC_METH_VAR_NAME_.1 = private unnamed_addr constant [14 x i8] c"initWithSize:\00", section "__TEXT,__objc_methname,cstring_literals", align 1 60 @OBJC_SELECTOR_REFERENCES_.2 = private externally_initialized global ptr @OBJC_METH_VAR_NAME_.1, section "__DATA, __objc_selrefs, literal_pointers, no_dead_strip", align 8 61 @OBJC_METH_VAR_NAME_.3 = private unnamed_addr constant [9 x i8] c"aMessage\00", section "__TEXT,__objc_methname,cstring_literals", align 1 62 @OBJC_SELECTOR_REFERENCES_.4 = private externally_initialized global ptr @OBJC_METH_VAR_NAME_.3, section "__DATA, __objc_selrefs, literal_pointers, no_dead_strip", align 8 63 @_objc_empty_cache = external global %struct._objc_cache 64 @"OBJC_CLASS_$_MyObject" = global %struct._class_t { ptr @"OBJC_METACLASS_$_MyObject", ptr null, ptr @_objc_empty_cache, ptr null, ptr @"\01l_OBJC_CLASS_RO_$_MyObject" }, section "__DATA, __objc_data", align 8 65 @"OBJC_METACLASS_$_MyObject" = global %struct._class_t { ptr @"OBJC_METACLASS_$_MyObject", ptr @"OBJC_CLASS_$_MyObject", ptr @_objc_empty_cache, ptr null, ptr @"\01l_OBJC_METACLASS_RO_$_MyObject" }, section "__DATA, __objc_data", align 8 66 @OBJC_CLASS_NAME_ = private unnamed_addr constant [9 x i8] c"MyObject\00", section "__TEXT,__objc_classname,cstring_literals", align 1 67 @OBJC_METH_VAR_NAME_.5 = private unnamed_addr constant [12 x i8] c"doWithSize:\00", section "__TEXT,__objc_methname,cstring_literals", align 1 68 @OBJC_METH_VAR_TYPE_ = private unnamed_addr constant [21 x i8] c"@32@0:8{CGSize=dd}16\00", section "__TEXT,__objc_methtype,cstring_literals", align 1 69 @"\01l_OBJC_$_CLASS_METHODS_MyObject" = private global { i32, i32, [1 x %struct._objc_method] } { i32 24, i32 1, [1 x %struct._objc_method] [%struct._objc_method { ptr @OBJC_METH_VAR_NAME_.5, ptr @OBJC_METH_VAR_TYPE_, ptr @"\01+[MyObject doWithSize:]" }] }, section "__DATA, __objc_const", align 8 70 @"\01l_OBJC_METACLASS_RO_$_MyObject" = private global %struct._class_ro_t { i32 131, i32 40, i32 40, ptr null, ptr @OBJC_CLASS_NAME_, ptr @"\01l_OBJC_$_CLASS_METHODS_MyObject", ptr null, ptr null, ptr null, ptr null }, section "__DATA, __objc_const", align 8 71 @"\01l_OBJC_CLASS_RO_$_MyObject" = private global %struct._class_ro_t { i32 130, i32 0, i32 0, ptr null, ptr @OBJC_CLASS_NAME_, ptr null, ptr null, ptr null, ptr null, ptr null }, section "__DATA, __objc_const", align 8 72 @"OBJC_LABEL_CLASS_$" = private global [1 x ptr] [ptr @"OBJC_CLASS_$_MyObject"], section "__DATA, __objc_classlist, regular, no_dead_strip", align 8 73 @llvm.compiler.used = appending global [12 x ptr] [ptr @"OBJC_CLASSLIST_REFERENCES_$_", ptr @OBJC_METH_VAR_NAME_, ptr @OBJC_SELECTOR_REFERENCES_, ptr @OBJC_METH_VAR_NAME_.1, ptr @OBJC_SELECTOR_REFERENCES_.2, ptr @OBJC_METH_VAR_NAME_.3, ptr @OBJC_SELECTOR_REFERENCES_.4, ptr @OBJC_CLASS_NAME_, ptr @OBJC_METH_VAR_NAME_.5, ptr @OBJC_METH_VAR_TYPE_, ptr @"\01l_OBJC_$_CLASS_METHODS_MyObject", ptr @"OBJC_LABEL_CLASS_$"], section "llvm.metadata" 74 @llvm.global_ctors = appending global [1 x { i32, ptr, ptr }] [{ i32, ptr, ptr } { i32 1, ptr @asan.module_ctor, ptr null }] 75 @__asan_shadow_memory_dynamic_address = external global i64 76 @___asan_gen_ = private unnamed_addr constant [34 x i8] c"2 32 16 9 imageSize 64 8 6 object\00", align 1 77 @__stack_chk_guard = external global ptr 78 79 ; Function Attrs: noinline sanitize_address ssp uwtable 80 define internal ptr @"\01+[MyObject doWithSize:]"(ptr %self, ptr %_cmd, [2 x double] %imageSize.coerce) #0 !dbg !14 { 81 entry: 82 %StackGuardSlot = alloca ptr 83 %0 = call ptr @llvm.stackguard() 84 call void @llvm.stackprotector(ptr %0, ptr %StackGuardSlot) 85 %1 = load i64, ptr @__asan_shadow_memory_dynamic_address 86 %self.addr = alloca ptr, align 8 87 %_cmd.addr = alloca ptr, align 8 88 %MyAlloca = alloca [96 x i8], align 32, !dbg !35 89 %2 = ptrtoint ptr %MyAlloca to i64, !dbg !35 90 %3 = add i64 %2, 32, !dbg !35 91 %4 = inttoptr i64 %3 to ptr, !dbg !35 92 %5 = add i64 %2, 64, !dbg !35 93 %6 = inttoptr i64 %5 to ptr, !dbg !35 94 %7 = inttoptr i64 %2 to ptr, !dbg !35 95 store i64 1102416563, ptr %7, !dbg !35 96 %8 = add i64 %2, 8, !dbg !35 97 %9 = inttoptr i64 %8 to ptr, !dbg !35 98 store i64 ptrtoint (ptr @___asan_gen_ to i64), ptr %9, !dbg !35 99 %10 = add i64 %2, 16, !dbg !35 100 %11 = inttoptr i64 %10 to ptr, !dbg !35 101 store i64 ptrtoint (ptr @"\01+[MyObject doWithSize:]" to i64), ptr %11, !dbg !35 102 %12 = lshr i64 %2, 3, !dbg !35 103 %13 = add i64 %12, %1, !dbg !35 104 %14 = add i64 %13, 0, !dbg !35 105 %15 = inttoptr i64 %14 to ptr, !dbg !35 106 store i64 -940689368107847183, ptr %15, align 1, !dbg !35 107 %16 = add i64 %13, 9, !dbg !35 108 %17 = inttoptr i64 %16 to ptr, !dbg !35 109 store i16 -3085, ptr %17, align 1, !dbg !35 110 %18 = add i64 %13, 11, !dbg !35 111 %19 = inttoptr i64 %18 to ptr, !dbg !35 112 store i8 -13, ptr %19, align 1, !dbg !35 113 call void @llvm.dbg.declare(metadata ptr %4, metadata !36, metadata !DIExpression(DW_OP_deref)), !dbg !37 114 call void @llvm.dbg.declare(metadata ptr %6, metadata !38, metadata !DIExpression(DW_OP_deref)), !dbg !44 115 %20 = bitcast ptr %4 to ptr 116 %21 = ptrtoint ptr %20 to i64 117 %22 = lshr i64 %21, 3 118 %23 = add i64 %22, %1 119 %24 = inttoptr i64 %23 to ptr 120 %25 = load i16, ptr %24 121 %26 = icmp ne i16 %25, 0 122 br i1 %26, label %27, label %28 123 124 ; <label>:27: ; preds = %entry 125 call void @__asan_report_store16(i64 %21) 126 call void asm sideeffect "", ""() 127 unreachable 128 129 ; <label>:28: ; preds = %entry 130 store [2 x double] %imageSize.coerce, ptr %20, align 8 131 store ptr %self, ptr %self.addr, align 8 132 call void @llvm.dbg.declare(metadata ptr %self.addr, metadata !45, metadata !DIExpression()), !dbg !47 133 store ptr %_cmd, ptr %_cmd.addr, align 8 134 call void @llvm.dbg.declare(metadata ptr %_cmd.addr, metadata !48, metadata !DIExpression()), !dbg !47 135 %29 = load ptr, ptr @"OBJC_CLASSLIST_REFERENCES_$_", align 8, !dbg !50 136 %lshr1 = lshr i64 ptrtoint (ptr @OBJC_SELECTOR_REFERENCES_ to i64), 3, !dbg !50 137 %30 = add i64 %lshr1, %1, !dbg !50 138 %31 = inttoptr i64 %30 to ptr, !dbg !50 139 %32 = load i8, ptr %31, !dbg !50 140 %33 = icmp ne i8 %32, 0, !dbg !50 141 br i1 %33, label %34, label %35, !dbg !50 142 143 ; <label>:34: ; preds = %28 144 call void @__asan_report_load8(i64 ptrtoint (ptr @OBJC_SELECTOR_REFERENCES_ to i64)), !dbg !50 145 call void asm sideeffect "", ""(), !dbg !50 146 unreachable, !dbg !50 147 148 ; <label>:35: ; preds = %28 149 %36 = load ptr, ptr @OBJC_SELECTOR_REFERENCES_, align 8, !dbg !50, !invariant.load !2 150 %37 = bitcast ptr %29 to ptr, !dbg !50 151 %call = call ptr @objc_msgSend(ptr %37, ptr %36), !dbg !50 152 %38 = bitcast ptr %call to ptr, !dbg !50 153 %lshr2 = lshr i64 ptrtoint (ptr @OBJC_SELECTOR_REFERENCES_.2 to i64), 3, !dbg !51 154 %39 = add i64 %lshr2, %1, !dbg !51 155 %40 = inttoptr i64 %39 to ptr, !dbg !51 156 %41 = load i8, ptr %40, !dbg !51 157 %42 = icmp ne i8 %41, 0, !dbg !51 158 br i1 %42, label %43, label %44, !dbg !51 159 160 ; <label>:43: ; preds = %35 161 call void @__asan_report_load8(i64 ptrtoint (ptr @OBJC_SELECTOR_REFERENCES_.2 to i64)), !dbg !51 162 call void asm sideeffect "", ""(), !dbg !51 163 unreachable, !dbg !51 164 165 ; <label>:44: ; preds = %35 166 %45 = load ptr, ptr @OBJC_SELECTOR_REFERENCES_.2, align 8, !dbg !51, !invariant.load !2 167 %46 = bitcast ptr %38 to ptr, !dbg !51 168 %47 = bitcast ptr %4 to ptr, !dbg !51 169 %48 = ptrtoint ptr %47 to i64, !dbg !51 170 %49 = lshr i64 %48, 3, !dbg !51 171 %50 = add i64 %49, %1, !dbg !51 172 %51 = inttoptr i64 %50 to ptr, !dbg !51 173 %52 = load i16, ptr %51, !dbg !51 174 %53 = icmp ne i16 %52, 0, !dbg !51 175 br i1 %53, label %54, label %55, !dbg !51 176 177 ; <label>:54: ; preds = %44 178 call void @__asan_report_load16(i64 %48), !dbg !51 179 call void asm sideeffect "", ""(), !dbg !51 180 unreachable, !dbg !51 181 182 ; <label>:55: ; preds = %44 183 %56 = load [2 x double], ptr %47, align 8, !dbg !51 184 %call1 = call ptr @objc_msgSend(ptr %46, ptr %45, [2 x double] %56), !dbg !51 185 %57 = bitcast ptr %call1 to ptr, !dbg !51 186 %58 = ptrtoint ptr %6 to i64, !dbg !44 187 %59 = lshr i64 %58, 3, !dbg !44 188 %60 = add i64 %59, %1, !dbg !44 189 %61 = inttoptr i64 %60 to ptr, !dbg !44 190 %62 = load i8, ptr %61, !dbg !44 191 %63 = icmp ne i8 %62, 0, !dbg !44 192 br i1 %63, label %64, label %65, !dbg !44 193 194 ; <label>:64: ; preds = %55 195 call void @__asan_report_store8(i64 %58), !dbg !44 196 call void asm sideeffect "", ""(), !dbg !44 197 unreachable, !dbg !44 198 199 ; <label>:65: ; preds = %55 200 store ptr %57, ptr %6, align 8, !dbg !44 201 %66 = load ptr, ptr %6, align 8, !dbg !52 202 %lshr3 = lshr i64 ptrtoint (ptr @OBJC_SELECTOR_REFERENCES_.4 to i64), 3, !dbg !53 203 %67 = add i64 %lshr3, %1, !dbg !53 204 %68 = inttoptr i64 %67 to ptr, !dbg !53 205 %69 = load i8, ptr %68, !dbg !53 206 %70 = icmp ne i8 %69, 0, !dbg !53 207 br i1 %70, label %71, label %72, !dbg !53 208 209 ; <label>:71: ; preds = %65 210 call void @__asan_report_load8(i64 ptrtoint (ptr @OBJC_SELECTOR_REFERENCES_.4 to i64)), !dbg !53 211 call void asm sideeffect "", ""(), !dbg !53 212 unreachable, !dbg !53 213 214 ; <label>:72: ; preds = %65 215 %73 = load ptr, ptr @OBJC_SELECTOR_REFERENCES_.4, align 8, !dbg !53, !invariant.load !2 216 %74 = bitcast ptr %66 to ptr, !dbg !53 217 %call2 = call ptr @objc_msgSend(ptr %74, ptr %73), !dbg !53 218 call void asm sideeffect "mov\09fp, fp\09\09; marker for objc_retainAutoreleaseReturnValue", ""(), !dbg !53 219 %75 = call ptr @objc_retainAutoreleasedReturnValue(ptr %call2) #3, !dbg !53 220 %76 = bitcast ptr %6 to ptr, !dbg !54 221 call void @objc_storeStrong(ptr %76, ptr null) #3, !dbg !54 222 %77 = tail call ptr @objc_autoreleaseReturnValue(ptr %75) #3, !dbg !54 223 store i64 1172321806, ptr %7, !dbg !54 224 %78 = add i64 %13, 0, !dbg !54 225 %79 = inttoptr i64 %78 to ptr, !dbg !54 226 store i64 0, ptr %79, align 1, !dbg !54 227 %80 = add i64 %13, 9, !dbg !54 228 %81 = inttoptr i64 %80 to ptr, !dbg !54 229 store i16 0, ptr %81, align 1, !dbg !54 230 %82 = add i64 %13, 11, !dbg !54 231 %83 = inttoptr i64 %82 to ptr, !dbg !54 232 store i8 0, ptr %83, align 1, !dbg !54 233 %84 = call ptr @llvm.stackguard() 234 %85 = load volatile ptr, ptr %StackGuardSlot 235 %86 = icmp eq ptr %84, %85 236 br i1 %86, label %SP_return, label %CallStackCheckFailBlk, !prof !55 237 238 SP_return: ; preds = %72 239 ret ptr %77, !dbg !54 240 241 CallStackCheckFailBlk: ; preds = %72 242 call void @__stack_chk_fail(), !dbg !47 243 unreachable, !dbg !47 244 } 245 246 ; Function Attrs: nounwind readnone speculatable 247 declare void @llvm.dbg.declare(metadata, metadata, metadata) #1 248 249 ; Function Attrs: nonlazybind 250 declare ptr @objc_msgSend(ptr, ptr, ...) #2 251 252 declare ptr @objc_retainAutoreleasedReturnValue(ptr returned) 253 254 declare void @objc_storeStrong(ptr, ptr) 255 256 declare ptr @objc_autoreleaseReturnValue(ptr returned) 257 258 define internal void @asan.module_ctor() { 259 call void @__asan_init() 260 call void @__asan_version_mismatch_check_v8() 261 ret void 262 } 263 264 declare void @__asan_init() 265 266 declare void @__asan_version_mismatch_check_v8() 267 268 declare void @__asan_report_load8(i64) 269 270 declare void @__asan_report_load16(i64) 271 272 declare void @__asan_report_store8(i64) 273 274 declare void @__asan_report_store16(i64) 275 276 ; Function Attrs: nounwind 277 declare void @llvm.stackprotector(ptr, ptr) #3 278 279 ; Function Attrs: nounwind 280 declare ptr @llvm.stackguard() #3 281 282 declare void @__stack_chk_fail() 283 284 attributes #0 = { noinline sanitize_address ssp uwtable } 285 attributes #1 = { nounwind readnone speculatable } 286 attributes #2 = { nonlazybind } 287 attributes #3 = { nounwind } 288 289 !llvm.dbg.cu = !{!0} 290 !llvm.module.flags = !{!5, !6, !7, !8, !9, !10, !11, !12} 291 !llvm.ident = !{!13} 292 293 !0 = distinct !DICompileUnit(language: DW_LANG_ObjC, file: !1, producer: "clang version 5.0.0 (trunk 295779) (llvm/trunk 295777)", isOptimized: false, runtimeVersion: 2, emissionKind: FullDebug, enums: !2, retainedTypes: !3) 294 !1 = !DIFile(filename: "m.m", directory: "/") 295 !2 = !{} 296 !3 = !{!4} 297 !4 = !DICompositeType(tag: DW_TAG_structure_type, name: "MyObject", scope: !1, file: !1, line: 15, flags: DIFlagObjcClassComplete, elements: !2, runtimeLang: DW_LANG_ObjC) 298 !5 = !{i32 1, !"Objective-C Version", i32 2} 299 !6 = !{i32 1, !"Objective-C Image Info Version", i32 0} 300 !7 = !{i32 1, !"Objective-C Image Info Section", !"__DATA,__objc_imageinfo,regular,no_dead_strip"} 301 !8 = !{i32 4, !"Objective-C Garbage Collection", i32 0} 302 !9 = !{i32 1, !"Objective-C Class Properties", i32 64} 303 !10 = !{i32 2, !"Dwarf Version", i32 2} 304 !11 = !{i32 2, !"Debug Info Version", i32 3} 305 !12 = !{i32 7, !"PIC Level", i32 2} 306 !13 = !{!"clang version 5.0.0 (trunk 295779) (llvm/trunk 295777)"} 307 !14 = distinct !DISubprogram(name: "+[MyObject doWithSize:]", scope: !1, file: !1, line: 16, type: !15, isLocal: true, isDefinition: true, scopeLine: 16, flags: DIFlagPrototyped, isOptimized: false, unit: !0, retainedNodes: !2) 308 !15 = !DISubroutineType(types: !16) 309 !16 = !{!17, !24, !26, !29} 310 !17 = !DIDerivedType(tag: DW_TAG_typedef, name: "id", file: !1, baseType: !18) 311 !18 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !19, size: 64) 312 !19 = !DICompositeType(tag: DW_TAG_structure_type, name: "objc_object", file: !1, elements: !20) 313 !20 = !{!21} 314 !21 = !DIDerivedType(tag: DW_TAG_member, name: "isa", scope: !19, file: !1, baseType: !22, size: 64) 315 !22 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !23, size: 64) 316 !23 = !DICompositeType(tag: DW_TAG_structure_type, name: "objc_class", file: !1, flags: DIFlagFwdDecl) 317 !24 = !DIDerivedType(tag: DW_TAG_const_type, baseType: !25, flags: DIFlagArtificial | DIFlagObjectPointer) 318 !25 = !DIDerivedType(tag: DW_TAG_typedef, name: "Class", file: !1, baseType: !22) 319 !26 = !DIDerivedType(tag: DW_TAG_typedef, name: "SEL", file: !1, baseType: !27, flags: DIFlagArtificial) 320 !27 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !28, size: 64) 321 !28 = !DICompositeType(tag: DW_TAG_structure_type, name: "objc_selector", file: !1, flags: DIFlagFwdDecl) 322 !29 = !DIDerivedType(tag: DW_TAG_typedef, name: "CGSize", file: !1, line: 10, baseType: !30) 323 !30 = distinct !DICompositeType(tag: DW_TAG_structure_type, name: "CGSize", file: !1, line: 6, size: 128, elements: !31) 324 !31 = !{!32, !34} 325 !32 = !DIDerivedType(tag: DW_TAG_member, name: "width", scope: !30, file: !1, line: 7, baseType: !33, size: 64) 326 !33 = !DIBasicType(name: "double", size: 64, encoding: DW_ATE_float) 327 !34 = !DIDerivedType(tag: DW_TAG_member, name: "height", scope: !30, file: !1, line: 8, baseType: !33, size: 64, offset: 64) 328 !35 = !DILocation(line: 16, scope: !14) 329 !36 = !DILocalVariable(name: "imageSize", arg: 3, scope: !14, file: !1, line: 16, type: !29) 330 !37 = !DILocation(line: 16, column: 26, scope: !14) 331 !38 = !DILocalVariable(name: "object", scope: !14, file: !1, line: 17, type: !39) 332 !39 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !40, size: 64) 333 !40 = !DICompositeType(tag: DW_TAG_structure_type, name: "Object", scope: !1, file: !1, line: 11, elements: !41, runtimeLang: DW_LANG_ObjC) 334 !41 = !{!42} 335 !42 = !DIDerivedType(tag: DW_TAG_inheritance, scope: !40, baseType: !43) 336 !43 = !DICompositeType(tag: DW_TAG_structure_type, name: "NSObject", scope: !1, file: !1, line: 3, elements: !2, runtimeLang: DW_LANG_ObjC) 337 !44 = !DILocation(line: 17, column: 11, scope: !14) 338 !45 = !DILocalVariable(name: "self", arg: 1, scope: !14, type: !46, flags: DIFlagArtificial | DIFlagObjectPointer) 339 !46 = !DIDerivedType(tag: DW_TAG_const_type, baseType: !25) 340 !47 = !DILocation(line: 0, scope: !14) 341 !48 = !DILocalVariable(name: "_cmd", arg: 2, scope: !14, type: !49, flags: DIFlagArtificial) 342 !49 = !DIDerivedType(tag: DW_TAG_typedef, name: "SEL", file: !1, baseType: !27) 343 !50 = !DILocation(line: 17, column: 21, scope: !14) 344 !51 = !DILocation(line: 17, column: 20, scope: !14) 345 !52 = !DILocation(line: 18, column: 11, scope: !14) 346 !53 = !DILocation(line: 18, column: 10, scope: !14) 347 !54 = !DILocation(line: 19, column: 1, scope: !14) 348 !55 = !{!"branch_weights", i32 2147481600, i32 2048} 349 350... 351--- 352name: "\x01+[MyObject doWithSize:]" 353alignment: 4 354tracksRegLiveness: true 355liveins: 356 - { reg: '$x0' } 357 - { reg: '$x1' } 358 - { reg: '$d0' } 359 - { reg: '$d1' } 360frameInfo: 361 stackSize: 352 362 maxAlignment: 32 363 adjustsStack: true 364 hasCalls: true 365 stackProtector: '%stack.0.StackGuardSlot' 366 maxCallFrameSize: 0 367 localFrameSize: 144 368stack: 369 - { id: 0, name: StackGuardSlot, offset: -40, size: 8, alignment: 8, 370 stack-id: default, local-offset: -8 } 371 - { id: 1, name: self.addr, offset: -168, size: 8, alignment: 8, stack-id: default, 372 local-offset: -136, debug-info-variable: '!45', debug-info-expression: '!DIExpression()', 373 debug-info-location: '!47' } 374 - { id: 2, name: _cmd.addr, offset: -176, size: 8, alignment: 8, stack-id: default, 375 local-offset: -144, debug-info-variable: '!48', debug-info-expression: '!DIExpression()', 376 debug-info-location: '!47' } 377 - { id: 3, name: MyAlloca, offset: -160, size: 96, alignment: 32, stack-id: default, 378 local-offset: -128 } 379 - { id: 4, type: spill-slot, offset: -184, size: 8, alignment: 8, stack-id: default } 380 - { id: 5, type: spill-slot, offset: -192, size: 8, alignment: 8, stack-id: default } 381 - { id: 6, type: spill-slot, offset: -200, size: 8, alignment: 8, stack-id: default } 382 - { id: 7, type: spill-slot, offset: -208, size: 8, alignment: 8, stack-id: default } 383 - { id: 8, type: spill-slot, offset: -216, size: 8, alignment: 8, stack-id: default } 384 - { id: 9, type: spill-slot, offset: -224, size: 8, alignment: 8, stack-id: default } 385 - { id: 10, type: spill-slot, offset: -232, size: 8, alignment: 8, stack-id: default } 386 - { id: 11, type: spill-slot, offset: -240, size: 8, alignment: 8, stack-id: default } 387 - { id: 12, type: spill-slot, offset: -248, size: 8, alignment: 8, stack-id: default } 388 - { id: 13, type: spill-slot, offset: -256, size: 8, alignment: 8, stack-id: default } 389 - { id: 14, type: spill-slot, offset: -264, size: 8, alignment: 8, stack-id: default } 390 - { id: 15, type: spill-slot, offset: -272, size: 8, alignment: 8, stack-id: default } 391 - { id: 16, type: spill-slot, offset: -280, size: 8, alignment: 8, stack-id: default } 392 - { id: 17, type: spill-slot, offset: -288, size: 8, alignment: 8, stack-id: default } 393 - { id: 18, type: spill-slot, offset: -296, size: 8, alignment: 8, stack-id: default } 394 - { id: 19, type: spill-slot, offset: -304, size: 8, alignment: 8, stack-id: default } 395 - { id: 20, type: spill-slot, offset: -312, size: 8, alignment: 8, stack-id: default } 396 - { id: 21, type: spill-slot, offset: -320, size: 8, alignment: 8, stack-id: default } 397 - { id: 22, type: spill-slot, offset: -328, size: 8, alignment: 8, stack-id: default } 398 - { id: 23, type: spill-slot, offset: -336, size: 8, alignment: 8, stack-id: default } 399 - { id: 24, type: spill-slot, offset: -8, size: 8, alignment: 8, stack-id: default, 400 callee-saved-register: '$lr' } 401 - { id: 25, type: spill-slot, offset: -16, size: 8, alignment: 8, stack-id: default, 402 callee-saved-register: '$fp' } 403 - { id: 26, type: spill-slot, offset: -24, size: 8, alignment: 8, stack-id: default, 404 callee-saved-register: '$x27' } 405 - { id: 27, type: spill-slot, offset: -32, size: 8, alignment: 8, stack-id: default, 406 callee-saved-register: '$x28' } 407body: | 408 bb.0.entry: 409 liveins: $x0, $x1, $d0, $d1, $x27, $x28, $lr 410 411 early-clobber $sp = frame-setup STPXpre killed $x28, killed $x27, $sp, -4 :: (store (s64) into %stack.27), (store (s64) into %stack.26) 412 frame-setup STPXi killed $fp, killed $lr, $sp, 2 :: (store (s64) into %stack.25), (store (s64) into %stack.24) 413 $fp = frame-setup ADDXri $sp, 16, 0 414 $x9 = frame-setup SUBXri $sp, 320, 0 415 $sp = ANDXri killed $x9, 7930 416 frame-setup CFI_INSTRUCTION def_cfa $w29, 16 417 frame-setup CFI_INSTRUCTION offset $w30, -8 418 frame-setup CFI_INSTRUCTION offset $w29, -16 419 frame-setup CFI_INSTRUCTION offset $w27, -24 420 frame-setup CFI_INSTRUCTION offset $w28, -32 421 renamable $x8 = ADRP target-flags(aarch64-page) @"\01+[MyObject doWithSize:]" 422 renamable $x8 = ADDXri killed renamable $x8, target-flags(aarch64-pageoff, aarch64-nc) @"\01+[MyObject doWithSize:]", 0 423 renamable $x9 = ADRP target-flags(aarch64-page) @___asan_gen_ 424 renamable $x9 = ADDXri killed renamable $x9, target-flags(aarch64-pageoff, aarch64-nc) @___asan_gen_, 0 425 $x10 = ADDXri $sp, 192, 0 426 renamable $x11 = ADRP target-flags(aarch64-page, aarch64-got) @__asan_shadow_memory_dynamic_address 427 renamable $x11 = LDRXui killed renamable $x11, target-flags(aarch64-pageoff, aarch64-got, aarch64-nc) @__asan_shadow_memory_dynamic_address 428 $x12 = ADRP target-flags(aarch64-page, aarch64-got) @__stack_chk_guard 429 $x12 = LDRXui $x12, target-flags(aarch64-pageoff, aarch64-got, aarch64-nc) @__stack_chk_guard 430 $x12 = LDRXui killed $x12, 0 :: (dereferenceable invariant load (s64) from @__stack_chk_guard) 431 $x13 = ADRP target-flags(aarch64-page, aarch64-got) @__stack_chk_guard 432 $x13 = LDRXui $x13, target-flags(aarch64-pageoff, aarch64-got, aarch64-nc) @__stack_chk_guard 433 $x13 = LDRXui killed $x13, 0 :: (dereferenceable invariant load (s64) from @__stack_chk_guard) 434 STRXui killed renamable $x13, $sp, 39 :: (volatile store (s64) into %stack.0.StackGuardSlot) 435 renamable $x11 = LDRXui killed renamable $x11, 0 :: (load (s64) from @__asan_shadow_memory_dynamic_address) 436 renamable $x13 = ADDXri renamable $x10, 32, 0, debug-location !35 437 renamable $x14 = ADDXri renamable $x10, 64, 0, debug-location !35 438 $x15 = MOVZXi 35507, 0, debug-location !35 439 $x15 = MOVKXi $x15, 16821, 16, debug-location !35 440 STRXui killed renamable $x15, $sp, 24, debug-location !35 :: (store (s768) into %stack.3.MyAlloca, basealign 32) 441 STRXui killed renamable $x9, $sp, 25, debug-location !35 :: (store (s768) into %stack.3.MyAlloca + 1, basealign 32) 442 STRXui killed renamable $x8, $sp, 26, debug-location !35 :: (store (s768) into %stack.3.MyAlloca + 2, basealign 32) 443 renamable $x8 = UBFMXri renamable $x10, 3, 63, debug-location !35 444 renamable $x9 = ADDXrs renamable $x11, renamable $x10, 67, debug-location !35 445 $x15 = MOVZXi 61937, 0, debug-location !35 446 $x15 = MOVKXi $x15, 61937, 16, debug-location !35 447 $x15 = MOVKXi $x15, 62194, 48, debug-location !35 448 STRXroX killed renamable $x15, renamable $x8, renamable $x11, 0, 0, debug-location !35 :: (store (s64) into %ir.15, align 1) 449 renamable $x15 = ADDXrs renamable $x8, renamable $x11, 0, debug-location !35 450 $w16 = MOVZWi 62451, 0, debug-location !35 451 STURHHi killed renamable $w16, killed renamable $x15, 9, debug-location !35 :: (store (s16) into %ir.17, align 1) 452 renamable $x8 = ADDXrs killed renamable $x8, renamable $x11, 0, debug-location !35 453 $w16 = MOVZWi 243, 0, debug-location !35 454 STRBBui killed renamable $w16, killed renamable $x8, 11, debug-location !35 :: (store (s8) into %ir.19) 455 DBG_VALUE renamable $x13, 0, !36, !DIExpression(DW_OP_deref), debug-location !37 456 DBG_VALUE renamable $x14, 0, !38, !DIExpression(DW_OP_deref), debug-location !44 457 $x8 = ORRXrs $xzr, $x13, 0 458 renamable $x15 = UBFMXri renamable $x8, 3, 63 459 renamable $w16 = LDRHHroX killed renamable $x15, renamable $x11, 0, 0 :: (load (s16) from %ir.24) 460 renamable $w16 = UBFMWri killed renamable $w16, 0, 15 461 STRXui killed $x1, $sp, 21 :: (store (s64) into %stack.4) 462 STRDui killed $d1, $sp, 20 :: (store (s64) into %stack.5) 463 STRDui killed $d0, $sp, 19 :: (store (s64) into %stack.6) 464 STRXui killed $x0, $sp, 18 :: (store (s64) into %stack.7) 465 STRXui killed $x13, $sp, 17 :: (store (s64) into %stack.8) 466 DBG_VALUE $sp, 0, !36, !DIExpression(DW_OP_plus_uconst, 136, DW_OP_deref, DW_OP_deref), debug-location !37 467 STRXui killed $x14, $sp, 16 :: (store (s64) into %stack.9) 468 DBG_VALUE $sp, 0, !38, !DIExpression(DW_OP_plus_uconst, 128, DW_OP_deref, DW_OP_deref), debug-location !44 469 STRXui killed $x10, $sp, 15 :: (store (s64) into %stack.10) 470 STRXui killed $x12, $sp, 14 :: (store (s64) into %stack.11) 471 STRXui killed $x11, $sp, 13 :: (store (s64) into %stack.12) 472 STRXui killed $x9, $sp, 12 :: (store (s64) into %stack.13) 473 STRXui killed $x8, $sp, 11 :: (store (s64) into %stack.14) 474 CBZW killed renamable $w16, %bb.2 475 476 bb.1 (%ir-block.27): 477 successors: 478 479 $x0 = LDRXui $sp, 11 :: (load (s64) from %stack.14) 480 BL @__asan_report_store16, csr_aarch64_aapcs, implicit-def dead $lr, implicit $sp, implicit killed $x0, implicit-def $sp 481 INLINEASM &"", 1 482 BRK 1 483 484 bb.2 (%ir-block.28): 485 renamable $x8 = ADRP target-flags(aarch64-page) @OBJC_SELECTOR_REFERENCES_ 486 renamable $x8 = ADDXri killed renamable $x8, target-flags(aarch64-pageoff, aarch64-nc) @OBJC_SELECTOR_REFERENCES_, 0 487 renamable $x9 = ORRXri $xzr, 4097 488 renamable $x8 = LSRVXr killed renamable $x8, killed renamable $x9 489 renamable $x9 = ADRP target-flags(aarch64-page) @"OBJC_CLASSLIST_REFERENCES_$_" 490 renamable $x9 = ADDXri killed renamable $x9, target-flags(aarch64-pageoff, aarch64-nc) @"OBJC_CLASSLIST_REFERENCES_$_", 0 491 $d0 = LDRDui $sp, 19 :: (load (s64) from %stack.6) 492 $x10 = LDRXui $sp, 11 :: (load (s64) from %stack.14) 493 STRDui killed renamable $d0, renamable $x10, 0 :: (store (s64) into %ir.20) 494 $d1 = LDRDui $sp, 20 :: (load (s64) from %stack.5) 495 STRDui killed renamable $d1, killed renamable $x10, 1 :: (store (s64) into %ir.20 + 8) 496 $x11 = LDRXui $sp, 18 :: (load (s64) from %stack.7) 497 STRXui killed renamable $x11, $sp, 23 :: (store (s64) into %stack.1.self.addr) 498 $x12 = LDRXui $sp, 21 :: (load (s64) from %stack.4) 499 STRXui killed renamable $x12, $sp, 22 :: (store (s64) into %stack.2._cmd.addr) 500 renamable $x9 = LDRXui killed renamable $x9, 0, debug-location !50 :: (load (s64) from @"OBJC_CLASSLIST_REFERENCES_$_") 501 $x13 = LDRXui $sp, 13 :: (load (s64) from %stack.12) 502 renamable $w14 = LDRBBroX killed renamable $x8, killed renamable $x13, 0, 0, debug-location !50 :: (load (s8) from %ir.31) 503 renamable $w14 = UBFMWri killed renamable $w14, 0, 7, debug-location !50 504 STRXui killed $x9, $sp, 10 :: (store (s64) into %stack.15) 505 CBZW killed renamable $w14, %bb.4, debug-location !50 506 507 bb.3 (%ir-block.34): 508 successors: 509 510 $x0 = ADRP target-flags(aarch64-page) @OBJC_SELECTOR_REFERENCES_, debug-location !50 511 renamable $x0 = ADDXri $x0, target-flags(aarch64-pageoff, aarch64-nc) @OBJC_SELECTOR_REFERENCES_, 0, debug-location !50 512 BL @__asan_report_load8, csr_aarch64_aapcs, implicit-def dead $lr, implicit $sp, implicit killed $x0, implicit-def $sp, debug-location !50 513 INLINEASM &"", 1, debug-location !50 514 BRK 1, debug-location !50 515 516 bb.4 (%ir-block.35): 517 renamable $x8 = ADRP target-flags(aarch64-page) @OBJC_SELECTOR_REFERENCES_ 518 renamable $x8 = ADDXri killed renamable $x8, target-flags(aarch64-pageoff, aarch64-nc) @OBJC_SELECTOR_REFERENCES_, 0 519 renamable $x1 = LDRXui killed renamable $x8, 0, debug-location !50 :: (invariant load (s64) from @OBJC_SELECTOR_REFERENCES_) 520 $x8 = LDRXui $sp, 10 :: (load (s64) from %stack.15) 521 $x0 = ORRXrs $xzr, killed $x8, 0, debug-location !50 522 BL @objc_msgSend, csr_aarch64_aapcs, implicit-def dead $lr, implicit $sp, implicit killed $x0, implicit killed $x1, implicit-def $x0, debug-location !50 523 renamable $x8 = ADRP target-flags(aarch64-page) @OBJC_SELECTOR_REFERENCES_.2 524 renamable $x8 = ADDXri killed renamable $x8, target-flags(aarch64-pageoff, aarch64-nc) @OBJC_SELECTOR_REFERENCES_.2, 0 525 renamable $x1 = ORRXri $xzr, 4097 526 renamable $x8 = LSRVXr killed renamable $x8, killed renamable $x1 527 $x1 = LDRXui $sp, 13 :: (load (s64) from %stack.12) 528 renamable $w9 = LDRBBroX killed renamable $x8, killed renamable $x1, 0, 0, debug-location !51 :: (load (s8) from %ir.40) 529 renamable $w9 = UBFMWri killed renamable $w9, 0, 7, debug-location !51 530 STRXui killed $x0, $sp, 9 :: (store (s64) into %stack.16) 531 CBZW killed renamable $w9, %bb.6, debug-location !51 532 533 bb.5 (%ir-block.43): 534 successors: 535 536 $x0 = ADRP target-flags(aarch64-page) @OBJC_SELECTOR_REFERENCES_.2, debug-location !51 537 renamable $x0 = ADDXri $x0, target-flags(aarch64-pageoff, aarch64-nc) @OBJC_SELECTOR_REFERENCES_.2, 0, debug-location !51 538 BL @__asan_report_load8, csr_aarch64_aapcs, implicit-def dead $lr, implicit $sp, implicit killed $x0, implicit-def $sp, debug-location !51 539 INLINEASM &"", 1, debug-location !51 540 BRK 1, debug-location !51 541 542 bb.6 (%ir-block.44): 543 renamable $x8 = ADRP target-flags(aarch64-page) @OBJC_SELECTOR_REFERENCES_.2 544 renamable $x8 = ADDXri killed renamable $x8, target-flags(aarch64-pageoff, aarch64-nc) @OBJC_SELECTOR_REFERENCES_.2, 0 545 renamable $x1 = LDRXui killed renamable $x8, 0, debug-location !51 :: (invariant load (s64) from @OBJC_SELECTOR_REFERENCES_.2) 546 $x8 = LDRXui $sp, 9 :: (load (s64) from %stack.16) 547 $x9 = LDRXui $sp, 17 :: (load (s64) from %stack.8) 548 renamable $x10 = UBFMXri renamable $x9, 3, 63, debug-location !51 549 $x11 = LDRXui $sp, 13 :: (load (s64) from %stack.12) 550 renamable $w12 = LDRHHroX killed renamable $x10, killed renamable $x11, 0, 0, debug-location !51 :: (load (s16) from %ir.51) 551 renamable $w12 = UBFMWri killed renamable $w12, 0, 15, debug-location !51 552 STRXui killed $x1, $sp, 8 :: (store (s64) into %stack.17) 553 STRXui killed $x8, $sp, 7 :: (store (s64) into %stack.18) 554 STRXui killed $x9, $sp, 6 :: (store (s64) into %stack.19) 555 CBZW killed renamable $w12, %bb.8, debug-location !51 556 557 bb.7 (%ir-block.54): 558 successors: 559 560 $x0 = LDRXui $sp, 6 :: (load (s64) from %stack.19) 561 BL @__asan_report_load16, csr_aarch64_aapcs, implicit-def dead $lr, implicit $sp, implicit killed $x0, implicit-def $sp, debug-location !51 562 INLINEASM &"", 1, debug-location !51 563 BRK 1, debug-location !51 564 565 bb.8 (%ir-block.55): 566 $x8 = LDRXui $sp, 6 :: (load (s64) from %stack.19) 567 renamable $d1 = LDRDui renamable $x8, 1, debug-location !51 :: (load (s64) from %ir.47 + 8) 568 renamable $d0 = LDRDui killed renamable $x8, 0, debug-location !51 :: (load (s64) from %ir.47) 569 $x0 = LDRXui $sp, 7 :: (load (s64) from %stack.18) 570 $x1 = LDRXui $sp, 8 :: (load (s64) from %stack.17) 571 BL @objc_msgSend, csr_aarch64_aapcs, implicit-def dead $lr, implicit $sp, implicit killed $x0, implicit killed $x1, implicit killed $d0, implicit killed $d1, implicit-def $sp, implicit-def $x0, debug-location !51 572 $x8 = LDRXui $sp, 16 :: (load (s64) from %stack.9) 573 renamable $x1 = UBFMXri killed renamable $x8, 3, 63, debug-location !44 574 $lr = LDRXui $sp, 13 :: (load (s64) from %stack.12) 575 renamable $w9 = LDRBBroX killed renamable $x1, killed renamable $lr, 0, 0, debug-location !44 :: (load (s8) from %ir.61) 576 renamable $w9 = UBFMWri killed renamable $w9, 0, 7, debug-location !44 577 STRXui killed $x0, $sp, 5 :: (store (s64) into %stack.20) 578 CBZW killed renamable $w9, %bb.10, debug-location !44 579 580 bb.9 (%ir-block.64): 581 successors: 582 583 $x0 = LDRXui $sp, 16 :: (load (s64) from %stack.9) 584 BL @__asan_report_store8, csr_aarch64_aapcs, implicit-def dead $lr, implicit $sp, implicit killed $x0, implicit-def $sp, debug-location !44 585 INLINEASM &"", 1, debug-location !44 586 BRK 1, debug-location !44 587 588 bb.10 (%ir-block.65): 589 renamable $x8 = ADRP target-flags(aarch64-page) @OBJC_SELECTOR_REFERENCES_.4 590 renamable $x8 = ADDXri killed renamable $x8, target-flags(aarch64-pageoff, aarch64-nc) @OBJC_SELECTOR_REFERENCES_.4, 0 591 renamable $x9 = ORRXri $xzr, 4097 592 renamable $x8 = LSRVXr killed renamable $x8, killed renamable $x9 593 $x9 = LDRXui $sp, 5 :: (load (s64) from %stack.20) 594 $x10 = LDRXui $sp, 16 :: (load (s64) from %stack.9) 595 STRXui killed renamable $x9, renamable $x10, 0, debug-location !44 :: (store (s64) into %ir.6) 596 renamable $x11 = LDRXui killed renamable $x10, 0, debug-location !52 :: (load (s64) from %ir.6) 597 $x12 = LDRXui $sp, 13 :: (load (s64) from %stack.12) 598 renamable $w13 = LDRBBroX killed renamable $x8, killed renamable $x12, 0, 0, debug-location !53 :: (load (s8) from %ir.68) 599 renamable $w13 = UBFMWri killed renamable $w13, 0, 7, debug-location !53 600 STRXui killed $x11, $sp, 4 :: (store (s64) into %stack.21) 601 CBZW killed renamable $w13, %bb.12, debug-location !53 602 603 bb.11 (%ir-block.71): 604 successors: 605 606 $x0 = ADRP target-flags(aarch64-page) @OBJC_SELECTOR_REFERENCES_.4, debug-location !53 607 renamable $x0 = ADDXri $x0, target-flags(aarch64-pageoff, aarch64-nc) @OBJC_SELECTOR_REFERENCES_.4, 0, debug-location !53 608 BL @__asan_report_load8, csr_aarch64_aapcs, implicit-def dead $lr, implicit $sp, implicit killed $x0, implicit-def $sp, debug-location !53 609 INLINEASM &"", 1, debug-location !53 610 BRK 1, debug-location !53 611 612 bb.12 (%ir-block.72): 613 renamable $x8 = ADRP target-flags(aarch64-page) @OBJC_SELECTOR_REFERENCES_.4 614 renamable $x8 = ADDXri killed renamable $x8, target-flags(aarch64-pageoff, aarch64-nc) @OBJC_SELECTOR_REFERENCES_.4, 0 615 renamable $x1 = LDRXui killed renamable $x8, 0, debug-location !53 :: (invariant load (s64) from @OBJC_SELECTOR_REFERENCES_.4) 616 $x8 = LDRXui $sp, 4 :: (load (s64) from %stack.21) 617 $x0 = ORRXrs $xzr, killed $x8, 0, debug-location !53 618 BL @objc_msgSend, csr_aarch64_aapcs, implicit-def dead $lr, implicit $sp, implicit killed $x0, implicit killed $x1, implicit-def $x0, debug-location !53 619 INLINEASM &"mov\09fp, fp\09\09; marker for objc_retainAutoreleaseReturnValue", 1, debug-location !53 620 BL @objc_retainAutoreleasedReturnValue, csr_aarch64_aapcs, implicit-def dead $lr, implicit $sp, implicit killed $x0, implicit-def $x0, debug-location !53 621 $x8 = LDRXui $sp, 16 :: (load (s64) from %stack.9) 622 STRXui killed $x0, $sp, 3 :: (store (s64) into %stack.22) 623 $x0 = ORRXrs $xzr, killed $x8, 0, debug-location !54 624 $x8 = ORRXrs $xzr, killed $xzr, 0, debug-location !54 625 $x1 = ORRXrs $xzr, killed $x8, 0, debug-location !54 626 BL @objc_storeStrong, csr_aarch64_aapcs, implicit-def dead $lr, implicit $sp, implicit killed $x0, implicit killed $x1, debug-location !54 627 $x0 = LDRXui $sp, 3 :: (load (s64) from %stack.22) 628 BL @objc_autoreleaseReturnValue, csr_aarch64_aapcs, implicit-def dead $lr, implicit $sp, implicit killed $x0, implicit-def $x0, debug-location !54 629 $x8 = MOVZXi 13838, 0, debug-location !54 630 $x8 = MOVKXi $x8, 17888, 16, debug-location !54 631 $x1 = LDRXui $sp, 15 :: (load (s64) from %stack.10) 632 STRXui killed renamable $x8, killed renamable $x1, 0, debug-location !54 :: (store (s64) into %ir.7) 633 $x8 = LDRXui $sp, 12 :: (load (s64) from %stack.13) 634 STRXui $xzr, renamable $x8, 0, debug-location !54 :: (store (s64) into %ir.79, align 1) 635 STURHHi $wzr, renamable $x8, 9, debug-location !54 :: (store (s16) into %ir.81, align 1) 636 STRBBui $wzr, killed renamable $x8, 11, debug-location !54 :: (store (s8) into %ir.83) 637 $lr = ADRP target-flags(aarch64-page, aarch64-got) @__stack_chk_guard 638 $lr = LDRXui $lr, target-flags(aarch64-pageoff, aarch64-got, aarch64-nc) @__stack_chk_guard 639 $lr = LDRXui killed $lr, 0 :: (dereferenceable invariant load (s64) from @__stack_chk_guard) 640 renamable $x9 = LDRXui $sp, 39 :: (load (s64) from %stack.0.StackGuardSlot) 641 $xzr = SUBSXrs killed renamable $lr, killed renamable $x9, 0, implicit-def $nzcv, implicit-def $nzcv 642 STRXui killed $x0, $sp, 2 :: (store (s64) into %stack.23) 643 Bcc 1, %bb.14, implicit $nzcv 644 645 bb.13.SP_return: 646 $x0 = LDRXui $sp, 2 :: (load (s64) from %stack.23) 647 $sp = frame-destroy SUBXri $fp, 16, 0, debug-location !54 648 $fp, $lr = frame-destroy LDPXi $sp, 2, debug-location !54 :: (load (s64) from %stack.25), (load (s64) from %stack.24) 649 early-clobber $sp, $x28, $x27 = frame-destroy LDPXpost $sp, 4, debug-location !54 :: (load (s64) from %stack.27), (load (s64) from %stack.26) 650 RET undef $lr, implicit killed $x0, debug-location !54 651 652 bb.14.CallStackCheckFailBlk: 653 BL @__stack_chk_fail, csr_aarch64_aapcs, implicit-def dead $lr, implicit $sp, implicit-def $sp, debug-location !47 654 BRK 1, debug-location !47 655 656... 657--- 658name: asan.module_ctor 659alignment: 4 660tracksRegLiveness: true 661frameInfo: 662 stackSize: 16 663 maxAlignment: 8 664 adjustsStack: true 665 hasCalls: true 666 maxCallFrameSize: 0 667stack: 668 - { id: 0, type: spill-slot, offset: -8, size: 8, alignment: 8, stack-id: default, 669 callee-saved-register: '$lr' } 670 - { id: 1, type: spill-slot, offset: -16, size: 8, alignment: 8, stack-id: default, 671 callee-saved-register: '$fp' } 672body: | 673 bb.0 (%ir-block.0): 674 liveins: $lr 675 676 early-clobber $sp = frame-setup STPXpre killed $fp, killed $lr, $sp, -2 :: (store (s64) into %stack.1), (store (s64) into %stack.0) 677 frame-setup CFI_INSTRUCTION def_cfa_offset 16 678 frame-setup CFI_INSTRUCTION offset $w30, -8 679 frame-setup CFI_INSTRUCTION offset $w29, -16 680 BL @__asan_init, csr_aarch64_aapcs, implicit-def dead $lr, implicit $sp 681 BL @__asan_version_mismatch_check_v8, csr_aarch64_aapcs, implicit-def dead $lr, implicit $sp 682 early-clobber $sp, $fp, $lr = frame-destroy LDPXpost $sp, 2 :: (load (s64) from %stack.1), (load (s64) from %stack.0) 683 RET undef $lr 684 685... 686