Skip to content

Instantly share code, notes, and snippets.

@stanislaw
Last active March 8, 2017 21:29
Show Gist options
  • Save stanislaw/fd836b204be9f499194b68d520a325e8 to your computer and use it in GitHub Desktop.
Save stanislaw/fd836b204be9f499194b68d520a325e8 to your computer and use it in GitHub Desktop.
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