Last active
March 8, 2017 21:29
-
-
Save stanislaw/fd836b204be9f499194b68d520a325e8 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
swiftc \ | |
-emit-ir \ | |
-F/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/Library/Frameworks \ | |
-Xlinker -rpath -Xlinker /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/Library/Frameworks \ | |
-lswiftCore jitswift.swift | |
; ModuleID = '-' | |
source_filename = "-" | |
target datalayout = "e-m:o-i64:64-f80:128-n8:16:32:64-S128" | |
target triple = "x86_64-apple-macosx10.9" | |
%0 = type opaque | |
%1 = type opaque | |
%2 = type opaque | |
%3 = type opaque | |
%4 = type opaque | |
%CSo11XCTestSuite = type opaque | |
%Vs5Int32 = type <{ i32 }> | |
%Sp = type <{ i8* }> | |
%struct._SwiftEmptyArrayStorage = type { %struct.HeapObject, %struct._SwiftArrayBodyStorage } | |
%struct.HeapObject = type { %struct.HeapMetadata*, %struct.StrongRefCount, %struct.WeakRefCount } | |
%struct.HeapMetadata = type opaque | |
%struct.StrongRefCount = type { i32 } | |
%struct.WeakRefCount = type { i32 } | |
%struct._SwiftArrayBodyStorage = type { i64, i64 } | |
%swift.type = type { i64 } | |
%swift.protocol = type { i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i32, i32, i16, i16, i32 } | |
%objc_class = type { %objc_class*, %objc_class*, %swift.opaque*, %swift.opaque*, i64 } | |
%swift.opaque = type opaque | |
%swift.refcounted = type { %swift.type*, i32, i32 } | |
%swift.full_boxmetadata = type { void (%swift.refcounted*)*, i8**, %swift.type, i32, i8* } | |
%C8jitswift5Hello = type <{ %swift.refcounted }> | |
%swift.type_metadata_record = type { i32, i32 } | |
%swift.bridge = type opaque | |
%Any = type { [24 x i8], %swift.type* } | |
%SS = type <{ %Vs11_StringCore }> | |
%Vs11_StringCore = type <{ %GSqSv_, %Su, %GSqPs9AnyObject__ }> | |
%GSqSv_ = type <{ [8 x i8] }> | |
%Su = type <{ i64 }> | |
%GSqPs9AnyObject__ = type <{ [8 x i8] }> | |
%CSo6XCTest = type opaque | |
%swift.function = type { i8*, %swift.refcounted* } | |
%swift.error = type opaque | |
%Si = type <{ i64 }> | |
%objc_super = type { %objc_object*, %objc_class* } | |
%objc_object = type opaque | |
%CSo10XCTestCase = type opaque | |
@_Tv8jitswift12defaultSuiteCSo11XCTestSuite = hidden global %CSo11XCTestSuite* null, align 8 | |
@_TZvOs11CommandLine5_argcVs5Int32 = external global %Vs5Int32, align 4 | |
@globalinit_33_FD9A49A256BEB6AF7C48013347ADC3BA_token4 = external global i64, align 8 | |
@_TZvOs11CommandLine11_unsafeArgvGSpGSqGSpVs4Int8___ = external global %Sp, align 8 | |
@_swiftEmptyArrayStorage = external global %struct._SwiftEmptyArrayStorage, align 8 | |
@swift_isaMask = external global i64 | |
@_TMLP_ = linkonce_odr hidden global %swift.type* null, align 8 | |
@_swift_getExistentialTypeMetadata = external global %swift.type* (i64, %swift.protocol**)* | |
@_TMSS = external global %swift.type, align 8 | |
@0 = private unnamed_addr constant [22 x i8] c"before running XCTest\00" | |
@_TMLCSo11XCTestSuite = linkonce_odr hidden global %swift.type* null, align 8 | |
@"OBJC_CLASS_REF_$_XCTestSuite" = private externally_initialized global %objc_class* @"OBJC_CLASS_$_XCTestSuite", section "__DATA,__objc_classrefs,regular,no_dead_strip", align 8 | |
@"OBJC_CLASS_$_XCTestSuite" = external global %objc_class, align 8 | |
@_swift_getInitializedObjCClass = external global %objc_class* (%objc_class*)* | |
@"\01L_selector_data(defaultTestSuite)" = private global [17 x i8] c"defaultTestSuite\00", section "__TEXT,__objc_methname,cstring_literals", align 1 | |
@"\01L_selector(defaultTestSuite)" = private externally_initialized global i8* getelementptr inbounds ([17 x i8], [17 x i8]* @"\01L_selector_data(defaultTestSuite)", i64 0, i64 0), section "__DATA,__objc_selrefs,literal_pointers,no_dead_strip", align 8 | |
@"\01L_selector_data(runTest)" = private global [8 x i8] c"runTest\00", section "__TEXT,__objc_methname,cstring_literals", align 1 | |
@"\01L_selector(runTest)" = private externally_initialized global i8* getelementptr inbounds ([8 x i8], [8 x i8]* @"\01L_selector_data(runTest)", i64 0, i64 0), section "__DATA,__objc_selrefs,literal_pointers,no_dead_strip", align 8 | |
@1 = private unnamed_addr constant [21 x i8] c"after running XCTest\00" | |
@2 = private unnamed_addr constant [66 x i8] c"Sife effect function that we hope to be removed by RemoveVoidCall\00" | |
@3 = private unnamed_addr constant [12 x i8] c"Hello world\00" | |
@4 = private constant [21 x i8] c"XFo__dSizoPs5Error__\00", section "__TEXT,__swift3_typeref, regular, no_dead_strip" | |
@"\01l__swift3_reflection_descriptor" = private constant <{ i32, i32, i32, i32 }> <{ i32 1, i32 0, i32 0, i32 trunc (i64 sub (i64 ptrtoint ([21 x i8]* @4 to i64), i64 add (i64 ptrtoint (<{ i32, i32, i32, i32 }>* @"\01l__swift3_reflection_descriptor" to i64), i64 12)) to i32) }>, section "__TEXT,__swift3_capture, regular, no_dead_strip", align 4 | |
@_swift_release = external global void (%swift.refcounted*)* | |
@_swift_deallocObject = external global void (%swift.refcounted*, i64, i64)* | |
@metadata = private constant %swift.full_boxmetadata { void (%swift.refcounted*)* @objectdestroy, i8** null, %swift.type { i64 64 }, i32 16, i8* bitcast (<{ i32, i32, i32, i32 }>* @"\01l__swift3_reflection_descriptor" to i8*) } | |
@_swift_allocObject = external global %swift.refcounted* (%swift.type*, i64, i64)* | |
@_swift_retain = external global void (%swift.refcounted*)* | |
@"\01l__swift3_reflection_descriptor.1" = private constant <{ i32, i32, i32, i32 }> <{ i32 1, i32 0, i32 0, i32 trunc (i64 sub (i64 ptrtoint ([21 x i8]* @4 to i64), i64 add (i64 ptrtoint (<{ i32, i32, i32, i32 }>* @"\01l__swift3_reflection_descriptor.1" to i64), i64 12)) to i32) }>, section "__TEXT,__swift3_capture, regular, no_dead_strip", align 4 | |
@metadata.3 = private constant %swift.full_boxmetadata { void (%swift.refcounted*)* @objectdestroy.2, i8** null, %swift.type { i64 64 }, i32 16, i8* bitcast (<{ i32, i32, i32, i32 }>* @"\01l__swift3_reflection_descriptor.1" to i8*) } | |
@_TMSi = external global %swift.type, align 8 | |
@_TWPSis9Equatables = external global i8*, align 8 | |
@5 = private unnamed_addr constant [15 x i8] c"jitswift.swift\00" | |
@6 = private unnamed_addr constant [17 x i8] c"Say: Hello world\00" | |
@"\01L_selector_data(dealloc)" = private global [8 x i8] c"dealloc\00", section "__TEXT,__objc_methname,cstring_literals", align 1 | |
@"\01L_selector(dealloc)" = private externally_initialized global i8* getelementptr inbounds ([8 x i8], [8 x i8]* @"\01L_selector_data(dealloc)", i64 0, i64 0), section "__DATA,__objc_selrefs,literal_pointers,no_dead_strip", align 8 | |
@"\01L_selector_data(initWithInvocation:)" = private global [20 x i8] c"initWithInvocation:\00", section "__TEXT,__objc_methname,cstring_literals", align 1 | |
@"\01L_selector(initWithInvocation:)" = private externally_initialized global i8* getelementptr inbounds ([20 x i8], [20 x i8]* @"\01L_selector_data(initWithInvocation:)", i64 0, i64 0), section "__DATA,__objc_selrefs,literal_pointers,no_dead_strip", align 8 | |
@"\01L_selector_data(allocWithZone:)" = private global [15 x i8] c"allocWithZone:\00", section "__TEXT,__objc_methname,cstring_literals", align 1 | |
@"\01L_selector(allocWithZone:)" = private externally_initialized global i8* getelementptr inbounds ([15 x i8], [15 x i8]* @"\01L_selector_data(allocWithZone:)", i64 0, i64 0), section "__DATA,__objc_selrefs,literal_pointers,no_dead_strip", align 8 | |
@"\01L_selector_data(initWithSelector:)" = private global [18 x i8] c"initWithSelector:\00", section "__TEXT,__objc_methname,cstring_literals", align 1 | |
@"\01L_selector(initWithSelector:)" = private externally_initialized global i8* getelementptr inbounds ([18 x i8], [18 x i8]* @"\01L_selector_data(initWithSelector:)", i64 0, i64 0), section "__DATA,__objc_selrefs,literal_pointers,no_dead_strip", align 8 | |
@"\01L_selector_data(init)" = private global [5 x i8] c"init\00", section "__TEXT,__objc_methname,cstring_literals", align 1 | |
@"\01L_selector(init)" = private externally_initialized global i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"\01L_selector_data(init)", i64 0, i64 0), section "__DATA,__objc_selrefs,literal_pointers,no_dead_strip", align 8 | |
@_TWVBO = external global i8*, align 8 | |
@"OBJC_METACLASS_$__TtC8jitswift5Hello" = hidden global %objc_class { %objc_class* @"OBJC_METACLASS_$_NSObject", %objc_class* @"OBJC_METACLASS_$_XCTestCase", %swift.opaque* @_objc_empty_cache, %swift.opaque* null, i64 ptrtoint ({ i32, i32, i32, i32, i8*, i8*, i8*, i8*, i8*, i8*, i8* }* @_METACLASS_DATA__TtC8jitswift5Hello to i64) }, align 8 | |
@"OBJC_CLASS_$_XCTestCase" = external global %objc_class, align 8 | |
@_objc_empty_cache = external global %swift.opaque | |
@"\01L_selector_data(testFoo)" = private global [8 x i8] c"testFoo\00", section "__TEXT,__objc_methname,cstring_literals", align 1 | |
@7 = private unnamed_addr constant [8 x i8] c"v16@0:8\00" | |
@"\01L_selector_data(say)" = private global [4 x i8] c"say\00", section "__TEXT,__objc_methname,cstring_literals", align 1 | |
@8 = private unnamed_addr constant [11 x i8] c"@24@0:8@16\00" | |
@9 = private unnamed_addr constant [11 x i8] c"@24@0:8:16\00" | |
@10 = private unnamed_addr constant [8 x i8] c"@16@0:8\00" | |
@"OBJC_METACLASS_$_NSObject" = external global %objc_class, align 8 | |
@"OBJC_METACLASS_$_XCTestCase" = external global %objc_class, align 8 | |
@11 = private unnamed_addr constant [20 x i8] c"_TtC8jitswift5Hello\00" | |
@_METACLASS_DATA__TtC8jitswift5Hello = private constant { i32, i32, i32, i32, i8*, i8*, i8*, i8*, i8*, i8*, i8* } { i32 129, i32 40, i32 40, i32 0, i8* null, i8* getelementptr inbounds ([20 x i8], [20 x i8]* @11, i64 0, i64 0), i8* null, i8* null, i8* null, i8* null, i8* null }, section "__DATA, __objc_const", align 8 | |
@_INSTANCE_METHODS__TtC8jitswift5Hello = private constant { i32, i32, [5 x { i8*, i8*, i8* }] } { i32 24, i32 5, [5 x { i8*, i8*, i8* }] [{ i8*, i8*, i8* } { i8* getelementptr inbounds ([8 x i8], [8 x i8]* @"\01L_selector_data(testFoo)", i64 0, i64 0), i8* getelementptr inbounds ([8 x i8], [8 x i8]* @7, i64 0, i64 0), i8* bitcast (void (%2*, i8*)* @_TToFC8jitswift5Hello7testFoofT_T_ to i8*) }, { i8*, i8*, i8* } { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"\01L_selector_data(say)", i64 0, i64 0), i8* getelementptr inbounds ([8 x i8], [8 x i8]* @7, i64 0, i64 0), i8* bitcast (void (%2*, i8*)* @_TToFC8jitswift5Hello3sayfT_T_ to i8*) }, { i8*, i8*, i8* } { i8* getelementptr inbounds ([20 x i8], [20 x i8]* @"\01L_selector_data(initWithInvocation:)", i64 0, i64 0), i8* getelementptr inbounds ([11 x i8], [11 x i8]* @8, i64 0, i64 0), i8* bitcast (%2* (%2*, i8*, %3*)* @_TToFC8jitswift5HellocfT10invocationGSqCSo12NSInvocation__S0_ to i8*) }, { i8*, i8*, i8* } { i8* getelementptr inbounds ([18 x i8], [18 x i8]* @"\01L_selector_data(initWithSelector:)", i64 0, i64 0), i8* getelementptr inbounds ([11 x i8], [11 x i8]* @9, i64 0, i64 0), i8* bitcast (%2* (%2*, i8*, i8*)* @_TToFC8jitswift5HellocfT8selectorV10ObjectiveC8Selector_S0_ to i8*) }, { i8*, i8*, i8* } { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"\01L_selector_data(init)", i64 0, i64 0), i8* getelementptr inbounds ([8 x i8], [8 x i8]* @10, i64 0, i64 0), i8* bitcast (%2* (%2*, i8*)* @_TToFC8jitswift5HellocfT_S0_ to i8*) }] }, section "__DATA, __objc_const", align 8 | |
@_DATA__TtC8jitswift5Hello = private constant { i32, i32, i32, i32, i8*, i8*, { i32, i32, [5 x { i8*, i8*, i8* }] }*, i8*, i8*, i8*, i8* } { i32 128, i32 16, i32 16, i32 0, i8* null, i8* getelementptr inbounds ([20 x i8], [20 x i8]* @11, i64 0, i64 0), { i32, i32, [5 x { i8*, i8*, i8* }] }* @_INSTANCE_METHODS__TtC8jitswift5Hello, i8* null, i8* null, i8* null, i8* null }, section "__DATA, __objc_const", align 8 | |
@12 = private constant [17 x i8] c"C8jitswift5Hello\00" | |
@13 = private constant [1 x i8] zeroinitializer | |
@_TMnC8jitswift5Hello = hidden constant <{ i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }> <{ i32 trunc (i64 sub (i64 ptrtoint ([17 x i8]* @12 to i64), i64 ptrtoint (<{ i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }>* @_TMnC8jitswift5Hello to i64)) to i32), i32 0, i32 15, i32 trunc (i64 sub (i64 ptrtoint ([1 x i8]* @13 to i64), i64 add (i64 ptrtoint (<{ i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }>* @_TMnC8jitswift5Hello to i64), i64 12)) to i32), i32 trunc (i64 sub (i64 ptrtoint (%swift.type** (%swift.type*)* @get_field_types_Hello to i64), i64 add (i64 ptrtoint (<{ i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }>* @_TMnC8jitswift5Hello to i64), i64 16)) to i32), i32 0, i32 trunc (i64 sub (i64 ptrtoint (%swift.type* ()* @_TMaC8jitswift5Hello to i64), i64 add (i64 ptrtoint (<{ i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }>* @_TMnC8jitswift5Hello to i64), i64 24)) to i32), i32 10, i32 0, i32 0, i32 0 }>, section "__TEXT,__const", align 8 | |
@_TWoFC8jitswift5Hello7testFoofT_T_ = hidden constant i64 96, align 8 | |
@_TWoFC8jitswift5Hello3sayfT_T_ = hidden constant i64 104, align 8 | |
@_TWoFC8jitswift5HelloCfT10invocationGSqCSo12NSInvocation__S0_ = hidden constant i64 112, align 8 | |
@_TWoFC8jitswift5HelloCfT8selectorV10ObjectiveC8Selector_S0_ = hidden constant i64 120, align 8 | |
@_TWoFC8jitswift5HelloCfT_S0_ = hidden constant i64 128, align 8 | |
@_TMLC8jitswift5Hello = hidden global %swift.type* null, align 8 | |
@_TMfC8jitswift5Hello = internal global <{ void (%C8jitswift5Hello*)*, i8**, i64, %objc_class*, %swift.opaque*, %swift.opaque*, i64, i32, i32, i32, i16, i16, i32, i32, i64, i8*, void (%C8jitswift5Hello*)*, void (%C8jitswift5Hello*)*, %C8jitswift5Hello* (i64, %C8jitswift5Hello*)*, %C8jitswift5Hello* (i8*, %C8jitswift5Hello*)*, %C8jitswift5Hello* (%C8jitswift5Hello*)* }> <{ void (%C8jitswift5Hello*)* @_TFC8jitswift5HelloD, i8** @_TWVBO, i64 ptrtoint (%objc_class* @"OBJC_METACLASS_$__TtC8jitswift5Hello" to i64), %objc_class* @"OBJC_CLASS_$_XCTestCase", %swift.opaque* @_objc_empty_cache, %swift.opaque* null, i64 add (i64 ptrtoint ({ i32, i32, i32, i32, i8*, i8*, { i32, i32, [5 x { i8*, i8*, i8* }] }*, i8*, i8*, i8*, i8* }* @_DATA__TtC8jitswift5Hello to i64), i64 1), i32 1, i32 0, i32 16, i16 7, i16 0, i32 136, i32 16, i64 sub (i64 ptrtoint (<{ i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }>* @_TMnC8jitswift5Hello to i64), i64 add (i64 ptrtoint (<{ void (%C8jitswift5Hello*)*, i8**, i64, %objc_class*, %swift.opaque*, %swift.opaque*, i64, i32, i32, i32, i16, i16, i32, i32, i64, i8*, void (%C8jitswift5Hello*)*, void (%C8jitswift5Hello*)*, %C8jitswift5Hello* (i64, %C8jitswift5Hello*)*, %C8jitswift5Hello* (i8*, %C8jitswift5Hello*)*, %C8jitswift5Hello* (%C8jitswift5Hello*)* }>* @_TMfC8jitswift5Hello to i64), i64 80)), i8* null, void (%C8jitswift5Hello*)* @_TFC8jitswift5Hello7testFoofT_T_, void (%C8jitswift5Hello*)* @_TFC8jitswift5Hello3sayfT_T_, %C8jitswift5Hello* (i64, %C8jitswift5Hello*)* @_TFC8jitswift5HellocfT10invocationGSqCSo12NSInvocation__S0_, %C8jitswift5Hello* (i8*, %C8jitswift5Hello*)* @_TFC8jitswift5HellocfT8selectorV10ObjectiveC8Selector_S0_, %C8jitswift5Hello* (%C8jitswift5Hello*)* @_TFC8jitswift5HellocfT_S0_ }>, section "__DATA,__objc_data, regular", align 8 | |
@14 = private constant [17 x i8] c"C8jitswift5Hello\00", section "__TEXT,__swift3_typeref, regular, no_dead_strip" | |
@_TMRfC8jitswift5Hello = internal constant <{ i32, i16, i16, i32 }> <{ i32 trunc (i64 sub (i64 ptrtoint ([17 x i8]* @14 to i64), i64 ptrtoint (<{ i32, i16, i16, i32 }>* @_TMRfC8jitswift5Hello to i64)) to i32), i16 7, i16 12, i32 0 }>, section "__TEXT,__swift3_fieldmd, regular, no_dead_strip", align 4 | |
@15 = private constant [14 x i8] c"Ps9AnyObject_\00", section "__TEXT,__swift3_typeref, regular, no_dead_strip" | |
@16 = private constant [6 x i8] c"super\00", section "__TEXT,__swift3_typeref, regular, no_dead_strip" | |
@17 = private constant [16 x i8] c"CSo10XCTestCase\00", section "__TEXT,__swift3_typeref, regular, no_dead_strip" | |
@_TMRsC8jitswift5Hello = internal constant <{ i32, i32, i32, i32, i32, i32 }> <{ i32 trunc (i64 sub (i64 ptrtoint ([17 x i8]* @14 to i64), i64 ptrtoint (<{ i32, i32, i32, i32, i32, i32 }>* @_TMRsC8jitswift5Hello to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([14 x i8]* @15 to i64), i64 add (i64 ptrtoint (<{ i32, i32, i32, i32, i32, i32 }>* @_TMRsC8jitswift5Hello to i64), i64 4)) to i32), i32 1, i32 8, i32 trunc (i64 sub (i64 ptrtoint ([6 x i8]* @16 to i64), i64 add (i64 ptrtoint (<{ i32, i32, i32, i32, i32, i32 }>* @_TMRsC8jitswift5Hello to i64), i64 16)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([16 x i8]* @17 to i64), i64 add (i64 ptrtoint (<{ i32, i32, i32, i32, i32, i32 }>* @_TMRsC8jitswift5Hello to i64), i64 20)) to i32) }>, section "__TEXT,__swift3_assocty, regular, no_dead_strip", align 4 | |
@"_swift_FORCE_LOAD_$_swiftXCTest" = external global i1 | |
@"_swift_FORCE_LOAD_$_swiftXCTest_$_jitswift" = weak hidden constant i1* @"_swift_FORCE_LOAD_$_swiftXCTest" | |
@"_swift_FORCE_LOAD_$_swiftFoundation" = external global i1 | |
@"_swift_FORCE_LOAD_$_swiftFoundation_$_jitswift" = weak hidden constant i1* @"_swift_FORCE_LOAD_$_swiftFoundation" | |
@"_swift_FORCE_LOAD_$_swiftObjectiveC" = external global i1 | |
@"_swift_FORCE_LOAD_$_swiftObjectiveC_$_jitswift" = weak hidden constant i1* @"_swift_FORCE_LOAD_$_swiftObjectiveC" | |
@"_swift_FORCE_LOAD_$_swiftDarwin" = external global i1 | |
@"_swift_FORCE_LOAD_$_swiftDarwin_$_jitswift" = weak hidden constant i1* @"_swift_FORCE_LOAD_$_swiftDarwin" | |
@"_swift_FORCE_LOAD_$_swiftIOKit" = external global i1 | |
@"_swift_FORCE_LOAD_$_swiftIOKit_$_jitswift" = weak hidden constant i1* @"_swift_FORCE_LOAD_$_swiftIOKit" | |
@"_swift_FORCE_LOAD_$_swiftDispatch" = external global i1 | |
@"_swift_FORCE_LOAD_$_swiftDispatch_$_jitswift" = weak hidden constant i1* @"_swift_FORCE_LOAD_$_swiftDispatch" | |
@"_swift_FORCE_LOAD_$_swiftCoreGraphics" = external global i1 | |
@"_swift_FORCE_LOAD_$_swiftCoreGraphics_$_jitswift" = weak hidden constant i1* @"_swift_FORCE_LOAD_$_swiftCoreGraphics" | |
@"_swift_FORCE_LOAD_$_swiftAppKit" = external global i1 | |
@"_swift_FORCE_LOAD_$_swiftAppKit_$_jitswift" = weak hidden constant i1* @"_swift_FORCE_LOAD_$_swiftAppKit" | |
@"_swift_FORCE_LOAD_$_swiftCoreImage" = external global i1 | |
@"_swift_FORCE_LOAD_$_swiftCoreImage_$_jitswift" = weak hidden constant i1* @"_swift_FORCE_LOAD_$_swiftCoreImage" | |
@"_swift_FORCE_LOAD_$_swiftXPC" = external global i1 | |
@"_swift_FORCE_LOAD_$_swiftXPC_$_jitswift" = weak hidden constant i1* @"_swift_FORCE_LOAD_$_swiftXPC" | |
@"_swift_FORCE_LOAD_$_swiftQuartzCore" = external global i1 | |
@"_swift_FORCE_LOAD_$_swiftQuartzCore_$_jitswift" = weak hidden constant i1* @"_swift_FORCE_LOAD_$_swiftQuartzCore" | |
@"_swift_FORCE_LOAD_$_swiftCoreData" = external global i1 | |
@"_swift_FORCE_LOAD_$_swiftCoreData_$_jitswift" = weak hidden constant i1* @"_swift_FORCE_LOAD_$_swiftCoreData" | |
@"\01l_type_metadata_table" = private constant [1 x %swift.type_metadata_record] [%swift.type_metadata_record { i32 trunc (i64 sub (i64 ptrtoint (i64* getelementptr inbounds (<{ void (%C8jitswift5Hello*)*, i8**, i64, %objc_class*, %swift.opaque*, %swift.opaque*, i64, i32, i32, i32, i16, i16, i32, i32, i64, i8*, void (%C8jitswift5Hello*)*, void (%C8jitswift5Hello*)*, %C8jitswift5Hello* (i64, %C8jitswift5Hello*)*, %C8jitswift5Hello* (i8*, %C8jitswift5Hello*)*, %C8jitswift5Hello* (%C8jitswift5Hello*)* }>, <{ void (%C8jitswift5Hello*)*, i8**, i64, %objc_class*, %swift.opaque*, %swift.opaque*, i64, i32, i32, i32, i16, i16, i32, i32, i64, i8*, void (%C8jitswift5Hello*)*, void (%C8jitswift5Hello*)*, %C8jitswift5Hello* (i64, %C8jitswift5Hello*)*, %C8jitswift5Hello* (i8*, %C8jitswift5Hello*)*, %C8jitswift5Hello* (%C8jitswift5Hello*)* }>* @_TMfC8jitswift5Hello, i32 0, i32 2) to i64), i64 ptrtoint ([1 x %swift.type_metadata_record]* @"\01l_type_metadata_table" to i64)) to i32), i32 15 }], section "__TEXT, __swift2_types, regular, no_dead_strip", align 8 | |
@__swift_reflection_version = linkonce_odr hidden constant i16 1 | |
@field_type_vector_Hello = private global %swift.type** null | |
@_swift_slowAlloc = external global i8* (i64, i64)* | |
@_swift_slowDealloc = external global void (i8*, i64, i64)* | |
@objc_classes = internal global [1 x i8*] [i8* bitcast (%swift.type* @_TMC8jitswift5Hello to i8*)], section "__DATA, __objc_classlist, regular, no_dead_strip", align 8 | |
@llvm.used = appending global [19 x i8*] [i8* bitcast (<{ i32, i32, i32, i32 }>* @"\01l__swift3_reflection_descriptor" to i8*), i8* bitcast (<{ i32, i32, i32, i32 }>* @"\01l__swift3_reflection_descriptor.1" to i8*), i8* bitcast (<{ i32, i16, i16, i32 }>* @_TMRfC8jitswift5Hello to i8*), i8* bitcast (<{ i32, i32, i32, i32, i32, i32 }>* @_TMRsC8jitswift5Hello to i8*), i8* bitcast (i1** @"_swift_FORCE_LOAD_$_swiftXCTest_$_jitswift" to i8*), i8* bitcast (i1** @"_swift_FORCE_LOAD_$_swiftFoundation_$_jitswift" to i8*), i8* bitcast (i1** @"_swift_FORCE_LOAD_$_swiftObjectiveC_$_jitswift" to i8*), i8* bitcast (i1** @"_swift_FORCE_LOAD_$_swiftDarwin_$_jitswift" to i8*), i8* bitcast (i1** @"_swift_FORCE_LOAD_$_swiftIOKit_$_jitswift" to i8*), i8* bitcast (i1** @"_swift_FORCE_LOAD_$_swiftDispatch_$_jitswift" to i8*), i8* bitcast (i1** @"_swift_FORCE_LOAD_$_swiftCoreGraphics_$_jitswift" to i8*), i8* bitcast (i1** @"_swift_FORCE_LOAD_$_swiftAppKit_$_jitswift" to i8*), i8* bitcast (i1** @"_swift_FORCE_LOAD_$_swiftCoreImage_$_jitswift" to i8*), i8* bitcast (i1** @"_swift_FORCE_LOAD_$_swiftXPC_$_jitswift" to i8*), i8* bitcast (i1** @"_swift_FORCE_LOAD_$_swiftQuartzCore_$_jitswift" to i8*), i8* bitcast (i1** @"_swift_FORCE_LOAD_$_swiftCoreData_$_jitswift" to i8*), i8* bitcast ([1 x %swift.type_metadata_record]* @"\01l_type_metadata_table" to i8*), i8* bitcast (i16* @__swift_reflection_version to i8*), i8* bitcast ([1 x i8*]* @objc_classes to i8*)], section "llvm.metadata", align 8 | |
@llvm.compiler.used = appending global [17 x i8*] [i8* bitcast (%objc_class** @"OBJC_CLASS_REF_$_XCTestSuite" to i8*), i8* getelementptr inbounds ([17 x i8], [17 x i8]* @"\01L_selector_data(defaultTestSuite)", i32 0, i32 0), i8* bitcast (i8** @"\01L_selector(defaultTestSuite)" to i8*), i8* getelementptr inbounds ([8 x i8], [8 x i8]* @"\01L_selector_data(runTest)", i32 0, i32 0), i8* bitcast (i8** @"\01L_selector(runTest)" to i8*), i8* getelementptr inbounds ([8 x i8], [8 x i8]* @"\01L_selector_data(dealloc)", i32 0, i32 0), i8* bitcast (i8** @"\01L_selector(dealloc)" to i8*), i8* getelementptr inbounds ([20 x i8], [20 x i8]* @"\01L_selector_data(initWithInvocation:)", i32 0, i32 0), i8* bitcast (i8** @"\01L_selector(initWithInvocation:)" to i8*), i8* getelementptr inbounds ([15 x i8], [15 x i8]* @"\01L_selector_data(allocWithZone:)", i32 0, i32 0), i8* bitcast (i8** @"\01L_selector(allocWithZone:)" to i8*), i8* getelementptr inbounds ([18 x i8], [18 x i8]* @"\01L_selector_data(initWithSelector:)", i32 0, i32 0), i8* bitcast (i8** @"\01L_selector(initWithSelector:)" to i8*), i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"\01L_selector_data(init)", i32 0, i32 0), i8* bitcast (i8** @"\01L_selector(init)" to i8*), i8* getelementptr inbounds ([8 x i8], [8 x i8]* @"\01L_selector_data(testFoo)", i32 0, i32 0), i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"\01L_selector_data(say)", i32 0, i32 0)], section "llvm.metadata", align 8 | |
@_TMC8jitswift5Hello = hidden alias %swift.type, bitcast (i64* getelementptr inbounds (<{ void (%C8jitswift5Hello*)*, i8**, i64, %objc_class*, %swift.opaque*, %swift.opaque*, i64, i32, i32, i32, i16, i16, i32, i32, i64, i8*, void (%C8jitswift5Hello*)*, void (%C8jitswift5Hello*)*, %C8jitswift5Hello* (i64, %C8jitswift5Hello*)*, %C8jitswift5Hello* (i8*, %C8jitswift5Hello*)*, %C8jitswift5Hello* (%C8jitswift5Hello*)* }>, <{ void (%C8jitswift5Hello*)*, i8**, i64, %objc_class*, %swift.opaque*, %swift.opaque*, i64, i32, i32, i32, i16, i16, i32, i32, i64, i8*, void (%C8jitswift5Hello*)*, void (%C8jitswift5Hello*)*, %C8jitswift5Hello* (i64, %C8jitswift5Hello*)*, %C8jitswift5Hello* (i8*, %C8jitswift5Hello*)*, %C8jitswift5Hello* (%C8jitswift5Hello*)* }>* @_TMfC8jitswift5Hello, i32 0, i32 2) to %swift.type*) | |
@"OBJC_CLASS_$__TtC8jitswift5Hello" = alias %swift.type, %swift.type* @_TMC8jitswift5Hello | |
define i32 @main(i32, i8**) #0 { | |
entry: | |
%2 = bitcast i8** %1 to i8* | |
store i32 %0, i32* getelementptr inbounds (%Vs5Int32, %Vs5Int32* @_TZvOs11CommandLine5_argcVs5Int32, i32 0, i32 0), align 4 | |
%3 = load i64, i64* @globalinit_33_FD9A49A256BEB6AF7C48013347ADC3BA_token4, align 8 | |
%4 = icmp eq i64 %3, -1 | |
br i1 %4, label %once_done, label %once_not_done | |
once_not_done: ; preds = %entry | |
call void @swift_once(i64* @globalinit_33_FD9A49A256BEB6AF7C48013347ADC3BA_token4, i8* bitcast (void ()* @globalinit_33_FD9A49A256BEB6AF7C48013347ADC3BA_func4 to i8*)) | |
br label %once_done | |
once_done: ; preds = %once_not_done, %entry | |
%5 = load i64, i64* @globalinit_33_FD9A49A256BEB6AF7C48013347ADC3BA_token4, align 8 | |
%6 = icmp eq i64 %5, -1 | |
call void @llvm.assume(i1 %6) | |
store i8* %2, i8** getelementptr inbounds (%Sp, %Sp* @_TZvOs11CommandLine11_unsafeArgvGSpGSqGSpVs4Int8___, i32 0, i32 0), align 8 | |
%7 = call %swift.type* @_TMaC8jitswift5Hello() #7 | |
%8 = call %C8jitswift5Hello* @_TFC8jitswift5HelloCfT_S0_(%swift.type* %7) | |
%9 = bitcast %C8jitswift5Hello* %8 to i64* | |
%10 = load i64, i64* %9, align 8 | |
%11 = load i64, i64* @swift_isaMask, align 8 | |
%12 = and i64 %10, %11 | |
%13 = inttoptr i64 %12 to %swift.type* | |
%14 = bitcast %swift.type* %13 to void (%C8jitswift5Hello*)** | |
%15 = getelementptr inbounds void (%C8jitswift5Hello*)*, void (%C8jitswift5Hello*)** %14, i64 11 | |
%16 = load void (%C8jitswift5Hello*)*, void (%C8jitswift5Hello*)** %15, align 8, !invariant.load !43 | |
%17 = bitcast void (%C8jitswift5Hello*)* %16 to i8* | |
%18 = bitcast i8* %17 to void (%C8jitswift5Hello*)* | |
call void %18(%C8jitswift5Hello* %8) | |
call void bitcast (void (%objc_object*)* @objc_release to void (%C8jitswift5Hello*)*)(%C8jitswift5Hello* %8) #1 | |
%19 = call %swift.type* @_TMaP_() #7 | |
%20 = call { %swift.bridge*, i8* } @_TFs27_allocateUninitializedArrayurFBwTGSax_Bp_(i64 1, %swift.type* %19) | |
%21 = extractvalue { %swift.bridge*, i8* } %20, 0 | |
%22 = extractvalue { %swift.bridge*, i8* } %20, 1 | |
%23 = bitcast i8* %22 to %Any* | |
%24 = getelementptr inbounds %Any, %Any* %23, i32 0, i32 1 | |
store %swift.type* @_TMSS, %swift.type** %24, align 8 | |
%25 = getelementptr inbounds %Any, %Any* %23, i32 0, i32 0 | |
%object = bitcast [24 x i8]* %25 to %SS* | |
%26 = call { i64, i64, i64 } @_TFSSCfT21_builtinStringLiteralBp17utf8CodeUnitCountBw7isASCIIBi1__SS(i8* getelementptr inbounds ([22 x i8], [22 x i8]* @0, i64 0, i64 0), i64 21, i1 true) | |
%27 = extractvalue { i64, i64, i64 } %26, 0 | |
%28 = extractvalue { i64, i64, i64 } %26, 1 | |
%29 = extractvalue { i64, i64, i64 } %26, 2 | |
%object._core = getelementptr inbounds %SS, %SS* %object, i32 0, i32 0 | |
%object._core._baseAddress = getelementptr inbounds %Vs11_StringCore, %Vs11_StringCore* %object._core, i32 0, i32 0 | |
%30 = bitcast %GSqSv_* %object._core._baseAddress to i64* | |
store i64 %27, i64* %30, align 8 | |
%object._core._countAndFlags = getelementptr inbounds %Vs11_StringCore, %Vs11_StringCore* %object._core, i32 0, i32 1 | |
%object._core._countAndFlags._value = getelementptr inbounds %Su, %Su* %object._core._countAndFlags, i32 0, i32 0 | |
store i64 %28, i64* %object._core._countAndFlags._value, align 8 | |
%object._core._owner = getelementptr inbounds %Vs11_StringCore, %Vs11_StringCore* %object._core, i32 0, i32 2 | |
%31 = bitcast %GSqPs9AnyObject__* %object._core._owner to i64* | |
store i64 %29, i64* %31, align 8 | |
%32 = call { i64, i64, i64 } @_TIFs5printFTGSaP__9separatorSS10terminatorSS_T_A0_() | |
%33 = extractvalue { i64, i64, i64 } %32, 0 | |
%34 = extractvalue { i64, i64, i64 } %32, 1 | |
%35 = extractvalue { i64, i64, i64 } %32, 2 | |
%36 = call { i64, i64, i64 } @_TIFs5printFTGSaP__9separatorSS10terminatorSS_T_A1_() | |
%37 = extractvalue { i64, i64, i64 } %36, 0 | |
%38 = extractvalue { i64, i64, i64 } %36, 1 | |
%39 = extractvalue { i64, i64, i64 } %36, 2 | |
call void @_TFs5printFTGSaP__9separatorSS10terminatorSS_T_(%swift.bridge* %21, i64 %33, i64 %34, i64 %35, i64 %37, i64 %38, i64 %39) | |
%40 = call %swift.type* @_TMaCSo11XCTestSuite() #7 | |
%41 = getelementptr inbounds %swift.type, %swift.type* %40, i32 0, i32 0 | |
%.kind = load i64, i64* %41, align 8 | |
%isObjCClassWrapper = icmp eq i64 %.kind, 14 | |
br i1 %isObjCClassWrapper, label %isWrapper, label %metadataForClass.cont | |
isWrapper: ; preds = %once_done | |
%42 = bitcast %swift.type* %40 to %swift.type** | |
%43 = getelementptr inbounds %swift.type*, %swift.type** %42, i64 1 | |
%44 = load %swift.type*, %swift.type** %43, align 8, !invariant.load !43 | |
br label %metadataForClass.cont | |
metadataForClass.cont: ; preds = %isWrapper, %once_done | |
%.class = phi %swift.type* [ %40, %once_done ], [ %44, %isWrapper ] | |
%45 = bitcast %swift.type* %.class to %objc_class* | |
%46 = load i8*, i8** @"\01L_selector(defaultTestSuite)", align 8 | |
%47 = bitcast %objc_class* %45 to i8* | |
%48 = call %0* bitcast (void ()* @objc_msgSend to %0* (i8*, i8*)*)(i8* %47, i8* %46) | |
%49 = bitcast %0* %48 to i8* | |
%50 = call i8* @objc_retainAutoreleasedReturnValue(i8* %49) #1 | |
%51 = bitcast i8* %50 to %0* | |
%52 = bitcast %0* %51 to %CSo11XCTestSuite* | |
store %CSo11XCTestSuite* %52, %CSo11XCTestSuite** @_Tv8jitswift12defaultSuiteCSo11XCTestSuite, align 8 | |
%53 = load %CSo11XCTestSuite*, %CSo11XCTestSuite** @_Tv8jitswift12defaultSuiteCSo11XCTestSuite, align 8 | |
%54 = call %CSo11XCTestSuite* bitcast (%objc_object* (%objc_object*)* @objc_retain to %CSo11XCTestSuite* (%CSo11XCTestSuite*)*)(%CSo11XCTestSuite* %53) #1 | |
%55 = bitcast %CSo11XCTestSuite* %53 to %CSo6XCTest* | |
%56 = load i8*, i8** @"\01L_selector(runTest)", align 8 | |
%57 = bitcast %CSo6XCTest* %55 to %1* | |
call void bitcast (void ()* @objc_msgSend to void (%1*, i8*)*)(%1* %57, i8* %56) | |
call void bitcast (void (%objc_object*)* @objc_release to void (%CSo11XCTestSuite*)*)(%CSo11XCTestSuite* %53) #1 | |
%58 = call { %swift.bridge*, i8* } @_TFs27_allocateUninitializedArrayurFBwTGSax_Bp_(i64 1, %swift.type* %19) | |
%59 = extractvalue { %swift.bridge*, i8* } %58, 0 | |
%60 = extractvalue { %swift.bridge*, i8* } %58, 1 | |
%61 = bitcast i8* %60 to %Any* | |
%62 = getelementptr inbounds %Any, %Any* %61, i32 0, i32 1 | |
store %swift.type* @_TMSS, %swift.type** %62, align 8 | |
%63 = getelementptr inbounds %Any, %Any* %61, i32 0, i32 0 | |
%object1 = bitcast [24 x i8]* %63 to %SS* | |
%64 = call { i64, i64, i64 } @_TFSSCfT21_builtinStringLiteralBp17utf8CodeUnitCountBw7isASCIIBi1__SS(i8* getelementptr inbounds ([21 x i8], [21 x i8]* @1, i64 0, i64 0), i64 20, i1 true) | |
%65 = extractvalue { i64, i64, i64 } %64, 0 | |
%66 = extractvalue { i64, i64, i64 } %64, 1 | |
%67 = extractvalue { i64, i64, i64 } %64, 2 | |
%object1._core = getelementptr inbounds %SS, %SS* %object1, i32 0, i32 0 | |
%object1._core._baseAddress = getelementptr inbounds %Vs11_StringCore, %Vs11_StringCore* %object1._core, i32 0, i32 0 | |
%68 = bitcast %GSqSv_* %object1._core._baseAddress to i64* | |
store i64 %65, i64* %68, align 8 | |
%object1._core._countAndFlags = getelementptr inbounds %Vs11_StringCore, %Vs11_StringCore* %object1._core, i32 0, i32 1 | |
%object1._core._countAndFlags._value = getelementptr inbounds %Su, %Su* %object1._core._countAndFlags, i32 0, i32 0 | |
store i64 %66, i64* %object1._core._countAndFlags._value, align 8 | |
%object1._core._owner = getelementptr inbounds %Vs11_StringCore, %Vs11_StringCore* %object1._core, i32 0, i32 2 | |
%69 = bitcast %GSqPs9AnyObject__* %object1._core._owner to i64* | |
store i64 %67, i64* %69, align 8 | |
%70 = call { i64, i64, i64 } @_TIFs5printFTGSaP__9separatorSS10terminatorSS_T_A0_() | |
%71 = extractvalue { i64, i64, i64 } %70, 0 | |
%72 = extractvalue { i64, i64, i64 } %70, 1 | |
%73 = extractvalue { i64, i64, i64 } %70, 2 | |
%74 = call { i64, i64, i64 } @_TIFs5printFTGSaP__9separatorSS10terminatorSS_T_A1_() | |
%75 = extractvalue { i64, i64, i64 } %74, 0 | |
%76 = extractvalue { i64, i64, i64 } %74, 1 | |
%77 = extractvalue { i64, i64, i64 } %74, 2 | |
call void @_TFs5printFTGSaP__9separatorSS10terminatorSS_T_(%swift.bridge* %59, i64 %71, i64 %72, i64 %73, i64 %75, i64 %76, i64 %77) | |
ret i32 0 | |
} | |
declare void @globalinit_33_FD9A49A256BEB6AF7C48013347ADC3BA_func4() #0 | |
declare void @swift_once(i64*, i8*) | |
; Function Attrs: nounwind | |
declare void @llvm.assume(i1) #1 | |
define hidden i64 @_TF8jitswift6testeeFT1aSi1bSi_Si(i64, i64) #0 { | |
entry: | |
%2 = call %swift.type* @_TMaP_() #7 | |
%3 = call { %swift.bridge*, i8* } @_TFs27_allocateUninitializedArrayurFBwTGSax_Bp_(i64 1, %swift.type* %2) | |
%4 = extractvalue { %swift.bridge*, i8* } %3, 0 | |
%5 = extractvalue { %swift.bridge*, i8* } %3, 1 | |
%6 = bitcast i8* %5 to %Any* | |
%7 = getelementptr inbounds %Any, %Any* %6, i32 0, i32 1 | |
store %swift.type* @_TMSS, %swift.type** %7, align 8 | |
%8 = getelementptr inbounds %Any, %Any* %6, i32 0, i32 0 | |
%object = bitcast [24 x i8]* %8 to %SS* | |
%9 = call { i64, i64, i64 } @_TFSSCfT21_builtinStringLiteralBp17utf8CodeUnitCountBw7isASCIIBi1__SS(i8* getelementptr inbounds ([66 x i8], [66 x i8]* @2, i64 0, i64 0), i64 65, i1 true) | |
%10 = extractvalue { i64, i64, i64 } %9, 0 | |
%11 = extractvalue { i64, i64, i64 } %9, 1 | |
%12 = extractvalue { i64, i64, i64 } %9, 2 | |
%object._core = getelementptr inbounds %SS, %SS* %object, i32 0, i32 0 | |
%object._core._baseAddress = getelementptr inbounds %Vs11_StringCore, %Vs11_StringCore* %object._core, i32 0, i32 0 | |
%13 = bitcast %GSqSv_* %object._core._baseAddress to i64* | |
store i64 %10, i64* %13, align 8 | |
%object._core._countAndFlags = getelementptr inbounds %Vs11_StringCore, %Vs11_StringCore* %object._core, i32 0, i32 1 | |
%object._core._countAndFlags._value = getelementptr inbounds %Su, %Su* %object._core._countAndFlags, i32 0, i32 0 | |
store i64 %11, i64* %object._core._countAndFlags._value, align 8 | |
%object._core._owner = getelementptr inbounds %Vs11_StringCore, %Vs11_StringCore* %object._core, i32 0, i32 2 | |
%14 = bitcast %GSqPs9AnyObject__* %object._core._owner to i64* | |
store i64 %12, i64* %14, align 8 | |
%15 = call { i64, i64, i64 } @_TIFs5printFTGSaP__9separatorSS10terminatorSS_T_A0_() | |
%16 = extractvalue { i64, i64, i64 } %15, 0 | |
%17 = extractvalue { i64, i64, i64 } %15, 1 | |
%18 = extractvalue { i64, i64, i64 } %15, 2 | |
%19 = call { i64, i64, i64 } @_TIFs5printFTGSaP__9separatorSS10terminatorSS_T_A1_() | |
%20 = extractvalue { i64, i64, i64 } %19, 0 | |
%21 = extractvalue { i64, i64, i64 } %19, 1 | |
%22 = extractvalue { i64, i64, i64 } %19, 2 | |
call void @_TFs5printFTGSaP__9separatorSS10terminatorSS_T_(%swift.bridge* %4, i64 %16, i64 %17, i64 %18, i64 %20, i64 %21, i64 %22) | |
%23 = call { i64, i1 } @llvm.sadd.with.overflow.i64(i64 %0, i64 %1) | |
%24 = extractvalue { i64, i1 } %23, 0 | |
%25 = extractvalue { i64, i1 } %23, 1 | |
br i1 %25, label %27, label %26 | |
; <label>:26 ; preds = %entry | |
ret i64 %24 | |
; <label>:27 ; preds = %entry | |
call void @llvm.trap() | |
unreachable | |
} | |
define hidden void @_TFC8jitswift5Hello7testFoofT_T_(%C8jitswift5Hello*) #0 { | |
entry: | |
%1 = call %swift.type* @_TMaP_() #7 | |
%2 = call { %swift.bridge*, i8* } @_TFs27_allocateUninitializedArrayurFBwTGSax_Bp_(i64 1, %swift.type* %1) | |
%3 = extractvalue { %swift.bridge*, i8* } %2, 0 | |
%4 = extractvalue { %swift.bridge*, i8* } %2, 1 | |
%5 = bitcast i8* %4 to %Any* | |
%6 = getelementptr inbounds %Any, %Any* %5, i32 0, i32 1 | |
store %swift.type* @_TMSS, %swift.type** %6, align 8 | |
%7 = getelementptr inbounds %Any, %Any* %5, i32 0, i32 0 | |
%object = bitcast [24 x i8]* %7 to %SS* | |
%8 = call { i64, i64, i64 } @_TFSSCfT21_builtinStringLiteralBp17utf8CodeUnitCountBw7isASCIIBi1__SS(i8* getelementptr inbounds ([12 x i8], [12 x i8]* @3, i64 0, i64 0), i64 11, i1 true) | |
%9 = extractvalue { i64, i64, i64 } %8, 0 | |
%10 = extractvalue { i64, i64, i64 } %8, 1 | |
%11 = extractvalue { i64, i64, i64 } %8, 2 | |
%object._core = getelementptr inbounds %SS, %SS* %object, i32 0, i32 0 | |
%object._core._baseAddress = getelementptr inbounds %Vs11_StringCore, %Vs11_StringCore* %object._core, i32 0, i32 0 | |
%12 = bitcast %GSqSv_* %object._core._baseAddress to i64* | |
store i64 %9, i64* %12, align 8 | |
%object._core._countAndFlags = getelementptr inbounds %Vs11_StringCore, %Vs11_StringCore* %object._core, i32 0, i32 1 | |
%object._core._countAndFlags._value = getelementptr inbounds %Su, %Su* %object._core._countAndFlags, i32 0, i32 0 | |
store i64 %10, i64* %object._core._countAndFlags._value, align 8 | |
%object._core._owner = getelementptr inbounds %Vs11_StringCore, %Vs11_StringCore* %object._core, i32 0, i32 2 | |
%13 = bitcast %GSqPs9AnyObject__* %object._core._owner to i64* | |
store i64 %11, i64* %13, align 8 | |
%14 = call { i64, i64, i64 } @_TIFs5printFTGSaP__9separatorSS10terminatorSS_T_A0_() | |
%15 = extractvalue { i64, i64, i64 } %14, 0 | |
%16 = extractvalue { i64, i64, i64 } %14, 1 | |
%17 = extractvalue { i64, i64, i64 } %14, 2 | |
%18 = call { i64, i64, i64 } @_TIFs5printFTGSaP__9separatorSS10terminatorSS_T_A1_() | |
%19 = extractvalue { i64, i64, i64 } %18, 0 | |
%20 = extractvalue { i64, i64, i64 } %18, 1 | |
%21 = extractvalue { i64, i64, i64 } %18, 2 | |
call void @_TFs5printFTGSaP__9separatorSS10terminatorSS_T_(%swift.bridge* %3, i64 %15, i64 %16, i64 %17, i64 %19, i64 %20, i64 %21) | |
%22 = call noalias %swift.refcounted* @rt_swift_allocObject(%swift.type* getelementptr inbounds (%swift.full_boxmetadata, %swift.full_boxmetadata* @metadata, i32 0, i32 2), i64 32, i64 7) #1 | |
%23 = bitcast %swift.refcounted* %22 to <{ %swift.refcounted, %swift.function }>* | |
%24 = getelementptr inbounds <{ %swift.refcounted, %swift.function }>, <{ %swift.refcounted, %swift.function }>* %23, i32 0, i32 1 | |
%.fn = getelementptr inbounds %swift.function, %swift.function* %24, i32 0, i32 0 | |
store i8* bitcast (i64 (%swift.refcounted*, %swift.error**)* @_TFFC8jitswift5Hello7testFooFT_T_u_KzT_Si to i8*), i8** %.fn, align 8 | |
%.data = getelementptr inbounds %swift.function, %swift.function* %24, i32 0, i32 1 | |
store %swift.refcounted* null, %swift.refcounted** %.data, align 8 | |
%25 = call noalias %swift.refcounted* @rt_swift_allocObject(%swift.type* getelementptr inbounds (%swift.full_boxmetadata, %swift.full_boxmetadata* @metadata.3, i32 0, i32 2), i64 32, i64 7) #1 | |
%26 = bitcast %swift.refcounted* %25 to <{ %swift.refcounted, %swift.function }>* | |
%27 = getelementptr inbounds <{ %swift.refcounted, %swift.function }>, <{ %swift.refcounted, %swift.function }>* %26, i32 0, i32 1 | |
%.fn1 = getelementptr inbounds %swift.function, %swift.function* %27, i32 0, i32 0 | |
store i8* bitcast (i64 (%swift.refcounted*, %swift.error**)* @_TFFC8jitswift5Hello7testFooFT_T_u0_KzT_Si to i8*), i8** %.fn1, align 8 | |
%.data2 = getelementptr inbounds %swift.function, %swift.function* %27, i32 0, i32 1 | |
store %swift.refcounted* null, %swift.refcounted** %.data2, align 8 | |
%28 = call { i8*, %swift.refcounted* } @_TIF6XCTest14XCTAssertEqualuRxs9EquatablerFTKzT_xKzT_xKT_SS4fileVs12StaticString4lineSu_T_A1_(%swift.type* @_TMSi, i8** @_TWPSis9Equatables) | |
%29 = extractvalue { i8*, %swift.refcounted* } %28, 0 | |
%30 = extractvalue { i8*, %swift.refcounted* } %28, 1 | |
br label %31 | |
; <label>:31 ; preds = %entry | |
br label %32 | |
; <label>:32 ; preds = %31 | |
br label %33 | |
; <label>:33 ; preds = %32 | |
call void @_TF6XCTest14XCTAssertEqualuRxs9EquatablerFTKzT_xKzT_xKT_SS4fileVs12StaticString4lineSu_T_(i8* bitcast (void (%Si*, %swift.refcounted*, %swift.error**)* @_TPA__TTRXFo__dSizoPs5Error__XFo__iSizoPS___ to i8*), %swift.refcounted* %22, i8* bitcast (void (%Si*, %swift.refcounted*, %swift.error**)* @_TPA__TTRXFo__dSizoPs5Error__XFo__iSizoPS___.4 to i8*), %swift.refcounted* %25, i8* %29, %swift.refcounted* %30, i64 ptrtoint ([15 x i8]* @5 to i64), i64 14, i8 2, i64 16, %swift.type* @_TMSi, i8** @_TWPSis9Equatables) | |
ret void | |
} | |
define linkonce_odr hidden i64 @_TFFC8jitswift5Hello7testFooFT_T_u_KzT_Si(%swift.refcounted*, %swift.error**) #0 { | |
entry: | |
%2 = call i64 @_TF8jitswift6testeeFT1aSi1bSi_Si(i64 2, i64 2) | |
ret i64 %2 | |
} | |
define linkonce_odr hidden void @_TTRXFo__dSizoPs5Error__XFo__iSizoPS___(%Si* noalias nocapture sret, i8*, %swift.refcounted*, %swift.refcounted*, %swift.error**) #0 { | |
entry: | |
%5 = bitcast i8* %1 to i64 (%swift.refcounted*, %swift.error**)* | |
%6 = call i64 %5(%swift.refcounted* %2, %swift.error** nocapture %4) #9 | |
%7 = load %swift.error*, %swift.error** %4, align 8 | |
%8 = icmp ne %swift.error* %7, null | |
br i1 %8, label %11, label %9 | |
; <label>:9 ; preds = %entry | |
%10 = phi i64 [ %6, %entry ] | |
%._value = getelementptr inbounds %Si, %Si* %0, i32 0, i32 0 | |
store i64 %10, i64* %._value, align 8 | |
ret void | |
; <label>:11 ; preds = %entry | |
%12 = phi %swift.error* [ %7, %entry ] | |
store %swift.error* null, %swift.error** %4, align 8 | |
call void @swift_willThrow(%swift.error* %12) #1 | |
store %swift.error* %12, %swift.error** %4, align 8 | |
ret void | |
} | |
define linkonce_odr hidden i64 @_TFFC8jitswift5Hello7testFooFT_T_u0_KzT_Si(%swift.refcounted*, %swift.error**) #0 { | |
entry: | |
ret i64 4 | |
} | |
define internal void @_TToFC8jitswift5Hello7testFoofT_T_(%2*, i8*) unnamed_addr #0 { | |
entry: | |
%2 = bitcast %2* %0 to %C8jitswift5Hello* | |
%3 = bitcast %C8jitswift5Hello* %2 to i64* | |
%4 = load i64, i64* %3, align 8 | |
%5 = load i64, i64* @swift_isaMask, align 8 | |
%6 = and i64 %4, %5 | |
%7 = inttoptr i64 %6 to %swift.type* | |
%8 = call %C8jitswift5Hello* bitcast (%objc_object* (%objc_object*)* @objc_retain to %C8jitswift5Hello* (%C8jitswift5Hello*)*)(%C8jitswift5Hello* %2) #1 | |
call void @_TFC8jitswift5Hello7testFoofT_T_(%C8jitswift5Hello* %2) #9 | |
call void bitcast (void (%objc_object*)* @objc_release to void (%C8jitswift5Hello*)*)(%C8jitswift5Hello* %2) #1 | |
ret void | |
} | |
define hidden void @_TFC8jitswift5Hello3sayfT_T_(%C8jitswift5Hello*) #0 { | |
entry: | |
%1 = call %swift.type* @_TMaP_() #7 | |
%2 = call { %swift.bridge*, i8* } @_TFs27_allocateUninitializedArrayurFBwTGSax_Bp_(i64 1, %swift.type* %1) | |
%3 = extractvalue { %swift.bridge*, i8* } %2, 0 | |
%4 = extractvalue { %swift.bridge*, i8* } %2, 1 | |
%5 = bitcast i8* %4 to %Any* | |
%6 = getelementptr inbounds %Any, %Any* %5, i32 0, i32 1 | |
store %swift.type* @_TMSS, %swift.type** %6, align 8 | |
%7 = getelementptr inbounds %Any, %Any* %5, i32 0, i32 0 | |
%object = bitcast [24 x i8]* %7 to %SS* | |
%8 = call { i64, i64, i64 } @_TFSSCfT21_builtinStringLiteralBp17utf8CodeUnitCountBw7isASCIIBi1__SS(i8* getelementptr inbounds ([17 x i8], [17 x i8]* @6, i64 0, i64 0), i64 16, i1 true) | |
%9 = extractvalue { i64, i64, i64 } %8, 0 | |
%10 = extractvalue { i64, i64, i64 } %8, 1 | |
%11 = extractvalue { i64, i64, i64 } %8, 2 | |
%object._core = getelementptr inbounds %SS, %SS* %object, i32 0, i32 0 | |
%object._core._baseAddress = getelementptr inbounds %Vs11_StringCore, %Vs11_StringCore* %object._core, i32 0, i32 0 | |
%12 = bitcast %GSqSv_* %object._core._baseAddress to i64* | |
store i64 %9, i64* %12, align 8 | |
%object._core._countAndFlags = getelementptr inbounds %Vs11_StringCore, %Vs11_StringCore* %object._core, i32 0, i32 1 | |
%object._core._countAndFlags._value = getelementptr inbounds %Su, %Su* %object._core._countAndFlags, i32 0, i32 0 | |
store i64 %10, i64* %object._core._countAndFlags._value, align 8 | |
%object._core._owner = getelementptr inbounds %Vs11_StringCore, %Vs11_StringCore* %object._core, i32 0, i32 2 | |
%13 = bitcast %GSqPs9AnyObject__* %object._core._owner to i64* | |
store i64 %11, i64* %13, align 8 | |
%14 = call { i64, i64, i64 } @_TIFs5printFTGSaP__9separatorSS10terminatorSS_T_A0_() | |
%15 = extractvalue { i64, i64, i64 } %14, 0 | |
%16 = extractvalue { i64, i64, i64 } %14, 1 | |
%17 = extractvalue { i64, i64, i64 } %14, 2 | |
%18 = call { i64, i64, i64 } @_TIFs5printFTGSaP__9separatorSS10terminatorSS_T_A1_() | |
%19 = extractvalue { i64, i64, i64 } %18, 0 | |
%20 = extractvalue { i64, i64, i64 } %18, 1 | |
%21 = extractvalue { i64, i64, i64 } %18, 2 | |
call void @_TFs5printFTGSaP__9separatorSS10terminatorSS_T_(%swift.bridge* %3, i64 %15, i64 %16, i64 %17, i64 %19, i64 %20, i64 %21) | |
ret void | |
} | |
define internal void @_TToFC8jitswift5Hello3sayfT_T_(%2*, i8*) unnamed_addr #0 { | |
entry: | |
%2 = bitcast %2* %0 to %C8jitswift5Hello* | |
%3 = bitcast %C8jitswift5Hello* %2 to i64* | |
%4 = load i64, i64* %3, align 8 | |
%5 = load i64, i64* @swift_isaMask, align 8 | |
%6 = and i64 %4, %5 | |
%7 = inttoptr i64 %6 to %swift.type* | |
%8 = call %C8jitswift5Hello* bitcast (%objc_object* (%objc_object*)* @objc_retain to %C8jitswift5Hello* (%C8jitswift5Hello*)*)(%C8jitswift5Hello* %2) #1 | |
call void @_TFC8jitswift5Hello3sayfT_T_(%C8jitswift5Hello* %2) #9 | |
call void bitcast (void (%objc_object*)* @objc_release to void (%C8jitswift5Hello*)*)(%C8jitswift5Hello* %2) #1 | |
ret void | |
} | |
define hidden void @_TFC8jitswift5HelloD(%C8jitswift5Hello*) #0 { | |
entry: | |
%objc_super = alloca %objc_super, align 8 | |
%1 = bitcast %C8jitswift5Hello* %0 to %CSo10XCTestCase* | |
%2 = bitcast %CSo10XCTestCase* %1 to %objc_object* | |
%3 = call %swift.type* @_TMaC8jitswift5Hello() #7 | |
%4 = bitcast %swift.type* %3 to %objc_class* | |
%5 = getelementptr %objc_super, %objc_super* %objc_super, i32 0, i32 0 | |
store %objc_object* %2, %objc_object** %5, align 8 | |
%6 = getelementptr %objc_super, %objc_super* %objc_super, i32 0, i32 1 | |
store %objc_class* %4, %objc_class** %6, align 8 | |
%7 = load i8*, i8** @"\01L_selector(dealloc)", align 8 | |
call void bitcast (void ()* @objc_msgSendSuper2 to void (%objc_super*, i8*)*)(%objc_super* %objc_super, i8* %7) | |
ret void | |
} | |
define hidden %C8jitswift5Hello* @_TFC8jitswift5HellocfT10invocationGSqCSo12NSInvocation__S0_(i64, %C8jitswift5Hello*) #0 { | |
entry: | |
%2 = alloca %C8jitswift5Hello*, align 8 | |
%objc_super = alloca %objc_super, align 8 | |
%3 = bitcast %C8jitswift5Hello** %2 to i8* | |
call void @llvm.lifetime.start(i64 8, i8* %3) | |
store %C8jitswift5Hello* %1, %C8jitswift5Hello** %2, align 8 | |
%4 = bitcast %C8jitswift5Hello* %1 to %CSo10XCTestCase* | |
%5 = bitcast %CSo10XCTestCase* %4 to %objc_object* | |
%6 = call %swift.type* @_TMaC8jitswift5Hello() #7 | |
%7 = bitcast %swift.type* %6 to %objc_class* | |
%8 = getelementptr %objc_super, %objc_super* %objc_super, i32 0, i32 0 | |
store %objc_object* %5, %objc_object** %8, align 8 | |
%9 = getelementptr %objc_super, %objc_super* %objc_super, i32 0, i32 1 | |
store %objc_class* %7, %objc_class** %9, align 8 | |
%10 = load i8*, i8** @"\01L_selector(initWithInvocation:)", align 8 | |
%11 = inttoptr i64 %0 to %3* | |
%12 = call %4* bitcast (void ()* @objc_msgSendSuper2 to %4* (%objc_super*, i8*, %3*)*)(%objc_super* %objc_super, i8* %10, %3* %11) | |
%13 = bitcast %4* %12 to %CSo10XCTestCase* | |
%14 = bitcast %CSo10XCTestCase* %13 to %C8jitswift5Hello* | |
store %C8jitswift5Hello* %14, %C8jitswift5Hello** %2, align 8 | |
%15 = call %C8jitswift5Hello* bitcast (%objc_object* (%objc_object*)* @objc_retain to %C8jitswift5Hello* (%C8jitswift5Hello*)*)(%C8jitswift5Hello* %14) #1 | |
%16 = inttoptr i64 %0 to %objc_object* | |
call void @objc_release(%objc_object* %16) #1 | |
call void bitcast (void (%objc_object*)* @objc_release to void (%C8jitswift5Hello*)*)(%C8jitswift5Hello* %14) #1 | |
%17 = bitcast %C8jitswift5Hello** %2 to i8* | |
call void @llvm.lifetime.end(i64 8, i8* %17) | |
ret %C8jitswift5Hello* %14 | |
} | |
define hidden %C8jitswift5Hello* @_TFC8jitswift5HelloCfT10invocationGSqCSo12NSInvocation__S0_(i64, %swift.type*) #0 { | |
entry: | |
%2 = call %swift.type* @_TMaC8jitswift5Hello() #7 | |
%3 = bitcast %swift.type* %2 to %objc_class* | |
%4 = load i8*, i8** @"\01L_selector(allocWithZone:)", align 8 | |
%5 = bitcast %objc_class* %3 to i8* | |
%6 = call %2* bitcast (void ()* @objc_msgSend to %2* (i8*, i8*, i8*)*)(i8* %5, i8* %4, i8* null) | |
%7 = bitcast %2* %6 to %C8jitswift5Hello* | |
%8 = call %C8jitswift5Hello* @_TFC8jitswift5HellocfT10invocationGSqCSo12NSInvocation__S0_(i64 %0, %C8jitswift5Hello* %7) | |
ret %C8jitswift5Hello* %8 | |
} | |
define internal %2* @_TToFC8jitswift5HellocfT10invocationGSqCSo12NSInvocation__S0_(%2*, i8*, %3*) unnamed_addr #0 { | |
entry: | |
%3 = bitcast %2* %0 to %C8jitswift5Hello* | |
%4 = ptrtoint %3* %2 to i64 | |
%5 = bitcast %C8jitswift5Hello* %3 to i64* | |
%6 = load i64, i64* %5, align 8 | |
%7 = load i64, i64* @swift_isaMask, align 8 | |
%8 = and i64 %6, %7 | |
%9 = inttoptr i64 %8 to %swift.type* | |
%10 = inttoptr i64 %4 to %objc_object* | |
%11 = call %objc_object* @objc_retain(%objc_object* %10) #1 | |
%12 = call %C8jitswift5Hello* @_TFC8jitswift5HellocfT10invocationGSqCSo12NSInvocation__S0_(i64 %4, %C8jitswift5Hello* %3) #9 | |
%13 = bitcast %C8jitswift5Hello* %12 to %2* | |
ret %2* %13 | |
} | |
define hidden %C8jitswift5Hello* @_TFC8jitswift5HellocfT8selectorV10ObjectiveC8Selector_S0_(i8*, %C8jitswift5Hello*) #0 { | |
entry: | |
%2 = alloca %C8jitswift5Hello*, align 8 | |
%objc_super = alloca %objc_super, align 8 | |
%3 = bitcast %C8jitswift5Hello** %2 to i8* | |
call void @llvm.lifetime.start(i64 8, i8* %3) | |
store %C8jitswift5Hello* %1, %C8jitswift5Hello** %2, align 8 | |
%4 = bitcast %C8jitswift5Hello* %1 to %CSo10XCTestCase* | |
%5 = bitcast %CSo10XCTestCase* %4 to %objc_object* | |
%6 = call %swift.type* @_TMaC8jitswift5Hello() #7 | |
%7 = bitcast %swift.type* %6 to %objc_class* | |
%8 = getelementptr %objc_super, %objc_super* %objc_super, i32 0, i32 0 | |
store %objc_object* %5, %objc_object** %8, align 8 | |
%9 = getelementptr %objc_super, %objc_super* %objc_super, i32 0, i32 1 | |
store %objc_class* %7, %objc_class** %9, align 8 | |
%10 = load i8*, i8** @"\01L_selector(initWithSelector:)", align 8 | |
%11 = call %4* bitcast (void ()* @objc_msgSendSuper2 to %4* (%objc_super*, i8*, i8*)*)(%objc_super* %objc_super, i8* %10, i8* %0) | |
%12 = bitcast %4* %11 to %CSo10XCTestCase* | |
%13 = bitcast %CSo10XCTestCase* %12 to %C8jitswift5Hello* | |
store %C8jitswift5Hello* %13, %C8jitswift5Hello** %2, align 8 | |
%14 = bitcast %C8jitswift5Hello** %2 to i8* | |
call void @llvm.lifetime.end(i64 8, i8* %14) | |
ret %C8jitswift5Hello* %13 | |
} | |
define hidden %C8jitswift5Hello* @_TFC8jitswift5HelloCfT8selectorV10ObjectiveC8Selector_S0_(i8*, %swift.type*) #0 { | |
entry: | |
%2 = call %swift.type* @_TMaC8jitswift5Hello() #7 | |
%3 = bitcast %swift.type* %2 to %objc_class* | |
%4 = load i8*, i8** @"\01L_selector(allocWithZone:)", align 8 | |
%5 = bitcast %objc_class* %3 to i8* | |
%6 = call %2* bitcast (void ()* @objc_msgSend to %2* (i8*, i8*, i8*)*)(i8* %5, i8* %4, i8* null) | |
%7 = bitcast %2* %6 to %C8jitswift5Hello* | |
%8 = call %C8jitswift5Hello* @_TFC8jitswift5HellocfT8selectorV10ObjectiveC8Selector_S0_(i8* %0, %C8jitswift5Hello* %7) | |
ret %C8jitswift5Hello* %8 | |
} | |
define internal %2* @_TToFC8jitswift5HellocfT8selectorV10ObjectiveC8Selector_S0_(%2*, i8*, i8*) unnamed_addr #0 { | |
entry: | |
%3 = bitcast %2* %0 to %C8jitswift5Hello* | |
%4 = bitcast %C8jitswift5Hello* %3 to i64* | |
%5 = load i64, i64* %4, align 8 | |
%6 = load i64, i64* @swift_isaMask, align 8 | |
%7 = and i64 %5, %6 | |
%8 = inttoptr i64 %7 to %swift.type* | |
%9 = call %C8jitswift5Hello* @_TFC8jitswift5HellocfT8selectorV10ObjectiveC8Selector_S0_(i8* %2, %C8jitswift5Hello* %3) #9 | |
%10 = bitcast %C8jitswift5Hello* %9 to %2* | |
ret %2* %10 | |
} | |
define hidden %C8jitswift5Hello* @_TFC8jitswift5HellocfT_S0_(%C8jitswift5Hello*) #0 { | |
entry: | |
%1 = alloca %C8jitswift5Hello*, align 8 | |
%objc_super = alloca %objc_super, align 8 | |
%2 = bitcast %C8jitswift5Hello** %1 to i8* | |
call void @llvm.lifetime.start(i64 8, i8* %2) | |
store %C8jitswift5Hello* %0, %C8jitswift5Hello** %1, align 8 | |
%3 = bitcast %C8jitswift5Hello* %0 to %CSo10XCTestCase* | |
%4 = bitcast %CSo10XCTestCase* %3 to %objc_object* | |
%5 = call %swift.type* @_TMaC8jitswift5Hello() #7 | |
%6 = bitcast %swift.type* %5 to %objc_class* | |
%7 = getelementptr %objc_super, %objc_super* %objc_super, i32 0, i32 0 | |
store %objc_object* %4, %objc_object** %7, align 8 | |
%8 = getelementptr %objc_super, %objc_super* %objc_super, i32 0, i32 1 | |
store %objc_class* %6, %objc_class** %8, align 8 | |
%9 = load i8*, i8** @"\01L_selector(init)", align 8 | |
%10 = call %4* bitcast (void ()* @objc_msgSendSuper2 to %4* (%objc_super*, i8*)*)(%objc_super* %objc_super, i8* %9) | |
%11 = bitcast %4* %10 to %CSo10XCTestCase* | |
%12 = bitcast %CSo10XCTestCase* %11 to %C8jitswift5Hello* | |
store %C8jitswift5Hello* %12, %C8jitswift5Hello** %1, align 8 | |
%13 = bitcast %C8jitswift5Hello** %1 to i8* | |
call void @llvm.lifetime.end(i64 8, i8* %13) | |
ret %C8jitswift5Hello* %12 | |
} | |
define hidden %C8jitswift5Hello* @_TFC8jitswift5HelloCfT_S0_(%swift.type*) #0 { | |
entry: | |
%1 = call %swift.type* @_TMaC8jitswift5Hello() #7 | |
%2 = bitcast %swift.type* %1 to %objc_class* | |
%3 = load i8*, i8** @"\01L_selector(allocWithZone:)", align 8 | |
%4 = bitcast %objc_class* %2 to i8* | |
%5 = call %2* bitcast (void ()* @objc_msgSend to %2* (i8*, i8*, i8*)*)(i8* %4, i8* %3, i8* null) | |
%6 = bitcast %2* %5 to %C8jitswift5Hello* | |
%7 = call %C8jitswift5Hello* @_TFC8jitswift5HellocfT_S0_(%C8jitswift5Hello* %6) | |
ret %C8jitswift5Hello* %7 | |
} | |
; Function Attrs: nounwind readnone | |
define hidden %swift.type* @_TMaC8jitswift5Hello() #2 { | |
entry: | |
%0 = load %swift.type*, %swift.type** @_TMLC8jitswift5Hello, align 8 | |
%1 = icmp eq %swift.type* %0, null | |
br i1 %1, label %cacheIsNull, label %cont | |
cacheIsNull: ; preds = %entry | |
%2 = call %objc_class* @rt_swift_getInitializedObjCClass(%objc_class* bitcast (i64* getelementptr inbounds (<{ void (%C8jitswift5Hello*)*, i8**, i64, %objc_class*, %swift.opaque*, %swift.opaque*, i64, i32, i32, i32, i16, i16, i32, i32, i64, i8*, void (%C8jitswift5Hello*)*, void (%C8jitswift5Hello*)*, %C8jitswift5Hello* (i64, %C8jitswift5Hello*)*, %C8jitswift5Hello* (i8*, %C8jitswift5Hello*)*, %C8jitswift5Hello* (%C8jitswift5Hello*)* }>, <{ void (%C8jitswift5Hello*)*, i8**, i64, %objc_class*, %swift.opaque*, %swift.opaque*, i64, i32, i32, i32, i16, i16, i32, i32, i64, i8*, void (%C8jitswift5Hello*)*, void (%C8jitswift5Hello*)*, %C8jitswift5Hello* (i64, %C8jitswift5Hello*)*, %C8jitswift5Hello* (i8*, %C8jitswift5Hello*)*, %C8jitswift5Hello* (%C8jitswift5Hello*)* }>* @_TMfC8jitswift5Hello, i32 0, i32 2) to %objc_class*)) | |
%3 = bitcast %objc_class* %2 to %swift.type* | |
store atomic %swift.type* %3, %swift.type** @_TMLC8jitswift5Hello release, align 8 | |
br label %cont | |
cont: ; preds = %cacheIsNull, %entry | |
%4 = phi %swift.type* [ %0, %entry ], [ %3, %cacheIsNull ] | |
ret %swift.type* %4 | |
} | |
declare void @objc_release(%objc_object*) | |
; Function Attrs: noinline | |
declare void @_TFs5printFTGSaP__9separatorSS10terminatorSS_T_(%swift.bridge*, i64, i64, i64, i64, i64, i64) #3 | |
declare { %swift.bridge*, i8* } @_TFs27_allocateUninitializedArrayurFBwTGSax_Bp_(i64, %swift.type*) #0 | |
; Function Attrs: nounwind readnone | |
define linkonce_odr hidden %swift.type* @_TMaP_() #2 { | |
entry: | |
%protocols = alloca [0 x %swift.protocol*], align 8 | |
%0 = load %swift.type*, %swift.type** @_TMLP_, align 8 | |
%1 = icmp eq %swift.type* %0, null | |
br i1 %1, label %cacheIsNull, label %cont | |
cacheIsNull: ; preds = %entry | |
%2 = bitcast [0 x %swift.protocol*]* %protocols to i8* | |
call void @llvm.lifetime.start(i64 0, i8* %2) | |
%3 = bitcast [0 x %swift.protocol*]* %protocols to %swift.protocol** | |
%4 = call %swift.type* @rt_swift_getExistentialTypeMetadata(i64 0, %swift.protocol** %3) #1 | |
%5 = bitcast %swift.protocol** %3 to i8* | |
call void @llvm.lifetime.end(i64 0, i8* %5) | |
store atomic %swift.type* %4, %swift.type** @_TMLP_ release, align 8 | |
br label %cont | |
cont: ; preds = %cacheIsNull, %entry | |
%6 = phi %swift.type* [ %0, %entry ], [ %4, %cacheIsNull ] | |
ret %swift.type* %6 | |
} | |
; Function Attrs: argmemonly nounwind | |
declare void @llvm.lifetime.start(i64, i8* nocapture) #4 | |
; Function Attrs: noinline nounwind | |
define linkonce_odr hidden %swift.type* @rt_swift_getExistentialTypeMetadata(i64, %swift.protocol**) #5 { | |
entry: | |
%load = load %swift.type* (i64, %swift.protocol**)*, %swift.type* (i64, %swift.protocol**)** @_swift_getExistentialTypeMetadata | |
%2 = tail call %swift.type* %load(i64 %0, %swift.protocol** %1) | |
ret %swift.type* %2 | |
} | |
; Function Attrs: argmemonly nounwind | |
declare void @llvm.lifetime.end(i64, i8* nocapture) #4 | |
; Function Attrs: readonly | |
declare { i64, i64, i64 } @_TFSSCfT21_builtinStringLiteralBp17utf8CodeUnitCountBw7isASCIIBi1__SS(i8*, i64, i1) #6 | |
; Function Attrs: noinline | |
declare { i64, i64, i64 } @_TIFs5printFTGSaP__9separatorSS10terminatorSS_T_A0_() #3 | |
; Function Attrs: noinline | |
declare { i64, i64, i64 } @_TIFs5printFTGSaP__9separatorSS10terminatorSS_T_A1_() #3 | |
; Function Attrs: nounwind readnone | |
define linkonce_odr hidden %swift.type* @_TMaCSo11XCTestSuite() #2 { | |
entry: | |
%0 = load %swift.type*, %swift.type** @_TMLCSo11XCTestSuite, align 8 | |
%1 = icmp eq %swift.type* %0, null | |
br i1 %1, label %cacheIsNull, label %cont | |
cacheIsNull: ; preds = %entry | |
%2 = load %objc_class*, %objc_class** @"OBJC_CLASS_REF_$_XCTestSuite", align 8 | |
%3 = call %objc_class* @rt_swift_getInitializedObjCClass(%objc_class* %2) | |
%4 = call %swift.type* @swift_getObjCClassMetadata(%objc_class* %3) #7 | |
store atomic %swift.type* %4, %swift.type** @_TMLCSo11XCTestSuite release, align 8 | |
br label %cont | |
cont: ; preds = %cacheIsNull, %entry | |
%5 = phi %swift.type* [ %0, %entry ], [ %4, %cacheIsNull ] | |
ret %swift.type* %5 | |
} | |
; Function Attrs: noinline nounwind | |
define linkonce_odr hidden %objc_class* @rt_swift_getInitializedObjCClass(%objc_class*) #5 { | |
entry: | |
%load = load %objc_class* (%objc_class*)*, %objc_class* (%objc_class*)** @_swift_getInitializedObjCClass | |
%1 = tail call %objc_class* %load(%objc_class* %0) | |
ret %objc_class* %1 | |
} | |
declare %swift.type* @swift_getObjCClassMetadata(%objc_class*) | |
declare void @objc_msgSend() | |
declare i8* @objc_retainAutoreleasedReturnValue(i8*) | |
declare %objc_object* @objc_retain(%objc_object*) | |
; Function Attrs: nounwind readnone | |
declare { i64, i1 } @llvm.sadd.with.overflow.i64(i64, i64) #7 | |
; Function Attrs: noreturn nounwind | |
declare void @llvm.trap() #8 | |
declare void @_TF6XCTest14XCTAssertEqualuRxs9EquatablerFTKzT_xKzT_xKT_SS4fileVs12StaticString4lineSu_T_(i8*, %swift.refcounted*, i8*, %swift.refcounted*, i8*, %swift.refcounted*, i64, i64, i8, i64, %swift.type*, i8**) #0 | |
define private void @objectdestroy(%swift.refcounted*) #0 { | |
entry: | |
%1 = bitcast %swift.refcounted* %0 to <{ %swift.refcounted, %swift.function }>* | |
%2 = getelementptr inbounds <{ %swift.refcounted, %swift.function }>, <{ %swift.refcounted, %swift.function }>* %1, i32 0, i32 1 | |
%.data = getelementptr inbounds %swift.function, %swift.function* %2, i32 0, i32 1 | |
%3 = load %swift.refcounted*, %swift.refcounted** %.data, align 8 | |
call void @rt_swift_release(%swift.refcounted* %3) #1 | |
call void @rt_swift_deallocObject(%swift.refcounted* %0, i64 32, i64 7) | |
ret void | |
} | |
; Function Attrs: noinline nounwind | |
define linkonce_odr hidden void @rt_swift_release(%swift.refcounted*) #5 { | |
entry: | |
%load = load void (%swift.refcounted*)*, void (%swift.refcounted*)** @_swift_release | |
tail call void %load(%swift.refcounted* %0) | |
ret void | |
} | |
; Function Attrs: noinline nounwind | |
define linkonce_odr hidden void @rt_swift_deallocObject(%swift.refcounted*, i64, i64) #5 { | |
entry: | |
%load = load void (%swift.refcounted*, i64, i64)*, void (%swift.refcounted*, i64, i64)** @_swift_deallocObject | |
tail call void %load(%swift.refcounted* %0, i64 %1, i64 %2) | |
ret void | |
} | |
; Function Attrs: noinline nounwind | |
define linkonce_odr hidden %swift.refcounted* @rt_swift_allocObject(%swift.type*, i64, i64) #5 { | |
entry: | |
%load = load %swift.refcounted* (%swift.type*, i64, i64)*, %swift.refcounted* (%swift.type*, i64, i64)** @_swift_allocObject | |
%3 = tail call %swift.refcounted* %load(%swift.type* %0, i64 %1, i64 %2) | |
ret %swift.refcounted* %3 | |
} | |
define internal void @_TPA__TTRXFo__dSizoPs5Error__XFo__iSizoPS___(%Si* noalias nocapture sret, %swift.refcounted*, %swift.error**) #0 { | |
entry: | |
%3 = bitcast %swift.refcounted* %1 to <{ %swift.refcounted, %swift.function }>* | |
%4 = getelementptr inbounds <{ %swift.refcounted, %swift.function }>, <{ %swift.refcounted, %swift.function }>* %3, i32 0, i32 1 | |
%.fn = getelementptr inbounds %swift.function, %swift.function* %4, i32 0, i32 0 | |
%.fn.load = load i8*, i8** %.fn, align 8 | |
%.data = getelementptr inbounds %swift.function, %swift.function* %4, i32 0, i32 1 | |
%5 = load %swift.refcounted*, %swift.refcounted** %.data, align 8 | |
call void @rt_swift_retain(%swift.refcounted* %5) #1 | |
call void @rt_swift_release(%swift.refcounted* %1) #1 | |
tail call void @_TTRXFo__dSizoPs5Error__XFo__iSizoPS___(%Si* noalias nocapture sret %0, i8* %.fn.load, %swift.refcounted* %5, %swift.refcounted* undef, %swift.error** %2) #0 | |
ret void | |
} | |
; Function Attrs: noinline nounwind | |
define linkonce_odr hidden void @rt_swift_retain(%swift.refcounted*) #5 { | |
entry: | |
%load = load void (%swift.refcounted*)*, void (%swift.refcounted*)** @_swift_retain | |
tail call void %load(%swift.refcounted* %0) | |
ret void | |
} | |
define private void @objectdestroy.2(%swift.refcounted*) #0 { | |
entry: | |
%1 = bitcast %swift.refcounted* %0 to <{ %swift.refcounted, %swift.function }>* | |
%2 = getelementptr inbounds <{ %swift.refcounted, %swift.function }>, <{ %swift.refcounted, %swift.function }>* %1, i32 0, i32 1 | |
%.data = getelementptr inbounds %swift.function, %swift.function* %2, i32 0, i32 1 | |
%3 = load %swift.refcounted*, %swift.refcounted** %.data, align 8 | |
call void @rt_swift_release(%swift.refcounted* %3) #1 | |
call void @rt_swift_deallocObject(%swift.refcounted* %0, i64 32, i64 7) | |
ret void | |
} | |
define internal void @_TPA__TTRXFo__dSizoPs5Error__XFo__iSizoPS___.4(%Si* noalias nocapture sret, %swift.refcounted*, %swift.error**) #0 { | |
entry: | |
%3 = bitcast %swift.refcounted* %1 to <{ %swift.refcounted, %swift.function }>* | |
%4 = getelementptr inbounds <{ %swift.refcounted, %swift.function }>, <{ %swift.refcounted, %swift.function }>* %3, i32 0, i32 1 | |
%.fn = getelementptr inbounds %swift.function, %swift.function* %4, i32 0, i32 0 | |
%.fn.load = load i8*, i8** %.fn, align 8 | |
%.data = getelementptr inbounds %swift.function, %swift.function* %4, i32 0, i32 1 | |
%5 = load %swift.refcounted*, %swift.refcounted** %.data, align 8 | |
call void @rt_swift_retain(%swift.refcounted* %5) #1 | |
call void @rt_swift_release(%swift.refcounted* %1) #1 | |
tail call void @_TTRXFo__dSizoPs5Error__XFo__iSizoPS___(%Si* noalias nocapture sret %0, i8* %.fn.load, %swift.refcounted* %5, %swift.refcounted* undef, %swift.error** %2) #0 | |
ret void | |
} | |
declare { i8*, %swift.refcounted* } @_TIF6XCTest14XCTAssertEqualuRxs9EquatablerFTKzT_xKzT_xKT_SS4fileVs12StaticString4lineSu_T_A1_(%swift.type*, i8**) #0 | |
declare void @objc_msgSendSuper2() | |
define internal %2* @_TToFC8jitswift5HellocfT_S0_(%2*, i8*) unnamed_addr #0 { | |
entry: | |
%2 = bitcast %2* %0 to %C8jitswift5Hello* | |
%3 = bitcast %C8jitswift5Hello* %2 to i64* | |
%4 = load i64, i64* %3, align 8 | |
%5 = load i64, i64* @swift_isaMask, align 8 | |
%6 = and i64 %4, %5 | |
%7 = inttoptr i64 %6 to %swift.type* | |
%8 = call %C8jitswift5Hello* @_TFC8jitswift5HellocfT_S0_(%C8jitswift5Hello* %2) #9 | |
%9 = bitcast %C8jitswift5Hello* %8 to %2* | |
ret %2* %9 | |
} | |
define private %swift.type** @get_field_types_Hello(%swift.type* %Hello) #0 { | |
entry: | |
%0 = load %swift.type**, %swift.type*** @field_type_vector_Hello, align 8 | |
%1 = icmp eq %swift.type** %0, null | |
br i1 %1, label %build_field_types, label %done | |
build_field_types: ; preds = %entry | |
%2 = call noalias i8* @rt_swift_slowAlloc(i64 0, i64 7) #1 | |
%3 = bitcast i8* %2 to %swift.type** | |
%4 = ptrtoint %swift.type** %3 to i64 | |
%5 = cmpxchg i64* bitcast (%swift.type*** @field_type_vector_Hello to i64*), i64 0, i64 %4 seq_cst seq_cst | |
%6 = extractvalue { i64, i1 } %5, 1 | |
%7 = extractvalue { i64, i1 } %5, 0 | |
br i1 %6, label %done, label %race_lost | |
race_lost: ; preds = %build_field_types | |
call void @rt_swift_slowDealloc(i8* %2, i64 0, i64 7) #1 | |
%8 = inttoptr i64 %7 to %swift.type** | |
br label %done | |
done: ; preds = %race_lost, %build_field_types, %entry | |
%9 = phi %swift.type** [ %0, %entry ], [ %3, %build_field_types ], [ %8, %race_lost ] | |
ret %swift.type** %9 | |
} | |
; Function Attrs: noinline nounwind | |
define linkonce_odr hidden i8* @rt_swift_slowAlloc(i64, i64) #5 { | |
entry: | |
%load = load i8* (i64, i64)*, i8* (i64, i64)** @_swift_slowAlloc | |
%2 = tail call i8* %load(i64 %0, i64 %1) | |
ret i8* %2 | |
} | |
; Function Attrs: noinline nounwind | |
define linkonce_odr hidden void @rt_swift_slowDealloc(i8*, i64, i64) #5 { | |
entry: | |
%load = load void (i8*, i64, i64)*, void (i8*, i64, i64)** @_swift_slowDealloc | |
tail call void %load(i8* %0, i64 %1, i64 %2) | |
ret void | |
} | |
declare void @swift_willThrow(%swift.error*) | |
attributes #0 = { "no-frame-pointer-elim"="true" "no-frame-pointer-elim-non-leaf" "target-cpu"="core2" "target-features"="+ssse3,+cx16,+fxsr,+mmx,+sse,+sse2,+sse3" } | |
attributes #1 = { nounwind } | |
attributes #2 = { nounwind readnone "no-frame-pointer-elim"="true" "no-frame-pointer-elim-non-leaf" "target-cpu"="core2" "target-features"="+ssse3,+cx16,+fxsr,+mmx,+sse,+sse2,+sse3" } | |
attributes #3 = { noinline "no-frame-pointer-elim"="true" "no-frame-pointer-elim-non-leaf" "target-cpu"="core2" "target-features"="+ssse3,+cx16,+fxsr,+mmx,+sse,+sse2,+sse3" } | |
attributes #4 = { argmemonly nounwind } | |
attributes #5 = { noinline nounwind } | |
attributes #6 = { readonly "no-frame-pointer-elim"="true" "no-frame-pointer-elim-non-leaf" "target-cpu"="core2" "target-features"="+ssse3,+cx16,+fxsr,+mmx,+sse,+sse2,+sse3" } | |
attributes #7 = { nounwind readnone } | |
attributes #8 = { noreturn nounwind } | |
attributes #9 = { noinline } | |
!llvm.module.flags = !{!0, !1, !2, !3, !4, !5, !41, !42} | |
!0 = !{i32 1, !"Objective-C Version", i32 2} | |
!1 = !{i32 1, !"Objective-C Image Info Version", i32 0} | |
!2 = !{i32 1, !"Objective-C Image Info Section", !"__DATA, __objc_imageinfo, regular, no_dead_strip"} | |
!3 = !{i32 4, !"Objective-C Garbage Collection", i32 1024} | |
!4 = !{i32 1, !"Objective-C Class Properties", i32 64} | |
!5 = !{i32 6, !"Linker Options", !6} | |
!6 = !{!7, !8, !9, !10, !11, !12, !13, !14, !15, !16, !17, !18, !19, !20, !21, !22, !23, !24, !25, !26, !27, !28, !29, !30, !31, !32, !33, !34, !35, !36, !37, !38, !39, !40} | |
!7 = !{!"-lswiftCore"} | |
!8 = !{!"-lswiftXCTest"} | |
!9 = !{!"-framework", !"XCTest"} | |
!10 = !{!"-lswiftFoundation"} | |
!11 = !{!"-framework", !"Foundation"} | |
!12 = !{!"-lswiftObjectiveC"} | |
!13 = !{!"-lswiftDarwin"} | |
!14 = !{!"-framework", !"CoreServices"} | |
!15 = !{!"-lswiftIOKit"} | |
!16 = !{!"-framework", !"IOKit"} | |
!17 = !{!"-lswiftDispatch"} | |
!18 = !{!"-framework", !"CoreFoundation"} | |
!19 = !{!"-framework", !"DiskArbitration"} | |
!20 = !{!"-framework", !"CFNetwork"} | |
!21 = !{!"-framework", !"Security"} | |
!22 = !{!"-lswiftCoreGraphics"} | |
!23 = !{!"-framework", !"CoreGraphics"} | |
!24 = !{!"-framework", !"ApplicationServices"} | |
!25 = !{!"-framework", !"CoreText"} | |
!26 = !{!"-framework", !"ImageIO"} | |
!27 = !{!"-lswiftAppKit"} | |
!28 = !{!"-framework", !"AppKit"} | |
!29 = !{!"-lswiftCoreImage"} | |
!30 = !{!"-framework", !"CoreImage"} | |
!31 = !{!"-framework", !"IOSurface"} | |
!32 = !{!"-lswiftXPC"} | |
!33 = !{!"-framework", !"OpenGL"} | |
!34 = !{!"-framework", !"CoreVideo"} | |
!35 = !{!"-lswiftQuartzCore"} | |
!36 = !{!"-framework", !"QuartzCore"} | |
!37 = !{!"-framework", !"Metal"} | |
!38 = !{!"-lswiftCoreData"} | |
!39 = !{!"-framework", !"CoreData"} | |
!40 = !{!"-lobjc"} | |
!41 = !{i32 1, !"PIC Level", i32 2} | |
!42 = !{i32 1, !"Swift Version", i32 4} | |
!43 = !{} | |
# /usr/local/opt/llvm/bin/lli -load=/System/Library/Frameworks/Foundation.framework/Versions/Current/Foundation jitswift.bc | |
/usr/local/opt/llvm/bin/lli -load=/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/swift/macosx/libswiftCore.dylib \ | |
-load=/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/swift/macosx/libswiftDarwin.dylib \ | |
-load=/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/swift/macosx/libswiftObjectiveC.dylib \ | |
-load=/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/swift/macosx/libswiftDispatch.dylib \ | |
-load=/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/swift/macosx/libswiftSwiftOnoneSupport.dylib \ | |
-load=/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/swift/macosx/libswiftIOKit.dylib \ | |
-load=/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/swift/macosx/libswiftCoreGraphics.dylib \ | |
-load=/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/swift/macosx/libswiftFoundation.dylib \ | |
-load=/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/swift/macosx/libswiftCoreData.dylib \ | |
-load=/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/swift/macosx/libswiftXPC.dylib \ | |
-load=/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/swift/macosx/libswiftCoreImage.dylib \ | |
-load=/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/swift/macosx/libswiftQuartzCore.dylib \ | |
-load=/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/swift/macosx/libswiftAppKit.dylib \ | |
-load=/Applications/Xcode.app/Contents//Developer/Platforms/MacOSX.platform/Developer/Library/Frameworks/XCTest.framework/XCTest \ | |
-load=/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/swift/macosx/libswiftXCTest.dylib \ | |
jitswift.bc |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment