Created
April 24, 2022 04:37
-
-
Save yhara/987636179704fb8104f5cdddfe6f57e3 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
; ModuleID = 'main' | |
source_filename = "main" | |
target triple = "x86_64-apple-macosx10.15.7" | |
%Dict = type { i8*, %Class.0*, %Array* } | |
%Class.0 = type { i8*, %Class.0*, %String*, %Object*, %Object* } | |
%String = type { i8*, %Class.0*, %"Shiika::Internal::Ptr"*, %Int* } | |
%"Shiika::Internal::Ptr" = type { i8*, %Class.0*, i8* } | |
%Int = type { i8*, %Class.0*, i64 } | |
%Object = type { i8*, %Class.0* } | |
%Array = type { i8*, %Class.0*, %Int*, %Int*, %"Shiika::Internal::Ptr"* } | |
%Fn5 = type { i8*, %Class.0*, %"Shiika::Internal::Ptr"*, %Object*, %Array*, %Int* } | |
%"Maybe::None" = type { i8*, %Class.0* } | |
%Fn7 = type { i8*, %Class.0*, %"Shiika::Internal::Ptr"*, %Object*, %Array*, %Int* } | |
%Void = type { i8*, %Class.0* } | |
%Math = type { i8*, %Class.0* } | |
%Fn9 = type { i8*, %Class.0*, %"Shiika::Internal::Ptr"*, %Object*, %Array*, %Int* } | |
%Fn1 = type { i8*, %Class.0*, %"Shiika::Internal::Ptr"*, %Object*, %Array*, %Int* } | |
%Triple = type { i8*, %Class.0*, %Object*, %Object*, %Object* } | |
%Error = type { i8*, %Class.0*, %String* } | |
%Metaclass = type { i8*, %Class.0*, %String*, %Object*, %Object* } | |
%Pair = type { i8*, %Class.0*, %Object*, %Object* } | |
%Never = type { i8*, %Class.0* } | |
%Fn2 = type { i8*, %Class.0*, %"Shiika::Internal::Ptr"*, %Object*, %Array*, %Int* } | |
%"Result::Fail" = type { i8*, %Class.0*, %Object* } | |
%Fn6 = type { i8*, %Class.0*, %"Shiika::Internal::Ptr"*, %Object*, %Array*, %Int* } | |
%Bool = type { i8*, %Class.0*, i1 } | |
%"Result::Ok" = type { i8*, %Class.0*, %Object* } | |
%"Shiika::Internal::Memory" = type { i8*, %Class.0* } | |
%Fn0 = type { i8*, %Class.0*, %"Shiika::Internal::Ptr"*, %Object*, %Array*, %Int* } | |
%Fn = type { i8*, %Class.0*, %"Shiika::Internal::Ptr"*, %Object*, %Array*, %Int* } | |
%Maybe = type { i8*, %Class.0* } | |
%Fn4 = type { i8*, %Class.0*, %"Shiika::Internal::Ptr"*, %Object*, %Array*, %Int* } | |
%Enumerable = type { i8*, %Class.0* } | |
%Result = type { i8*, %Class.0* } | |
%File = type { i8*, %Class.0*, %String*, %Object* } | |
%Float = type { i8*, %Class.0*, double } | |
%Fn3 = type { i8*, %Class.0*, %"Shiika::Internal::Ptr"*, %Object*, %Array*, %Int* } | |
%"Maybe::Some" = type { i8*, %Class.0*, %Object* } | |
%"Dict::Table" = type { i8*, %Class.0*, %Array* } | |
%MutableString = type { i8*, %Class.0*, %"Shiika::Internal::Ptr"*, %Int*, %Int* } | |
%Fn8 = type { i8*, %Class.0*, %"Shiika::Internal::Ptr"*, %Object*, %Array*, %Int* } | |
@putd_tmpl = internal constant [4 x i8] c"%ld\00" | |
@putf_tmpl = internal constant [3 x i8] c"%f\00" | |
@str_0 = internal global [4 x i8] c"Fn2\00" | |
@str_1 = internal global [12 x i8] c"Maybe::None\00" | |
@str_2 = internal global [5 x i8] c"Pair\00" | |
@str_3 = internal global [4 x i8] c"Int\00" | |
@str_4 = internal global [25 x i8] c"Shiika::Internal::Memory\00" | |
@str_5 = internal global [5 x i8] c"Math\00" | |
@str_6 = internal global [3 x i8] c"Fn\00" | |
@str_7 = internal global [6 x i8] c"Maybe\00" | |
@str_8 = internal global [5 x i8] c"Dict\00" | |
@str_9 = internal global [4 x i8] c"Fn7\00" | |
@str_10 = internal global [4 x i8] c"Fn1\00" | |
@str_11 = internal global [4 x i8] c"Fn0\00" | |
@str_12 = internal global [6 x i8] c"Class\00" | |
@str_13 = internal global [4 x i8] c"Fn8\00" | |
@str_14 = internal global [4 x i8] c"Fn9\00" | |
@str_15 = internal global [4 x i8] c"Fn4\00" | |
@str_16 = internal global [5 x i8] c"File\00" | |
@str_17 = internal global [6 x i8] c"Float\00" | |
@str_18 = internal global [7 x i8] c"String\00" | |
@str_19 = internal global [4 x i8] c"Fn3\00" | |
@str_20 = internal global [13 x i8] c"Result::Fail\00" | |
@str_21 = internal global [12 x i8] c"Dict::Table\00" | |
@str_22 = internal global [7 x i8] c"Result\00" | |
@str_23 = internal global [22 x i8] c"Shiika::Internal::Ptr\00" | |
@str_24 = internal global [6 x i8] c"Array\00" | |
@str_25 = internal global [7 x i8] c"Object\00" | |
@str_26 = internal global [5 x i8] c"Void\00" | |
@str_27 = internal global [11 x i8] c"Enumerable\00" | |
@str_28 = internal global [4 x i8] c"Fn5\00" | |
@str_29 = internal global [12 x i8] c"Maybe::Some\00" | |
@str_30 = internal global [7 x i8] c"Triple\00" | |
@str_31 = internal global [6 x i8] c"Error\00" | |
@str_32 = internal global [14 x i8] c"MutableString\00" | |
@str_33 = internal global [10 x i8] c"Metaclass\00" | |
@str_34 = internal global [4 x i8] c"Fn6\00" | |
@str_35 = internal global [11 x i8] c"Result::Ok\00" | |
@str_36 = internal global [5 x i8] c"Bool\00" | |
@str_37 = internal global [6 x i8] c"Never\00" | |
@str_38 = internal global [25 x i8] c"no matching clause found\00" | |
@str_39 = internal global [25 x i8] c"no matching clause found\00" | |
@str_40 = internal global [2 x i8] c">\00" | |
@str_41 = internal global [8 x i8] c"#<Some \00" | |
@str_42 = internal global [8 x i8] c"#<None>\00" | |
@str_43 = internal global [25 x i8] c"no matching clause found\00" | |
@str_44 = internal global [34 x i8] c"[Array#[]=: index less than zero]\00" | |
@str_45 = internal global [29 x i8] c"[Array#[]=: index too large]\00" | |
@str_46 = internal global [2 x i8] c"[\00" | |
@str_47 = internal global [3 x i8] c", \00" | |
@str_48 = internal global [2 x i8] c"]\00" | |
@str_49 = internal global [28 x i8] c"[Array#pop: array is empty]\00" | |
@str_50 = internal global [5 x i8] c"true\00" | |
@str_51 = internal global [6 x i8] c"false\00" | |
@str_52 = internal global [2 x i8] c">\00" | |
@str_53 = internal global [9 x i8] c"#<class \00" | |
@str_54 = internal global [2 x i8] c"-\00" | |
@str_55 = internal global [10 x i8] c"Metaclass\00" | |
@str_56 = internal global [10 x i8] c"Metaclass\00" | |
@str_57 = internal global [6 x i8] c"Meta:\00" | |
@str_58 = internal global [2 x i8] c">\00" | |
@str_59 = internal global [13 x i8] c"#<metaclass \00" | |
@str_60 = internal global [40 x i8] c"[String#nth_byte: index less than zero]\00" | |
@str_61 = internal global [35 x i8] c"[String#nth_byte: index too large]\00" | |
@str_62 = internal global [42 x i8] c"[String#write_byte: index less than zero]\00" | |
@str_63 = internal global [41 x i8] c"[String#write_byte: byte less than zero]\00" | |
@str_64 = internal global [42 x i8] c"[String#write_byte: byte larger than 255]\00" | |
@str_65 = internal global [40 x i8] c"[`<` is not implemented for this class]\00" | |
@str_66 = internal global [2 x i8] c">\00" | |
@str_67 = internal global [2 x i8] c":\00" | |
@str_68 = internal global [3 x i8] c"#<\00" | |
@str_69 = internal global [2 x i8] c"\22\00" | |
@str_70 = internal global [2 x i8] c"\22\00" | |
@str_71 = internal global [2 x i8] c"\0A\00" | |
@str_72 = internal global [40 x i8] c"[String#nth_byte: index less than zero]\00" | |
@str_73 = internal global [35 x i8] c"[String#nth_byte: index too large]\00" | |
@str_74 = internal global [3 x i8] c")]\00" | |
@str_75 = internal global [10 x i8] c", bytes: \00" | |
@str_76 = internal global [54 x i8] c"[String#slice_bytes: `from` is less than zero (from: \00" | |
@str_77 = internal global [3 x i8] c")]\00" | |
@str_78 = internal global [18 x i8] c", self.bytesize: \00" | |
@str_79 = internal global [10 x i8] c", bytes: \00" | |
@str_80 = internal global [54 x i8] c"[String#slice_bytes: `from + bytes` too large (from: \00" | |
@str_81 = internal global [2 x i8] c"+\00" | |
@str_82 = internal global [2 x i8] c"-\00" | |
@str_83 = internal global [5 x i8] c"Void\00" | |
@"::Dict" = global %Dict* null | |
@"::Fn5" = global %Fn5* null | |
@"::Maybe::None" = global %"Maybe::None"* null | |
@"::Fn7" = global %Fn7* null | |
@"::Void" = global %Void* null | |
@"::Math" = global %Math* null | |
@"::Fn9" = global %Fn9* null | |
@"::Object" = global %Object* null | |
@"::Fn1" = global %Fn1* null | |
@"::Triple" = global %Triple* null | |
@"::Error" = global %Error* null | |
@"::Metaclass" = global %Metaclass* null | |
@"::None" = global %"Maybe::None"* null | |
@"::Pair" = global %Pair* null | |
@"::Never" = global %Never* null | |
@"::Fn2" = global %Fn2* null | |
@"::Result::Fail" = global %"Result::Fail"* null | |
@"::Fn6" = global %Fn6* null | |
@"::Bool" = global %Bool* null | |
@"::Ok" = global %"Result::Ok"* null | |
@"::Shiika::Internal::Memory" = global %"Shiika::Internal::Memory"* null | |
@"::Array::BYTES_OF_PTR" = global %Int* null | |
@"::Array" = global %Array* null | |
@"::Int" = global %Int* null | |
@"::Fn0" = global %Fn0* null | |
@"::Result::Ok" = global %"Result::Ok"* null | |
@"::Fn::EXIT_NORMAL" = global %Int* null | |
@"::Fn" = global %Fn* null | |
@"::Dict::N_TABLES" = global %Int* null | |
@"::Maybe" = global %Maybe* null | |
@"::Fn4" = global %Fn4* null | |
@"::Class" = global %Class.0* null | |
@"::Enumerable" = global %Enumerable* null | |
@"::Fail" = global %"Result::Fail"* null | |
@"::String" = global %String* null | |
@"::Result" = global %Result* null | |
@"::File" = global %File* null | |
@"::Float" = global %Float* null | |
@"::Fn3" = global %Fn3* null | |
@"::Fn::EXIT_BREAK" = global %Int* null | |
@"::Some" = global %"Maybe::Some"* null | |
@"::Dict::Table" = global %"Dict::Table"* null | |
@"::Maybe::Some" = global %"Maybe::Some"* null | |
@"::Array::INITIAL_CAPA" = global %Int* null | |
@"::Shiika::Internal::Ptr" = global %"Shiika::Internal::Ptr"* null | |
@"::MutableString" = global %MutableString* null | |
@"::MutableString::INITIAL_STR_CAPA" = global %Int* null | |
@"::Fn8" = global %Fn8* null | |
@shiika_vtable_Fn0 = constant [24 x i8*] [i8* bitcast (%Bool* (%Object*, %Object*)* @Object_lt_ to i8*), i8* bitcast (%Bool* (%Object*, %Object*)* @Object_le_ to i8*), i8* bitcast (%Bool* (%Object*, %Object*)* @Object_eq_ to i8*), i8* bitcast (%Bool* (%Object*, %Object*)* @Object_gt_ to i8*), i8* bitcast (%Bool* (%Object*, %Object*)* @Object_ge_ to i8*), i8* bitcast (%Class.0* (%Object*)* @Object_class to i8*), i8* bitcast (void (%Object*, %Int*)* @Object_exit to i8*), i8* bitcast (%Int* (%Object*)* @Object_hash to i8*), i8* bitcast (%Void* (%Fn*, %"Shiika::Internal::Ptr"*, %Object*, %Array*)* @Fn_initialize to i8*), i8* bitcast (%String* (%Object*)* @Object_inspect to i8*), i8* bitcast (%Int* (%Object*)* @Object_object__id to i8*), i8* bitcast (%Void* (%Object*, %Object*)* @Object_p to i8*), i8* bitcast (void (%Object*, %String*)* @Object_panic to i8*), i8* bitcast (%Void* (%Object*, %String*)* @Object_print to i8*), i8* bitcast (%Void* (%Object*, %String*)* @Object_puts to i8*), i8* bitcast (%String* (%Object*)* @Object_to__s to i8*), i8* bitcast (%Array* (%Fn*)* @Fn_captures to i8*), i8* bitcast (%Array* (%Fn*, %Array*)* @_set_Fn_captures to i8*), i8* bitcast (%Int* (%Fn*)* @Fn_exit__status to i8*), i8* bitcast (%Int* (%Fn*, %Int*)* @_set_Fn_exit__status to i8*), i8* bitcast (%"Shiika::Internal::Ptr"* (%Fn*)* @Fn_func to i8*), i8* bitcast (%"Shiika::Internal::Ptr"* (%Fn*, %"Shiika::Internal::Ptr"*)* @_set_Fn_func to i8*), i8* bitcast (%Object* (%Fn*)* @Fn_the__self to i8*), i8* bitcast (%Object* (%Fn*, %Object*)* @_set_Fn_the__self to i8*)] | |
@shiika_vtable_Fn6 = constant [24 x i8*] [i8* bitcast (%Bool* (%Object*, %Object*)* @Object_lt_ to i8*), i8* bitcast (%Bool* (%Object*, %Object*)* @Object_le_ to i8*), i8* bitcast (%Bool* (%Object*, %Object*)* @Object_eq_ to i8*), i8* bitcast (%Bool* (%Object*, %Object*)* @Object_gt_ to i8*), i8* bitcast (%Bool* (%Object*, %Object*)* @Object_ge_ to i8*), i8* bitcast (%Class.0* (%Object*)* @Object_class to i8*), i8* bitcast (void (%Object*, %Int*)* @Object_exit to i8*), i8* bitcast (%Int* (%Object*)* @Object_hash to i8*), i8* bitcast (%Void* (%Fn*, %"Shiika::Internal::Ptr"*, %Object*, %Array*)* @Fn_initialize to i8*), i8* bitcast (%String* (%Object*)* @Object_inspect to i8*), i8* bitcast (%Int* (%Object*)* @Object_object__id to i8*), i8* bitcast (%Void* (%Object*, %Object*)* @Object_p to i8*), i8* bitcast (void (%Object*, %String*)* @Object_panic to i8*), i8* bitcast (%Void* (%Object*, %String*)* @Object_print to i8*), i8* bitcast (%Void* (%Object*, %String*)* @Object_puts to i8*), i8* bitcast (%String* (%Object*)* @Object_to__s to i8*), i8* bitcast (%Array* (%Fn*)* @Fn_captures to i8*), i8* bitcast (%Array* (%Fn*, %Array*)* @_set_Fn_captures to i8*), i8* bitcast (%Int* (%Fn*)* @Fn_exit__status to i8*), i8* bitcast (%Int* (%Fn*, %Int*)* @_set_Fn_exit__status to i8*), i8* bitcast (%"Shiika::Internal::Ptr"* (%Fn*)* @Fn_func to i8*), i8* bitcast (%"Shiika::Internal::Ptr"* (%Fn*, %"Shiika::Internal::Ptr"*)* @_set_Fn_func to i8*), i8* bitcast (%Object* (%Fn*)* @Fn_the__self to i8*), i8* bitcast (%Object* (%Fn*, %Object*)* @_set_Fn_the__self to i8*)] | |
@shiika_vtable_Fn7 = constant [24 x i8*] [i8* bitcast (%Bool* (%Object*, %Object*)* @Object_lt_ to i8*), i8* bitcast (%Bool* (%Object*, %Object*)* @Object_le_ to i8*), i8* bitcast (%Bool* (%Object*, %Object*)* @Object_eq_ to i8*), i8* bitcast (%Bool* (%Object*, %Object*)* @Object_gt_ to i8*), i8* bitcast (%Bool* (%Object*, %Object*)* @Object_ge_ to i8*), i8* bitcast (%Class.0* (%Object*)* @Object_class to i8*), i8* bitcast (void (%Object*, %Int*)* @Object_exit to i8*), i8* bitcast (%Int* (%Object*)* @Object_hash to i8*), i8* bitcast (%Void* (%Fn*, %"Shiika::Internal::Ptr"*, %Object*, %Array*)* @Fn_initialize to i8*), i8* bitcast (%String* (%Object*)* @Object_inspect to i8*), i8* bitcast (%Int* (%Object*)* @Object_object__id to i8*), i8* bitcast (%Void* (%Object*, %Object*)* @Object_p to i8*), i8* bitcast (void (%Object*, %String*)* @Object_panic to i8*), i8* bitcast (%Void* (%Object*, %String*)* @Object_print to i8*), i8* bitcast (%Void* (%Object*, %String*)* @Object_puts to i8*), i8* bitcast (%String* (%Object*)* @Object_to__s to i8*), i8* bitcast (%Array* (%Fn*)* @Fn_captures to i8*), i8* bitcast (%Array* (%Fn*, %Array*)* @_set_Fn_captures to i8*), i8* bitcast (%Int* (%Fn*)* @Fn_exit__status to i8*), i8* bitcast (%Int* (%Fn*, %Int*)* @_set_Fn_exit__status to i8*), i8* bitcast (%"Shiika::Internal::Ptr"* (%Fn*)* @Fn_func to i8*), i8* bitcast (%"Shiika::Internal::Ptr"* (%Fn*, %"Shiika::Internal::Ptr"*)* @_set_Fn_func to i8*), i8* bitcast (%Object* (%Fn*)* @Fn_the__self to i8*), i8* bitcast (%Object* (%Fn*, %Object*)* @_set_Fn_the__self to i8*)] | |
@"shiika_vtable_Meta:Int" = constant [23 x i8*] [i8* bitcast (%Bool* (%Object*, %Object*)* @Object_lt_ to i8*), i8* bitcast (%Bool* (%Object*, %Object*)* @Object_le_ to i8*), i8* bitcast (%Bool* (%Object*, %Object*)* @Object_eq_ to i8*), i8* bitcast (%Bool* (%Object*, %Object*)* @Object_gt_ to i8*), i8* bitcast (%Bool* (%Object*, %Object*)* @Object_ge_ to i8*), i8* bitcast (%Class.0* (%Object*)* @Object_class to i8*), i8* bitcast (void (%Object*, %Int*)* @Object_exit to i8*), i8* bitcast (%Int* (%Object*)* @Object_hash to i8*), i8* bitcast (%Void* (%Class.0*, %String*, %Object*, %Metaclass*)* @Class_initialize to i8*), i8* bitcast (%String* (%Class.0*)* @Class_inspect to i8*), i8* bitcast (%Int* (%Object*)* @Object_object__id to i8*), i8* bitcast (%Void* (%Object*, %Object*)* @Object_p to i8*), i8* bitcast (void (%Object*, %String*)* @Object_panic to i8*), i8* bitcast (%Void* (%Object*, %String*)* @Object_print to i8*), i8* bitcast (%Void* (%Object*, %String*)* @Object_puts to i8*), i8* bitcast (%String* (%Class.0*)* @Class_to__s to i8*), i8* bitcast (%Class.0* (%Class.0*, %Array*)* @Class_lt_gt_ to i8*), i8* bitcast (%Object* (%Class.0*, %Object*, %Object*)* @Class___initialize__rustlib to i8*), i8* bitcast (%Class.0* (%Class.0*, %Array*)* @Class___specialize1 to i8*), i8* bitcast (%Class.0* (%Class.0*, %Int*)* @Class___type__argument to i8*), i8* bitcast (%String* (%Class.0*)* @Class_name to i8*), i8* bitcast (%String* (%Class.0*, %String*)* @_set_Class_name to i8*), i8* bitcast (%Int* (%Int*)* @Meta_Int_new to i8*)] | |
@"shiika_vtable_Meta:Pair" = constant [23 x i8*] [i8* bitcast (%Bool* (%Object*, %Object*)* @Object_lt_ to i8*), i8* bitcast (%Bool* (%Object*, %Object*)* @Object_le_ to i8*), i8* bitcast (%Bool* (%Object*, %Object*)* @Object_eq_ to i8*), i8* bitcast (%Bool* (%Object*, %Object*)* @Object_gt_ to i8*), i8* bitcast (%Bool* (%Object*, %Object*)* @Object_ge_ to i8*), i8* bitcast (%Class.0* (%Object*)* @Object_class to i8*), i8* bitcast (void (%Object*, %Int*)* @Object_exit to i8*), i8* bitcast (%Int* (%Object*)* @Object_hash to i8*), i8* bitcast (%Void* (%Class.0*, %String*, %Object*, %Metaclass*)* @Class_initialize to i8*), i8* bitcast (%String* (%Class.0*)* @Class_inspect to i8*), i8* bitcast (%Int* (%Object*)* @Object_object__id to i8*), i8* bitcast (%Void* (%Object*, %Object*)* @Object_p to i8*), i8* bitcast (void (%Object*, %String*)* @Object_panic to i8*), i8* bitcast (%Void* (%Object*, %String*)* @Object_print to i8*), i8* bitcast (%Void* (%Object*, %String*)* @Object_puts to i8*), i8* bitcast (%String* (%Class.0*)* @Class_to__s to i8*), i8* bitcast (%Class.0* (%Class.0*, %Array*)* @Class_lt_gt_ to i8*), i8* bitcast (%Object* (%Class.0*, %Object*, %Object*)* @Class___initialize__rustlib to i8*), i8* bitcast (%Class.0* (%Class.0*, %Array*)* @Class___specialize1 to i8*), i8* bitcast (%Class.0* (%Class.0*, %Int*)* @Class___type__argument to i8*), i8* bitcast (%String* (%Class.0*)* @Class_name to i8*), i8* bitcast (%String* (%Class.0*, %String*)* @_set_Class_name to i8*), i8* bitcast (%Pair* (%Pair*, %Object*, %Object*)* @Meta_Pair_new to i8*)] | |
@"shiika_vtable_Meta:Never" = constant [22 x i8*] [i8* bitcast (%Bool* (%Object*, %Object*)* @Object_lt_ to i8*), i8* bitcast (%Bool* (%Object*, %Object*)* @Object_le_ to i8*), i8* bitcast (%Bool* (%Object*, %Object*)* @Object_eq_ to i8*), i8* bitcast (%Bool* (%Object*, %Object*)* @Object_gt_ to i8*), i8* bitcast (%Bool* (%Object*, %Object*)* @Object_ge_ to i8*), i8* bitcast (%Class.0* (%Object*)* @Object_class to i8*), i8* bitcast (void (%Object*, %Int*)* @Object_exit to i8*), i8* bitcast (%Int* (%Object*)* @Object_hash to i8*), i8* bitcast (%Void* (%Class.0*, %String*, %Object*, %Metaclass*)* @Class_initialize to i8*), i8* bitcast (%String* (%Class.0*)* @Class_inspect to i8*), i8* bitcast (%Int* (%Object*)* @Object_object__id to i8*), i8* bitcast (%Void* (%Object*, %Object*)* @Object_p to i8*), i8* bitcast (void (%Object*, %String*)* @Object_panic to i8*), i8* bitcast (%Void* (%Object*, %String*)* @Object_print to i8*), i8* bitcast (%Void* (%Object*, %String*)* @Object_puts to i8*), i8* bitcast (%String* (%Class.0*)* @Class_to__s to i8*), i8* bitcast (%Class.0* (%Class.0*, %Array*)* @Class_lt_gt_ to i8*), i8* bitcast (%Object* (%Class.0*, %Object*, %Object*)* @Class___initialize__rustlib to i8*), i8* bitcast (%Class.0* (%Class.0*, %Array*)* @Class___specialize1 to i8*), i8* bitcast (%Class.0* (%Class.0*, %Int*)* @Class___type__argument to i8*), i8* bitcast (%String* (%Class.0*)* @Class_name to i8*), i8* bitcast (%String* (%Class.0*, %String*)* @_set_Class_name to i8*)] | |
@"shiika_vtable_Meta:Fn" = constant [23 x i8*] [i8* bitcast (%Bool* (%Object*, %Object*)* @Object_lt_ to i8*), i8* bitcast (%Bool* (%Object*, %Object*)* @Object_le_ to i8*), i8* bitcast (%Bool* (%Object*, %Object*)* @Object_eq_ to i8*), i8* bitcast (%Bool* (%Object*, %Object*)* @Object_gt_ to i8*), i8* bitcast (%Bool* (%Object*, %Object*)* @Object_ge_ to i8*), i8* bitcast (%Class.0* (%Object*)* @Object_class to i8*), i8* bitcast (void (%Object*, %Int*)* @Object_exit to i8*), i8* bitcast (%Int* (%Object*)* @Object_hash to i8*), i8* bitcast (%Void* (%Class.0*, %String*, %Object*, %Metaclass*)* @Class_initialize to i8*), i8* bitcast (%String* (%Class.0*)* @Class_inspect to i8*), i8* bitcast (%Int* (%Object*)* @Object_object__id to i8*), i8* bitcast (%Void* (%Object*, %Object*)* @Object_p to i8*), i8* bitcast (void (%Object*, %String*)* @Object_panic to i8*), i8* bitcast (%Void* (%Object*, %String*)* @Object_print to i8*), i8* bitcast (%Void* (%Object*, %String*)* @Object_puts to i8*), i8* bitcast (%String* (%Class.0*)* @Class_to__s to i8*), i8* bitcast (%Class.0* (%Class.0*, %Array*)* @Class_lt_gt_ to i8*), i8* bitcast (%Object* (%Class.0*, %Object*, %Object*)* @Class___initialize__rustlib to i8*), i8* bitcast (%Class.0* (%Class.0*, %Array*)* @Class___specialize1 to i8*), i8* bitcast (%Class.0* (%Class.0*, %Int*)* @Class___type__argument to i8*), i8* bitcast (%String* (%Class.0*)* @Class_name to i8*), i8* bitcast (%String* (%Class.0*, %String*)* @_set_Class_name to i8*), i8* bitcast (%Fn* (%Fn*, %"Shiika::Internal::Ptr"*, %Object*, %Array*)* @Meta_Fn_new to i8*)] | |
@shiika_vtable_Never = constant [16 x i8*] [i8* bitcast (%Bool* (%Object*, %Object*)* @Object_lt_ to i8*), i8* bitcast (%Bool* (%Object*, %Object*)* @Object_le_ to i8*), i8* bitcast (%Bool* (%Object*, %Object*)* @Object_eq_ to i8*), i8* bitcast (%Bool* (%Object*, %Object*)* @Object_gt_ to i8*), i8* bitcast (%Bool* (%Object*, %Object*)* @Object_ge_ to i8*), i8* bitcast (%Class.0* (%Object*)* @Object_class to i8*), i8* bitcast (void (%Object*, %Int*)* @Object_exit to i8*), i8* bitcast (%Int* (%Object*)* @Object_hash to i8*), i8* bitcast (%Void* (%Object*)* @Object_initialize to i8*), i8* bitcast (%String* (%Object*)* @Object_inspect to i8*), i8* bitcast (%Int* (%Object*)* @Object_object__id to i8*), i8* bitcast (%Void* (%Object*, %Object*)* @Object_p to i8*), i8* bitcast (void (%Object*, %String*)* @Object_panic to i8*), i8* bitcast (%Void* (%Object*, %String*)* @Object_print to i8*), i8* bitcast (%Void* (%Object*, %String*)* @Object_puts to i8*), i8* bitcast (%String* (%Object*)* @Object_to__s to i8*)] | |
@"shiika_vtable_Result::Ok" = constant [18 x i8*] [i8* bitcast (%Bool* (%Object*, %Object*)* @Object_lt_ to i8*), i8* bitcast (%Bool* (%Object*, %Object*)* @Object_le_ to i8*), i8* bitcast (%Bool* (%Object*, %Object*)* @Object_eq_ to i8*), i8* bitcast (%Bool* (%Object*, %Object*)* @Object_gt_ to i8*), i8* bitcast (%Bool* (%Object*, %Object*)* @Object_ge_ to i8*), i8* bitcast (%Class.0* (%Object*)* @Object_class to i8*), i8* bitcast (void (%Object*, %Int*)* @Object_exit to i8*), i8* bitcast (%Int* (%Object*)* @Object_hash to i8*), i8* bitcast (%Void* (%"Result::Ok"*, %Object*)* @Result_Ok_initialize to i8*), i8* bitcast (%String* (%Object*)* @Object_inspect to i8*), i8* bitcast (%Int* (%Object*)* @Object_object__id to i8*), i8* bitcast (%Void* (%Object*, %Object*)* @Object_p to i8*), i8* bitcast (void (%Object*, %String*)* @Object_panic to i8*), i8* bitcast (%Void* (%Object*, %String*)* @Object_print to i8*), i8* bitcast (%Void* (%Object*, %String*)* @Object_puts to i8*), i8* bitcast (%String* (%Object*)* @Object_to__s to i8*), i8* bitcast (%Object* (%"Result::Ok"*)* @Result_Ok_value to i8*), i8* bitcast (%Object* (%"Result::Ok"*, %Object*)* @_set_Result_Ok_value to i8*)] | |
@shiika_vtable_Fn4 = constant [24 x i8*] [i8* bitcast (%Bool* (%Object*, %Object*)* @Object_lt_ to i8*), i8* bitcast (%Bool* (%Object*, %Object*)* @Object_le_ to i8*), i8* bitcast (%Bool* (%Object*, %Object*)* @Object_eq_ to i8*), i8* bitcast (%Bool* (%Object*, %Object*)* @Object_gt_ to i8*), i8* bitcast (%Bool* (%Object*, %Object*)* @Object_ge_ to i8*), i8* bitcast (%Class.0* (%Object*)* @Object_class to i8*), i8* bitcast (void (%Object*, %Int*)* @Object_exit to i8*), i8* bitcast (%Int* (%Object*)* @Object_hash to i8*), i8* bitcast (%Void* (%Fn*, %"Shiika::Internal::Ptr"*, %Object*, %Array*)* @Fn_initialize to i8*), i8* bitcast (%String* (%Object*)* @Object_inspect to i8*), i8* bitcast (%Int* (%Object*)* @Object_object__id to i8*), i8* bitcast (%Void* (%Object*, %Object*)* @Object_p to i8*), i8* bitcast (void (%Object*, %String*)* @Object_panic to i8*), i8* bitcast (%Void* (%Object*, %String*)* @Object_print to i8*), i8* bitcast (%Void* (%Object*, %String*)* @Object_puts to i8*), i8* bitcast (%String* (%Object*)* @Object_to__s to i8*), i8* bitcast (%Array* (%Fn*)* @Fn_captures to i8*), i8* bitcast (%Array* (%Fn*, %Array*)* @_set_Fn_captures to i8*), i8* bitcast (%Int* (%Fn*)* @Fn_exit__status to i8*), i8* bitcast (%Int* (%Fn*, %Int*)* @_set_Fn_exit__status to i8*), i8* bitcast (%"Shiika::Internal::Ptr"* (%Fn*)* @Fn_func to i8*), i8* bitcast (%"Shiika::Internal::Ptr"* (%Fn*, %"Shiika::Internal::Ptr"*)* @_set_Fn_func to i8*), i8* bitcast (%Object* (%Fn*)* @Fn_the__self to i8*), i8* bitcast (%Object* (%Fn*, %Object*)* @_set_Fn_the__self to i8*)] | |
@"shiika_vtable_Meta:Float" = constant [23 x i8*] [i8* bitcast (%Bool* (%Object*, %Object*)* @Object_lt_ to i8*), i8* bitcast (%Bool* (%Object*, %Object*)* @Object_le_ to i8*), i8* bitcast (%Bool* (%Object*, %Object*)* @Object_eq_ to i8*), i8* bitcast (%Bool* (%Object*, %Object*)* @Object_gt_ to i8*), i8* bitcast (%Bool* (%Object*, %Object*)* @Object_ge_ to i8*), i8* bitcast (%Class.0* (%Object*)* @Object_class to i8*), i8* bitcast (void (%Object*, %Int*)* @Object_exit to i8*), i8* bitcast (%Int* (%Object*)* @Object_hash to i8*), i8* bitcast (%Void* (%Class.0*, %String*, %Object*, %Metaclass*)* @Class_initialize to i8*), i8* bitcast (%String* (%Class.0*)* @Class_inspect to i8*), i8* bitcast (%Int* (%Object*)* @Object_object__id to i8*), i8* bitcast (%Void* (%Object*, %Object*)* @Object_p to i8*), i8* bitcast (void (%Object*, %String*)* @Object_panic to i8*), i8* bitcast (%Void* (%Object*, %String*)* @Object_print to i8*), i8* bitcast (%Void* (%Object*, %String*)* @Object_puts to i8*), i8* bitcast (%String* (%Class.0*)* @Class_to__s to i8*), i8* bitcast (%Class.0* (%Class.0*, %Array*)* @Class_lt_gt_ to i8*), i8* bitcast (%Object* (%Class.0*, %Object*, %Object*)* @Class___initialize__rustlib to i8*), i8* bitcast (%Class.0* (%Class.0*, %Array*)* @Class___specialize1 to i8*), i8* bitcast (%Class.0* (%Class.0*, %Int*)* @Class___type__argument to i8*), i8* bitcast (%String* (%Class.0*)* @Class_name to i8*), i8* bitcast (%String* (%Class.0*, %String*)* @_set_Class_name to i8*), i8* bitcast (%Float* (%Float*)* @Meta_Float_new to i8*)] | |
@shiika_vtable_String = constant [35 x i8*] [i8* bitcast (%Bool* (%Object*, %Object*)* @Object_lt_ to i8*), i8* bitcast (%Bool* (%Object*, %Object*)* @Object_le_ to i8*), i8* bitcast (%Bool* (%String*, %String*)* @String_eq_ to i8*), i8* bitcast (%Bool* (%Object*, %Object*)* @Object_gt_ to i8*), i8* bitcast (%Bool* (%Object*, %Object*)* @Object_ge_ to i8*), i8* bitcast (%Class.0* (%Object*)* @Object_class to i8*), i8* bitcast (void (%Object*, %Int*)* @Object_exit to i8*), i8* bitcast (%Int* (%Object*)* @Object_hash to i8*), i8* bitcast (%Void* (%String*, %"Shiika::Internal::Ptr"*, %Int*)* @String_initialize to i8*), i8* bitcast (%String* (%String*)* @String_inspect to i8*), i8* bitcast (%Int* (%Object*)* @Object_object__id to i8*), i8* bitcast (%Void* (%Object*, %Object*)* @Object_p to i8*), i8* bitcast (void (%Object*, %String*)* @Object_panic to i8*), i8* bitcast (%Void* (%Object*, %String*)* @Object_print to i8*), i8* bitcast (%Void* (%Object*, %String*)* @Object_puts to i8*), i8* bitcast (%String* (%String*)* @String_to__s to i8*), i8* bitcast (%String* (%String*, %Int*)* @String_mul_ to i8*), i8* bitcast (%String* (%String*, %String*)* @String_add_ to i8*), i8* bitcast (%Array* (%String*)* @String_bytes to i8*), i8* bitcast (%Int* (%String*)* @String_bytesize to i8*), i8* bitcast (%Int* (%String*, %Int*)* @_set_String_bytesize to i8*), i8* bitcast (%Void* (%String*, %Fn1*)* @String_each__byte to i8*), i8* bitcast (%Void* (%String*, %Fn1*)* @String_each__char to i8*), i8* bitcast (%Void* (%String*, %Fn1*)* @String_each__line to i8*), i8* bitcast (%Bool* (%String*)* @"String_empty?" to i8*), i8* bitcast (%Bool* (%String*, %String*)* @"String_ends__with?" to i8*), i8* bitcast (%Array* (%String*)* @String_lines to i8*), i8* bitcast (%Int* (%String*, %Int*)* @String_nth__byte to i8*), i8* bitcast (%"Shiika::Internal::Ptr"* (%String*)* @String_ptr to i8*), i8* bitcast (%"Shiika::Internal::Ptr"* (%String*, %"Shiika::Internal::Ptr"*)* @_set_String_ptr to i8*), i8* bitcast (%String* (%String*, %Int*, %Int*)* @String_slice__bytes to i8*), i8* bitcast (%Array* (%String*, %String*)* @String_split to i8*), i8* bitcast (%Bool* (%String*, %String*)* @"String_starts__with?" to i8*), i8* bitcast (%Int* (%String*)* @String_to__i to i8*), i8* bitcast (%MutableString* (%String*)* @String_to__mutable to i8*)] | |
@shiika_vtable_Void = constant [16 x i8*] [i8* bitcast (%Bool* (%Object*, %Object*)* @Object_lt_ to i8*), i8* bitcast (%Bool* (%Object*, %Object*)* @Object_le_ to i8*), i8* bitcast (%Bool* (%Object*, %Object*)* @Object_eq_ to i8*), i8* bitcast (%Bool* (%Object*, %Object*)* @Object_gt_ to i8*), i8* bitcast (%Bool* (%Object*, %Object*)* @Object_ge_ to i8*), i8* bitcast (%Class.0* (%Object*)* @Object_class to i8*), i8* bitcast (void (%Object*, %Int*)* @Object_exit to i8*), i8* bitcast (%Int* (%Object*)* @Object_hash to i8*), i8* bitcast (%Void* (%Object*)* @Object_initialize to i8*), i8* bitcast (%String* (%Object*)* @Object_inspect to i8*), i8* bitcast (%Int* (%Object*)* @Object_object__id to i8*), i8* bitcast (%Void* (%Object*, %Object*)* @Object_p to i8*), i8* bitcast (void (%Object*, %String*)* @Object_panic to i8*), i8* bitcast (%Void* (%Object*, %String*)* @Object_print to i8*), i8* bitcast (%Void* (%Object*, %String*)* @Object_puts to i8*), i8* bitcast (%String* (%Void*)* @Void_to__s to i8*)] | |
@shiika_vtable_Fn5 = constant [24 x i8*] [i8* bitcast (%Bool* (%Object*, %Object*)* @Object_lt_ to i8*), i8* bitcast (%Bool* (%Object*, %Object*)* @Object_le_ to i8*), i8* bitcast (%Bool* (%Object*, %Object*)* @Object_eq_ to i8*), i8* bitcast (%Bool* (%Object*, %Object*)* @Object_gt_ to i8*), i8* bitcast (%Bool* (%Object*, %Object*)* @Object_ge_ to i8*), i8* bitcast (%Class.0* (%Object*)* @Object_class to i8*), i8* bitcast (void (%Object*, %Int*)* @Object_exit to i8*), i8* bitcast (%Int* (%Object*)* @Object_hash to i8*), i8* bitcast (%Void* (%Fn*, %"Shiika::Internal::Ptr"*, %Object*, %Array*)* @Fn_initialize to i8*), i8* bitcast (%String* (%Object*)* @Object_inspect to i8*), i8* bitcast (%Int* (%Object*)* @Object_object__id to i8*), i8* bitcast (%Void* (%Object*, %Object*)* @Object_p to i8*), i8* bitcast (void (%Object*, %String*)* @Object_panic to i8*), i8* bitcast (%Void* (%Object*, %String*)* @Object_print to i8*), i8* bitcast (%Void* (%Object*, %String*)* @Object_puts to i8*), i8* bitcast (%String* (%Object*)* @Object_to__s to i8*), i8* bitcast (%Array* (%Fn*)* @Fn_captures to i8*), i8* bitcast (%Array* (%Fn*, %Array*)* @_set_Fn_captures to i8*), i8* bitcast (%Int* (%Fn*)* @Fn_exit__status to i8*), i8* bitcast (%Int* (%Fn*, %Int*)* @_set_Fn_exit__status to i8*), i8* bitcast (%"Shiika::Internal::Ptr"* (%Fn*)* @Fn_func to i8*), i8* bitcast (%"Shiika::Internal::Ptr"* (%Fn*, %"Shiika::Internal::Ptr"*)* @_set_Fn_func to i8*), i8* bitcast (%Object* (%Fn*)* @Fn_the__self to i8*), i8* bitcast (%Object* (%Fn*, %Object*)* @_set_Fn_the__self to i8*)] | |
@shiika_vtable_Dict = constant [24 x i8*] [i8* bitcast (%Bool* (%Object*, %Object*)* @Object_lt_ to i8*), i8* bitcast (%Bool* (%Object*, %Object*)* @Object_le_ to i8*), i8* bitcast (%Bool* (%Object*, %Object*)* @Object_eq_ to i8*), i8* bitcast (%Bool* (%Object*, %Object*)* @Object_gt_ to i8*), i8* bitcast (%Bool* (%Object*, %Object*)* @Object_ge_ to i8*), i8* bitcast (%Class.0* (%Object*)* @Object_class to i8*), i8* bitcast (void (%Object*, %Int*)* @Object_exit to i8*), i8* bitcast (%Int* (%Object*)* @Object_hash to i8*), i8* bitcast (%Void* (%Dict*)* @Dict_initialize to i8*), i8* bitcast (%String* (%Object*)* @Object_inspect to i8*), i8* bitcast (%Int* (%Object*)* @Object_object__id to i8*), i8* bitcast (%Void* (%Object*, %Object*)* @Object_p to i8*), i8* bitcast (void (%Object*, %String*)* @Object_panic to i8*), i8* bitcast (%Void* (%Object*, %String*)* @Object_print to i8*), i8* bitcast (%Void* (%Object*, %String*)* @Object_puts to i8*), i8* bitcast (%String* (%Object*)* @Object_to__s to i8*), i8* bitcast (%Maybe* (%Dict*, %Object*)* @Dict_aref_ to i8*), i8* bitcast (%Void* (%Dict*, %Object*, %Object*)* @Dict_aset_ to i8*), i8* bitcast (%"Dict::Table"* (%Dict*, %Object*)* @Dict___table to i8*), i8* bitcast (%Bool* (%Dict*, %Object*)* @"Dict_has__key?" to i8*), i8* bitcast (%Array* (%Dict*)* @Dict_keys to i8*), i8* bitcast (%Array* (%Dict*)* @Dict_tables to i8*), i8* bitcast (%Array* (%Dict*, %Array*)* @_set_Dict_tables to i8*), i8* bitcast (%Array* (%Dict*)* @Dict_values to i8*)] | |
@"shiika_vtable_Meta:Dict" = constant [23 x i8*] [i8* bitcast (%Bool* (%Object*, %Object*)* @Object_lt_ to i8*), i8* bitcast (%Bool* (%Object*, %Object*)* @Object_le_ to i8*), i8* bitcast (%Bool* (%Object*, %Object*)* @Object_eq_ to i8*), i8* bitcast (%Bool* (%Object*, %Object*)* @Object_gt_ to i8*), i8* bitcast (%Bool* (%Object*, %Object*)* @Object_ge_ to i8*), i8* bitcast (%Class.0* (%Object*)* @Object_class to i8*), i8* bitcast (void (%Object*, %Int*)* @Object_exit to i8*), i8* bitcast (%Int* (%Object*)* @Object_hash to i8*), i8* bitcast (%Void* (%Class.0*, %String*, %Object*, %Metaclass*)* @Class_initialize to i8*), i8* bitcast (%String* (%Class.0*)* @Class_inspect to i8*), i8* bitcast (%Int* (%Object*)* @Object_object__id to i8*), i8* bitcast (%Void* (%Object*, %Object*)* @Object_p to i8*), i8* bitcast (void (%Object*, %String*)* @Object_panic to i8*), i8* bitcast (%Void* (%Object*, %String*)* @Object_print to i8*), i8* bitcast (%Void* (%Object*, %String*)* @Object_puts to i8*), i8* bitcast (%String* (%Class.0*)* @Class_to__s to i8*), i8* bitcast (%Class.0* (%Class.0*, %Array*)* @Class_lt_gt_ to i8*), i8* bitcast (%Object* (%Class.0*, %Object*, %Object*)* @Class___initialize__rustlib to i8*), i8* bitcast (%Class.0* (%Class.0*, %Array*)* @Class___specialize1 to i8*), i8* bitcast (%Class.0* (%Class.0*, %Int*)* @Class___type__argument to i8*), i8* bitcast (%String* (%Class.0*)* @Class_name to i8*), i8* bitcast (%String* (%Class.0*, %String*)* @_set_Class_name to i8*), i8* bitcast (%Dict* (%Dict*)* @Meta_Dict_new to i8*)] | |
@"shiika_vtable_Meta:Fn1" = constant [23 x i8*] [i8* bitcast (%Bool* (%Object*, %Object*)* @Object_lt_ to i8*), i8* bitcast (%Bool* (%Object*, %Object*)* @Object_le_ to i8*), i8* bitcast (%Bool* (%Object*, %Object*)* @Object_eq_ to i8*), i8* bitcast (%Bool* (%Object*, %Object*)* @Object_gt_ to i8*), i8* bitcast (%Bool* (%Object*, %Object*)* @Object_ge_ to i8*), i8* bitcast (%Class.0* (%Object*)* @Object_class to i8*), i8* bitcast (void (%Object*, %Int*)* @Object_exit to i8*), i8* bitcast (%Int* (%Object*)* @Object_hash to i8*), i8* bitcast (%Void* (%Class.0*, %String*, %Object*, %Metaclass*)* @Class_initialize to i8*), i8* bitcast (%String* (%Class.0*)* @Class_inspect to i8*), i8* bitcast (%Int* (%Object*)* @Object_object__id to i8*), i8* bitcast (%Void* (%Object*, %Object*)* @Object_p to i8*), i8* bitcast (void (%Object*, %String*)* @Object_panic to i8*), i8* bitcast (%Void* (%Object*, %String*)* @Object_print to i8*), i8* bitcast (%Void* (%Object*, %String*)* @Object_puts to i8*), i8* bitcast (%String* (%Class.0*)* @Class_to__s to i8*), i8* bitcast (%Class.0* (%Class.0*, %Array*)* @Class_lt_gt_ to i8*), i8* bitcast (%Object* (%Class.0*, %Object*, %Object*)* @Class___initialize__rustlib to i8*), i8* bitcast (%Class.0* (%Class.0*, %Array*)* @Class___specialize1 to i8*), i8* bitcast (%Class.0* (%Class.0*, %Int*)* @Class___type__argument to i8*), i8* bitcast (%String* (%Class.0*)* @Class_name to i8*), i8* bitcast (%String* (%Class.0*, %String*)* @_set_Class_name to i8*), i8* bitcast (%Fn1* (%Fn1*, %"Shiika::Internal::Ptr"*, %Object*, %Array*)* @Meta_Fn1_new to i8*)] | |
@shiika_vtable_Float = constant [25 x i8*] [i8* bitcast (%Bool* (%Float*, %Float*)* @Float_lt_ to i8*), i8* bitcast (%Bool* (%Float*, %Float*)* @Float_le_ to i8*), i8* bitcast (%Bool* (%Float*, %Float*)* @Float_eq_ to i8*), i8* bitcast (%Bool* (%Float*, %Float*)* @Float_gt_ to i8*), i8* bitcast (%Bool* (%Float*, %Float*)* @Float_ge_ to i8*), i8* bitcast (%Class.0* (%Object*)* @Object_class to i8*), i8* bitcast (void (%Object*, %Int*)* @Object_exit to i8*), i8* bitcast (%Int* (%Object*)* @Object_hash to i8*), i8* bitcast (%Void* (%Object*)* @Object_initialize to i8*), i8* bitcast (%String* (%Object*)* @Object_inspect to i8*), i8* bitcast (%Int* (%Object*)* @Object_object__id to i8*), i8* bitcast (%Void* (%Object*, %Object*)* @Object_p to i8*), i8* bitcast (void (%Object*, %String*)* @Object_panic to i8*), i8* bitcast (%Void* (%Object*, %String*)* @Object_print to i8*), i8* bitcast (%Void* (%Object*, %String*)* @Object_puts to i8*), i8* bitcast (%String* (%Float*)* @Float_to__s to i8*), i8* bitcast (%Float* (%Float*, %Int*)* @Float_mod_ to i8*), i8* bitcast (%Float* (%Float*, %Float*)* @Float_mul_ to i8*), i8* bitcast (%Float* (%Float*, %Float*)* @Float_add_ to i8*), i8* bitcast (%Float* (%Float*, %Float*)* @Float_sub_ to i8*), i8* bitcast (%Float* (%Float*)* @Float_uminus_ to i8*), i8* bitcast (%Float* (%Float*, %Float*)* @Float_div_ to i8*), i8* bitcast (%Float* (%Float*)* @Float_abs to i8*), i8* bitcast (%Float* (%Float*)* @Float_floor to i8*), i8* bitcast (%Int* (%Float*)* @Float_to__i to i8*)] | |
@"shiika_vtable_Meta:Maybe::Some" = constant [23 x i8*] [i8* bitcast (%Bool* (%Object*, %Object*)* @Object_lt_ to i8*), i8* bitcast (%Bool* (%Object*, %Object*)* @Object_le_ to i8*), i8* bitcast (%Bool* (%Object*, %Object*)* @Object_eq_ to i8*), i8* bitcast (%Bool* (%Object*, %Object*)* @Object_gt_ to i8*), i8* bitcast (%Bool* (%Object*, %Object*)* @Object_ge_ to i8*), i8* bitcast (%Class.0* (%Object*)* @Object_class to i8*), i8* bitcast (void (%Object*, %Int*)* @Object_exit to i8*), i8* bitcast (%Int* (%Object*)* @Object_hash to i8*), i8* bitcast (%Void* (%Class.0*, %String*, %Object*, %Metaclass*)* @Class_initialize to i8*), i8* bitcast (%String* (%Class.0*)* @Class_inspect to i8*), i8* bitcast (%Int* (%Object*)* @Object_object__id to i8*), i8* bitcast (%Void* (%Object*, %Object*)* @Object_p to i8*), i8* bitcast (void (%Object*, %String*)* @Object_panic to i8*), i8* bitcast (%Void* (%Object*, %String*)* @Object_print to i8*), i8* bitcast (%Void* (%Object*, %String*)* @Object_puts to i8*), i8* bitcast (%String* (%Class.0*)* @Class_to__s to i8*), i8* bitcast (%Class.0* (%Class.0*, %Array*)* @Class_lt_gt_ to i8*), i8* bitcast (%Object* (%Class.0*, %Object*, %Object*)* @Class___initialize__rustlib to i8*), i8* bitcast (%Class.0* (%Class.0*, %Array*)* @Class___specialize1 to i8*), i8* bitcast (%Class.0* (%Class.0*, %Int*)* @Class___type__argument to i8*), i8* bitcast (%String* (%Class.0*)* @Class_name to i8*), i8* bitcast (%String* (%Class.0*, %String*)* @_set_Class_name to i8*), i8* bitcast (%"Maybe::Some"* (%"Maybe::Some"*, %Object*)* @Meta_Maybe_Some_new to i8*)] | |
@shiika_vtable_Pair = constant [20 x i8*] [i8* bitcast (%Bool* (%Object*, %Object*)* @Object_lt_ to i8*), i8* bitcast (%Bool* (%Object*, %Object*)* @Object_le_ to i8*), i8* bitcast (%Bool* (%Object*, %Object*)* @Object_eq_ to i8*), i8* bitcast (%Bool* (%Object*, %Object*)* @Object_gt_ to i8*), i8* bitcast (%Bool* (%Object*, %Object*)* @Object_ge_ to i8*), i8* bitcast (%Class.0* (%Object*)* @Object_class to i8*), i8* bitcast (void (%Object*, %Int*)* @Object_exit to i8*), i8* bitcast (%Int* (%Object*)* @Object_hash to i8*), i8* bitcast (%Void* (%Pair*, %Object*, %Object*)* @Pair_initialize to i8*), i8* bitcast (%String* (%Object*)* @Object_inspect to i8*), i8* bitcast (%Int* (%Object*)* @Object_object__id to i8*), i8* bitcast (%Void* (%Object*, %Object*)* @Object_p to i8*), i8* bitcast (void (%Object*, %String*)* @Object_panic to i8*), i8* bitcast (%Void* (%Object*, %String*)* @Object_print to i8*), i8* bitcast (%Void* (%Object*, %String*)* @Object_puts to i8*), i8* bitcast (%String* (%Object*)* @Object_to__s to i8*), i8* bitcast (%Object* (%Pair*)* @Pair_fst to i8*), i8* bitcast (%Object* (%Pair*, %Object*)* @_set_Pair_fst to i8*), i8* bitcast (%Object* (%Pair*)* @Pair_snd to i8*), i8* bitcast (%Object* (%Pair*, %Object*)* @_set_Pair_snd to i8*)] | |
@"shiika_vtable_Meta:Array" = constant [25 x i8*] [i8* bitcast (%Bool* (%Object*, %Object*)* @Object_lt_ to i8*), i8* bitcast (%Bool* (%Object*, %Object*)* @Object_le_ to i8*), i8* bitcast (%Bool* (%Object*, %Object*)* @Object_eq_ to i8*), i8* bitcast (%Bool* (%Object*, %Object*)* @Object_gt_ to i8*), i8* bitcast (%Bool* (%Object*, %Object*)* @Object_ge_ to i8*), i8* bitcast (%Class.0* (%Object*)* @Object_class to i8*), i8* bitcast (void (%Object*, %Int*)* @Object_exit to i8*), i8* bitcast (%Int* (%Object*)* @Object_hash to i8*), i8* bitcast (%Void* (%Class.0*, %String*, %Object*, %Metaclass*)* @Class_initialize to i8*), i8* bitcast (%String* (%Class.0*)* @Class_inspect to i8*), i8* bitcast (%Int* (%Object*)* @Object_object__id to i8*), i8* bitcast (%Void* (%Object*, %Object*)* @Object_p to i8*), i8* bitcast (void (%Object*, %String*)* @Object_panic to i8*), i8* bitcast (%Void* (%Object*, %String*)* @Object_print to i8*), i8* bitcast (%Void* (%Object*, %String*)* @Object_puts to i8*), i8* bitcast (%String* (%Class.0*)* @Class_to__s to i8*), i8* bitcast (%Class.0* (%Class.0*, %Array*)* @Class_lt_gt_ to i8*), i8* bitcast (%Object* (%Class.0*, %Object*, %Object*)* @Class___initialize__rustlib to i8*), i8* bitcast (%Class.0* (%Class.0*, %Array*)* @Class___specialize1 to i8*), i8* bitcast (%Class.0* (%Class.0*, %Int*)* @Class___type__argument to i8*), i8* bitcast (%String* (%Class.0*)* @Class_name to i8*), i8* bitcast (%String* (%Class.0*, %String*)* @_set_Class_name to i8*), i8* bitcast (%Array* (%Array*, %Int*, %Fn1*)* @Meta_Array_build to i8*), i8* bitcast (%Array* (%Array*)* @Meta_Array_new to i8*), i8* bitcast (%Array* (%Array*, %Object*, %Int*)* @Meta_Array_repeat to i8*)] | |
@"shiika_vtable_Meta:Object" = constant [23 x i8*] [i8* bitcast (%Bool* (%Object*, %Object*)* @Object_lt_ to i8*), i8* bitcast (%Bool* (%Object*, %Object*)* @Object_le_ to i8*), i8* bitcast (%Bool* (%Object*, %Object*)* @Object_eq_ to i8*), i8* bitcast (%Bool* (%Object*, %Object*)* @Object_gt_ to i8*), i8* bitcast (%Bool* (%Object*, %Object*)* @Object_ge_ to i8*), i8* bitcast (%Class.0* (%Object*)* @Object_class to i8*), i8* bitcast (void (%Object*, %Int*)* @Object_exit to i8*), i8* bitcast (%Int* (%Object*)* @Object_hash to i8*), i8* bitcast (%Void* (%Class.0*, %String*, %Object*, %Metaclass*)* @Class_initialize to i8*), i8* bitcast (%String* (%Class.0*)* @Class_inspect to i8*), i8* bitcast (%Int* (%Object*)* @Object_object__id to i8*), i8* bitcast (%Void* (%Object*, %Object*)* @Object_p to i8*), i8* bitcast (void (%Object*, %String*)* @Object_panic to i8*), i8* bitcast (%Void* (%Object*, %String*)* @Object_print to i8*), i8* bitcast (%Void* (%Object*, %String*)* @Object_puts to i8*), i8* bitcast (%String* (%Class.0*)* @Class_to__s to i8*), i8* bitcast (%Class.0* (%Class.0*, %Array*)* @Class_lt_gt_ to i8*), i8* bitcast (%Object* (%Class.0*, %Object*, %Object*)* @Class___initialize__rustlib to i8*), i8* bitcast (%Class.0* (%Class.0*, %Array*)* @Class___specialize1 to i8*), i8* bitcast (%Class.0* (%Class.0*, %Int*)* @Class___type__argument to i8*), i8* bitcast (%String* (%Class.0*)* @Class_name to i8*), i8* bitcast (%String* (%Class.0*, %String*)* @_set_Class_name to i8*), i8* bitcast (%Object* (%Object*)* @Meta_Object_new to i8*)] | |
@"shiika_vtable_Meta:Fn9" = constant [23 x i8*] [i8* bitcast (%Bool* (%Object*, %Object*)* @Object_lt_ to i8*), i8* bitcast (%Bool* (%Object*, %Object*)* @Object_le_ to i8*), i8* bitcast (%Bool* (%Object*, %Object*)* @Object_eq_ to i8*), i8* bitcast (%Bool* (%Object*, %Object*)* @Object_gt_ to i8*), i8* bitcast (%Bool* (%Object*, %Object*)* @Object_ge_ to i8*), i8* bitcast (%Class.0* (%Object*)* @Object_class to i8*), i8* bitcast (void (%Object*, %Int*)* @Object_exit to i8*), i8* bitcast (%Int* (%Object*)* @Object_hash to i8*), i8* bitcast (%Void* (%Class.0*, %String*, %Object*, %Metaclass*)* @Class_initialize to i8*), i8* bitcast (%String* (%Class.0*)* @Class_inspect to i8*), i8* bitcast (%Int* (%Object*)* @Object_object__id to i8*), i8* bitcast (%Void* (%Object*, %Object*)* @Object_p to i8*), i8* bitcast (void (%Object*, %String*)* @Object_panic to i8*), i8* bitcast (%Void* (%Object*, %String*)* @Object_print to i8*), i8* bitcast (%Void* (%Object*, %String*)* @Object_puts to i8*), i8* bitcast (%String* (%Class.0*)* @Class_to__s to i8*), i8* bitcast (%Class.0* (%Class.0*, %Array*)* @Class_lt_gt_ to i8*), i8* bitcast (%Object* (%Class.0*, %Object*, %Object*)* @Class___initialize__rustlib to i8*), i8* bitcast (%Class.0* (%Class.0*, %Array*)* @Class___specialize1 to i8*), i8* bitcast (%Class.0* (%Class.0*, %Int*)* @Class___type__argument to i8*), i8* bitcast (%String* (%Class.0*)* @Class_name to i8*), i8* bitcast (%String* (%Class.0*, %String*)* @_set_Class_name to i8*), i8* bitcast (%Fn9* (%Fn9*, %"Shiika::Internal::Ptr"*, %Object*, %Array*)* @Meta_Fn9_new to i8*)] | |
@"shiika_vtable_Meta:Enumerable" = constant [22 x i8*] [i8* bitcast (%Bool* (%Object*, %Object*)* @Object_lt_ to i8*), i8* bitcast (%Bool* (%Object*, %Object*)* @Object_le_ to i8*), i8* bitcast (%Bool* (%Object*, %Object*)* @Object_eq_ to i8*), i8* bitcast (%Bool* (%Object*, %Object*)* @Object_gt_ to i8*), i8* bitcast (%Bool* (%Object*, %Object*)* @Object_ge_ to i8*), i8* bitcast (%Class.0* (%Object*)* @Object_class to i8*), i8* bitcast (void (%Object*, %Int*)* @Object_exit to i8*), i8* bitcast (%Int* (%Object*)* @Object_hash to i8*), i8* bitcast (%Void* (%Class.0*, %String*, %Object*, %Metaclass*)* @Class_initialize to i8*), i8* bitcast (%String* (%Class.0*)* @Class_inspect to i8*), i8* bitcast (%Int* (%Object*)* @Object_object__id to i8*), i8* bitcast (%Void* (%Object*, %Object*)* @Object_p to i8*), i8* bitcast (void (%Object*, %String*)* @Object_panic to i8*), i8* bitcast (%Void* (%Object*, %String*)* @Object_print to i8*), i8* bitcast (%Void* (%Object*, %String*)* @Object_puts to i8*), i8* bitcast (%String* (%Class.0*)* @Class_to__s to i8*), i8* bitcast (%Class.0* (%Class.0*, %Array*)* @Class_lt_gt_ to i8*), i8* bitcast (%Object* (%Class.0*, %Object*, %Object*)* @Class___initialize__rustlib to i8*), i8* bitcast (%Class.0* (%Class.0*, %Array*)* @Class___specialize1 to i8*), i8* bitcast (%Class.0* (%Class.0*, %Int*)* @Class___type__argument to i8*), i8* bitcast (%String* (%Class.0*)* @Class_name to i8*), i8* bitcast (%String* (%Class.0*, %String*)* @_set_Class_name to i8*)] | |
@"shiika_vtable_Shiika::Internal::Memory" = constant [16 x i8*] [i8* bitcast (%Bool* (%Object*, %Object*)* @Object_lt_ to i8*), i8* bitcast (%Bool* (%Object*, %Object*)* @Object_le_ to i8*), i8* bitcast (%Bool* (%Object*, %Object*)* @Object_eq_ to i8*), i8* bitcast (%Bool* (%Object*, %Object*)* @Object_gt_ to i8*), i8* bitcast (%Bool* (%Object*, %Object*)* @Object_ge_ to i8*), i8* bitcast (%Class.0* (%Object*)* @Object_class to i8*), i8* bitcast (void (%Object*, %Int*)* @Object_exit to i8*), i8* bitcast (%Int* (%Object*)* @Object_hash to i8*), i8* bitcast (%Void* (%Object*)* @Object_initialize to i8*), i8* bitcast (%String* (%Object*)* @Object_inspect to i8*), i8* bitcast (%Int* (%Object*)* @Object_object__id to i8*), i8* bitcast (%Void* (%Object*, %Object*)* @Object_p to i8*), i8* bitcast (void (%Object*, %String*)* @Object_panic to i8*), i8* bitcast (%Void* (%Object*, %String*)* @Object_print to i8*), i8* bitcast (%Void* (%Object*, %String*)* @Object_puts to i8*), i8* bitcast (%String* (%Object*)* @Object_to__s to i8*)] | |
@shiika_vtable_Fn3 = constant [24 x i8*] [i8* bitcast (%Bool* (%Object*, %Object*)* @Object_lt_ to i8*), i8* bitcast (%Bool* (%Object*, %Object*)* @Object_le_ to i8*), i8* bitcast (%Bool* (%Object*, %Object*)* @Object_eq_ to i8*), i8* bitcast (%Bool* (%Object*, %Object*)* @Object_gt_ to i8*), i8* bitcast (%Bool* (%Object*, %Object*)* @Object_ge_ to i8*), i8* bitcast (%Class.0* (%Object*)* @Object_class to i8*), i8* bitcast (void (%Object*, %Int*)* @Object_exit to i8*), i8* bitcast (%Int* (%Object*)* @Object_hash to i8*), i8* bitcast (%Void* (%Fn*, %"Shiika::Internal::Ptr"*, %Object*, %Array*)* @Fn_initialize to i8*), i8* bitcast (%String* (%Object*)* @Object_inspect to i8*), i8* bitcast (%Int* (%Object*)* @Object_object__id to i8*), i8* bitcast (%Void* (%Object*, %Object*)* @Object_p to i8*), i8* bitcast (void (%Object*, %String*)* @Object_panic to i8*), i8* bitcast (%Void* (%Object*, %String*)* @Object_print to i8*), i8* bitcast (%Void* (%Object*, %String*)* @Object_puts to i8*), i8* bitcast (%String* (%Object*)* @Object_to__s to i8*), i8* bitcast (%Array* (%Fn*)* @Fn_captures to i8*), i8* bitcast (%Array* (%Fn*, %Array*)* @_set_Fn_captures to i8*), i8* bitcast (%Int* (%Fn*)* @Fn_exit__status to i8*), i8* bitcast (%Int* (%Fn*, %Int*)* @_set_Fn_exit__status to i8*), i8* bitcast (%"Shiika::Internal::Ptr"* (%Fn*)* @Fn_func to i8*), i8* bitcast (%"Shiika::Internal::Ptr"* (%Fn*, %"Shiika::Internal::Ptr"*)* @_set_Fn_func to i8*), i8* bitcast (%Object* (%Fn*)* @Fn_the__self to i8*), i8* bitcast (%Object* (%Fn*, %Object*)* @_set_Fn_the__self to i8*)] | |
@shiika_vtable_Fn8 = constant [24 x i8*] [i8* bitcast (%Bool* (%Object*, %Object*)* @Object_lt_ to i8*), i8* bitcast (%Bool* (%Object*, %Object*)* @Object_le_ to i8*), i8* bitcast (%Bool* (%Object*, %Object*)* @Object_eq_ to i8*), i8* bitcast (%Bool* (%Object*, %Object*)* @Object_gt_ to i8*), i8* bitcast (%Bool* (%Object*, %Object*)* @Object_ge_ to i8*), i8* bitcast (%Class.0* (%Object*)* @Object_class to i8*), i8* bitcast (void (%Object*, %Int*)* @Object_exit to i8*), i8* bitcast (%Int* (%Object*)* @Object_hash to i8*), i8* bitcast (%Void* (%Fn*, %"Shiika::Internal::Ptr"*, %Object*, %Array*)* @Fn_initialize to i8*), i8* bitcast (%String* (%Object*)* @Object_inspect to i8*), i8* bitcast (%Int* (%Object*)* @Object_object__id to i8*), i8* bitcast (%Void* (%Object*, %Object*)* @Object_p to i8*), i8* bitcast (void (%Object*, %String*)* @Object_panic to i8*), i8* bitcast (%Void* (%Object*, %String*)* @Object_print to i8*), i8* bitcast (%Void* (%Object*, %String*)* @Object_puts to i8*), i8* bitcast (%String* (%Object*)* @Object_to__s to i8*), i8* bitcast (%Array* (%Fn*)* @Fn_captures to i8*), i8* bitcast (%Array* (%Fn*, %Array*)* @_set_Fn_captures to i8*), i8* bitcast (%Int* (%Fn*)* @Fn_exit__status to i8*), i8* bitcast (%Int* (%Fn*, %Int*)* @_set_Fn_exit__status to i8*), i8* bitcast (%"Shiika::Internal::Ptr"* (%Fn*)* @Fn_func to i8*), i8* bitcast (%"Shiika::Internal::Ptr"* (%Fn*, %"Shiika::Internal::Ptr"*)* @_set_Fn_func to i8*), i8* bitcast (%Object* (%Fn*)* @Fn_the__self to i8*), i8* bitcast (%Object* (%Fn*, %Object*)* @_set_Fn_the__self to i8*)] | |
@"shiika_vtable_Meta:Fn2" = constant [23 x i8*] [i8* bitcast (%Bool* (%Object*, %Object*)* @Object_lt_ to i8*), i8* bitcast (%Bool* (%Object*, %Object*)* @Object_le_ to i8*), i8* bitcast (%Bool* (%Object*, %Object*)* @Object_eq_ to i8*), i8* bitcast (%Bool* (%Object*, %Object*)* @Object_gt_ to i8*), i8* bitcast (%Bool* (%Object*, %Object*)* @Object_ge_ to i8*), i8* bitcast (%Class.0* (%Object*)* @Object_class to i8*), i8* bitcast (void (%Object*, %Int*)* @Object_exit to i8*), i8* bitcast (%Int* (%Object*)* @Object_hash to i8*), i8* bitcast (%Void* (%Class.0*, %String*, %Object*, %Metaclass*)* @Class_initialize to i8*), i8* bitcast (%String* (%Class.0*)* @Class_inspect to i8*), i8* bitcast (%Int* (%Object*)* @Object_object__id to i8*), i8* bitcast (%Void* (%Object*, %Object*)* @Object_p to i8*), i8* bitcast (void (%Object*, %String*)* @Object_panic to i8*), i8* bitcast (%Void* (%Object*, %String*)* @Object_print to i8*), i8* bitcast (%Void* (%Object*, %String*)* @Object_puts to i8*), i8* bitcast (%String* (%Class.0*)* @Class_to__s to i8*), i8* bitcast (%Class.0* (%Class.0*, %Array*)* @Class_lt_gt_ to i8*), i8* bitcast (%Object* (%Class.0*, %Object*, %Object*)* @Class___initialize__rustlib to i8*), i8* bitcast (%Class.0* (%Class.0*, %Array*)* @Class___specialize1 to i8*), i8* bitcast (%Class.0* (%Class.0*, %Int*)* @Class___type__argument to i8*), i8* bitcast (%String* (%Class.0*)* @Class_name to i8*), i8* bitcast (%String* (%Class.0*, %String*)* @_set_Class_name to i8*), i8* bitcast (%Fn2* (%Fn2*, %"Shiika::Internal::Ptr"*, %Object*, %Array*)* @Meta_Fn2_new to i8*)] | |
@shiika_vtable_Error = constant [18 x i8*] [i8* bitcast (%Bool* (%Object*, %Object*)* @Object_lt_ to i8*), i8* bitcast (%Bool* (%Object*, %Object*)* @Object_le_ to i8*), i8* bitcast (%Bool* (%Object*, %Object*)* @Object_eq_ to i8*), i8* bitcast (%Bool* (%Object*, %Object*)* @Object_gt_ to i8*), i8* bitcast (%Bool* (%Object*, %Object*)* @Object_ge_ to i8*), i8* bitcast (%Class.0* (%Object*)* @Object_class to i8*), i8* bitcast (void (%Object*, %Int*)* @Object_exit to i8*), i8* bitcast (%Int* (%Object*)* @Object_hash to i8*), i8* bitcast (%Void* (%Error*, %String*)* @Error_initialize to i8*), i8* bitcast (%String* (%Object*)* @Object_inspect to i8*), i8* bitcast (%Int* (%Object*)* @Object_object__id to i8*), i8* bitcast (%Void* (%Object*, %Object*)* @Object_p to i8*), i8* bitcast (void (%Object*, %String*)* @Object_panic to i8*), i8* bitcast (%Void* (%Object*, %String*)* @Object_print to i8*), i8* bitcast (%Void* (%Object*, %String*)* @Object_puts to i8*), i8* bitcast (%String* (%Object*)* @Object_to__s to i8*), i8* bitcast (%String* (%Error*)* @Error_msg to i8*), i8* bitcast (%String* (%Error*, %String*)* @_set_Error_msg to i8*)] | |
@"shiika_vtable_Dict::Table" = constant [23 x i8*] [i8* bitcast (%Bool* (%Object*, %Object*)* @Object_lt_ to i8*), i8* bitcast (%Bool* (%Object*, %Object*)* @Object_le_ to i8*), i8* bitcast (%Bool* (%Object*, %Object*)* @Object_eq_ to i8*), i8* bitcast (%Bool* (%Object*, %Object*)* @Object_gt_ to i8*), i8* bitcast (%Bool* (%Object*, %Object*)* @Object_ge_ to i8*), i8* bitcast (%Class.0* (%Object*)* @Object_class to i8*), i8* bitcast (void (%Object*, %Int*)* @Object_exit to i8*), i8* bitcast (%Int* (%Object*)* @Object_hash to i8*), i8* bitcast (%Void* (%"Dict::Table"*)* @Dict_Table_initialize to i8*), i8* bitcast (%String* (%Object*)* @Object_inspect to i8*), i8* bitcast (%Int* (%Object*)* @Object_object__id to i8*), i8* bitcast (%Void* (%Object*, %Object*)* @Object_p to i8*), i8* bitcast (void (%Object*, %String*)* @Object_panic to i8*), i8* bitcast (%Void* (%Object*, %String*)* @Object_print to i8*), i8* bitcast (%Void* (%Object*, %String*)* @Object_puts to i8*), i8* bitcast (%String* (%Object*)* @Object_to__s to i8*), i8* bitcast (%Maybe* (%"Dict::Table"*, %Object*)* @Dict_Table_aref_ to i8*), i8* bitcast (%Void* (%"Dict::Table"*, %Object*, %Object*)* @Dict_Table_aset_ to i8*), i8* bitcast (%Bool* (%"Dict::Table"*, %Object*)* @"Dict_Table_has__key?" to i8*), i8* bitcast (%Array* (%"Dict::Table"*)* @Dict_Table_keys to i8*), i8* bitcast (%Array* (%"Dict::Table"*)* @Dict_Table_pairs to i8*), i8* bitcast (%Array* (%"Dict::Table"*, %Array*)* @_set_Dict_Table_pairs to i8*), i8* bitcast (%Array* (%"Dict::Table"*)* @Dict_Table_values to i8*)] | |
@"shiika_vtable_Meta:Dict::Table" = constant [23 x i8*] [i8* bitcast (%Bool* (%Object*, %Object*)* @Object_lt_ to i8*), i8* bitcast (%Bool* (%Object*, %Object*)* @Object_le_ to i8*), i8* bitcast (%Bool* (%Object*, %Object*)* @Object_eq_ to i8*), i8* bitcast (%Bool* (%Object*, %Object*)* @Object_gt_ to i8*), i8* bitcast (%Bool* (%Object*, %Object*)* @Object_ge_ to i8*), i8* bitcast (%Class.0* (%Object*)* @Object_class to i8*), i8* bitcast (void (%Object*, %Int*)* @Object_exit to i8*), i8* bitcast (%Int* (%Object*)* @Object_hash to i8*), i8* bitcast (%Void* (%Class.0*, %String*, %Object*, %Metaclass*)* @Class_initialize to i8*), i8* bitcast (%String* (%Class.0*)* @Class_inspect to i8*), i8* bitcast (%Int* (%Object*)* @Object_object__id to i8*), i8* bitcast (%Void* (%Object*, %Object*)* @Object_p to i8*), i8* bitcast (void (%Object*, %String*)* @Object_panic to i8*), i8* bitcast (%Void* (%Object*, %String*)* @Object_print to i8*), i8* bitcast (%Void* (%Object*, %String*)* @Object_puts to i8*), i8* bitcast (%String* (%Class.0*)* @Class_to__s to i8*), i8* bitcast (%Class.0* (%Class.0*, %Array*)* @Class_lt_gt_ to i8*), i8* bitcast (%Object* (%Class.0*, %Object*, %Object*)* @Class___initialize__rustlib to i8*), i8* bitcast (%Class.0* (%Class.0*, %Array*)* @Class___specialize1 to i8*), i8* bitcast (%Class.0* (%Class.0*, %Int*)* @Class___type__argument to i8*), i8* bitcast (%String* (%Class.0*)* @Class_name to i8*), i8* bitcast (%String* (%Class.0*, %String*)* @_set_Class_name to i8*), i8* bitcast (%"Dict::Table"* (%"Dict::Table"*)* @Meta_Dict_Table_new to i8*)] | |
@shiika_vtable_Class = constant [22 x i8*] [i8* bitcast (%Bool* (%Object*, %Object*)* @Object_lt_ to i8*), i8* bitcast (%Bool* (%Object*, %Object*)* @Object_le_ to i8*), i8* bitcast (%Bool* (%Object*, %Object*)* @Object_eq_ to i8*), i8* bitcast (%Bool* (%Object*, %Object*)* @Object_gt_ to i8*), i8* bitcast (%Bool* (%Object*, %Object*)* @Object_ge_ to i8*), i8* bitcast (%Class.0* (%Object*)* @Object_class to i8*), i8* bitcast (void (%Object*, %Int*)* @Object_exit to i8*), i8* bitcast (%Int* (%Object*)* @Object_hash to i8*), i8* bitcast (%Void* (%Class.0*, %String*, %Object*, %Metaclass*)* @Class_initialize to i8*), i8* bitcast (%String* (%Class.0*)* @Class_inspect to i8*), i8* bitcast (%Int* (%Object*)* @Object_object__id to i8*), i8* bitcast (%Void* (%Object*, %Object*)* @Object_p to i8*), i8* bitcast (void (%Object*, %String*)* @Object_panic to i8*), i8* bitcast (%Void* (%Object*, %String*)* @Object_print to i8*), i8* bitcast (%Void* (%Object*, %String*)* @Object_puts to i8*), i8* bitcast (%String* (%Class.0*)* @Class_to__s to i8*), i8* bitcast (%Class.0* (%Class.0*, %Array*)* @Class_lt_gt_ to i8*), i8* bitcast (%Object* (%Class.0*, %Object*, %Object*)* @Class___initialize__rustlib to i8*), i8* bitcast (%Class.0* (%Class.0*, %Array*)* @Class___specialize1 to i8*), i8* bitcast (%Class.0* (%Class.0*, %Int*)* @Class___type__argument to i8*), i8* bitcast (%String* (%Class.0*)* @Class_name to i8*), i8* bitcast (%String* (%Class.0*, %String*)* @_set_Class_name to i8*)] | |
@"shiika_vtable_Meta:String" = constant [23 x i8*] [i8* bitcast (%Bool* (%Object*, %Object*)* @Object_lt_ to i8*), i8* bitcast (%Bool* (%Object*, %Object*)* @Object_le_ to i8*), i8* bitcast (%Bool* (%Object*, %Object*)* @Object_eq_ to i8*), i8* bitcast (%Bool* (%Object*, %Object*)* @Object_gt_ to i8*), i8* bitcast (%Bool* (%Object*, %Object*)* @Object_ge_ to i8*), i8* bitcast (%Class.0* (%Object*)* @Object_class to i8*), i8* bitcast (void (%Object*, %Int*)* @Object_exit to i8*), i8* bitcast (%Int* (%Object*)* @Object_hash to i8*), i8* bitcast (%Void* (%Class.0*, %String*, %Object*, %Metaclass*)* @Class_initialize to i8*), i8* bitcast (%String* (%Class.0*)* @Class_inspect to i8*), i8* bitcast (%Int* (%Object*)* @Object_object__id to i8*), i8* bitcast (%Void* (%Object*, %Object*)* @Object_p to i8*), i8* bitcast (void (%Object*, %String*)* @Object_panic to i8*), i8* bitcast (%Void* (%Object*, %String*)* @Object_print to i8*), i8* bitcast (%Void* (%Object*, %String*)* @Object_puts to i8*), i8* bitcast (%String* (%Class.0*)* @Class_to__s to i8*), i8* bitcast (%Class.0* (%Class.0*, %Array*)* @Class_lt_gt_ to i8*), i8* bitcast (%Object* (%Class.0*, %Object*, %Object*)* @Class___initialize__rustlib to i8*), i8* bitcast (%Class.0* (%Class.0*, %Array*)* @Class___specialize1 to i8*), i8* bitcast (%Class.0* (%Class.0*, %Int*)* @Class___type__argument to i8*), i8* bitcast (%String* (%Class.0*)* @Class_name to i8*), i8* bitcast (%String* (%Class.0*, %String*)* @_set_Class_name to i8*), i8* bitcast (%String* (%String*, %"Shiika::Internal::Ptr"*, %Int*)* @Meta_String_new to i8*)] | |
@shiika_vtable_Fn9 = constant [24 x i8*] [i8* bitcast (%Bool* (%Object*, %Object*)* @Object_lt_ to i8*), i8* bitcast (%Bool* (%Object*, %Object*)* @Object_le_ to i8*), i8* bitcast (%Bool* (%Object*, %Object*)* @Object_eq_ to i8*), i8* bitcast (%Bool* (%Object*, %Object*)* @Object_gt_ to i8*), i8* bitcast (%Bool* (%Object*, %Object*)* @Object_ge_ to i8*), i8* bitcast (%Class.0* (%Object*)* @Object_class to i8*), i8* bitcast (void (%Object*, %Int*)* @Object_exit to i8*), i8* bitcast (%Int* (%Object*)* @Object_hash to i8*), i8* bitcast (%Void* (%Fn*, %"Shiika::Internal::Ptr"*, %Object*, %Array*)* @Fn_initialize to i8*), i8* bitcast (%String* (%Object*)* @Object_inspect to i8*), i8* bitcast (%Int* (%Object*)* @Object_object__id to i8*), i8* bitcast (%Void* (%Object*, %Object*)* @Object_p to i8*), i8* bitcast (void (%Object*, %String*)* @Object_panic to i8*), i8* bitcast (%Void* (%Object*, %String*)* @Object_print to i8*), i8* bitcast (%Void* (%Object*, %String*)* @Object_puts to i8*), i8* bitcast (%String* (%Object*)* @Object_to__s to i8*), i8* bitcast (%Array* (%Fn*)* @Fn_captures to i8*), i8* bitcast (%Array* (%Fn*, %Array*)* @_set_Fn_captures to i8*), i8* bitcast (%Int* (%Fn*)* @Fn_exit__status to i8*), i8* bitcast (%Int* (%Fn*, %Int*)* @_set_Fn_exit__status to i8*), i8* bitcast (%"Shiika::Internal::Ptr"* (%Fn*)* @Fn_func to i8*), i8* bitcast (%"Shiika::Internal::Ptr"* (%Fn*, %"Shiika::Internal::Ptr"*)* @_set_Fn_func to i8*), i8* bitcast (%Object* (%Fn*)* @Fn_the__self to i8*), i8* bitcast (%Object* (%Fn*, %Object*)* @_set_Fn_the__self to i8*)] | |
@shiika_vtable_Math = constant [16 x i8*] [i8* bitcast (%Bool* (%Object*, %Object*)* @Object_lt_ to i8*), i8* bitcast (%Bool* (%Object*, %Object*)* @Object_le_ to i8*), i8* bitcast (%Bool* (%Object*, %Object*)* @Object_eq_ to i8*), i8* bitcast (%Bool* (%Object*, %Object*)* @Object_gt_ to i8*), i8* bitcast (%Bool* (%Object*, %Object*)* @Object_ge_ to i8*), i8* bitcast (%Class.0* (%Object*)* @Object_class to i8*), i8* bitcast (void (%Object*, %Int*)* @Object_exit to i8*), i8* bitcast (%Int* (%Object*)* @Object_hash to i8*), i8* bitcast (%Void* (%Object*)* @Object_initialize to i8*), i8* bitcast (%String* (%Object*)* @Object_inspect to i8*), i8* bitcast (%Int* (%Object*)* @Object_object__id to i8*), i8* bitcast (%Void* (%Object*, %Object*)* @Object_p to i8*), i8* bitcast (void (%Object*, %String*)* @Object_panic to i8*), i8* bitcast (%Void* (%Object*, %String*)* @Object_print to i8*), i8* bitcast (%Void* (%Object*, %String*)* @Object_puts to i8*), i8* bitcast (%String* (%Object*)* @Object_to__s to i8*)] | |
@"shiika_vtable_Meta:Bool" = constant [23 x i8*] [i8* bitcast (%Bool* (%Object*, %Object*)* @Object_lt_ to i8*), i8* bitcast (%Bool* (%Object*, %Object*)* @Object_le_ to i8*), i8* bitcast (%Bool* (%Object*, %Object*)* @Object_eq_ to i8*), i8* bitcast (%Bool* (%Object*, %Object*)* @Object_gt_ to i8*), i8* bitcast (%Bool* (%Object*, %Object*)* @Object_ge_ to i8*), i8* bitcast (%Class.0* (%Object*)* @Object_class to i8*), i8* bitcast (void (%Object*, %Int*)* @Object_exit to i8*), i8* bitcast (%Int* (%Object*)* @Object_hash to i8*), i8* bitcast (%Void* (%Class.0*, %String*, %Object*, %Metaclass*)* @Class_initialize to i8*), i8* bitcast (%String* (%Class.0*)* @Class_inspect to i8*), i8* bitcast (%Int* (%Object*)* @Object_object__id to i8*), i8* bitcast (%Void* (%Object*, %Object*)* @Object_p to i8*), i8* bitcast (void (%Object*, %String*)* @Object_panic to i8*), i8* bitcast (%Void* (%Object*, %String*)* @Object_print to i8*), i8* bitcast (%Void* (%Object*, %String*)* @Object_puts to i8*), i8* bitcast (%String* (%Class.0*)* @Class_to__s to i8*), i8* bitcast (%Class.0* (%Class.0*, %Array*)* @Class_lt_gt_ to i8*), i8* bitcast (%Object* (%Class.0*, %Object*, %Object*)* @Class___initialize__rustlib to i8*), i8* bitcast (%Class.0* (%Class.0*, %Array*)* @Class___specialize1 to i8*), i8* bitcast (%Class.0* (%Class.0*, %Int*)* @Class___type__argument to i8*), i8* bitcast (%String* (%Class.0*)* @Class_name to i8*), i8* bitcast (%String* (%Class.0*, %String*)* @_set_Class_name to i8*), i8* bitcast (%Bool* (%Bool*)* @Meta_Bool_new to i8*)] | |
@"shiika_vtable_Meta:Fn3" = constant [23 x i8*] [i8* bitcast (%Bool* (%Object*, %Object*)* @Object_lt_ to i8*), i8* bitcast (%Bool* (%Object*, %Object*)* @Object_le_ to i8*), i8* bitcast (%Bool* (%Object*, %Object*)* @Object_eq_ to i8*), i8* bitcast (%Bool* (%Object*, %Object*)* @Object_gt_ to i8*), i8* bitcast (%Bool* (%Object*, %Object*)* @Object_ge_ to i8*), i8* bitcast (%Class.0* (%Object*)* @Object_class to i8*), i8* bitcast (void (%Object*, %Int*)* @Object_exit to i8*), i8* bitcast (%Int* (%Object*)* @Object_hash to i8*), i8* bitcast (%Void* (%Class.0*, %String*, %Object*, %Metaclass*)* @Class_initialize to i8*), i8* bitcast (%String* (%Class.0*)* @Class_inspect to i8*), i8* bitcast (%Int* (%Object*)* @Object_object__id to i8*), i8* bitcast (%Void* (%Object*, %Object*)* @Object_p to i8*), i8* bitcast (void (%Object*, %String*)* @Object_panic to i8*), i8* bitcast (%Void* (%Object*, %String*)* @Object_print to i8*), i8* bitcast (%Void* (%Object*, %String*)* @Object_puts to i8*), i8* bitcast (%String* (%Class.0*)* @Class_to__s to i8*), i8* bitcast (%Class.0* (%Class.0*, %Array*)* @Class_lt_gt_ to i8*), i8* bitcast (%Object* (%Class.0*, %Object*, %Object*)* @Class___initialize__rustlib to i8*), i8* bitcast (%Class.0* (%Class.0*, %Array*)* @Class___specialize1 to i8*), i8* bitcast (%Class.0* (%Class.0*, %Int*)* @Class___type__argument to i8*), i8* bitcast (%String* (%Class.0*)* @Class_name to i8*), i8* bitcast (%String* (%Class.0*, %String*)* @_set_Class_name to i8*), i8* bitcast (%Fn3* (%Fn3*, %"Shiika::Internal::Ptr"*, %Object*, %Array*)* @Meta_Fn3_new to i8*)] | |
@"shiika_vtable_Meta:Maybe" = constant [22 x i8*] [i8* bitcast (%Bool* (%Object*, %Object*)* @Object_lt_ to i8*), i8* bitcast (%Bool* (%Object*, %Object*)* @Object_le_ to i8*), i8* bitcast (%Bool* (%Object*, %Object*)* @Object_eq_ to i8*), i8* bitcast (%Bool* (%Object*, %Object*)* @Object_gt_ to i8*), i8* bitcast (%Bool* (%Object*, %Object*)* @Object_ge_ to i8*), i8* bitcast (%Class.0* (%Object*)* @Object_class to i8*), i8* bitcast (void (%Object*, %Int*)* @Object_exit to i8*), i8* bitcast (%Int* (%Object*)* @Object_hash to i8*), i8* bitcast (%Void* (%Class.0*, %String*, %Object*, %Metaclass*)* @Class_initialize to i8*), i8* bitcast (%String* (%Class.0*)* @Class_inspect to i8*), i8* bitcast (%Int* (%Object*)* @Object_object__id to i8*), i8* bitcast (%Void* (%Object*, %Object*)* @Object_p to i8*), i8* bitcast (void (%Object*, %String*)* @Object_panic to i8*), i8* bitcast (%Void* (%Object*, %String*)* @Object_print to i8*), i8* bitcast (%Void* (%Object*, %String*)* @Object_puts to i8*), i8* bitcast (%String* (%Class.0*)* @Class_to__s to i8*), i8* bitcast (%Class.0* (%Class.0*, %Array*)* @Class_lt_gt_ to i8*), i8* bitcast (%Object* (%Class.0*, %Object*, %Object*)* @Class___initialize__rustlib to i8*), i8* bitcast (%Class.0* (%Class.0*, %Array*)* @Class___specialize1 to i8*), i8* bitcast (%Class.0* (%Class.0*, %Int*)* @Class___type__argument to i8*), i8* bitcast (%String* (%Class.0*)* @Class_name to i8*), i8* bitcast (%String* (%Class.0*, %String*)* @_set_Class_name to i8*)] | |
@"shiika_vtable_Meta:MutableString" = constant [23 x i8*] [i8* bitcast (%Bool* (%Object*, %Object*)* @Object_lt_ to i8*), i8* bitcast (%Bool* (%Object*, %Object*)* @Object_le_ to i8*), i8* bitcast (%Bool* (%Object*, %Object*)* @Object_eq_ to i8*), i8* bitcast (%Bool* (%Object*, %Object*)* @Object_gt_ to i8*), i8* bitcast (%Bool* (%Object*, %Object*)* @Object_ge_ to i8*), i8* bitcast (%Class.0* (%Object*)* @Object_class to i8*), i8* bitcast (void (%Object*, %Int*)* @Object_exit to i8*), i8* bitcast (%Int* (%Object*)* @Object_hash to i8*), i8* bitcast (%Void* (%Class.0*, %String*, %Object*, %Metaclass*)* @Class_initialize to i8*), i8* bitcast (%String* (%Class.0*)* @Class_inspect to i8*), i8* bitcast (%Int* (%Object*)* @Object_object__id to i8*), i8* bitcast (%Void* (%Object*, %Object*)* @Object_p to i8*), i8* bitcast (void (%Object*, %String*)* @Object_panic to i8*), i8* bitcast (%Void* (%Object*, %String*)* @Object_print to i8*), i8* bitcast (%Void* (%Object*, %String*)* @Object_puts to i8*), i8* bitcast (%String* (%Class.0*)* @Class_to__s to i8*), i8* bitcast (%Class.0* (%Class.0*, %Array*)* @Class_lt_gt_ to i8*), i8* bitcast (%Object* (%Class.0*, %Object*, %Object*)* @Class___initialize__rustlib to i8*), i8* bitcast (%Class.0* (%Class.0*, %Array*)* @Class___specialize1 to i8*), i8* bitcast (%Class.0* (%Class.0*, %Int*)* @Class___type__argument to i8*), i8* bitcast (%String* (%Class.0*)* @Class_name to i8*), i8* bitcast (%String* (%Class.0*, %String*)* @_set_Class_name to i8*), i8* bitcast (%MutableString* (%MutableString*)* @Meta_MutableString_new to i8*)] | |
@"shiika_vtable_Meta:Fn6" = constant [23 x i8*] [i8* bitcast (%Bool* (%Object*, %Object*)* @Object_lt_ to i8*), i8* bitcast (%Bool* (%Object*, %Object*)* @Object_le_ to i8*), i8* bitcast (%Bool* (%Object*, %Object*)* @Object_eq_ to i8*), i8* bitcast (%Bool* (%Object*, %Object*)* @Object_gt_ to i8*), i8* bitcast (%Bool* (%Object*, %Object*)* @Object_ge_ to i8*), i8* bitcast (%Class.0* (%Object*)* @Object_class to i8*), i8* bitcast (void (%Object*, %Int*)* @Object_exit to i8*), i8* bitcast (%Int* (%Object*)* @Object_hash to i8*), i8* bitcast (%Void* (%Class.0*, %String*, %Object*, %Metaclass*)* @Class_initialize to i8*), i8* bitcast (%String* (%Class.0*)* @Class_inspect to i8*), i8* bitcast (%Int* (%Object*)* @Object_object__id to i8*), i8* bitcast (%Void* (%Object*, %Object*)* @Object_p to i8*), i8* bitcast (void (%Object*, %String*)* @Object_panic to i8*), i8* bitcast (%Void* (%Object*, %String*)* @Object_print to i8*), i8* bitcast (%Void* (%Object*, %String*)* @Object_puts to i8*), i8* bitcast (%String* (%Class.0*)* @Class_to__s to i8*), i8* bitcast (%Class.0* (%Class.0*, %Array*)* @Class_lt_gt_ to i8*), i8* bitcast (%Object* (%Class.0*, %Object*, %Object*)* @Class___initialize__rustlib to i8*), i8* bitcast (%Class.0* (%Class.0*, %Array*)* @Class___specialize1 to i8*), i8* bitcast (%Class.0* (%Class.0*, %Int*)* @Class___type__argument to i8*), i8* bitcast (%String* (%Class.0*)* @Class_name to i8*), i8* bitcast (%String* (%Class.0*, %String*)* @_set_Class_name to i8*), i8* bitcast (%Fn6* (%Fn6*, %"Shiika::Internal::Ptr"*, %Object*, %Array*)* @Meta_Fn6_new to i8*)] | |
@shiika_vtable_Object = constant [16 x i8*] [i8* bitcast (%Bool* (%Object*, %Object*)* @Object_lt_ to i8*), i8* bitcast (%Bool* (%Object*, %Object*)* @Object_le_ to i8*), i8* bitcast (%Bool* (%Object*, %Object*)* @Object_eq_ to i8*), i8* bitcast (%Bool* (%Object*, %Object*)* @Object_gt_ to i8*), i8* bitcast (%Bool* (%Object*, %Object*)* @Object_ge_ to i8*), i8* bitcast (%Class.0* (%Object*)* @Object_class to i8*), i8* bitcast (void (%Object*, %Int*)* @Object_exit to i8*), i8* bitcast (%Int* (%Object*)* @Object_hash to i8*), i8* bitcast (%Void* (%Object*)* @Object_initialize to i8*), i8* bitcast (%String* (%Object*)* @Object_inspect to i8*), i8* bitcast (%Int* (%Object*)* @Object_object__id to i8*), i8* bitcast (%Void* (%Object*, %Object*)* @Object_p to i8*), i8* bitcast (void (%Object*, %String*)* @Object_panic to i8*), i8* bitcast (%Void* (%Object*, %String*)* @Object_print to i8*), i8* bitcast (%Void* (%Object*, %String*)* @Object_puts to i8*), i8* bitcast (%String* (%Object*)* @Object_to__s to i8*)] | |
@"shiika_vtable_Maybe::Some" = constant [20 x i8*] [i8* bitcast (%Bool* (%Object*, %Object*)* @Object_lt_ to i8*), i8* bitcast (%Bool* (%Object*, %Object*)* @Object_le_ to i8*), i8* bitcast (%Bool* (%Object*, %Object*)* @Object_eq_ to i8*), i8* bitcast (%Bool* (%Object*, %Object*)* @Object_gt_ to i8*), i8* bitcast (%Bool* (%Object*, %Object*)* @Object_ge_ to i8*), i8* bitcast (%Class.0* (%Object*)* @Object_class to i8*), i8* bitcast (void (%Object*, %Int*)* @Object_exit to i8*), i8* bitcast (%Int* (%Object*)* @Object_hash to i8*), i8* bitcast (%Void* (%"Maybe::Some"*, %Object*)* @Maybe_Some_initialize to i8*), i8* bitcast (%String* (%Maybe*)* @Maybe_inspect to i8*), i8* bitcast (%Int* (%Object*)* @Object_object__id to i8*), i8* bitcast (%Void* (%Object*, %Object*)* @Object_p to i8*), i8* bitcast (void (%Object*, %String*)* @Object_panic to i8*), i8* bitcast (%Void* (%Object*, %String*)* @Object_print to i8*), i8* bitcast (%Void* (%Object*, %String*)* @Object_puts to i8*), i8* bitcast (%String* (%Object*)* @Object_to__s to i8*), i8* bitcast (%Object* (%Maybe*, %String*)* @Maybe_expect to i8*), i8* bitcast (%Maybe* (%Maybe*, %Fn1*)* @Maybe_map to i8*), i8* bitcast (%Object* (%"Maybe::Some"*)* @Maybe_Some_value to i8*), i8* bitcast (%Object* (%"Maybe::Some"*, %Object*)* @_set_Maybe_Some_value to i8*)] | |
@shiika_vtable_Metaclass = constant [23 x i8*] [i8* bitcast (%Bool* (%Object*, %Object*)* @Object_lt_ to i8*), i8* bitcast (%Bool* (%Object*, %Object*)* @Object_le_ to i8*), i8* bitcast (%Bool* (%Object*, %Object*)* @Object_eq_ to i8*), i8* bitcast (%Bool* (%Object*, %Object*)* @Object_gt_ to i8*), i8* bitcast (%Bool* (%Object*, %Object*)* @Object_ge_ to i8*), i8* bitcast (%Class.0* (%Object*)* @Object_class to i8*), i8* bitcast (void (%Object*, %Int*)* @Object_exit to i8*), i8* bitcast (%Int* (%Object*)* @Object_hash to i8*), i8* bitcast (%Void* (%Class.0*, %String*, %Object*, %Metaclass*)* @Class_initialize to i8*), i8* bitcast (%String* (%Metaclass*)* @Metaclass_inspect to i8*), i8* bitcast (%Int* (%Object*)* @Object_object__id to i8*), i8* bitcast (%Void* (%Object*, %Object*)* @Object_p to i8*), i8* bitcast (void (%Object*, %String*)* @Object_panic to i8*), i8* bitcast (%Void* (%Object*, %String*)* @Object_print to i8*), i8* bitcast (%Void* (%Object*, %String*)* @Object_puts to i8*), i8* bitcast (%String* (%Class.0*)* @Class_to__s to i8*), i8* bitcast (%Class.0* (%Class.0*, %Array*)* @Class_lt_gt_ to i8*), i8* bitcast (%Object* (%Class.0*, %Object*, %Object*)* @Class___initialize__rustlib to i8*), i8* bitcast (%Class.0* (%Class.0*, %Array*)* @Class___specialize1 to i8*), i8* bitcast (%Class.0* (%Class.0*, %Int*)* @Class___type__argument to i8*), i8* bitcast (%String* (%Metaclass*)* @Metaclass_name to i8*), i8* bitcast (%String* (%Class.0*, %String*)* @_set_Class_name to i8*), i8* bitcast (%Metaclass* (%Metaclass*, %String*, %Object*, %Metaclass*)* @Metaclass_new to i8*)] | |
@"shiika_vtable_Maybe::None" = constant [18 x i8*] [i8* bitcast (%Bool* (%Object*, %Object*)* @Object_lt_ to i8*), i8* bitcast (%Bool* (%Object*, %Object*)* @Object_le_ to i8*), i8* bitcast (%Bool* (%Object*, %Object*)* @Object_eq_ to i8*), i8* bitcast (%Bool* (%Object*, %Object*)* @Object_gt_ to i8*), i8* bitcast (%Bool* (%Object*, %Object*)* @Object_ge_ to i8*), i8* bitcast (%Class.0* (%Object*)* @Object_class to i8*), i8* bitcast (void (%Object*, %Int*)* @Object_exit to i8*), i8* bitcast (%Int* (%Object*)* @Object_hash to i8*), i8* bitcast (%Void* (%"Maybe::None"*)* @Maybe_None_initialize to i8*), i8* bitcast (%String* (%Maybe*)* @Maybe_inspect to i8*), i8* bitcast (%Int* (%Object*)* @Object_object__id to i8*), i8* bitcast (%Void* (%Object*, %Object*)* @Object_p to i8*), i8* bitcast (void (%Object*, %String*)* @Object_panic to i8*), i8* bitcast (%Void* (%Object*, %String*)* @Object_print to i8*), i8* bitcast (%Void* (%Object*, %String*)* @Object_puts to i8*), i8* bitcast (%String* (%Object*)* @Object_to__s to i8*), i8* bitcast (%Object* (%Maybe*, %String*)* @Maybe_expect to i8*), i8* bitcast (%Maybe* (%Maybe*, %Fn1*)* @Maybe_map to i8*)] | |
@"shiika_vtable_Meta:Fn7" = constant [23 x i8*] [i8* bitcast (%Bool* (%Object*, %Object*)* @Object_lt_ to i8*), i8* bitcast (%Bool* (%Object*, %Object*)* @Object_le_ to i8*), i8* bitcast (%Bool* (%Object*, %Object*)* @Object_eq_ to i8*), i8* bitcast (%Bool* (%Object*, %Object*)* @Object_gt_ to i8*), i8* bitcast (%Bool* (%Object*, %Object*)* @Object_ge_ to i8*), i8* bitcast (%Class.0* (%Object*)* @Object_class to i8*), i8* bitcast (void (%Object*, %Int*)* @Object_exit to i8*), i8* bitcast (%Int* (%Object*)* @Object_hash to i8*), i8* bitcast (%Void* (%Class.0*, %String*, %Object*, %Metaclass*)* @Class_initialize to i8*), i8* bitcast (%String* (%Class.0*)* @Class_inspect to i8*), i8* bitcast (%Int* (%Object*)* @Object_object__id to i8*), i8* bitcast (%Void* (%Object*, %Object*)* @Object_p to i8*), i8* bitcast (void (%Object*, %String*)* @Object_panic to i8*), i8* bitcast (%Void* (%Object*, %String*)* @Object_print to i8*), i8* bitcast (%Void* (%Object*, %String*)* @Object_puts to i8*), i8* bitcast (%String* (%Class.0*)* @Class_to__s to i8*), i8* bitcast (%Class.0* (%Class.0*, %Array*)* @Class_lt_gt_ to i8*), i8* bitcast (%Object* (%Class.0*, %Object*, %Object*)* @Class___initialize__rustlib to i8*), i8* bitcast (%Class.0* (%Class.0*, %Array*)* @Class___specialize1 to i8*), i8* bitcast (%Class.0* (%Class.0*, %Int*)* @Class___type__argument to i8*), i8* bitcast (%String* (%Class.0*)* @Class_name to i8*), i8* bitcast (%String* (%Class.0*, %String*)* @_set_Class_name to i8*), i8* bitcast (%Fn7* (%Fn7*, %"Shiika::Internal::Ptr"*, %Object*, %Array*)* @Meta_Fn7_new to i8*)] | |
@shiika_vtable_MutableString = constant [28 x i8*] [i8* bitcast (%Bool* (%Object*, %Object*)* @Object_lt_ to i8*), i8* bitcast (%Bool* (%Object*, %Object*)* @Object_le_ to i8*), i8* bitcast (%Bool* (%Object*, %Object*)* @Object_eq_ to i8*), i8* bitcast (%Bool* (%Object*, %Object*)* @Object_gt_ to i8*), i8* bitcast (%Bool* (%Object*, %Object*)* @Object_ge_ to i8*), i8* bitcast (%Class.0* (%Object*)* @Object_class to i8*), i8* bitcast (void (%Object*, %Int*)* @Object_exit to i8*), i8* bitcast (%Int* (%Object*)* @Object_hash to i8*), i8* bitcast (%Void* (%MutableString*)* @MutableString_initialize to i8*), i8* bitcast (%String* (%Object*)* @Object_inspect to i8*), i8* bitcast (%Int* (%Object*)* @Object_object__id to i8*), i8* bitcast (%Void* (%Object*, %Object*)* @Object_p to i8*), i8* bitcast (void (%Object*, %String*)* @Object_panic to i8*), i8* bitcast (%Void* (%Object*, %String*)* @Object_print to i8*), i8* bitcast (%Void* (%Object*, %String*)* @Object_puts to i8*), i8* bitcast (%String* (%MutableString*)* @MutableString_to__s to i8*), i8* bitcast (%Void* (%MutableString*, %Int*)* @MutableString___realloc__if__needed to i8*), i8* bitcast (%String* (%MutableString*)* @MutableString___unsafe__to__s to i8*), i8* bitcast (%Void* (%MutableString*, %String*)* @MutableString_append to i8*), i8* bitcast (%Void* (%MutableString*, %Int*)* @MutableString_append__byte to i8*), i8* bitcast (%Int* (%MutableString*)* @MutableString_bytesize to i8*), i8* bitcast (%Int* (%MutableString*, %Int*)* @_set_MutableString_bytesize to i8*), i8* bitcast (%Int* (%MutableString*)* @MutableString_capa to i8*), i8* bitcast (%Int* (%MutableString*, %Int*)* @_set_MutableString_capa to i8*), i8* bitcast (%Int* (%MutableString*, %Int*)* @MutableString_nth__byte to i8*), i8* bitcast (%"Shiika::Internal::Ptr"* (%MutableString*)* @MutableString_ptr to i8*), i8* bitcast (%"Shiika::Internal::Ptr"* (%MutableString*, %"Shiika::Internal::Ptr"*)* @_set_MutableString_ptr to i8*), i8* bitcast (%Void* (%MutableString*, %Int*, %Int*)* @MutableString_write__byte to i8*)] | |
@"shiika_vtable_Meta:Result::Fail" = constant [23 x i8*] [i8* bitcast (%Bool* (%Object*, %Object*)* @Object_lt_ to i8*), i8* bitcast (%Bool* (%Object*, %Object*)* @Object_le_ to i8*), i8* bitcast (%Bool* (%Object*, %Object*)* @Object_eq_ to i8*), i8* bitcast (%Bool* (%Object*, %Object*)* @Object_gt_ to i8*), i8* bitcast (%Bool* (%Object*, %Object*)* @Object_ge_ to i8*), i8* bitcast (%Class.0* (%Object*)* @Object_class to i8*), i8* bitcast (void (%Object*, %Int*)* @Object_exit to i8*), i8* bitcast (%Int* (%Object*)* @Object_hash to i8*), i8* bitcast (%Void* (%Class.0*, %String*, %Object*, %Metaclass*)* @Class_initialize to i8*), i8* bitcast (%String* (%Class.0*)* @Class_inspect to i8*), i8* bitcast (%Int* (%Object*)* @Object_object__id to i8*), i8* bitcast (%Void* (%Object*, %Object*)* @Object_p to i8*), i8* bitcast (void (%Object*, %String*)* @Object_panic to i8*), i8* bitcast (%Void* (%Object*, %String*)* @Object_print to i8*), i8* bitcast (%Void* (%Object*, %String*)* @Object_puts to i8*), i8* bitcast (%String* (%Class.0*)* @Class_to__s to i8*), i8* bitcast (%Class.0* (%Class.0*, %Array*)* @Class_lt_gt_ to i8*), i8* bitcast (%Object* (%Class.0*, %Object*, %Object*)* @Class___initialize__rustlib to i8*), i8* bitcast (%Class.0* (%Class.0*, %Array*)* @Class___specialize1 to i8*), i8* bitcast (%Class.0* (%Class.0*, %Int*)* @Class___type__argument to i8*), i8* bitcast (%String* (%Class.0*)* @Class_name to i8*), i8* bitcast (%String* (%Class.0*, %String*)* @_set_Class_name to i8*), i8* bitcast (%"Result::Fail"* (%"Result::Fail"*, %Object*)* @Meta_Result_Fail_new to i8*)] | |
@"shiika_vtable_Shiika::Internal::Ptr" = constant [21 x i8*] [i8* bitcast (%Bool* (%Object*, %Object*)* @Object_lt_ to i8*), i8* bitcast (%Bool* (%Object*, %Object*)* @Object_le_ to i8*), i8* bitcast (%Bool* (%Object*, %Object*)* @Object_eq_ to i8*), i8* bitcast (%Bool* (%Object*, %Object*)* @Object_gt_ to i8*), i8* bitcast (%Bool* (%Object*, %Object*)* @Object_ge_ to i8*), i8* bitcast (%Class.0* (%Object*)* @Object_class to i8*), i8* bitcast (void (%Object*, %Int*)* @Object_exit to i8*), i8* bitcast (%Int* (%Object*)* @Object_hash to i8*), i8* bitcast (%Void* (%Object*)* @Object_initialize to i8*), i8* bitcast (%String* (%Object*)* @Object_inspect to i8*), i8* bitcast (%Int* (%Object*)* @Object_object__id to i8*), i8* bitcast (%Void* (%Object*, %Object*)* @Object_p to i8*), i8* bitcast (void (%Object*, %String*)* @Object_panic to i8*), i8* bitcast (%Void* (%Object*, %String*)* @Object_print to i8*), i8* bitcast (%Void* (%Object*, %String*)* @Object_puts to i8*), i8* bitcast (%String* (%Object*)* @Object_to__s to i8*), i8* bitcast (%"Shiika::Internal::Ptr"* (%"Shiika::Internal::Ptr"*, %Int*)* @Shiika_Internal_Ptr_add_ to i8*), i8* bitcast (%Object* (%"Shiika::Internal::Ptr"*)* @Shiika_Internal_Ptr_load to i8*), i8* bitcast (%Int* (%"Shiika::Internal::Ptr"*)* @Shiika_Internal_Ptr_read to i8*), i8* bitcast (%Void* (%"Shiika::Internal::Ptr"*, %Object*)* @Shiika_Internal_Ptr_store to i8*), i8* bitcast (%Void* (%"Shiika::Internal::Ptr"*, %Int*)* @Shiika_Internal_Ptr_write to i8*)] | |
@"shiika_vtable_Meta:Void" = constant [23 x i8*] [i8* bitcast (%Bool* (%Object*, %Object*)* @Object_lt_ to i8*), i8* bitcast (%Bool* (%Object*, %Object*)* @Object_le_ to i8*), i8* bitcast (%Bool* (%Object*, %Object*)* @Object_eq_ to i8*), i8* bitcast (%Bool* (%Object*, %Object*)* @Object_gt_ to i8*), i8* bitcast (%Bool* (%Object*, %Object*)* @Object_ge_ to i8*), i8* bitcast (%Class.0* (%Object*)* @Object_class to i8*), i8* bitcast (void (%Object*, %Int*)* @Object_exit to i8*), i8* bitcast (%Int* (%Object*)* @Object_hash to i8*), i8* bitcast (%Void* (%Class.0*, %String*, %Object*, %Metaclass*)* @Class_initialize to i8*), i8* bitcast (%String* (%Class.0*)* @Class_inspect to i8*), i8* bitcast (%Int* (%Object*)* @Object_object__id to i8*), i8* bitcast (%Void* (%Object*, %Object*)* @Object_p to i8*), i8* bitcast (void (%Object*, %String*)* @Object_panic to i8*), i8* bitcast (%Void* (%Object*, %String*)* @Object_print to i8*), i8* bitcast (%Void* (%Object*, %String*)* @Object_puts to i8*), i8* bitcast (%String* (%Class.0*)* @Class_to__s to i8*), i8* bitcast (%Class.0* (%Class.0*, %Array*)* @Class_lt_gt_ to i8*), i8* bitcast (%Object* (%Class.0*, %Object*, %Object*)* @Class___initialize__rustlib to i8*), i8* bitcast (%Class.0* (%Class.0*, %Array*)* @Class___specialize1 to i8*), i8* bitcast (%Class.0* (%Class.0*, %Int*)* @Class___type__argument to i8*), i8* bitcast (%String* (%Class.0*)* @Class_name to i8*), i8* bitcast (%String* (%Class.0*, %String*)* @_set_Class_name to i8*), i8* bitcast (%Void* (%Void*)* @Meta_Void_new to i8*)] | |
@"shiika_vtable_Meta:Class" = constant [23 x i8*] [i8* bitcast (%Bool* (%Object*, %Object*)* @Object_lt_ to i8*), i8* bitcast (%Bool* (%Object*, %Object*)* @Object_le_ to i8*), i8* bitcast (%Bool* (%Object*, %Object*)* @Object_eq_ to i8*), i8* bitcast (%Bool* (%Object*, %Object*)* @Object_gt_ to i8*), i8* bitcast (%Bool* (%Object*, %Object*)* @Object_ge_ to i8*), i8* bitcast (%Class.0* (%Object*)* @Object_class to i8*), i8* bitcast (void (%Object*, %Int*)* @Object_exit to i8*), i8* bitcast (%Int* (%Object*)* @Object_hash to i8*), i8* bitcast (%Void* (%Class.0*, %String*, %Object*, %Metaclass*)* @Class_initialize to i8*), i8* bitcast (%String* (%Class.0*)* @Class_inspect to i8*), i8* bitcast (%Int* (%Object*)* @Object_object__id to i8*), i8* bitcast (%Void* (%Object*, %Object*)* @Object_p to i8*), i8* bitcast (void (%Object*, %String*)* @Object_panic to i8*), i8* bitcast (%Void* (%Object*, %String*)* @Object_print to i8*), i8* bitcast (%Void* (%Object*, %String*)* @Object_puts to i8*), i8* bitcast (%String* (%Class.0*)* @Class_to__s to i8*), i8* bitcast (%Class.0* (%Class.0*, %Array*)* @Class_lt_gt_ to i8*), i8* bitcast (%Object* (%Class.0*, %Object*, %Object*)* @Class___initialize__rustlib to i8*), i8* bitcast (%Class.0* (%Class.0*, %Array*)* @Class___specialize1 to i8*), i8* bitcast (%Class.0* (%Class.0*, %Int*)* @Class___type__argument to i8*), i8* bitcast (%String* (%Class.0*)* @Class_name to i8*), i8* bitcast (%String* (%Class.0*, %String*)* @_set_Class_name to i8*), i8* bitcast (%Class.0* (%Class.0*, %String*, %Object*, %Metaclass*)* @Meta_Class_new to i8*)] | |
@"shiika_vtable_Meta:Fn8" = constant [23 x i8*] [i8* bitcast (%Bool* (%Object*, %Object*)* @Object_lt_ to i8*), i8* bitcast (%Bool* (%Object*, %Object*)* @Object_le_ to i8*), i8* bitcast (%Bool* (%Object*, %Object*)* @Object_eq_ to i8*), i8* bitcast (%Bool* (%Object*, %Object*)* @Object_gt_ to i8*), i8* bitcast (%Bool* (%Object*, %Object*)* @Object_ge_ to i8*), i8* bitcast (%Class.0* (%Object*)* @Object_class to i8*), i8* bitcast (void (%Object*, %Int*)* @Object_exit to i8*), i8* bitcast (%Int* (%Object*)* @Object_hash to i8*), i8* bitcast (%Void* (%Class.0*, %String*, %Object*, %Metaclass*)* @Class_initialize to i8*), i8* bitcast (%String* (%Class.0*)* @Class_inspect to i8*), i8* bitcast (%Int* (%Object*)* @Object_object__id to i8*), i8* bitcast (%Void* (%Object*, %Object*)* @Object_p to i8*), i8* bitcast (void (%Object*, %String*)* @Object_panic to i8*), i8* bitcast (%Void* (%Object*, %String*)* @Object_print to i8*), i8* bitcast (%Void* (%Object*, %String*)* @Object_puts to i8*), i8* bitcast (%String* (%Class.0*)* @Class_to__s to i8*), i8* bitcast (%Class.0* (%Class.0*, %Array*)* @Class_lt_gt_ to i8*), i8* bitcast (%Object* (%Class.0*, %Object*, %Object*)* @Class___initialize__rustlib to i8*), i8* bitcast (%Class.0* (%Class.0*, %Array*)* @Class___specialize1 to i8*), i8* bitcast (%Class.0* (%Class.0*, %Int*)* @Class___type__argument to i8*), i8* bitcast (%String* (%Class.0*)* @Class_name to i8*), i8* bitcast (%String* (%Class.0*, %String*)* @_set_Class_name to i8*), i8* bitcast (%Fn8* (%Fn8*, %"Shiika::Internal::Ptr"*, %Object*, %Array*)* @Meta_Fn8_new to i8*)] | |
@"shiika_vtable_Meta:File" = constant [23 x i8*] [i8* bitcast (%Bool* (%Object*, %Object*)* @Object_lt_ to i8*), i8* bitcast (%Bool* (%Object*, %Object*)* @Object_le_ to i8*), i8* bitcast (%Bool* (%Object*, %Object*)* @Object_eq_ to i8*), i8* bitcast (%Bool* (%Object*, %Object*)* @Object_gt_ to i8*), i8* bitcast (%Bool* (%Object*, %Object*)* @Object_ge_ to i8*), i8* bitcast (%Class.0* (%Object*)* @Object_class to i8*), i8* bitcast (void (%Object*, %Int*)* @Object_exit to i8*), i8* bitcast (%Int* (%Object*)* @Object_hash to i8*), i8* bitcast (%Void* (%Class.0*, %String*, %Object*, %Metaclass*)* @Class_initialize to i8*), i8* bitcast (%String* (%Class.0*)* @Class_inspect to i8*), i8* bitcast (%Int* (%Object*)* @Object_object__id to i8*), i8* bitcast (%Void* (%Object*, %Object*)* @Object_p to i8*), i8* bitcast (void (%Object*, %String*)* @Object_panic to i8*), i8* bitcast (%Void* (%Object*, %String*)* @Object_print to i8*), i8* bitcast (%Void* (%Object*, %String*)* @Object_puts to i8*), i8* bitcast (%String* (%Class.0*)* @Class_to__s to i8*), i8* bitcast (%Class.0* (%Class.0*, %Array*)* @Class_lt_gt_ to i8*), i8* bitcast (%Object* (%Class.0*, %Object*, %Object*)* @Class___initialize__rustlib to i8*), i8* bitcast (%Class.0* (%Class.0*, %Array*)* @Class___specialize1 to i8*), i8* bitcast (%Class.0* (%Class.0*, %Int*)* @Class___type__argument to i8*), i8* bitcast (%String* (%Class.0*)* @Class_name to i8*), i8* bitcast (%String* (%Class.0*, %String*)* @_set_Class_name to i8*), i8* bitcast (%File* (%File*, %String*, %Object*)* @Meta_File_new to i8*)] | |
@"shiika_vtable_Meta:Math" = constant [25 x i8*] [i8* bitcast (%Bool* (%Object*, %Object*)* @Object_lt_ to i8*), i8* bitcast (%Bool* (%Object*, %Object*)* @Object_le_ to i8*), i8* bitcast (%Bool* (%Object*, %Object*)* @Object_eq_ to i8*), i8* bitcast (%Bool* (%Object*, %Object*)* @Object_gt_ to i8*), i8* bitcast (%Bool* (%Object*, %Object*)* @Object_ge_ to i8*), i8* bitcast (%Class.0* (%Object*)* @Object_class to i8*), i8* bitcast (void (%Object*, %Int*)* @Object_exit to i8*), i8* bitcast (%Int* (%Object*)* @Object_hash to i8*), i8* bitcast (%Void* (%Class.0*, %String*, %Object*, %Metaclass*)* @Class_initialize to i8*), i8* bitcast (%String* (%Class.0*)* @Class_inspect to i8*), i8* bitcast (%Int* (%Object*)* @Object_object__id to i8*), i8* bitcast (%Void* (%Object*, %Object*)* @Object_p to i8*), i8* bitcast (void (%Object*, %String*)* @Object_panic to i8*), i8* bitcast (%Void* (%Object*, %String*)* @Object_print to i8*), i8* bitcast (%Void* (%Object*, %String*)* @Object_puts to i8*), i8* bitcast (%String* (%Class.0*)* @Class_to__s to i8*), i8* bitcast (%Class.0* (%Class.0*, %Array*)* @Class_lt_gt_ to i8*), i8* bitcast (%Object* (%Class.0*, %Object*, %Object*)* @Class___initialize__rustlib to i8*), i8* bitcast (%Class.0* (%Class.0*, %Array*)* @Class___specialize1 to i8*), i8* bitcast (%Class.0* (%Class.0*, %Int*)* @Class___type__argument to i8*), i8* bitcast (%String* (%Class.0*)* @Class_name to i8*), i8* bitcast (%String* (%Class.0*, %String*)* @_set_Class_name to i8*), i8* bitcast (%Float* (%Math*, %Float*)* @Meta_Math_cos to i8*), i8* bitcast (%Float* (%Math*, %Float*)* @Meta_Math_sin to i8*), i8* bitcast (%Float* (%Math*, %Float*)* @Meta_Math_sqrt to i8*)] | |
@shiika_vtable_Bool = constant [16 x i8*] [i8* bitcast (%Bool* (%Object*, %Object*)* @Object_lt_ to i8*), i8* bitcast (%Bool* (%Object*, %Object*)* @Object_le_ to i8*), i8* bitcast (%Bool* (%Object*, %Object*)* @Object_eq_ to i8*), i8* bitcast (%Bool* (%Object*, %Object*)* @Object_gt_ to i8*), i8* bitcast (%Bool* (%Object*, %Object*)* @Object_ge_ to i8*), i8* bitcast (%Class.0* (%Object*)* @Object_class to i8*), i8* bitcast (void (%Object*, %Int*)* @Object_exit to i8*), i8* bitcast (%Int* (%Object*)* @Object_hash to i8*), i8* bitcast (%Void* (%Object*)* @Object_initialize to i8*), i8* bitcast (%String* (%Bool*)* @Bool_inspect to i8*), i8* bitcast (%Int* (%Object*)* @Object_object__id to i8*), i8* bitcast (%Void* (%Object*, %Object*)* @Object_p to i8*), i8* bitcast (void (%Object*, %String*)* @Object_panic to i8*), i8* bitcast (%Void* (%Object*, %String*)* @Object_print to i8*), i8* bitcast (%Void* (%Object*, %String*)* @Object_puts to i8*), i8* bitcast (%String* (%Object*)* @Object_to__s to i8*)] | |
@shiika_vtable_File = constant [20 x i8*] [i8* bitcast (%Bool* (%Object*, %Object*)* @Object_lt_ to i8*), i8* bitcast (%Bool* (%Object*, %Object*)* @Object_le_ to i8*), i8* bitcast (%Bool* (%Object*, %Object*)* @Object_eq_ to i8*), i8* bitcast (%Bool* (%Object*, %Object*)* @Object_gt_ to i8*), i8* bitcast (%Bool* (%Object*, %Object*)* @Object_ge_ to i8*), i8* bitcast (%Class.0* (%Object*)* @Object_class to i8*), i8* bitcast (void (%Object*, %Int*)* @Object_exit to i8*), i8* bitcast (%Int* (%Object*)* @Object_hash to i8*), i8* bitcast (%Void* (%File*, %String*, %Object*)* @File_initialize to i8*), i8* bitcast (%String* (%Object*)* @Object_inspect to i8*), i8* bitcast (%Int* (%Object*)* @Object_object__id to i8*), i8* bitcast (%Void* (%Object*, %Object*)* @Object_p to i8*), i8* bitcast (void (%Object*, %String*)* @Object_panic to i8*), i8* bitcast (%Void* (%Object*, %String*)* @Object_print to i8*), i8* bitcast (%Void* (%Object*, %String*)* @Object_puts to i8*), i8* bitcast (%String* (%Object*)* @Object_to__s to i8*), i8* bitcast (%Object* (%File*)* @File_file to i8*), i8* bitcast (%Object* (%File*, %Object*)* @_set_File_file to i8*), i8* bitcast (%String* (%File*)* @File_path to i8*), i8* bitcast (%String* (%File*, %String*)* @_set_File_path to i8*)] | |
@"shiika_vtable_Meta:Triple" = constant [23 x i8*] [i8* bitcast (%Bool* (%Object*, %Object*)* @Object_lt_ to i8*), i8* bitcast (%Bool* (%Object*, %Object*)* @Object_le_ to i8*), i8* bitcast (%Bool* (%Object*, %Object*)* @Object_eq_ to i8*), i8* bitcast (%Bool* (%Object*, %Object*)* @Object_gt_ to i8*), i8* bitcast (%Bool* (%Object*, %Object*)* @Object_ge_ to i8*), i8* bitcast (%Class.0* (%Object*)* @Object_class to i8*), i8* bitcast (void (%Object*, %Int*)* @Object_exit to i8*), i8* bitcast (%Int* (%Object*)* @Object_hash to i8*), i8* bitcast (%Void* (%Class.0*, %String*, %Object*, %Metaclass*)* @Class_initialize to i8*), i8* bitcast (%String* (%Class.0*)* @Class_inspect to i8*), i8* bitcast (%Int* (%Object*)* @Object_object__id to i8*), i8* bitcast (%Void* (%Object*, %Object*)* @Object_p to i8*), i8* bitcast (void (%Object*, %String*)* @Object_panic to i8*), i8* bitcast (%Void* (%Object*, %String*)* @Object_print to i8*), i8* bitcast (%Void* (%Object*, %String*)* @Object_puts to i8*), i8* bitcast (%String* (%Class.0*)* @Class_to__s to i8*), i8* bitcast (%Class.0* (%Class.0*, %Array*)* @Class_lt_gt_ to i8*), i8* bitcast (%Object* (%Class.0*, %Object*, %Object*)* @Class___initialize__rustlib to i8*), i8* bitcast (%Class.0* (%Class.0*, %Array*)* @Class___specialize1 to i8*), i8* bitcast (%Class.0* (%Class.0*, %Int*)* @Class___type__argument to i8*), i8* bitcast (%String* (%Class.0*)* @Class_name to i8*), i8* bitcast (%String* (%Class.0*, %String*)* @_set_Class_name to i8*), i8* bitcast (%Triple* (%Triple*, %Object*, %Object*, %Object*)* @Meta_Triple_new to i8*)] | |
@"shiika_vtable_Meta:Fn4" = constant [23 x i8*] [i8* bitcast (%Bool* (%Object*, %Object*)* @Object_lt_ to i8*), i8* bitcast (%Bool* (%Object*, %Object*)* @Object_le_ to i8*), i8* bitcast (%Bool* (%Object*, %Object*)* @Object_eq_ to i8*), i8* bitcast (%Bool* (%Object*, %Object*)* @Object_gt_ to i8*), i8* bitcast (%Bool* (%Object*, %Object*)* @Object_ge_ to i8*), i8* bitcast (%Class.0* (%Object*)* @Object_class to i8*), i8* bitcast (void (%Object*, %Int*)* @Object_exit to i8*), i8* bitcast (%Int* (%Object*)* @Object_hash to i8*), i8* bitcast (%Void* (%Class.0*, %String*, %Object*, %Metaclass*)* @Class_initialize to i8*), i8* bitcast (%String* (%Class.0*)* @Class_inspect to i8*), i8* bitcast (%Int* (%Object*)* @Object_object__id to i8*), i8* bitcast (%Void* (%Object*, %Object*)* @Object_p to i8*), i8* bitcast (void (%Object*, %String*)* @Object_panic to i8*), i8* bitcast (%Void* (%Object*, %String*)* @Object_print to i8*), i8* bitcast (%Void* (%Object*, %String*)* @Object_puts to i8*), i8* bitcast (%String* (%Class.0*)* @Class_to__s to i8*), i8* bitcast (%Class.0* (%Class.0*, %Array*)* @Class_lt_gt_ to i8*), i8* bitcast (%Object* (%Class.0*, %Object*, %Object*)* @Class___initialize__rustlib to i8*), i8* bitcast (%Class.0* (%Class.0*, %Array*)* @Class___specialize1 to i8*), i8* bitcast (%Class.0* (%Class.0*, %Int*)* @Class___type__argument to i8*), i8* bitcast (%String* (%Class.0*)* @Class_name to i8*), i8* bitcast (%String* (%Class.0*, %String*)* @_set_Class_name to i8*), i8* bitcast (%Fn4* (%Fn4*, %"Shiika::Internal::Ptr"*, %Object*, %Array*)* @Meta_Fn4_new to i8*)] | |
@shiika_vtable_Triple = constant [22 x i8*] [i8* bitcast (%Bool* (%Object*, %Object*)* @Object_lt_ to i8*), i8* bitcast (%Bool* (%Object*, %Object*)* @Object_le_ to i8*), i8* bitcast (%Bool* (%Object*, %Object*)* @Object_eq_ to i8*), i8* bitcast (%Bool* (%Object*, %Object*)* @Object_gt_ to i8*), i8* bitcast (%Bool* (%Object*, %Object*)* @Object_ge_ to i8*), i8* bitcast (%Class.0* (%Object*)* @Object_class to i8*), i8* bitcast (void (%Object*, %Int*)* @Object_exit to i8*), i8* bitcast (%Int* (%Object*)* @Object_hash to i8*), i8* bitcast (%Void* (%Triple*, %Object*, %Object*, %Object*)* @Triple_initialize to i8*), i8* bitcast (%String* (%Object*)* @Object_inspect to i8*), i8* bitcast (%Int* (%Object*)* @Object_object__id to i8*), i8* bitcast (%Void* (%Object*, %Object*)* @Object_p to i8*), i8* bitcast (void (%Object*, %String*)* @Object_panic to i8*), i8* bitcast (%Void* (%Object*, %String*)* @Object_print to i8*), i8* bitcast (%Void* (%Object*, %String*)* @Object_puts to i8*), i8* bitcast (%String* (%Object*)* @Object_to__s to i8*), i8* bitcast (%Object* (%Triple*)* @Triple_fst to i8*), i8* bitcast (%Object* (%Triple*, %Object*)* @_set_Triple_fst to i8*), i8* bitcast (%Object* (%Triple*)* @Triple_snd to i8*), i8* bitcast (%Object* (%Triple*, %Object*)* @_set_Triple_snd to i8*), i8* bitcast (%Object* (%Triple*)* @Triple_thd to i8*), i8* bitcast (%Object* (%Triple*, %Object*)* @_set_Triple_thd to i8*)] | |
@"shiika_vtable_Meta:Fn0" = constant [23 x i8*] [i8* bitcast (%Bool* (%Object*, %Object*)* @Object_lt_ to i8*), i8* bitcast (%Bool* (%Object*, %Object*)* @Object_le_ to i8*), i8* bitcast (%Bool* (%Object*, %Object*)* @Object_eq_ to i8*), i8* bitcast (%Bool* (%Object*, %Object*)* @Object_gt_ to i8*), i8* bitcast (%Bool* (%Object*, %Object*)* @Object_ge_ to i8*), i8* bitcast (%Class.0* (%Object*)* @Object_class to i8*), i8* bitcast (void (%Object*, %Int*)* @Object_exit to i8*), i8* bitcast (%Int* (%Object*)* @Object_hash to i8*), i8* bitcast (%Void* (%Class.0*, %String*, %Object*, %Metaclass*)* @Class_initialize to i8*), i8* bitcast (%String* (%Class.0*)* @Class_inspect to i8*), i8* bitcast (%Int* (%Object*)* @Object_object__id to i8*), i8* bitcast (%Void* (%Object*, %Object*)* @Object_p to i8*), i8* bitcast (void (%Object*, %String*)* @Object_panic to i8*), i8* bitcast (%Void* (%Object*, %String*)* @Object_print to i8*), i8* bitcast (%Void* (%Object*, %String*)* @Object_puts to i8*), i8* bitcast (%String* (%Class.0*)* @Class_to__s to i8*), i8* bitcast (%Class.0* (%Class.0*, %Array*)* @Class_lt_gt_ to i8*), i8* bitcast (%Object* (%Class.0*, %Object*, %Object*)* @Class___initialize__rustlib to i8*), i8* bitcast (%Class.0* (%Class.0*, %Array*)* @Class___specialize1 to i8*), i8* bitcast (%Class.0* (%Class.0*, %Int*)* @Class___type__argument to i8*), i8* bitcast (%String* (%Class.0*)* @Class_name to i8*), i8* bitcast (%String* (%Class.0*, %String*)* @_set_Class_name to i8*), i8* bitcast (%Fn0* (%Fn0*, %"Shiika::Internal::Ptr"*, %Object*, %Array*)* @Meta_Fn0_new to i8*)] | |
@"shiika_vtable_Meta:Shiika::Internal::Memory" = constant [25 x i8*] [i8* bitcast (%Bool* (%Object*, %Object*)* @Object_lt_ to i8*), i8* bitcast (%Bool* (%Object*, %Object*)* @Object_le_ to i8*), i8* bitcast (%Bool* (%Object*, %Object*)* @Object_eq_ to i8*), i8* bitcast (%Bool* (%Object*, %Object*)* @Object_gt_ to i8*), i8* bitcast (%Bool* (%Object*, %Object*)* @Object_ge_ to i8*), i8* bitcast (%Class.0* (%Object*)* @Object_class to i8*), i8* bitcast (void (%Object*, %Int*)* @Object_exit to i8*), i8* bitcast (%Int* (%Object*)* @Object_hash to i8*), i8* bitcast (%Void* (%Class.0*, %String*, %Object*, %Metaclass*)* @Class_initialize to i8*), i8* bitcast (%String* (%Class.0*)* @Class_inspect to i8*), i8* bitcast (%Int* (%Object*)* @Object_object__id to i8*), i8* bitcast (%Void* (%Object*, %Object*)* @Object_p to i8*), i8* bitcast (void (%Object*, %String*)* @Object_panic to i8*), i8* bitcast (%Void* (%Object*, %String*)* @Object_print to i8*), i8* bitcast (%Void* (%Object*, %String*)* @Object_puts to i8*), i8* bitcast (%String* (%Class.0*)* @Class_to__s to i8*), i8* bitcast (%Class.0* (%Class.0*, %Array*)* @Class_lt_gt_ to i8*), i8* bitcast (%Object* (%Class.0*, %Object*, %Object*)* @Class___initialize__rustlib to i8*), i8* bitcast (%Class.0* (%Class.0*, %Array*)* @Class___specialize1 to i8*), i8* bitcast (%Class.0* (%Class.0*, %Int*)* @Class___type__argument to i8*), i8* bitcast (%String* (%Class.0*)* @Class_name to i8*), i8* bitcast (%String* (%Class.0*, %String*)* @_set_Class_name to i8*), i8* bitcast (%"Shiika::Internal::Ptr"* (%"Shiika::Internal::Memory"*, %Int*)* @Meta_Shiika_Internal_Memory_gc__malloc to i8*), i8* bitcast (%"Shiika::Internal::Ptr"* (%"Shiika::Internal::Memory"*, %"Shiika::Internal::Ptr"*, %Int*)* @Meta_Shiika_Internal_Memory_gc__realloc to i8*), i8* bitcast (%Void* (%"Shiika::Internal::Memory"*, %"Shiika::Internal::Ptr"*, %"Shiika::Internal::Ptr"*, %Int*)* @Meta_Shiika_Internal_Memory_memcpy to i8*)] | |
@"shiika_vtable_Meta:Maybe::None" = constant [23 x i8*] [i8* bitcast (%Bool* (%Object*, %Object*)* @Object_lt_ to i8*), i8* bitcast (%Bool* (%Object*, %Object*)* @Object_le_ to i8*), i8* bitcast (%Bool* (%Object*, %Object*)* @Object_eq_ to i8*), i8* bitcast (%Bool* (%Object*, %Object*)* @Object_gt_ to i8*), i8* bitcast (%Bool* (%Object*, %Object*)* @Object_ge_ to i8*), i8* bitcast (%Class.0* (%Object*)* @Object_class to i8*), i8* bitcast (void (%Object*, %Int*)* @Object_exit to i8*), i8* bitcast (%Int* (%Object*)* @Object_hash to i8*), i8* bitcast (%Void* (%Class.0*, %String*, %Object*, %Metaclass*)* @Class_initialize to i8*), i8* bitcast (%String* (%Class.0*)* @Class_inspect to i8*), i8* bitcast (%Int* (%Object*)* @Object_object__id to i8*), i8* bitcast (%Void* (%Object*, %Object*)* @Object_p to i8*), i8* bitcast (void (%Object*, %String*)* @Object_panic to i8*), i8* bitcast (%Void* (%Object*, %String*)* @Object_print to i8*), i8* bitcast (%Void* (%Object*, %String*)* @Object_puts to i8*), i8* bitcast (%String* (%Class.0*)* @Class_to__s to i8*), i8* bitcast (%Class.0* (%Class.0*, %Array*)* @Class_lt_gt_ to i8*), i8* bitcast (%Object* (%Class.0*, %Object*, %Object*)* @Class___initialize__rustlib to i8*), i8* bitcast (%Class.0* (%Class.0*, %Array*)* @Class___specialize1 to i8*), i8* bitcast (%Class.0* (%Class.0*, %Int*)* @Class___type__argument to i8*), i8* bitcast (%String* (%Class.0*)* @Class_name to i8*), i8* bitcast (%String* (%Class.0*, %String*)* @_set_Class_name to i8*), i8* bitcast (%"Maybe::None"* (%"Maybe::None"*)* @Meta_Maybe_None_new to i8*)] | |
@shiika_vtable_Result = constant [16 x i8*] [i8* bitcast (%Bool* (%Object*, %Object*)* @Object_lt_ to i8*), i8* bitcast (%Bool* (%Object*, %Object*)* @Object_le_ to i8*), i8* bitcast (%Bool* (%Object*, %Object*)* @Object_eq_ to i8*), i8* bitcast (%Bool* (%Object*, %Object*)* @Object_gt_ to i8*), i8* bitcast (%Bool* (%Object*, %Object*)* @Object_ge_ to i8*), i8* bitcast (%Class.0* (%Object*)* @Object_class to i8*), i8* bitcast (void (%Object*, %Int*)* @Object_exit to i8*), i8* bitcast (%Int* (%Object*)* @Object_hash to i8*), i8* bitcast (%Void* (%Object*)* @Object_initialize to i8*), i8* bitcast (%String* (%Object*)* @Object_inspect to i8*), i8* bitcast (%Int* (%Object*)* @Object_object__id to i8*), i8* bitcast (%Void* (%Object*, %Object*)* @Object_p to i8*), i8* bitcast (void (%Object*, %String*)* @Object_panic to i8*), i8* bitcast (%Void* (%Object*, %String*)* @Object_print to i8*), i8* bitcast (%Void* (%Object*, %String*)* @Object_puts to i8*), i8* bitcast (%String* (%Object*)* @Object_to__s to i8*)] | |
@"shiika_vtable_Meta:Result::Ok" = constant [23 x i8*] [i8* bitcast (%Bool* (%Object*, %Object*)* @Object_lt_ to i8*), i8* bitcast (%Bool* (%Object*, %Object*)* @Object_le_ to i8*), i8* bitcast (%Bool* (%Object*, %Object*)* @Object_eq_ to i8*), i8* bitcast (%Bool* (%Object*, %Object*)* @Object_gt_ to i8*), i8* bitcast (%Bool* (%Object*, %Object*)* @Object_ge_ to i8*), i8* bitcast (%Class.0* (%Object*)* @Object_class to i8*), i8* bitcast (void (%Object*, %Int*)* @Object_exit to i8*), i8* bitcast (%Int* (%Object*)* @Object_hash to i8*), i8* bitcast (%Void* (%Class.0*, %String*, %Object*, %Metaclass*)* @Class_initialize to i8*), i8* bitcast (%String* (%Class.0*)* @Class_inspect to i8*), i8* bitcast (%Int* (%Object*)* @Object_object__id to i8*), i8* bitcast (%Void* (%Object*, %Object*)* @Object_p to i8*), i8* bitcast (void (%Object*, %String*)* @Object_panic to i8*), i8* bitcast (%Void* (%Object*, %String*)* @Object_print to i8*), i8* bitcast (%Void* (%Object*, %String*)* @Object_puts to i8*), i8* bitcast (%String* (%Class.0*)* @Class_to__s to i8*), i8* bitcast (%Class.0* (%Class.0*, %Array*)* @Class_lt_gt_ to i8*), i8* bitcast (%Object* (%Class.0*, %Object*, %Object*)* @Class___initialize__rustlib to i8*), i8* bitcast (%Class.0* (%Class.0*, %Array*)* @Class___specialize1 to i8*), i8* bitcast (%Class.0* (%Class.0*, %Int*)* @Class___type__argument to i8*), i8* bitcast (%String* (%Class.0*)* @Class_name to i8*), i8* bitcast (%String* (%Class.0*, %String*)* @_set_Class_name to i8*), i8* bitcast (%"Result::Ok"* (%"Result::Ok"*, %Object*)* @Meta_Result_Ok_new to i8*)] | |
@"shiika_vtable_Meta:Fn5" = constant [23 x i8*] [i8* bitcast (%Bool* (%Object*, %Object*)* @Object_lt_ to i8*), i8* bitcast (%Bool* (%Object*, %Object*)* @Object_le_ to i8*), i8* bitcast (%Bool* (%Object*, %Object*)* @Object_eq_ to i8*), i8* bitcast (%Bool* (%Object*, %Object*)* @Object_gt_ to i8*), i8* bitcast (%Bool* (%Object*, %Object*)* @Object_ge_ to i8*), i8* bitcast (%Class.0* (%Object*)* @Object_class to i8*), i8* bitcast (void (%Object*, %Int*)* @Object_exit to i8*), i8* bitcast (%Int* (%Object*)* @Object_hash to i8*), i8* bitcast (%Void* (%Class.0*, %String*, %Object*, %Metaclass*)* @Class_initialize to i8*), i8* bitcast (%String* (%Class.0*)* @Class_inspect to i8*), i8* bitcast (%Int* (%Object*)* @Object_object__id to i8*), i8* bitcast (%Void* (%Object*, %Object*)* @Object_p to i8*), i8* bitcast (void (%Object*, %String*)* @Object_panic to i8*), i8* bitcast (%Void* (%Object*, %String*)* @Object_print to i8*), i8* bitcast (%Void* (%Object*, %String*)* @Object_puts to i8*), i8* bitcast (%String* (%Class.0*)* @Class_to__s to i8*), i8* bitcast (%Class.0* (%Class.0*, %Array*)* @Class_lt_gt_ to i8*), i8* bitcast (%Object* (%Class.0*, %Object*, %Object*)* @Class___initialize__rustlib to i8*), i8* bitcast (%Class.0* (%Class.0*, %Array*)* @Class___specialize1 to i8*), i8* bitcast (%Class.0* (%Class.0*, %Int*)* @Class___type__argument to i8*), i8* bitcast (%String* (%Class.0*)* @Class_name to i8*), i8* bitcast (%String* (%Class.0*, %String*)* @_set_Class_name to i8*), i8* bitcast (%Fn5* (%Fn5*, %"Shiika::Internal::Ptr"*, %Object*, %Array*)* @Meta_Fn5_new to i8*)] | |
@shiika_vtable_Fn1 = constant [24 x i8*] [i8* bitcast (%Bool* (%Object*, %Object*)* @Object_lt_ to i8*), i8* bitcast (%Bool* (%Object*, %Object*)* @Object_le_ to i8*), i8* bitcast (%Bool* (%Object*, %Object*)* @Object_eq_ to i8*), i8* bitcast (%Bool* (%Object*, %Object*)* @Object_gt_ to i8*), i8* bitcast (%Bool* (%Object*, %Object*)* @Object_ge_ to i8*), i8* bitcast (%Class.0* (%Object*)* @Object_class to i8*), i8* bitcast (void (%Object*, %Int*)* @Object_exit to i8*), i8* bitcast (%Int* (%Object*)* @Object_hash to i8*), i8* bitcast (%Void* (%Fn*, %"Shiika::Internal::Ptr"*, %Object*, %Array*)* @Fn_initialize to i8*), i8* bitcast (%String* (%Object*)* @Object_inspect to i8*), i8* bitcast (%Int* (%Object*)* @Object_object__id to i8*), i8* bitcast (%Void* (%Object*, %Object*)* @Object_p to i8*), i8* bitcast (void (%Object*, %String*)* @Object_panic to i8*), i8* bitcast (%Void* (%Object*, %String*)* @Object_print to i8*), i8* bitcast (%Void* (%Object*, %String*)* @Object_puts to i8*), i8* bitcast (%String* (%Object*)* @Object_to__s to i8*), i8* bitcast (%Array* (%Fn*)* @Fn_captures to i8*), i8* bitcast (%Array* (%Fn*, %Array*)* @_set_Fn_captures to i8*), i8* bitcast (%Int* (%Fn*)* @Fn_exit__status to i8*), i8* bitcast (%Int* (%Fn*, %Int*)* @_set_Fn_exit__status to i8*), i8* bitcast (%"Shiika::Internal::Ptr"* (%Fn*)* @Fn_func to i8*), i8* bitcast (%"Shiika::Internal::Ptr"* (%Fn*, %"Shiika::Internal::Ptr"*)* @_set_Fn_func to i8*), i8* bitcast (%Object* (%Fn*)* @Fn_the__self to i8*), i8* bitcast (%Object* (%Fn*, %Object*)* @_set_Fn_the__self to i8*)] | |
@"shiika_vtable_Result::Fail" = constant [18 x i8*] [i8* bitcast (%Bool* (%Object*, %Object*)* @Object_lt_ to i8*), i8* bitcast (%Bool* (%Object*, %Object*)* @Object_le_ to i8*), i8* bitcast (%Bool* (%Object*, %Object*)* @Object_eq_ to i8*), i8* bitcast (%Bool* (%Object*, %Object*)* @Object_gt_ to i8*), i8* bitcast (%Bool* (%Object*, %Object*)* @Object_ge_ to i8*), i8* bitcast (%Class.0* (%Object*)* @Object_class to i8*), i8* bitcast (void (%Object*, %Int*)* @Object_exit to i8*), i8* bitcast (%Int* (%Object*)* @Object_hash to i8*), i8* bitcast (%Void* (%"Result::Fail"*, %Object*)* @Result_Fail_initialize to i8*), i8* bitcast (%String* (%Object*)* @Object_inspect to i8*), i8* bitcast (%Int* (%Object*)* @Object_object__id to i8*), i8* bitcast (%Void* (%Object*, %Object*)* @Object_p to i8*), i8* bitcast (void (%Object*, %String*)* @Object_panic to i8*), i8* bitcast (%Void* (%Object*, %String*)* @Object_print to i8*), i8* bitcast (%Void* (%Object*, %String*)* @Object_puts to i8*), i8* bitcast (%String* (%Object*)* @Object_to__s to i8*), i8* bitcast (%Object* (%"Result::Fail"*)* @Result_Fail_err to i8*), i8* bitcast (%Object* (%"Result::Fail"*, %Object*)* @_set_Result_Fail_err to i8*)] | |
@"shiika_vtable_Meta:Result" = constant [22 x i8*] [i8* bitcast (%Bool* (%Object*, %Object*)* @Object_lt_ to i8*), i8* bitcast (%Bool* (%Object*, %Object*)* @Object_le_ to i8*), i8* bitcast (%Bool* (%Object*, %Object*)* @Object_eq_ to i8*), i8* bitcast (%Bool* (%Object*, %Object*)* @Object_gt_ to i8*), i8* bitcast (%Bool* (%Object*, %Object*)* @Object_ge_ to i8*), i8* bitcast (%Class.0* (%Object*)* @Object_class to i8*), i8* bitcast (void (%Object*, %Int*)* @Object_exit to i8*), i8* bitcast (%Int* (%Object*)* @Object_hash to i8*), i8* bitcast (%Void* (%Class.0*, %String*, %Object*, %Metaclass*)* @Class_initialize to i8*), i8* bitcast (%String* (%Class.0*)* @Class_inspect to i8*), i8* bitcast (%Int* (%Object*)* @Object_object__id to i8*), i8* bitcast (%Void* (%Object*, %Object*)* @Object_p to i8*), i8* bitcast (void (%Object*, %String*)* @Object_panic to i8*), i8* bitcast (%Void* (%Object*, %String*)* @Object_print to i8*), i8* bitcast (%Void* (%Object*, %String*)* @Object_puts to i8*), i8* bitcast (%String* (%Class.0*)* @Class_to__s to i8*), i8* bitcast (%Class.0* (%Class.0*, %Array*)* @Class_lt_gt_ to i8*), i8* bitcast (%Object* (%Class.0*, %Object*, %Object*)* @Class___initialize__rustlib to i8*), i8* bitcast (%Class.0* (%Class.0*, %Array*)* @Class___specialize1 to i8*), i8* bitcast (%Class.0* (%Class.0*, %Int*)* @Class___type__argument to i8*), i8* bitcast (%String* (%Class.0*)* @Class_name to i8*), i8* bitcast (%String* (%Class.0*, %String*)* @_set_Class_name to i8*)] | |
@shiika_vtable_Fn = constant [24 x i8*] [i8* bitcast (%Bool* (%Object*, %Object*)* @Object_lt_ to i8*), i8* bitcast (%Bool* (%Object*, %Object*)* @Object_le_ to i8*), i8* bitcast (%Bool* (%Object*, %Object*)* @Object_eq_ to i8*), i8* bitcast (%Bool* (%Object*, %Object*)* @Object_gt_ to i8*), i8* bitcast (%Bool* (%Object*, %Object*)* @Object_ge_ to i8*), i8* bitcast (%Class.0* (%Object*)* @Object_class to i8*), i8* bitcast (void (%Object*, %Int*)* @Object_exit to i8*), i8* bitcast (%Int* (%Object*)* @Object_hash to i8*), i8* bitcast (%Void* (%Fn*, %"Shiika::Internal::Ptr"*, %Object*, %Array*)* @Fn_initialize to i8*), i8* bitcast (%String* (%Object*)* @Object_inspect to i8*), i8* bitcast (%Int* (%Object*)* @Object_object__id to i8*), i8* bitcast (%Void* (%Object*, %Object*)* @Object_p to i8*), i8* bitcast (void (%Object*, %String*)* @Object_panic to i8*), i8* bitcast (%Void* (%Object*, %String*)* @Object_print to i8*), i8* bitcast (%Void* (%Object*, %String*)* @Object_puts to i8*), i8* bitcast (%String* (%Object*)* @Object_to__s to i8*), i8* bitcast (%Array* (%Fn*)* @Fn_captures to i8*), i8* bitcast (%Array* (%Fn*, %Array*)* @_set_Fn_captures to i8*), i8* bitcast (%Int* (%Fn*)* @Fn_exit__status to i8*), i8* bitcast (%Int* (%Fn*, %Int*)* @_set_Fn_exit__status to i8*), i8* bitcast (%"Shiika::Internal::Ptr"* (%Fn*)* @Fn_func to i8*), i8* bitcast (%"Shiika::Internal::Ptr"* (%Fn*, %"Shiika::Internal::Ptr"*)* @_set_Fn_func to i8*), i8* bitcast (%Object* (%Fn*)* @Fn_the__self to i8*), i8* bitcast (%Object* (%Fn*, %Object*)* @_set_Fn_the__self to i8*)] | |
@"shiika_vtable_Meta:Shiika::Internal::Ptr" = constant [22 x i8*] [i8* bitcast (%Bool* (%Object*, %Object*)* @Object_lt_ to i8*), i8* bitcast (%Bool* (%Object*, %Object*)* @Object_le_ to i8*), i8* bitcast (%Bool* (%Object*, %Object*)* @Object_eq_ to i8*), i8* bitcast (%Bool* (%Object*, %Object*)* @Object_gt_ to i8*), i8* bitcast (%Bool* (%Object*, %Object*)* @Object_ge_ to i8*), i8* bitcast (%Class.0* (%Object*)* @Object_class to i8*), i8* bitcast (void (%Object*, %Int*)* @Object_exit to i8*), i8* bitcast (%Int* (%Object*)* @Object_hash to i8*), i8* bitcast (%Void* (%Class.0*, %String*, %Object*, %Metaclass*)* @Class_initialize to i8*), i8* bitcast (%String* (%Class.0*)* @Class_inspect to i8*), i8* bitcast (%Int* (%Object*)* @Object_object__id to i8*), i8* bitcast (%Void* (%Object*, %Object*)* @Object_p to i8*), i8* bitcast (void (%Object*, %String*)* @Object_panic to i8*), i8* bitcast (%Void* (%Object*, %String*)* @Object_print to i8*), i8* bitcast (%Void* (%Object*, %String*)* @Object_puts to i8*), i8* bitcast (%String* (%Class.0*)* @Class_to__s to i8*), i8* bitcast (%Class.0* (%Class.0*, %Array*)* @Class_lt_gt_ to i8*), i8* bitcast (%Object* (%Class.0*, %Object*, %Object*)* @Class___initialize__rustlib to i8*), i8* bitcast (%Class.0* (%Class.0*, %Array*)* @Class___specialize1 to i8*), i8* bitcast (%Class.0* (%Class.0*, %Int*)* @Class___type__argument to i8*), i8* bitcast (%String* (%Class.0*)* @Class_name to i8*), i8* bitcast (%String* (%Class.0*, %String*)* @_set_Class_name to i8*)] | |
@"shiika_vtable_Meta:Error" = constant [23 x i8*] [i8* bitcast (%Bool* (%Object*, %Object*)* @Object_lt_ to i8*), i8* bitcast (%Bool* (%Object*, %Object*)* @Object_le_ to i8*), i8* bitcast (%Bool* (%Object*, %Object*)* @Object_eq_ to i8*), i8* bitcast (%Bool* (%Object*, %Object*)* @Object_gt_ to i8*), i8* bitcast (%Bool* (%Object*, %Object*)* @Object_ge_ to i8*), i8* bitcast (%Class.0* (%Object*)* @Object_class to i8*), i8* bitcast (void (%Object*, %Int*)* @Object_exit to i8*), i8* bitcast (%Int* (%Object*)* @Object_hash to i8*), i8* bitcast (%Void* (%Class.0*, %String*, %Object*, %Metaclass*)* @Class_initialize to i8*), i8* bitcast (%String* (%Class.0*)* @Class_inspect to i8*), i8* bitcast (%Int* (%Object*)* @Object_object__id to i8*), i8* bitcast (%Void* (%Object*, %Object*)* @Object_p to i8*), i8* bitcast (void (%Object*, %String*)* @Object_panic to i8*), i8* bitcast (%Void* (%Object*, %String*)* @Object_print to i8*), i8* bitcast (%Void* (%Object*, %String*)* @Object_puts to i8*), i8* bitcast (%String* (%Class.0*)* @Class_to__s to i8*), i8* bitcast (%Class.0* (%Class.0*, %Array*)* @Class_lt_gt_ to i8*), i8* bitcast (%Object* (%Class.0*, %Object*, %Object*)* @Class___initialize__rustlib to i8*), i8* bitcast (%Class.0* (%Class.0*, %Array*)* @Class___specialize1 to i8*), i8* bitcast (%Class.0* (%Class.0*, %Int*)* @Class___type__argument to i8*), i8* bitcast (%String* (%Class.0*)* @Class_name to i8*), i8* bitcast (%String* (%Class.0*, %String*)* @_set_Class_name to i8*), i8* bitcast (%Error* (%Error*, %String*)* @Meta_Error_new to i8*)] | |
@shiika_vtable_Fn2 = constant [24 x i8*] [i8* bitcast (%Bool* (%Object*, %Object*)* @Object_lt_ to i8*), i8* bitcast (%Bool* (%Object*, %Object*)* @Object_le_ to i8*), i8* bitcast (%Bool* (%Object*, %Object*)* @Object_eq_ to i8*), i8* bitcast (%Bool* (%Object*, %Object*)* @Object_gt_ to i8*), i8* bitcast (%Bool* (%Object*, %Object*)* @Object_ge_ to i8*), i8* bitcast (%Class.0* (%Object*)* @Object_class to i8*), i8* bitcast (void (%Object*, %Int*)* @Object_exit to i8*), i8* bitcast (%Int* (%Object*)* @Object_hash to i8*), i8* bitcast (%Void* (%Fn*, %"Shiika::Internal::Ptr"*, %Object*, %Array*)* @Fn_initialize to i8*), i8* bitcast (%String* (%Object*)* @Object_inspect to i8*), i8* bitcast (%Int* (%Object*)* @Object_object__id to i8*), i8* bitcast (%Void* (%Object*, %Object*)* @Object_p to i8*), i8* bitcast (void (%Object*, %String*)* @Object_panic to i8*), i8* bitcast (%Void* (%Object*, %String*)* @Object_print to i8*), i8* bitcast (%Void* (%Object*, %String*)* @Object_puts to i8*), i8* bitcast (%String* (%Object*)* @Object_to__s to i8*), i8* bitcast (%Array* (%Fn*)* @Fn_captures to i8*), i8* bitcast (%Array* (%Fn*, %Array*)* @_set_Fn_captures to i8*), i8* bitcast (%Int* (%Fn*)* @Fn_exit__status to i8*), i8* bitcast (%Int* (%Fn*, %Int*)* @_set_Fn_exit__status to i8*), i8* bitcast (%"Shiika::Internal::Ptr"* (%Fn*)* @Fn_func to i8*), i8* bitcast (%"Shiika::Internal::Ptr"* (%Fn*, %"Shiika::Internal::Ptr"*)* @_set_Fn_func to i8*), i8* bitcast (%Object* (%Fn*)* @Fn_the__self to i8*), i8* bitcast (%Object* (%Fn*, %Object*)* @_set_Fn_the__self to i8*)] | |
@shiika_vtable_Array = constant [54 x i8*] [i8* bitcast (%Bool* (%Object*, %Object*)* @Object_lt_ to i8*), i8* bitcast (%Bool* (%Object*, %Object*)* @Object_le_ to i8*), i8* bitcast (%Bool* (%Array*, %Array*)* @Array_eq_ to i8*), i8* bitcast (%Bool* (%Object*, %Object*)* @Object_gt_ to i8*), i8* bitcast (%Bool* (%Object*, %Object*)* @Object_ge_ to i8*), i8* bitcast (%Class.0* (%Object*)* @Object_class to i8*), i8* bitcast (void (%Object*, %Int*)* @Object_exit to i8*), i8* bitcast (%Int* (%Object*)* @Object_hash to i8*), i8* bitcast (%Void* (%Array*)* @Array_initialize to i8*), i8* bitcast (%String* (%Array*)* @Array_inspect to i8*), i8* bitcast (%Int* (%Object*)* @Object_object__id to i8*), i8* bitcast (%Void* (%Object*, %Object*)* @Object_p to i8*), i8* bitcast (void (%Object*, %String*)* @Object_panic to i8*), i8* bitcast (%Void* (%Object*, %String*)* @Object_print to i8*), i8* bitcast (%Void* (%Object*, %String*)* @Object_puts to i8*), i8* bitcast (%String* (%Object*)* @Object_to__s to i8*), i8* bitcast (%Object* (%Array*, %Int*)* @Array_aref_ to i8*), i8* bitcast (%Void* (%Array*, %Int*, %Object*)* @Array_aset_ to i8*), i8* bitcast (%Int* (%Array*, %Int*, %Int*)* @Array___choose__pivot to i8*), i8* bitcast (%Int* (%Array*, %Int*, %Int*, %Object*)* @Array___partition to i8*), i8* bitcast (%Void* (%Array*, %Int*, %Int*)* @Array___quicksort to i8*), i8* bitcast (%Bool* (%Array*, %Fn1*)* @"Array_all?" to i8*), i8* bitcast (%Bool* (%Array*, %Fn1*)* @"Array_any?" to i8*), i8* bitcast (%Void* (%Array*, %Array*)* @Array_append to i8*), i8* bitcast (%Int* (%Array*)* @Array_capa to i8*), i8* bitcast (%Int* (%Array*, %Int*)* @_set_Array_capa to i8*), i8* bitcast (%Void* (%Array*)* @Array_clear to i8*), i8* bitcast (%Array* (%Array*)* @Array_clone to i8*), i8* bitcast (%Array* (%Array*, %Int*)* @Array_drop to i8*), i8* bitcast (%Void* (%Array*, %Fn1*)* @Array_each to i8*), i8* bitcast (%Bool* (%Array*)* @"Array_empty?" to i8*), i8* bitcast (%Maybe* (%Array*)* @Array_first to i8*), i8* bitcast (%Array* (%Array*, %Fn1*)* @Array_flat__map to i8*), i8* bitcast (%Object* (%Array*, %Object*, %Fn2*)* @Array_fold to i8*), i8* bitcast (%Bool* (%Array*, %Object*)* @"Array_includes?" to i8*), i8* bitcast (%"Shiika::Internal::Ptr"* (%Array*)* @Array_items to i8*), i8* bitcast (%"Shiika::Internal::Ptr"* (%Array*, %"Shiika::Internal::Ptr"*)* @_set_Array_items to i8*), i8* bitcast (%String* (%Array*, %String*)* @Array_join to i8*), i8* bitcast (%Maybe* (%Array*)* @Array_last to i8*), i8* bitcast (%Int* (%Array*)* @Array_length to i8*), i8* bitcast (%Array* (%Array*, %Fn1*)* @Array_map to i8*), i8* bitcast (%Int* (%Array*)* @Array_n__items to i8*), i8* bitcast (%Int* (%Array*, %Int*)* @_set_Array_n__items to i8*), i8* bitcast (%Bool* (%Array*, %Fn1*)* @"Array_none?" to i8*), i8* bitcast (%Object* (%Array*)* @Array_pop to i8*), i8* bitcast (%Void* (%Array*, %Object*)* @Array_push to i8*), i8* bitcast (%Array* (%Array*, %Fn1*)* @Array_reject to i8*), i8* bitcast (%Void* (%Array*, %Int*)* @Array_reserve to i8*), i8* bitcast (%Array* (%Array*)* @Array_reverse to i8*), i8* bitcast (%Void* (%Array*, %Fn1*)* @Array_reverse__each to i8*), i8* bitcast (%Array* (%Array*, %Fn1*)* @Array_select to i8*), i8* bitcast (%Maybe* (%Array*)* @Array_shift to i8*), i8* bitcast (%Array* (%Array*)* @Array_sort to i8*), i8* bitcast (%Void* (%Array*)* @Array_sort__inplace to i8*)] | |
@shiika_vtable_Maybe = constant [18 x i8*] [i8* bitcast (%Bool* (%Object*, %Object*)* @Object_lt_ to i8*), i8* bitcast (%Bool* (%Object*, %Object*)* @Object_le_ to i8*), i8* bitcast (%Bool* (%Object*, %Object*)* @Object_eq_ to i8*), i8* bitcast (%Bool* (%Object*, %Object*)* @Object_gt_ to i8*), i8* bitcast (%Bool* (%Object*, %Object*)* @Object_ge_ to i8*), i8* bitcast (%Class.0* (%Object*)* @Object_class to i8*), i8* bitcast (void (%Object*, %Int*)* @Object_exit to i8*), i8* bitcast (%Int* (%Object*)* @Object_hash to i8*), i8* bitcast (%Void* (%Object*)* @Object_initialize to i8*), i8* bitcast (%String* (%Maybe*)* @Maybe_inspect to i8*), i8* bitcast (%Int* (%Object*)* @Object_object__id to i8*), i8* bitcast (%Void* (%Object*, %Object*)* @Object_p to i8*), i8* bitcast (void (%Object*, %String*)* @Object_panic to i8*), i8* bitcast (%Void* (%Object*, %String*)* @Object_print to i8*), i8* bitcast (%Void* (%Object*, %String*)* @Object_puts to i8*), i8* bitcast (%String* (%Object*)* @Object_to__s to i8*), i8* bitcast (%Object* (%Maybe*, %String*)* @Maybe_expect to i8*), i8* bitcast (%Maybe* (%Maybe*, %Fn1*)* @Maybe_map to i8*)] | |
@shiika_vtable_Int = constant [35 x i8*] [i8* bitcast (%Bool* (%Int*, %Int*)* @Int_lt_ to i8*), i8* bitcast (%Bool* (%Int*, %Int*)* @Int_le_ to i8*), i8* bitcast (%Bool* (%Int*, %Int*)* @Int_eq_ to i8*), i8* bitcast (%Bool* (%Int*, %Int*)* @Int_gt_ to i8*), i8* bitcast (%Bool* (%Int*, %Int*)* @Int_ge_ to i8*), i8* bitcast (%Class.0* (%Object*)* @Object_class to i8*), i8* bitcast (void (%Object*, %Int*)* @Object_exit to i8*), i8* bitcast (%Int* (%Int*)* @Int_hash to i8*), i8* bitcast (%Void* (%Object*)* @Object_initialize to i8*), i8* bitcast (%String* (%Object*)* @Object_inspect to i8*), i8* bitcast (%Int* (%Object*)* @Object_object__id to i8*), i8* bitcast (%Void* (%Object*, %Object*)* @Object_p to i8*), i8* bitcast (void (%Object*, %String*)* @Object_panic to i8*), i8* bitcast (%Void* (%Object*, %String*)* @Object_print to i8*), i8* bitcast (%Void* (%Object*, %String*)* @Object_puts to i8*), i8* bitcast (%String* (%Int*)* @Int_to__s to i8*), i8* bitcast (%Int* (%Int*, %Int*)* @Int_mod_ to i8*), i8* bitcast (%Int* (%Int*, %Int*)* @Int_mul_ to i8*), i8* bitcast (%Int* (%Int*, %Int*)* @Int_add_ to i8*), i8* bitcast (%Int* (%Int*, %Int*)* @Int_sub_ to i8*), i8* bitcast (%Int* (%Int*)* @Int_uminus_ to i8*), i8* bitcast (%Float* (%Int*, %Int*)* @Int_div_ to i8*), i8* bitcast (%Int* (%Int*)* @Int_abs to i8*), i8* bitcast (%Int* (%Int*, %Int*)* @Int_and to i8*), i8* bitcast (%Void* (%Int*, %Int*, %Fn1*)* @Int_downto to i8*), i8* bitcast (%Bool* (%Int*)* @"Int_even?" to i8*), i8* bitcast (%Int* (%Int*, %Int*)* @Int_lshift to i8*), i8* bitcast (%Bool* (%Int*)* @"Int_odd?" to i8*), i8* bitcast (%Int* (%Int*, %Int*)* @Int_or to i8*), i8* bitcast (%Int* (%Int*, %Int*)* @Int_rshift to i8*), i8* bitcast (%Void* (%Int*, %Fn1*)* @Int_times to i8*), i8* bitcast (%Float* (%Int*)* @Int_to__f to i8*), i8* bitcast (%Int* (%Int*)* @Int_to__i to i8*), i8* bitcast (%Void* (%Int*, %Int*, %Fn1*)* @Int_upto to i8*), i8* bitcast (%Int* (%Int*, %Int*)* @Int_xor to i8*)] | |
declare void @GC_init() | |
declare i8* @shiika_malloc(i64) | |
declare i8* @shiika_realloc(i8*, i64) | |
declare i8* @shiika_lookup_wtable(i8*, i64, i64) | |
define %Bool* @box_bool(i1 %0) { | |
%class_obj = load %Bool*, %Bool** @"::Bool", align 8 | |
%mem = call i8* @shiika_malloc(i64 ptrtoint (%Bool* getelementptr (%Bool, %Bool* null, i32 1) to i64)) | |
%sk_bool = bitcast i8* %mem to %Bool* | |
%addr_vtable = getelementptr inbounds %Bool, %Bool* %sk_bool, i32 0, i32 0 | |
store i8* bitcast ([16 x i8*]* @shiika_vtable_Bool to i8*), i8** %addr_vtable, align 8 | |
%class = bitcast %Bool* %class_obj to %Class.0* | |
%addr_my_class = getelementptr inbounds %Bool, %Bool* %sk_bool, i32 0, i32 1 | |
store %Class.0* %class, %Class.0** %addr_my_class, align 8 | |
%"addr_@llvm_bool" = getelementptr inbounds %Bool, %Bool* %sk_bool, i32 0, i32 2 | |
store i1 %0, i1* %"addr_@llvm_bool", align 1 | |
ret %Bool* %sk_bool | |
} | |
define i1 @unbox_bool(%Bool* %0) { | |
%"addr_@llvm_bool" = getelementptr inbounds %Bool, %Bool* %0, i32 0, i32 2 | |
%"@llvm_bool" = load i1, i1* %"addr_@llvm_bool", align 1 | |
ret i1 %"@llvm_bool" | |
} | |
define %Int* @box_int(i64 %0) { | |
%class_obj = load %Int*, %Int** @"::Int", align 8 | |
%mem = call i8* @shiika_malloc(i64 ptrtoint (%Int* getelementptr (%Int, %Int* null, i32 1) to i64)) | |
%sk_int = bitcast i8* %mem to %Int* | |
%addr_vtable = getelementptr inbounds %Int, %Int* %sk_int, i32 0, i32 0 | |
store i8* bitcast ([35 x i8*]* @shiika_vtable_Int to i8*), i8** %addr_vtable, align 8 | |
%class = bitcast %Int* %class_obj to %Class.0* | |
%addr_my_class = getelementptr inbounds %Int, %Int* %sk_int, i32 0, i32 1 | |
store %Class.0* %class, %Class.0** %addr_my_class, align 8 | |
%"addr_@llvm_int" = getelementptr inbounds %Int, %Int* %sk_int, i32 0, i32 2 | |
store i64 %0, i64* %"addr_@llvm_int", align 4 | |
ret %Int* %sk_int | |
} | |
define i64 @unbox_int(%Int* %0) { | |
%"addr_@llvm_int" = getelementptr inbounds %Int, %Int* %0, i32 0, i32 2 | |
%"@llvm_int" = load i64, i64* %"addr_@llvm_int", align 4 | |
ret i64 %"@llvm_int" | |
} | |
define %Float* @box_float(double %0) { | |
%class_obj = load %Float*, %Float** @"::Float", align 8 | |
%mem = call i8* @shiika_malloc(i64 ptrtoint (%Float* getelementptr (%Float, %Float* null, i32 1) to i64)) | |
%sk_float = bitcast i8* %mem to %Float* | |
%addr_vtable = getelementptr inbounds %Float, %Float* %sk_float, i32 0, i32 0 | |
store i8* bitcast ([25 x i8*]* @shiika_vtable_Float to i8*), i8** %addr_vtable, align 8 | |
%class = bitcast %Float* %class_obj to %Class.0* | |
%addr_my_class = getelementptr inbounds %Float, %Float* %sk_float, i32 0, i32 1 | |
store %Class.0* %class, %Class.0** %addr_my_class, align 8 | |
%"addr_@llvm_float" = getelementptr inbounds %Float, %Float* %sk_float, i32 0, i32 2 | |
store double %0, double* %"addr_@llvm_float", align 8 | |
ret %Float* %sk_float | |
} | |
define double @unbox_float(%Float* %0) { | |
%"addr_@llvm_float" = getelementptr inbounds %Float, %Float* %0, i32 0, i32 2 | |
%"@llvm_float" = load double, double* %"addr_@llvm_float", align 8 | |
ret double %"@llvm_float" | |
} | |
define %"Shiika::Internal::Ptr"* @box_i8ptr(i8* %0) { | |
%class_obj = load %"Shiika::Internal::Ptr"*, %"Shiika::Internal::Ptr"** @"::Shiika::Internal::Ptr", align 8 | |
%mem = call i8* @shiika_malloc(i64 mul nuw (i64 ptrtoint (i1** getelementptr (i1*, i1** null, i32 1) to i64), i64 3)) | |
%sk_ptr = bitcast i8* %mem to %"Shiika::Internal::Ptr"* | |
%addr_vtable = getelementptr inbounds %"Shiika::Internal::Ptr", %"Shiika::Internal::Ptr"* %sk_ptr, i32 0, i32 0 | |
store i8* bitcast ([21 x i8*]* @"shiika_vtable_Shiika::Internal::Ptr" to i8*), i8** %addr_vtable, align 8 | |
%class = bitcast %"Shiika::Internal::Ptr"* %class_obj to %Class.0* | |
%addr_my_class = getelementptr inbounds %"Shiika::Internal::Ptr", %"Shiika::Internal::Ptr"* %sk_ptr, i32 0, i32 1 | |
store %Class.0* %class, %Class.0** %addr_my_class, align 8 | |
%"addr_@llvm_i8ptr" = getelementptr inbounds %"Shiika::Internal::Ptr", %"Shiika::Internal::Ptr"* %sk_ptr, i32 0, i32 2 | |
store i8* %0, i8** %"addr_@llvm_i8ptr", align 8 | |
ret %"Shiika::Internal::Ptr"* %sk_ptr | |
} | |
define i8* @unbox_i8ptr(%"Shiika::Internal::Ptr"* %0) { | |
%"addr_@llvm_i8ptr" = getelementptr inbounds %"Shiika::Internal::Ptr", %"Shiika::Internal::Ptr"* %0, i32 0, i32 2 | |
%"@llvm_i8ptr" = load i8*, i8** %"addr_@llvm_i8ptr", align 8 | |
ret i8* %"@llvm_i8ptr" | |
} | |
define %String* @gen_literal_string(i8* %0, i64 %1) { | |
%"::String" = load %String*, %String** @"::String", align 8 | |
%sk_ptr = call %"Shiika::Internal::Ptr"* @box_i8ptr(i8* %0) | |
%sk_int = call %Int* @box_int(i64 %1) | |
%sk_str = call %String* @Meta_String_new(%String* %"::String", %"Shiika::Internal::Ptr"* %sk_ptr, %Int* %sk_int) | |
ret %String* %sk_str | |
} | |
define %Void* @Triple_initialize(%Triple* %self, %Object* %"@fst", %Object* %"@snd", %Object* %"@thd") { | |
%"addr_@fst" = getelementptr inbounds %Triple, %Triple* %self, i32 0, i32 2 | |
store %Object* %"@fst", %Object** %"addr_@fst", align 8 | |
%"addr_@snd" = getelementptr inbounds %Triple, %Triple* %self, i32 0, i32 3 | |
store %Object* %"@snd", %Object** %"addr_@snd", align 8 | |
%"addr_@thd" = getelementptr inbounds %Triple, %Triple* %self, i32 0, i32 4 | |
store %Object* %"@thd", %Object** %"addr_@thd", align 8 | |
%"::Void" = load %Void*, %Void** @"::Void", align 8 | |
br label %Ret | |
End: ; preds = %Ret | |
%"::Void1" = load %Void*, %Void** @"::Void", align 8 | |
ret %Void* %"::Void1" | |
Ret: ; preds = %0 | |
br label %End | |
} | |
define %Object* @Triple_fst(%Triple* %self) { | |
%"addr_@fst" = getelementptr inbounds %Triple, %Triple* %self, i32 0, i32 2 | |
%"@fst" = load %Object*, %Object** %"addr_@fst", align 8 | |
ret %Object* %"@fst" | |
} | |
define %Object* @_set_Triple_fst(%Triple* %self, %Object* %fst) { | |
%"addr_@fst" = getelementptr inbounds %Triple, %Triple* %self, i32 0, i32 2 | |
store %Object* %fst, %Object** %"addr_@fst", align 8 | |
ret %Object* %fst | |
} | |
define %Object* @Triple_thd(%Triple* %self) { | |
%"addr_@thd" = getelementptr inbounds %Triple, %Triple* %self, i32 0, i32 4 | |
%"@thd" = load %Object*, %Object** %"addr_@thd", align 8 | |
ret %Object* %"@thd" | |
} | |
define %Object* @_set_Triple_thd(%Triple* %self, %Object* %thd) { | |
%"addr_@thd" = getelementptr inbounds %Triple, %Triple* %self, i32 0, i32 4 | |
store %Object* %thd, %Object** %"addr_@thd", align 8 | |
ret %Object* %thd | |
} | |
define %Object* @Triple_snd(%Triple* %self) { | |
%"addr_@snd" = getelementptr inbounds %Triple, %Triple* %self, i32 0, i32 3 | |
%"@snd" = load %Object*, %Object** %"addr_@snd", align 8 | |
ret %Object* %"@snd" | |
} | |
define %Object* @_set_Triple_snd(%Triple* %self, %Object* %snd) { | |
%"addr_@snd" = getelementptr inbounds %Triple, %Triple* %self, i32 0, i32 3 | |
store %Object* %snd, %Object** %"addr_@snd", align 8 | |
ret %Object* %snd | |
} | |
define %Error* @Meta_Error_new(%Error* %self, %String* %"@msg") { | |
%mem = call i8* @shiika_malloc(i64 mul nuw (i64 ptrtoint (i1** getelementptr (i1*, i1** null, i32 1) to i64), i64 3)) | |
%addr = bitcast i8* %mem to %Error* | |
%addr_vtable = getelementptr inbounds %Error, %Error* %addr, i32 0, i32 0 | |
store i8* bitcast ([18 x i8*]* @shiika_vtable_Error to i8*), i8** %addr_vtable, align 8 | |
%class = bitcast %Error* %self to %Class.0* | |
%addr_my_class = getelementptr inbounds %Error, %Error* %addr, i32 0, i32 1 | |
store %Class.0* %class, %Class.0** %addr_my_class, align 8 | |
%1 = call %Void* @Error_initialize(%Error* %addr, %String* %"@msg") | |
ret %Error* %addr | |
} | |
define %Array* @Meta_Array_new(%Array* %self) { | |
%mem = call i8* @shiika_malloc(i64 mul nuw (i64 ptrtoint (i1** getelementptr (i1*, i1** null, i32 1) to i64), i64 5)) | |
%addr = bitcast i8* %mem to %Array* | |
%addr_vtable = getelementptr inbounds %Array, %Array* %addr, i32 0, i32 0 | |
store i8* bitcast ([54 x i8*]* @shiika_vtable_Array to i8*), i8** %addr_vtable, align 8 | |
%class = bitcast %Array* %self to %Class.0* | |
%addr_my_class = getelementptr inbounds %Array, %Array* %addr, i32 0, i32 1 | |
store %Class.0* %class, %Class.0** %addr_my_class, align 8 | |
%1 = call %Void* @Array_initialize(%Array* %addr) | |
ret %Array* %addr | |
} | |
define %Array* @Meta_Array_build(%Array* %self, %Int* %len, %Fn1* %f) { | |
alloca: | |
%"ary@4_" = alloca %Array*, align 8 | |
%ret = alloca %Array*, align 8 | |
%i = alloca %Int*, align 8 | |
br label %alloca_End | |
alloca_End: ; preds = %alloca | |
%"::Array" = load %Array*, %Array** @"::Array", align 8 | |
%"::Array1" = load %Array*, %Array** @"::Array", align 8 | |
%"::Class" = load %Class.0*, %Class.0** @"::Class", align 8 | |
br label %"Invoke_Class#_specialize1" | |
End: ; preds = %Ret | |
%methodResult = phi %Array* [ %ret70, %Ret ] | |
ret %Array* %methodResult | |
"Invoke_Class#_specialize1": ; preds = %alloca_End | |
%addr_vtable = getelementptr inbounds %Array, %Array* %"::Array1", i32 0, i32 0 | |
%vtable = load i8*, i8** %addr_vtable, align 8 | |
%vtable_ptr = bitcast i8* %vtable to [25 x i8*]* | |
%vtable2 = load [25 x i8*], [25 x i8*]* %vtable_ptr, align 8 | |
%func_raw = extractvalue [25 x i8*] %vtable2, 18 | |
%func = bitcast i8* %func_raw to %Array* (%Array*, %Class.0*)* | |
%result = call %Array* %func(%Array* %"::Array1", %Class.0* %"::Class") | |
br label %"Invoke_Class#_specialize1_end" | |
"Invoke_Class#_specialize1_end": ; preds = %"Invoke_Class#_specialize1" | |
br label %"Invoke_Array#new" | |
"Invoke_Array#new": ; preds = %"Invoke_Class#_specialize1_end" | |
%addr_vtable3 = getelementptr inbounds %Array, %Array* %result, i32 0, i32 0 | |
%vtable4 = load i8*, i8** %addr_vtable3, align 8 | |
%vtable_ptr5 = bitcast i8* %vtable4 to [25 x i8*]* | |
%vtable6 = load [25 x i8*], [25 x i8*]* %vtable_ptr5, align 8 | |
%func_raw7 = extractvalue [25 x i8*] %vtable6, 23 | |
%func8 = bitcast i8* %func_raw7 to %Array* (%Array*)* | |
%result9 = call %Array* %func8(%Array* %result) | |
br label %"Invoke_Array#new_end" | |
"Invoke_Array#new_end": ; preds = %"Invoke_Array#new" | |
store %Array* %result9, %Array** %"ary@4_", align 8 | |
%"ary@4_10" = load %Array*, %Array** %"ary@4_", align 8 | |
%"::Object" = load %Object*, %Object** @"::Object", align 8 | |
br label %"Invoke_Array#push" | |
"Invoke_Array#push": ; preds = %"Invoke_Array#new_end" | |
%addr_vtable11 = getelementptr inbounds %Array, %Array* %"ary@4_10", i32 0, i32 0 | |
%vtable12 = load i8*, i8** %addr_vtable11, align 8 | |
%vtable_ptr13 = bitcast i8* %vtable12 to [54 x i8*]* | |
%vtable14 = load [54 x i8*], [54 x i8*]* %vtable_ptr13, align 8 | |
%func_raw15 = extractvalue [54 x i8*] %vtable14, 45 | |
%func16 = bitcast i8* %func_raw15 to %Void* (%Array*, %Object*)* | |
%result17 = call %Void* %func16(%Array* %"ary@4_10", %Object* %"::Object") | |
br label %"Invoke_Array#push_end" | |
"Invoke_Array#push_end": ; preds = %"Invoke_Array#push" | |
%"ary@4_18" = load %Array*, %Array** %"ary@4_", align 8 | |
br label %"Invoke_Class#<>" | |
"Invoke_Class#<>": ; preds = %"Invoke_Array#push_end" | |
%addr_vtable19 = getelementptr inbounds %Array, %Array* %"::Array", i32 0, i32 0 | |
%vtable20 = load i8*, i8** %addr_vtable19, align 8 | |
%vtable_ptr21 = bitcast i8* %vtable20 to [25 x i8*]* | |
%vtable22 = load [25 x i8*], [25 x i8*]* %vtable_ptr21, align 8 | |
%func_raw23 = extractvalue [25 x i8*] %vtable22, 16 | |
%func24 = bitcast i8* %func_raw23 to %Array* (%Array*, %Array*)* | |
%result25 = call %Array* %func24(%Array* %"::Array", %Array* %"ary@4_18") | |
br label %"Invoke_Class#<>_end" | |
"Invoke_Class#<>_end": ; preds = %"Invoke_Class#<>" | |
br label %"Invoke_Meta:Array#new" | |
"Invoke_Meta:Array#new": ; preds = %"Invoke_Class#<>_end" | |
%addr_vtable26 = getelementptr inbounds %Array, %Array* %result25, i32 0, i32 0 | |
%vtable27 = load i8*, i8** %addr_vtable26, align 8 | |
%vtable_ptr28 = bitcast i8* %vtable27 to [25 x i8*]* | |
%vtable29 = load [25 x i8*], [25 x i8*]* %vtable_ptr28, align 8 | |
%func_raw30 = extractvalue [25 x i8*] %vtable29, 23 | |
%func31 = bitcast i8* %func_raw30 to %Array* (%Array*)* | |
%result32 = call %Array* %func31(%Array* %result25) | |
br label %"Invoke_Meta:Array#new_end" | |
"Invoke_Meta:Array#new_end": ; preds = %"Invoke_Meta:Array#new" | |
store %Array* %result32, %Array** %ret, align 8 | |
%ret33 = load %Array*, %Array** %ret, align 8 | |
%as = bitcast %Int* %len to %Object* | |
br label %"Invoke_Array#reserve" | |
"Invoke_Array#reserve": ; preds = %"Invoke_Meta:Array#new_end" | |
%addr_vtable34 = getelementptr inbounds %Array, %Array* %ret33, i32 0, i32 0 | |
%vtable35 = load i8*, i8** %addr_vtable34, align 8 | |
%vtable_ptr36 = bitcast i8* %vtable35 to [54 x i8*]* | |
%vtable37 = load [54 x i8*], [54 x i8*]* %vtable_ptr36, align 8 | |
%func_raw38 = extractvalue [54 x i8*] %vtable37, 47 | |
%func39 = bitcast i8* %func_raw38 to %Void* (%Array*, %Object*)* | |
%result40 = call %Void* %func39(%Array* %ret33, %Object* %as) | |
br label %"Invoke_Array#reserve_end" | |
"Invoke_Array#reserve_end": ; preds = %"Invoke_Array#reserve" | |
%sk_int = call %Int* @box_int(i64 0) | |
store %Int* %sk_int, %Int** %i, align 8 | |
br label %WhileBegin | |
WhileBegin: ; preds = %"Invoke_Int#+_end", %"Invoke_Array#reserve_end" | |
%i41 = load %Int*, %Int** %i, align 8 | |
br label %"Invoke_Int#<" | |
"Invoke_Int#<": ; preds = %WhileBegin | |
%addr_vtable42 = getelementptr inbounds %Int, %Int* %i41, i32 0, i32 0 | |
%vtable43 = load i8*, i8** %addr_vtable42, align 8 | |
%vtable_ptr44 = bitcast i8* %vtable43 to [35 x i8*]* | |
%vtable45 = load [35 x i8*], [35 x i8*]* %vtable_ptr44, align 8 | |
%func_raw46 = extractvalue [35 x i8*] %vtable45, 0 | |
%func47 = bitcast i8* %func_raw46 to %Bool* (%Int*, %Int*)* | |
%result48 = call %Bool* %func47(%Int* %i41, %Int* %len) | |
br label %"Invoke_Int#<_end" | |
"Invoke_Int#<_end": ; preds = %"Invoke_Int#<" | |
%llvm_bool = call i1 @unbox_bool(%Bool* %result48) | |
%istrue = icmp eq i1 %llvm_bool, true | |
br i1 %istrue, label %WhileBody, label %WhileEnd | |
WhileBody: ; preds = %"Invoke_Int#<_end" | |
%ret49 = load %Array*, %Array** %ret, align 8 | |
%i50 = load %Int*, %Int** %i, align 8 | |
br label %Invoke_lambda | |
WhileEnd: ; preds = %"Invoke_Int#<_end" | |
%"::Void" = load %Void*, %Void** @"::Void", align 8 | |
%ret70 = load %Array*, %Array** %ret, align 8 | |
br label %Ret | |
Invoke_lambda: ; preds = %WhileBody | |
%"addr_@func" = getelementptr inbounds %Fn1, %Fn1* %f, i32 0, i32 2 | |
%"@func" = load %"Shiika::Internal::Ptr"*, %"Shiika::Internal::Ptr"** %"addr_@func", align 8 | |
%llvm_ptr = call i8* @unbox_i8ptr(%"Shiika::Internal::Ptr"* %"@func") | |
%0 = bitcast i8* %llvm_ptr to %Object* (%Fn1*, %Int*)* | |
%result51 = call %Object* %0(%Fn1* %f, %Int* %i50) | |
br label %Invoke_lambda_end | |
Invoke_lambda_end: ; preds = %Invoke_lambda | |
br label %"Invoke_Array#push52" | |
"Invoke_Array#push52": ; preds = %Invoke_lambda_end | |
%addr_vtable53 = getelementptr inbounds %Array, %Array* %ret49, i32 0, i32 0 | |
%vtable54 = load i8*, i8** %addr_vtable53, align 8 | |
%vtable_ptr55 = bitcast i8* %vtable54 to [54 x i8*]* | |
%vtable56 = load [54 x i8*], [54 x i8*]* %vtable_ptr55, align 8 | |
%func_raw57 = extractvalue [54 x i8*] %vtable56, 45 | |
%func58 = bitcast i8* %func_raw57 to %Void* (%Array*, %Object*)* | |
%result59 = call %Void* %func58(%Array* %ret49, %Object* %result51) | |
br label %"Invoke_Array#push_end60" | |
"Invoke_Array#push_end60": ; preds = %"Invoke_Array#push52" | |
%i61 = load %Int*, %Int** %i, align 8 | |
%sk_int62 = call %Int* @box_int(i64 1) | |
br label %"Invoke_Int#+" | |
"Invoke_Int#+": ; preds = %"Invoke_Array#push_end60" | |
%addr_vtable63 = getelementptr inbounds %Int, %Int* %i61, i32 0, i32 0 | |
%vtable64 = load i8*, i8** %addr_vtable63, align 8 | |
%vtable_ptr65 = bitcast i8* %vtable64 to [35 x i8*]* | |
%vtable66 = load [35 x i8*], [35 x i8*]* %vtable_ptr65, align 8 | |
%func_raw67 = extractvalue [35 x i8*] %vtable66, 18 | |
%func68 = bitcast i8* %func_raw67 to %Int* (%Int*, %Int*)* | |
%result69 = call %Int* %func68(%Int* %i61, %Int* %sk_int62) | |
br label %"Invoke_Int#+_end" | |
"Invoke_Int#+_end": ; preds = %"Invoke_Int#+" | |
store %Int* %result69, %Int** %i, align 8 | |
br label %WhileBegin | |
Ret: ; preds = %WhileEnd | |
br label %End | |
} | |
define %Array* @Meta_Array_repeat(%Array* %self, %Object* %item, %Int* %len) { | |
alloca: | |
%ret = alloca %Array*, align 8 | |
%i = alloca %Int*, align 8 | |
%"ary@5_" = alloca %Array*, align 8 | |
br label %alloca_End | |
alloca_End: ; preds = %alloca | |
%"::Array" = load %Array*, %Array** @"::Array", align 8 | |
%"::Array1" = load %Array*, %Array** @"::Array", align 8 | |
%"::Class" = load %Class.0*, %Class.0** @"::Class", align 8 | |
br label %"Invoke_Class#_specialize1" | |
End: ; preds = %Ret | |
%methodResult = phi %Array* [ %ret68, %Ret ] | |
ret %Array* %methodResult | |
"Invoke_Class#_specialize1": ; preds = %alloca_End | |
%addr_vtable = getelementptr inbounds %Array, %Array* %"::Array1", i32 0, i32 0 | |
%vtable = load i8*, i8** %addr_vtable, align 8 | |
%vtable_ptr = bitcast i8* %vtable to [25 x i8*]* | |
%vtable2 = load [25 x i8*], [25 x i8*]* %vtable_ptr, align 8 | |
%func_raw = extractvalue [25 x i8*] %vtable2, 18 | |
%func = bitcast i8* %func_raw to %Array* (%Array*, %Class.0*)* | |
%result = call %Array* %func(%Array* %"::Array1", %Class.0* %"::Class") | |
br label %"Invoke_Class#_specialize1_end" | |
"Invoke_Class#_specialize1_end": ; preds = %"Invoke_Class#_specialize1" | |
br label %"Invoke_Array#new" | |
"Invoke_Array#new": ; preds = %"Invoke_Class#_specialize1_end" | |
%addr_vtable3 = getelementptr inbounds %Array, %Array* %result, i32 0, i32 0 | |
%vtable4 = load i8*, i8** %addr_vtable3, align 8 | |
%vtable_ptr5 = bitcast i8* %vtable4 to [25 x i8*]* | |
%vtable6 = load [25 x i8*], [25 x i8*]* %vtable_ptr5, align 8 | |
%func_raw7 = extractvalue [25 x i8*] %vtable6, 23 | |
%func8 = bitcast i8* %func_raw7 to %Array* (%Array*)* | |
%result9 = call %Array* %func8(%Array* %result) | |
br label %"Invoke_Array#new_end" | |
"Invoke_Array#new_end": ; preds = %"Invoke_Array#new" | |
store %Array* %result9, %Array** %"ary@5_", align 8 | |
%"ary@5_10" = load %Array*, %Array** %"ary@5_", align 8 | |
%"::Object" = load %Object*, %Object** @"::Object", align 8 | |
br label %"Invoke_Array#push" | |
"Invoke_Array#push": ; preds = %"Invoke_Array#new_end" | |
%addr_vtable11 = getelementptr inbounds %Array, %Array* %"ary@5_10", i32 0, i32 0 | |
%vtable12 = load i8*, i8** %addr_vtable11, align 8 | |
%vtable_ptr13 = bitcast i8* %vtable12 to [54 x i8*]* | |
%vtable14 = load [54 x i8*], [54 x i8*]* %vtable_ptr13, align 8 | |
%func_raw15 = extractvalue [54 x i8*] %vtable14, 45 | |
%func16 = bitcast i8* %func_raw15 to %Void* (%Array*, %Object*)* | |
%result17 = call %Void* %func16(%Array* %"ary@5_10", %Object* %"::Object") | |
br label %"Invoke_Array#push_end" | |
"Invoke_Array#push_end": ; preds = %"Invoke_Array#push" | |
%"ary@5_18" = load %Array*, %Array** %"ary@5_", align 8 | |
br label %"Invoke_Class#<>" | |
"Invoke_Class#<>": ; preds = %"Invoke_Array#push_end" | |
%addr_vtable19 = getelementptr inbounds %Array, %Array* %"::Array", i32 0, i32 0 | |
%vtable20 = load i8*, i8** %addr_vtable19, align 8 | |
%vtable_ptr21 = bitcast i8* %vtable20 to [25 x i8*]* | |
%vtable22 = load [25 x i8*], [25 x i8*]* %vtable_ptr21, align 8 | |
%func_raw23 = extractvalue [25 x i8*] %vtable22, 16 | |
%func24 = bitcast i8* %func_raw23 to %Array* (%Array*, %Array*)* | |
%result25 = call %Array* %func24(%Array* %"::Array", %Array* %"ary@5_18") | |
br label %"Invoke_Class#<>_end" | |
"Invoke_Class#<>_end": ; preds = %"Invoke_Class#<>" | |
br label %"Invoke_Meta:Array#new" | |
"Invoke_Meta:Array#new": ; preds = %"Invoke_Class#<>_end" | |
%addr_vtable26 = getelementptr inbounds %Array, %Array* %result25, i32 0, i32 0 | |
%vtable27 = load i8*, i8** %addr_vtable26, align 8 | |
%vtable_ptr28 = bitcast i8* %vtable27 to [25 x i8*]* | |
%vtable29 = load [25 x i8*], [25 x i8*]* %vtable_ptr28, align 8 | |
%func_raw30 = extractvalue [25 x i8*] %vtable29, 23 | |
%func31 = bitcast i8* %func_raw30 to %Array* (%Array*)* | |
%result32 = call %Array* %func31(%Array* %result25) | |
br label %"Invoke_Meta:Array#new_end" | |
"Invoke_Meta:Array#new_end": ; preds = %"Invoke_Meta:Array#new" | |
store %Array* %result32, %Array** %ret, align 8 | |
%ret33 = load %Array*, %Array** %ret, align 8 | |
%as = bitcast %Int* %len to %Object* | |
br label %"Invoke_Array#reserve" | |
"Invoke_Array#reserve": ; preds = %"Invoke_Meta:Array#new_end" | |
%addr_vtable34 = getelementptr inbounds %Array, %Array* %ret33, i32 0, i32 0 | |
%vtable35 = load i8*, i8** %addr_vtable34, align 8 | |
%vtable_ptr36 = bitcast i8* %vtable35 to [54 x i8*]* | |
%vtable37 = load [54 x i8*], [54 x i8*]* %vtable_ptr36, align 8 | |
%func_raw38 = extractvalue [54 x i8*] %vtable37, 47 | |
%func39 = bitcast i8* %func_raw38 to %Void* (%Array*, %Object*)* | |
%result40 = call %Void* %func39(%Array* %ret33, %Object* %as) | |
br label %"Invoke_Array#reserve_end" | |
"Invoke_Array#reserve_end": ; preds = %"Invoke_Array#reserve" | |
%sk_int = call %Int* @box_int(i64 0) | |
store %Int* %sk_int, %Int** %i, align 8 | |
br label %WhileBegin | |
WhileBegin: ; preds = %"Invoke_Int#+_end", %"Invoke_Array#reserve_end" | |
%i41 = load %Int*, %Int** %i, align 8 | |
br label %"Invoke_Int#<" | |
"Invoke_Int#<": ; preds = %WhileBegin | |
%addr_vtable42 = getelementptr inbounds %Int, %Int* %i41, i32 0, i32 0 | |
%vtable43 = load i8*, i8** %addr_vtable42, align 8 | |
%vtable_ptr44 = bitcast i8* %vtable43 to [35 x i8*]* | |
%vtable45 = load [35 x i8*], [35 x i8*]* %vtable_ptr44, align 8 | |
%func_raw46 = extractvalue [35 x i8*] %vtable45, 0 | |
%func47 = bitcast i8* %func_raw46 to %Bool* (%Int*, %Int*)* | |
%result48 = call %Bool* %func47(%Int* %i41, %Int* %len) | |
br label %"Invoke_Int#<_end" | |
"Invoke_Int#<_end": ; preds = %"Invoke_Int#<" | |
%llvm_bool = call i1 @unbox_bool(%Bool* %result48) | |
%istrue = icmp eq i1 %llvm_bool, true | |
br i1 %istrue, label %WhileBody, label %WhileEnd | |
WhileBody: ; preds = %"Invoke_Int#<_end" | |
%ret49 = load %Array*, %Array** %ret, align 8 | |
br label %"Invoke_Array#push50" | |
WhileEnd: ; preds = %"Invoke_Int#<_end" | |
%"::Void" = load %Void*, %Void** @"::Void", align 8 | |
%ret68 = load %Array*, %Array** %ret, align 8 | |
br label %Ret | |
"Invoke_Array#push50": ; preds = %WhileBody | |
%addr_vtable51 = getelementptr inbounds %Array, %Array* %ret49, i32 0, i32 0 | |
%vtable52 = load i8*, i8** %addr_vtable51, align 8 | |
%vtable_ptr53 = bitcast i8* %vtable52 to [54 x i8*]* | |
%vtable54 = load [54 x i8*], [54 x i8*]* %vtable_ptr53, align 8 | |
%func_raw55 = extractvalue [54 x i8*] %vtable54, 45 | |
%func56 = bitcast i8* %func_raw55 to %Void* (%Array*, %Object*)* | |
%result57 = call %Void* %func56(%Array* %ret49, %Object* %item) | |
br label %"Invoke_Array#push_end58" | |
"Invoke_Array#push_end58": ; preds = %"Invoke_Array#push50" | |
%i59 = load %Int*, %Int** %i, align 8 | |
%sk_int60 = call %Int* @box_int(i64 1) | |
br label %"Invoke_Int#+" | |
"Invoke_Int#+": ; preds = %"Invoke_Array#push_end58" | |
%addr_vtable61 = getelementptr inbounds %Int, %Int* %i59, i32 0, i32 0 | |
%vtable62 = load i8*, i8** %addr_vtable61, align 8 | |
%vtable_ptr63 = bitcast i8* %vtable62 to [35 x i8*]* | |
%vtable64 = load [35 x i8*], [35 x i8*]* %vtable_ptr63, align 8 | |
%func_raw65 = extractvalue [35 x i8*] %vtable64, 18 | |
%func66 = bitcast i8* %func_raw65 to %Int* (%Int*, %Int*)* | |
%result67 = call %Int* %func66(%Int* %i59, %Int* %sk_int60) | |
br label %"Invoke_Int#+_end" | |
"Invoke_Int#+_end": ; preds = %"Invoke_Int#+" | |
store %Int* %result67, %Int** %i, align 8 | |
br label %WhileBegin | |
Ret: ; preds = %WhileEnd | |
br label %End | |
} | |
define %Fn9* @Meta_Fn9_new(%Fn9* %self, %"Shiika::Internal::Ptr"* %"@func", %Object* %"@the_self", %Array* %"@captures") { | |
%mem = call i8* @shiika_malloc(i64 mul nuw (i64 ptrtoint (i1** getelementptr (i1*, i1** null, i32 1) to i64), i64 6)) | |
%addr = bitcast i8* %mem to %Fn9* | |
%addr_vtable = getelementptr inbounds %Fn9, %Fn9* %addr, i32 0, i32 0 | |
store i8* bitcast ([24 x i8*]* @shiika_vtable_Fn9 to i8*), i8** %addr_vtable, align 8 | |
%class = bitcast %Fn9* %self to %Class.0* | |
%addr_my_class = getelementptr inbounds %Fn9, %Fn9* %addr, i32 0, i32 1 | |
store %Class.0* %class, %Class.0** %addr_my_class, align 8 | |
%obj_as_super = bitcast %Fn9* %addr to %Fn* | |
%1 = call %Void* @Fn_initialize(%Fn* %obj_as_super, %"Shiika::Internal::Ptr"* %"@func", %Object* %"@the_self", %Array* %"@captures") | |
ret %Fn9* %addr | |
} | |
define %Fn5* @Meta_Fn5_new(%Fn5* %self, %"Shiika::Internal::Ptr"* %"@func", %Object* %"@the_self", %Array* %"@captures") { | |
%mem = call i8* @shiika_malloc(i64 mul nuw (i64 ptrtoint (i1** getelementptr (i1*, i1** null, i32 1) to i64), i64 6)) | |
%addr = bitcast i8* %mem to %Fn5* | |
%addr_vtable = getelementptr inbounds %Fn5, %Fn5* %addr, i32 0, i32 0 | |
store i8* bitcast ([24 x i8*]* @shiika_vtable_Fn5 to i8*), i8** %addr_vtable, align 8 | |
%class = bitcast %Fn5* %self to %Class.0* | |
%addr_my_class = getelementptr inbounds %Fn5, %Fn5* %addr, i32 0, i32 1 | |
store %Class.0* %class, %Class.0** %addr_my_class, align 8 | |
%obj_as_super = bitcast %Fn5* %addr to %Fn* | |
%1 = call %Void* @Fn_initialize(%Fn* %obj_as_super, %"Shiika::Internal::Ptr"* %"@func", %Object* %"@the_self", %Array* %"@captures") | |
ret %Fn5* %addr | |
} | |
define %"Maybe::None"* @Meta_Maybe_None_new(%"Maybe::None"* %self) { | |
%mem = call i8* @shiika_malloc(i64 mul nuw (i64 ptrtoint (i1** getelementptr (i1*, i1** null, i32 1) to i64), i64 2)) | |
%addr = bitcast i8* %mem to %"Maybe::None"* | |
%addr_vtable = getelementptr inbounds %"Maybe::None", %"Maybe::None"* %addr, i32 0, i32 0 | |
store i8* bitcast ([18 x i8*]* @"shiika_vtable_Maybe::None" to i8*), i8** %addr_vtable, align 8 | |
%class = bitcast %"Maybe::None"* %self to %Class.0* | |
%addr_my_class = getelementptr inbounds %"Maybe::None", %"Maybe::None"* %addr, i32 0, i32 1 | |
store %Class.0* %class, %Class.0** %addr_my_class, align 8 | |
%1 = call %Void* @Maybe_None_initialize(%"Maybe::None"* %addr) | |
ret %"Maybe::None"* %addr | |
} | |
define %Metaclass* @Metaclass_new(%Metaclass* %self, %String* %"@name", %Object* %vtable, %Metaclass* %metacls_obj) { | |
%mem = call i8* @shiika_malloc(i64 mul nuw (i64 ptrtoint (i1** getelementptr (i1*, i1** null, i32 1) to i64), i64 5)) | |
%addr = bitcast i8* %mem to %Metaclass* | |
%addr_vtable = getelementptr inbounds %Metaclass, %Metaclass* %addr, i32 0, i32 0 | |
store i8* bitcast ([23 x i8*]* @shiika_vtable_Metaclass to i8*), i8** %addr_vtable, align 8 | |
%class = bitcast %Metaclass* %self to %Class.0* | |
%addr_my_class = getelementptr inbounds %Metaclass, %Metaclass* %addr, i32 0, i32 1 | |
store %Class.0* %class, %Class.0** %addr_my_class, align 8 | |
%obj_as_super = bitcast %Metaclass* %addr to %Class.0* | |
%1 = call %Void* @Class_initialize(%Class.0* %obj_as_super, %String* %"@name", %Object* %vtable, %Metaclass* %metacls_obj) | |
ret %Metaclass* %addr | |
} | |
define %String* @Metaclass_name(%Metaclass* %self) { | |
br label %IfBegin | |
End: ; preds = %Ret | |
%methodResult = phi %String* [ %ifResult, %Ret ] | |
ret %String* %methodResult | |
IfBegin: ; preds = %0 | |
%"addr_@name" = getelementptr inbounds %Metaclass, %Metaclass* %self, i32 0, i32 2 | |
%"@name" = load %String*, %String** %"addr_@name", align 8 | |
%sk_str = call %String* @gen_literal_string(i8* getelementptr inbounds ([10 x i8], [10 x i8]* @str_55, i32 0, i32 0), i64 9) | |
br label %"Invoke_String#==" | |
IfThen: ; preds = %"Invoke_String#==_end" | |
%sk_str2 = call %String* @gen_literal_string(i8* getelementptr inbounds ([10 x i8], [10 x i8]* @str_56, i32 0, i32 0), i64 9) | |
br label %IfEnd | |
IfElse: ; preds = %"Invoke_String#==_end" | |
%sk_str3 = call %String* @gen_literal_string(i8* getelementptr inbounds ([6 x i8], [6 x i8]* @str_57, i32 0, i32 0), i64 5) | |
%"addr_@name4" = getelementptr inbounds %Metaclass, %Metaclass* %self, i32 0, i32 2 | |
%"@name5" = load %String*, %String** %"addr_@name4", align 8 | |
br label %"Invoke_String#+" | |
IfEnd: ; preds = %"Invoke_String#+_end", %IfThen | |
%ifResult = phi %String* [ %sk_str2, %IfThen ], [ %result12, %"Invoke_String#+_end" ] | |
br label %Ret | |
"Invoke_String#==": ; preds = %IfBegin | |
%addr_vtable = getelementptr inbounds %String, %String* %"@name", i32 0, i32 0 | |
%vtable = load i8*, i8** %addr_vtable, align 8 | |
%vtable_ptr = bitcast i8* %vtable to [35 x i8*]* | |
%vtable1 = load [35 x i8*], [35 x i8*]* %vtable_ptr, align 8 | |
%func_raw = extractvalue [35 x i8*] %vtable1, 2 | |
%func = bitcast i8* %func_raw to %Bool* (%String*, %String*)* | |
%result = call %Bool* %func(%String* %"@name", %String* %sk_str) | |
br label %"Invoke_String#==_end" | |
"Invoke_String#==_end": ; preds = %"Invoke_String#==" | |
%llvm_bool = call i1 @unbox_bool(%Bool* %result) | |
%istrue = icmp eq i1 %llvm_bool, true | |
br i1 %istrue, label %IfThen, label %IfElse | |
"Invoke_String#+": ; preds = %IfElse | |
%addr_vtable6 = getelementptr inbounds %String, %String* %sk_str3, i32 0, i32 0 | |
%vtable7 = load i8*, i8** %addr_vtable6, align 8 | |
%vtable_ptr8 = bitcast i8* %vtable7 to [35 x i8*]* | |
%vtable9 = load [35 x i8*], [35 x i8*]* %vtable_ptr8, align 8 | |
%func_raw10 = extractvalue [35 x i8*] %vtable9, 17 | |
%func11 = bitcast i8* %func_raw10 to %String* (%String*, %String*)* | |
%result12 = call %String* %func11(%String* %sk_str3, %String* %"@name5") | |
br label %"Invoke_String#+_end" | |
"Invoke_String#+_end": ; preds = %"Invoke_String#+" | |
br label %IfEnd | |
Ret: ; preds = %IfEnd | |
br label %End | |
} | |
define %String* @Metaclass_inspect(%Metaclass* %self) { | |
%sk_str = call %String* @gen_literal_string(i8* getelementptr inbounds ([13 x i8], [13 x i8]* @str_59, i32 0, i32 0), i64 12) | |
br label %"Invoke_Metaclass#name" | |
End: ; preds = %Ret | |
%methodResult = phi %String* [ %result17, %Ret ] | |
ret %String* %methodResult | |
"Invoke_Metaclass#name": ; preds = %0 | |
%addr_vtable = getelementptr inbounds %Metaclass, %Metaclass* %self, i32 0, i32 0 | |
%vtable = load i8*, i8** %addr_vtable, align 8 | |
%vtable_ptr = bitcast i8* %vtable to [23 x i8*]* | |
%vtable1 = load [23 x i8*], [23 x i8*]* %vtable_ptr, align 8 | |
%func_raw = extractvalue [23 x i8*] %vtable1, 20 | |
%func = bitcast i8* %func_raw to %String* (%Metaclass*)* | |
%result = call %String* %func(%Metaclass* %self) | |
br label %"Invoke_Metaclass#name_end" | |
"Invoke_Metaclass#name_end": ; preds = %"Invoke_Metaclass#name" | |
br label %"Invoke_String#+" | |
"Invoke_String#+": ; preds = %"Invoke_Metaclass#name_end" | |
%addr_vtable2 = getelementptr inbounds %String, %String* %sk_str, i32 0, i32 0 | |
%vtable3 = load i8*, i8** %addr_vtable2, align 8 | |
%vtable_ptr4 = bitcast i8* %vtable3 to [35 x i8*]* | |
%vtable5 = load [35 x i8*], [35 x i8*]* %vtable_ptr4, align 8 | |
%func_raw6 = extractvalue [35 x i8*] %vtable5, 17 | |
%func7 = bitcast i8* %func_raw6 to %String* (%String*, %String*)* | |
%result8 = call %String* %func7(%String* %sk_str, %String* %result) | |
br label %"Invoke_String#+_end" | |
"Invoke_String#+_end": ; preds = %"Invoke_String#+" | |
%sk_str9 = call %String* @gen_literal_string(i8* getelementptr inbounds ([2 x i8], [2 x i8]* @str_58, i32 0, i32 0), i64 1) | |
br label %"Invoke_String#+10" | |
"Invoke_String#+10": ; preds = %"Invoke_String#+_end" | |
%addr_vtable11 = getelementptr inbounds %String, %String* %result8, i32 0, i32 0 | |
%vtable12 = load i8*, i8** %addr_vtable11, align 8 | |
%vtable_ptr13 = bitcast i8* %vtable12 to [35 x i8*]* | |
%vtable14 = load [35 x i8*], [35 x i8*]* %vtable_ptr13, align 8 | |
%func_raw15 = extractvalue [35 x i8*] %vtable14, 17 | |
%func16 = bitcast i8* %func_raw15 to %String* (%String*, %String*)* | |
%result17 = call %String* %func16(%String* %result8, %String* %sk_str9) | |
br label %"Invoke_String#+_end18" | |
"Invoke_String#+_end18": ; preds = %"Invoke_String#+10" | |
br label %Ret | |
Ret: ; preds = %"Invoke_String#+_end18" | |
br label %End | |
} | |
define %"Dict::Table"* @Meta_Dict_Table_new(%"Dict::Table"* %self) { | |
%mem = call i8* @shiika_malloc(i64 mul nuw (i64 ptrtoint (i1** getelementptr (i1*, i1** null, i32 1) to i64), i64 3)) | |
%addr = bitcast i8* %mem to %"Dict::Table"* | |
%addr_vtable = getelementptr inbounds %"Dict::Table", %"Dict::Table"* %addr, i32 0, i32 0 | |
store i8* bitcast ([23 x i8*]* @"shiika_vtable_Dict::Table" to i8*), i8** %addr_vtable, align 8 | |
%class = bitcast %"Dict::Table"* %self to %Class.0* | |
%addr_my_class = getelementptr inbounds %"Dict::Table", %"Dict::Table"* %addr, i32 0, i32 1 | |
store %Class.0* %class, %Class.0** %addr_my_class, align 8 | |
%1 = call %Void* @Dict_Table_initialize(%"Dict::Table"* %addr) | |
ret %"Dict::Table"* %addr | |
} | |
define %Void* @Class_initialize(%Class.0* %self, %String* %"@name", %Object* %vtable, %Metaclass* %metacls_obj) { | |
%"addr_@name" = getelementptr inbounds %Class.0, %Class.0* %self, i32 0, i32 2 | |
store %String* %"@name", %String** %"addr_@name", align 8 | |
br label %"Invoke_Class#_initialize_rustlib" | |
End: ; preds = %Ret | |
%"::Void3" = load %Void*, %Void** @"::Void", align 8 | |
ret %Void* %"::Void3" | |
"Invoke_Class#_initialize_rustlib": ; preds = %0 | |
%addr_vtable = getelementptr inbounds %Class.0, %Class.0* %self, i32 0, i32 0 | |
%vtable1 = load i8*, i8** %addr_vtable, align 8 | |
%vtable_ptr = bitcast i8* %vtable1 to [22 x i8*]* | |
%vtable2 = load [22 x i8*], [22 x i8*]* %vtable_ptr, align 8 | |
%func_raw = extractvalue [22 x i8*] %vtable2, 17 | |
%func = bitcast i8* %func_raw to %Object* (%Class.0*, %Object*, %Metaclass*)* | |
%result = call %Object* %func(%Class.0* %self, %Object* %vtable, %Metaclass* %metacls_obj) | |
br label %"Invoke_Class#_initialize_rustlib_end" | |
"Invoke_Class#_initialize_rustlib_end": ; preds = %"Invoke_Class#_initialize_rustlib" | |
%"::Void" = load %Void*, %Void** @"::Void", align 8 | |
br label %Ret | |
Ret: ; preds = %"Invoke_Class#_initialize_rustlib_end" | |
br label %End | |
} | |
define %String* @_set_Class_name(%Class.0* %self, %String* %name) { | |
%"addr_@name" = getelementptr inbounds %Class.0, %Class.0* %self, i32 0, i32 2 | |
store %String* %name, %String** %"addr_@name", align 8 | |
ret %String* %name | |
} | |
define %String* @Class_name(%Class.0* %self) { | |
%"addr_@name" = getelementptr inbounds %Class.0, %Class.0* %self, i32 0, i32 2 | |
%"@name" = load %String*, %String** %"addr_@name", align 8 | |
br label %Ret | |
End: ; preds = %Ret | |
%methodResult = phi %String* [ %"@name", %Ret ] | |
ret %String* %methodResult | |
Ret: ; preds = %0 | |
br label %End | |
} | |
define %String* @Class_inspect(%Class.0* %self) { | |
%sk_str = call %String* @gen_literal_string(i8* getelementptr inbounds ([9 x i8], [9 x i8]* @str_53, i32 0, i32 0), i64 8) | |
%"addr_@name" = getelementptr inbounds %Class.0, %Class.0* %self, i32 0, i32 2 | |
%"@name" = load %String*, %String** %"addr_@name", align 8 | |
br label %"Invoke_String#to_s" | |
End: ; preds = %Ret | |
%methodResult = phi %String* [ %result17, %Ret ] | |
ret %String* %methodResult | |
"Invoke_String#to_s": ; preds = %0 | |
%addr_vtable = getelementptr inbounds %String, %String* %"@name", i32 0, i32 0 | |
%vtable = load i8*, i8** %addr_vtable, align 8 | |
%vtable_ptr = bitcast i8* %vtable to [35 x i8*]* | |
%vtable1 = load [35 x i8*], [35 x i8*]* %vtable_ptr, align 8 | |
%func_raw = extractvalue [35 x i8*] %vtable1, 15 | |
%func = bitcast i8* %func_raw to %String* (%String*)* | |
%result = call %String* %func(%String* %"@name") | |
br label %"Invoke_String#to_s_end" | |
"Invoke_String#to_s_end": ; preds = %"Invoke_String#to_s" | |
br label %"Invoke_String#+" | |
"Invoke_String#+": ; preds = %"Invoke_String#to_s_end" | |
%addr_vtable2 = getelementptr inbounds %String, %String* %sk_str, i32 0, i32 0 | |
%vtable3 = load i8*, i8** %addr_vtable2, align 8 | |
%vtable_ptr4 = bitcast i8* %vtable3 to [35 x i8*]* | |
%vtable5 = load [35 x i8*], [35 x i8*]* %vtable_ptr4, align 8 | |
%func_raw6 = extractvalue [35 x i8*] %vtable5, 17 | |
%func7 = bitcast i8* %func_raw6 to %String* (%String*, %String*)* | |
%result8 = call %String* %func7(%String* %sk_str, %String* %result) | |
br label %"Invoke_String#+_end" | |
"Invoke_String#+_end": ; preds = %"Invoke_String#+" | |
%sk_str9 = call %String* @gen_literal_string(i8* getelementptr inbounds ([2 x i8], [2 x i8]* @str_52, i32 0, i32 0), i64 1) | |
br label %"Invoke_String#+10" | |
"Invoke_String#+10": ; preds = %"Invoke_String#+_end" | |
%addr_vtable11 = getelementptr inbounds %String, %String* %result8, i32 0, i32 0 | |
%vtable12 = load i8*, i8** %addr_vtable11, align 8 | |
%vtable_ptr13 = bitcast i8* %vtable12 to [35 x i8*]* | |
%vtable14 = load [35 x i8*], [35 x i8*]* %vtable_ptr13, align 8 | |
%func_raw15 = extractvalue [35 x i8*] %vtable14, 17 | |
%func16 = bitcast i8* %func_raw15 to %String* (%String*, %String*)* | |
%result17 = call %String* %func16(%String* %result8, %String* %sk_str9) | |
br label %"Invoke_String#+_end18" | |
"Invoke_String#+_end18": ; preds = %"Invoke_String#+10" | |
br label %Ret | |
Ret: ; preds = %"Invoke_String#+_end18" | |
br label %End | |
} | |
define %String* @Class_to__s(%Class.0* %self) { | |
br label %"Invoke_Class#name" | |
End: ; preds = %Ret | |
%methodResult = phi %String* [ %result, %Ret ] | |
ret %String* %methodResult | |
"Invoke_Class#name": ; preds = %0 | |
%addr_vtable = getelementptr inbounds %Class.0, %Class.0* %self, i32 0, i32 0 | |
%vtable = load i8*, i8** %addr_vtable, align 8 | |
%vtable_ptr = bitcast i8* %vtable to [22 x i8*]* | |
%vtable1 = load [22 x i8*], [22 x i8*]* %vtable_ptr, align 8 | |
%func_raw = extractvalue [22 x i8*] %vtable1, 20 | |
%func = bitcast i8* %func_raw to %String* (%Class.0*)* | |
%result = call %String* %func(%Class.0* %self) | |
br label %"Invoke_Class#name_end" | |
"Invoke_Class#name_end": ; preds = %"Invoke_Class#name" | |
br label %Ret | |
Ret: ; preds = %"Invoke_Class#name_end" | |
br label %End | |
} | |
declare %Object* @Class___initialize__rustlib(%Class.0*, %Object*, %Object*) | |
declare %Class.0* @Class_lt_gt_(%Class.0*, %Array*) | |
declare %Class.0* @Class___specialize1(%Class.0*, %Array*) | |
declare %Class.0* @Class___type__argument(%Class.0*, %Int*) | |
define %Object* @Meta_Object_new(%Object* %self) { | |
%mem = call i8* @shiika_malloc(i64 mul nuw (i64 ptrtoint (i1** getelementptr (i1*, i1** null, i32 1) to i64), i64 2)) | |
%addr = bitcast i8* %mem to %Object* | |
%addr_vtable = getelementptr inbounds %Object, %Object* %addr, i32 0, i32 0 | |
store i8* bitcast ([16 x i8*]* @shiika_vtable_Object to i8*), i8** %addr_vtable, align 8 | |
%class = bitcast %Object* %self to %Class.0* | |
%addr_my_class = getelementptr inbounds %Object, %Object* %addr, i32 0, i32 1 | |
store %Class.0* %class, %Class.0** %addr_my_class, align 8 | |
%1 = call %Void* @Object_initialize(%Object* %addr) | |
ret %Object* %addr | |
} | |
define %Void* @Array_initialize(%Array* %self) { | |
%"::Array::INITIAL_CAPA" = load %Int*, %Int** @"::Array::INITIAL_CAPA", align 8 | |
%"addr_@capa" = getelementptr inbounds %Array, %Array* %self, i32 0, i32 2 | |
store %Int* %"::Array::INITIAL_CAPA", %Int** %"addr_@capa", align 8 | |
%sk_int = call %Int* @box_int(i64 0) | |
%"addr_@n_items" = getelementptr inbounds %Array, %Array* %self, i32 0, i32 3 | |
store %Int* %sk_int, %Int** %"addr_@n_items", align 8 | |
%"::Shiika::Internal::Memory" = load %"Shiika::Internal::Memory"*, %"Shiika::Internal::Memory"** @"::Shiika::Internal::Memory", align 8 | |
%"::Array::BYTES_OF_PTR" = load %Int*, %Int** @"::Array::BYTES_OF_PTR", align 8 | |
%"::Array::INITIAL_CAPA1" = load %Int*, %Int** @"::Array::INITIAL_CAPA", align 8 | |
br label %"Invoke_Int#*" | |
End: ; preds = %Ret | |
%"::Void10" = load %Void*, %Void** @"::Void", align 8 | |
ret %Void* %"::Void10" | |
"Invoke_Int#*": ; preds = %0 | |
%addr_vtable = getelementptr inbounds %Int, %Int* %"::Array::BYTES_OF_PTR", i32 0, i32 0 | |
%vtable = load i8*, i8** %addr_vtable, align 8 | |
%vtable_ptr = bitcast i8* %vtable to [35 x i8*]* | |
%vtable2 = load [35 x i8*], [35 x i8*]* %vtable_ptr, align 8 | |
%func_raw = extractvalue [35 x i8*] %vtable2, 17 | |
%func = bitcast i8* %func_raw to %Int* (%Int*, %Int*)* | |
%result = call %Int* %func(%Int* %"::Array::BYTES_OF_PTR", %Int* %"::Array::INITIAL_CAPA1") | |
br label %"Invoke_Int#*_end" | |
"Invoke_Int#*_end": ; preds = %"Invoke_Int#*" | |
br label %"Invoke_Meta:Shiika::Internal::Memory#gc_malloc" | |
"Invoke_Meta:Shiika::Internal::Memory#gc_malloc": ; preds = %"Invoke_Int#*_end" | |
%addr_vtable3 = getelementptr inbounds %"Shiika::Internal::Memory", %"Shiika::Internal::Memory"* %"::Shiika::Internal::Memory", i32 0, i32 0 | |
%vtable4 = load i8*, i8** %addr_vtable3, align 8 | |
%vtable_ptr5 = bitcast i8* %vtable4 to [25 x i8*]* | |
%vtable6 = load [25 x i8*], [25 x i8*]* %vtable_ptr5, align 8 | |
%func_raw7 = extractvalue [25 x i8*] %vtable6, 22 | |
%func8 = bitcast i8* %func_raw7 to %"Shiika::Internal::Ptr"* (%"Shiika::Internal::Memory"*, %Int*)* | |
%result9 = call %"Shiika::Internal::Ptr"* %func8(%"Shiika::Internal::Memory"* %"::Shiika::Internal::Memory", %Int* %result) | |
br label %"Invoke_Meta:Shiika::Internal::Memory#gc_malloc_end" | |
"Invoke_Meta:Shiika::Internal::Memory#gc_malloc_end": ; preds = %"Invoke_Meta:Shiika::Internal::Memory#gc_malloc" | |
%"addr_@items" = getelementptr inbounds %Array, %Array* %self, i32 0, i32 4 | |
store %"Shiika::Internal::Ptr"* %result9, %"Shiika::Internal::Ptr"** %"addr_@items", align 8 | |
%"::Void" = load %Void*, %Void** @"::Void", align 8 | |
br label %Ret | |
Ret: ; preds = %"Invoke_Meta:Shiika::Internal::Memory#gc_malloc_end" | |
br label %End | |
} | |
define %Int* @Array_n__items(%Array* %self) { | |
%"addr_@n_items" = getelementptr inbounds %Array, %Array* %self, i32 0, i32 3 | |
%"@n_items" = load %Int*, %Int** %"addr_@n_items", align 8 | |
ret %Int* %"@n_items" | |
} | |
define %Int* @_set_Array_n__items(%Array* %self, %Int* %n_items) { | |
%"addr_@n_items" = getelementptr inbounds %Array, %Array* %self, i32 0, i32 3 | |
store %Int* %n_items, %Int** %"addr_@n_items", align 8 | |
ret %Int* %n_items | |
} | |
define %Int* @Array_capa(%Array* %self) { | |
%"addr_@capa" = getelementptr inbounds %Array, %Array* %self, i32 0, i32 2 | |
%"@capa" = load %Int*, %Int** %"addr_@capa", align 8 | |
ret %Int* %"@capa" | |
} | |
define %Int* @_set_Array_capa(%Array* %self, %Int* %capa) { | |
%"addr_@capa" = getelementptr inbounds %Array, %Array* %self, i32 0, i32 2 | |
store %Int* %capa, %Int** %"addr_@capa", align 8 | |
ret %Int* %capa | |
} | |
define %"Shiika::Internal::Ptr"* @Array_items(%Array* %self) { | |
%"addr_@items" = getelementptr inbounds %Array, %Array* %self, i32 0, i32 4 | |
%"@items" = load %"Shiika::Internal::Ptr"*, %"Shiika::Internal::Ptr"** %"addr_@items", align 8 | |
ret %"Shiika::Internal::Ptr"* %"@items" | |
} | |
define %"Shiika::Internal::Ptr"* @_set_Array_items(%Array* %self, %"Shiika::Internal::Ptr"* %items) { | |
%"addr_@items" = getelementptr inbounds %Array, %Array* %self, i32 0, i32 4 | |
store %"Shiika::Internal::Ptr"* %items, %"Shiika::Internal::Ptr"** %"addr_@items", align 8 | |
ret %"Shiika::Internal::Ptr"* %items | |
} | |
define %Bool* @Array_eq_(%Array* %self, %Array* %other) { | |
alloca: | |
%ret = alloca %Bool*, align 8 | |
br label %alloca_End | |
alloca_End: ; preds = %alloca | |
br label %IfBegin | |
End: ; preds = %Ret | |
%methodResult = phi %Bool* [ %ifResult, %Ret ] | |
ret %Bool* %methodResult | |
IfBegin: ; preds = %alloca_End | |
br label %"Invoke_Array#length" | |
IfThen: ; preds = %"Invoke_Int#==_end" | |
%sk_bool19 = call %Bool* @box_bool(i1 false) | |
br label %IfEnd | |
IfElse: ; preds = %"Invoke_Int#==_end" | |
%sk_bool20 = call %Bool* @box_bool(i1 true) | |
store %Bool* %sk_bool20, %Bool** %ret, align 8 | |
%sk_int = call %Int* @box_int(i64 0) | |
%"addr_@n_items" = getelementptr inbounds %Array, %Array* %self, i32 0, i32 3 | |
%"@n_items" = load %Int*, %Int** %"addr_@n_items", align 8 | |
%sk_int21 = call %Int* @box_int(i64 1) | |
br label %"Invoke_Int#-" | |
IfEnd: ; preds = %"Invoke_Int#upto_end", %IfThen | |
%ifResult = phi %Bool* [ %sk_bool19, %IfThen ], [ %ret40, %"Invoke_Int#upto_end" ] | |
br label %Ret | |
"Invoke_Array#length": ; preds = %IfBegin | |
%addr_vtable = getelementptr inbounds %Array, %Array* %self, i32 0, i32 0 | |
%vtable = load i8*, i8** %addr_vtable, align 8 | |
%vtable_ptr = bitcast i8* %vtable to [54 x i8*]* | |
%vtable1 = load [54 x i8*], [54 x i8*]* %vtable_ptr, align 8 | |
%func_raw = extractvalue [54 x i8*] %vtable1, 39 | |
%func = bitcast i8* %func_raw to %Int* (%Array*)* | |
%result = call %Int* %func(%Array* %self) | |
br label %"Invoke_Array#length_end" | |
"Invoke_Array#length_end": ; preds = %"Invoke_Array#length" | |
br label %"Invoke_Array#length2" | |
"Invoke_Array#length2": ; preds = %"Invoke_Array#length_end" | |
%addr_vtable3 = getelementptr inbounds %Array, %Array* %other, i32 0, i32 0 | |
%vtable4 = load i8*, i8** %addr_vtable3, align 8 | |
%vtable_ptr5 = bitcast i8* %vtable4 to [54 x i8*]* | |
%vtable6 = load [54 x i8*], [54 x i8*]* %vtable_ptr5, align 8 | |
%func_raw7 = extractvalue [54 x i8*] %vtable6, 39 | |
%func8 = bitcast i8* %func_raw7 to %Int* (%Array*)* | |
%result9 = call %Int* %func8(%Array* %other) | |
br label %"Invoke_Array#length_end10" | |
"Invoke_Array#length_end10": ; preds = %"Invoke_Array#length2" | |
br label %"Invoke_Int#==" | |
"Invoke_Int#==": ; preds = %"Invoke_Array#length_end10" | |
%addr_vtable11 = getelementptr inbounds %Int, %Int* %result, i32 0, i32 0 | |
%vtable12 = load i8*, i8** %addr_vtable11, align 8 | |
%vtable_ptr13 = bitcast i8* %vtable12 to [35 x i8*]* | |
%vtable14 = load [35 x i8*], [35 x i8*]* %vtable_ptr13, align 8 | |
%func_raw15 = extractvalue [35 x i8*] %vtable14, 2 | |
%func16 = bitcast i8* %func_raw15 to %Bool* (%Int*, %Int*)* | |
%result17 = call %Bool* %func16(%Int* %result, %Int* %result9) | |
br label %"Invoke_Int#==_end" | |
"Invoke_Int#==_end": ; preds = %"Invoke_Int#==" | |
%llvm_bool = call i1 @unbox_bool(%Bool* %result17) | |
%b2 = xor i1 %llvm_bool, true | |
%sk_bool = call %Bool* @box_bool(i1 %b2) | |
%llvm_bool18 = call i1 @unbox_bool(%Bool* %sk_bool) | |
%istrue = icmp eq i1 %llvm_bool18, true | |
br i1 %istrue, label %IfThen, label %IfElse | |
"Invoke_Int#-": ; preds = %IfElse | |
%addr_vtable22 = getelementptr inbounds %Int, %Int* %"@n_items", i32 0, i32 0 | |
%vtable23 = load i8*, i8** %addr_vtable22, align 8 | |
%vtable_ptr24 = bitcast i8* %vtable23 to [35 x i8*]* | |
%vtable25 = load [35 x i8*], [35 x i8*]* %vtable_ptr24, align 8 | |
%func_raw26 = extractvalue [35 x i8*] %vtable25, 19 | |
%func27 = bitcast i8* %func_raw26 to %Int* (%Int*, %Int*)* | |
%result28 = call %Int* %func27(%Int* %"@n_items", %Int* %sk_int21) | |
br label %"Invoke_Int#-_end" | |
"Invoke_Int#-_end": ; preds = %"Invoke_Int#-" | |
%"::Fn1" = load %Fn1*, %Fn1** @"::Fn1", align 8 | |
%sk_ptr = call %"Shiika::Internal::Ptr"* @box_i8ptr(i8* bitcast (%Void* (%Fn1*, %Object*)* @"lambda_1_in_Array#==" to i8*)) | |
%the_main = bitcast %Array* %self to %Object* | |
%"::Array" = load %Array*, %Array** @"::Array", align 8 | |
%result29 = call %Array* @Meta_Array_new(%Array* %"::Array") | |
%capture_item = bitcast %Array* %other to %Object* | |
%_ = call %Void* @Array_push(%Array* %result29, %Object* %capture_item) | |
%capture_item30 = bitcast %Bool** %ret to %Object* | |
%_31 = call %Void* @Array_push(%Array* %result29, %Object* %capture_item30) | |
%result32 = call %Fn1* @Meta_Fn1_new(%Fn1* %"::Fn1", %"Shiika::Internal::Ptr"* %sk_ptr, %Object* %the_main, %Array* %result29) | |
br label %"Invoke_Int#upto" | |
"Invoke_Int#upto": ; preds = %"Invoke_Int#-_end" | |
%addr_vtable33 = getelementptr inbounds %Int, %Int* %sk_int, i32 0, i32 0 | |
%vtable34 = load i8*, i8** %addr_vtable33, align 8 | |
%vtable_ptr35 = bitcast i8* %vtable34 to [35 x i8*]* | |
%vtable36 = load [35 x i8*], [35 x i8*]* %vtable_ptr35, align 8 | |
%func_raw37 = extractvalue [35 x i8*] %vtable36, 33 | |
%func38 = bitcast i8* %func_raw37 to %Void* (%Int*, %Int*, %Fn1*)* | |
%result39 = call %Void* %func38(%Int* %sk_int, %Int* %result28, %Fn1* %result32) | |
br label %"Invoke_Int#upto_end" | |
"Invoke_Int#upto_end": ; preds = %"Invoke_Int#upto" | |
%ret40 = load %Bool*, %Bool** %ret, align 8 | |
br label %IfEnd | |
Ret: ; preds = %IfEnd | |
br label %End | |
} | |
define %Void* @Array_aset_(%Array* %self, %Int* %i, %Object* %obj) { | |
alloca: | |
%idx = alloca %Int*, align 8 | |
br label %alloca_End | |
alloca_End: ; preds = %alloca | |
br label %IfBegin | |
End: ; preds = %Ret | |
%"::Void85" = load %Void*, %Void** @"::Void", align 8 | |
ret %Void* %"::Void85" | |
IfBegin: ; preds = %alloca_End | |
%sk_int = call %Int* @box_int(i64 0) | |
br label %"Invoke_Int#<" | |
IfThen: ; preds = %"Invoke_Int#<_end" | |
%"addr_@n_items" = getelementptr inbounds %Array, %Array* %self, i32 0, i32 3 | |
%"@n_items" = load %Int*, %Int** %"addr_@n_items", align 8 | |
br label %"Invoke_Int#+" | |
IfElse: ; preds = %"Invoke_Int#<_end" | |
br label %IfEnd | |
IfEnd: ; preds = %IfElse, %"Invoke_Int#+_end" | |
%ifResult = phi %Int* [ %result8, %"Invoke_Int#+_end" ], [ %i, %IfElse ] | |
store %Int* %ifResult, %Int** %idx, align 8 | |
br label %IfBegin9 | |
"Invoke_Int#<": ; preds = %IfBegin | |
%addr_vtable = getelementptr inbounds %Int, %Int* %i, i32 0, i32 0 | |
%vtable = load i8*, i8** %addr_vtable, align 8 | |
%vtable_ptr = bitcast i8* %vtable to [35 x i8*]* | |
%vtable1 = load [35 x i8*], [35 x i8*]* %vtable_ptr, align 8 | |
%func_raw = extractvalue [35 x i8*] %vtable1, 0 | |
%func = bitcast i8* %func_raw to %Bool* (%Int*, %Int*)* | |
%result = call %Bool* %func(%Int* %i, %Int* %sk_int) | |
br label %"Invoke_Int#<_end" | |
"Invoke_Int#<_end": ; preds = %"Invoke_Int#<" | |
%llvm_bool = call i1 @unbox_bool(%Bool* %result) | |
%istrue = icmp eq i1 %llvm_bool, true | |
br i1 %istrue, label %IfThen, label %IfElse | |
"Invoke_Int#+": ; preds = %IfThen | |
%addr_vtable2 = getelementptr inbounds %Int, %Int* %"@n_items", i32 0, i32 0 | |
%vtable3 = load i8*, i8** %addr_vtable2, align 8 | |
%vtable_ptr4 = bitcast i8* %vtable3 to [35 x i8*]* | |
%vtable5 = load [35 x i8*], [35 x i8*]* %vtable_ptr4, align 8 | |
%func_raw6 = extractvalue [35 x i8*] %vtable5, 18 | |
%func7 = bitcast i8* %func_raw6 to %Int* (%Int*, %Int*)* | |
%result8 = call %Int* %func7(%Int* %"@n_items", %Int* %i) | |
br label %"Invoke_Int#+_end" | |
"Invoke_Int#+_end": ; preds = %"Invoke_Int#+" | |
br label %IfEnd | |
IfBegin9: ; preds = %IfEnd | |
%idx13 = load %Int*, %Int** %idx, align 8 | |
%sk_int14 = call %Int* @box_int(i64 0) | |
br label %"Invoke_Int#<15" | |
IfThen10: ; preds = %"Invoke_Int#<_end23" | |
%as = bitcast %Array* %self to %Object* | |
%sk_str = call %String* @gen_literal_string(i8* getelementptr inbounds ([34 x i8], [34 x i8]* @str_44, i32 0, i32 0), i64 33) | |
%as26 = bitcast %String* %sk_str to %Object* | |
br label %"Invoke_Object#panic" | |
IfElse11: ; preds = %"Invoke_Int#<_end23" | |
%"::Void33" = load %Void*, %Void** @"::Void", align 8 | |
br label %IfEnd12 | |
IfEnd12: ; preds = %IfElse11 | |
br label %IfBegin34 | |
"Invoke_Int#<15": ; preds = %IfBegin9 | |
%addr_vtable16 = getelementptr inbounds %Int, %Int* %idx13, i32 0, i32 0 | |
%vtable17 = load i8*, i8** %addr_vtable16, align 8 | |
%vtable_ptr18 = bitcast i8* %vtable17 to [35 x i8*]* | |
%vtable19 = load [35 x i8*], [35 x i8*]* %vtable_ptr18, align 8 | |
%func_raw20 = extractvalue [35 x i8*] %vtable19, 0 | |
%func21 = bitcast i8* %func_raw20 to %Bool* (%Int*, %Int*)* | |
%result22 = call %Bool* %func21(%Int* %idx13, %Int* %sk_int14) | |
br label %"Invoke_Int#<_end23" | |
"Invoke_Int#<_end23": ; preds = %"Invoke_Int#<15" | |
%llvm_bool24 = call i1 @unbox_bool(%Bool* %result22) | |
%istrue25 = icmp eq i1 %llvm_bool24, true | |
br i1 %istrue25, label %IfThen10, label %IfElse11 | |
"Invoke_Object#panic": ; preds = %IfThen10 | |
%addr_vtable27 = getelementptr inbounds %Object, %Object* %as, i32 0, i32 0 | |
%vtable28 = load i8*, i8** %addr_vtable27, align 8 | |
%vtable_ptr29 = bitcast i8* %vtable28 to [16 x i8*]* | |
%vtable30 = load [16 x i8*], [16 x i8*]* %vtable_ptr29, align 8 | |
%func_raw31 = extractvalue [16 x i8*] %vtable30, 12 | |
%func32 = bitcast i8* %func_raw31 to void (%Object*, %Object*)* | |
call void %func32(%Object* %as, %Object* %as26) | |
%"::Void" = load %Void*, %Void** @"::Void", align 8 | |
unreachable | |
IfBegin34: ; preds = %IfEnd12 | |
%idx38 = load %Int*, %Int** %idx, align 8 | |
%"addr_@n_items39" = getelementptr inbounds %Array, %Array* %self, i32 0, i32 3 | |
%"@n_items40" = load %Int*, %Int** %"addr_@n_items39", align 8 | |
br label %"Invoke_Int#>=" | |
IfThen35: ; preds = %"Invoke_Int#>=_end" | |
%as50 = bitcast %Array* %self to %Object* | |
%sk_str51 = call %String* @gen_literal_string(i8* getelementptr inbounds ([29 x i8], [29 x i8]* @str_45, i32 0, i32 0), i64 28) | |
%as52 = bitcast %String* %sk_str51 to %Object* | |
br label %"Invoke_Object#panic53" | |
IfElse36: ; preds = %"Invoke_Int#>=_end" | |
%"::Void61" = load %Void*, %Void** @"::Void", align 8 | |
br label %IfEnd37 | |
IfEnd37: ; preds = %IfElse36 | |
%"addr_@items" = getelementptr inbounds %Array, %Array* %self, i32 0, i32 4 | |
%"@items" = load %"Shiika::Internal::Ptr"*, %"Shiika::Internal::Ptr"** %"addr_@items", align 8 | |
%idx62 = load %Int*, %Int** %idx, align 8 | |
%"::Array::BYTES_OF_PTR" = load %Int*, %Int** @"::Array::BYTES_OF_PTR", align 8 | |
br label %"Invoke_Int#*" | |
"Invoke_Int#>=": ; preds = %IfBegin34 | |
%addr_vtable41 = getelementptr inbounds %Int, %Int* %idx38, i32 0, i32 0 | |
%vtable42 = load i8*, i8** %addr_vtable41, align 8 | |
%vtable_ptr43 = bitcast i8* %vtable42 to [35 x i8*]* | |
%vtable44 = load [35 x i8*], [35 x i8*]* %vtable_ptr43, align 8 | |
%func_raw45 = extractvalue [35 x i8*] %vtable44, 4 | |
%func46 = bitcast i8* %func_raw45 to %Bool* (%Int*, %Int*)* | |
%result47 = call %Bool* %func46(%Int* %idx38, %Int* %"@n_items40") | |
br label %"Invoke_Int#>=_end" | |
"Invoke_Int#>=_end": ; preds = %"Invoke_Int#>=" | |
%llvm_bool48 = call i1 @unbox_bool(%Bool* %result47) | |
%istrue49 = icmp eq i1 %llvm_bool48, true | |
br i1 %istrue49, label %IfThen35, label %IfElse36 | |
"Invoke_Object#panic53": ; preds = %IfThen35 | |
%addr_vtable54 = getelementptr inbounds %Object, %Object* %as50, i32 0, i32 0 | |
%vtable55 = load i8*, i8** %addr_vtable54, align 8 | |
%vtable_ptr56 = bitcast i8* %vtable55 to [16 x i8*]* | |
%vtable57 = load [16 x i8*], [16 x i8*]* %vtable_ptr56, align 8 | |
%func_raw58 = extractvalue [16 x i8*] %vtable57, 12 | |
%func59 = bitcast i8* %func_raw58 to void (%Object*, %Object*)* | |
call void %func59(%Object* %as50, %Object* %as52) | |
%"::Void60" = load %Void*, %Void** @"::Void", align 8 | |
unreachable | |
"Invoke_Int#*": ; preds = %IfEnd37 | |
%addr_vtable63 = getelementptr inbounds %Int, %Int* %idx62, i32 0, i32 0 | |
%vtable64 = load i8*, i8** %addr_vtable63, align 8 | |
%vtable_ptr65 = bitcast i8* %vtable64 to [35 x i8*]* | |
%vtable66 = load [35 x i8*], [35 x i8*]* %vtable_ptr65, align 8 | |
%func_raw67 = extractvalue [35 x i8*] %vtable66, 17 | |
%func68 = bitcast i8* %func_raw67 to %Int* (%Int*, %Int*)* | |
%result69 = call %Int* %func68(%Int* %idx62, %Int* %"::Array::BYTES_OF_PTR") | |
br label %"Invoke_Int#*_end" | |
"Invoke_Int#*_end": ; preds = %"Invoke_Int#*" | |
br label %"Invoke_Shiika::Internal::Ptr#+" | |
"Invoke_Shiika::Internal::Ptr#+": ; preds = %"Invoke_Int#*_end" | |
%addr_vtable70 = getelementptr inbounds %"Shiika::Internal::Ptr", %"Shiika::Internal::Ptr"* %"@items", i32 0, i32 0 | |
%vtable71 = load i8*, i8** %addr_vtable70, align 8 | |
%vtable_ptr72 = bitcast i8* %vtable71 to [21 x i8*]* | |
%vtable73 = load [21 x i8*], [21 x i8*]* %vtable_ptr72, align 8 | |
%func_raw74 = extractvalue [21 x i8*] %vtable73, 16 | |
%func75 = bitcast i8* %func_raw74 to %"Shiika::Internal::Ptr"* (%"Shiika::Internal::Ptr"*, %Int*)* | |
%result76 = call %"Shiika::Internal::Ptr"* %func75(%"Shiika::Internal::Ptr"* %"@items", %Int* %result69) | |
br label %"Invoke_Shiika::Internal::Ptr#+_end" | |
"Invoke_Shiika::Internal::Ptr#+_end": ; preds = %"Invoke_Shiika::Internal::Ptr#+" | |
br label %"Invoke_Shiika::Internal::Ptr#store" | |
"Invoke_Shiika::Internal::Ptr#store": ; preds = %"Invoke_Shiika::Internal::Ptr#+_end" | |
%addr_vtable77 = getelementptr inbounds %"Shiika::Internal::Ptr", %"Shiika::Internal::Ptr"* %result76, i32 0, i32 0 | |
%vtable78 = load i8*, i8** %addr_vtable77, align 8 | |
%vtable_ptr79 = bitcast i8* %vtable78 to [21 x i8*]* | |
%vtable80 = load [21 x i8*], [21 x i8*]* %vtable_ptr79, align 8 | |
%func_raw81 = extractvalue [21 x i8*] %vtable80, 19 | |
%func82 = bitcast i8* %func_raw81 to %Void* (%"Shiika::Internal::Ptr"*, %Object*)* | |
%result83 = call %Void* %func82(%"Shiika::Internal::Ptr"* %result76, %Object* %obj) | |
br label %"Invoke_Shiika::Internal::Ptr#store_end" | |
"Invoke_Shiika::Internal::Ptr#store_end": ; preds = %"Invoke_Shiika::Internal::Ptr#store" | |
%"::Void84" = load %Void*, %Void** @"::Void", align 8 | |
br label %Ret | |
Ret: ; preds = %"Invoke_Shiika::Internal::Ptr#store_end" | |
br label %End | |
} | |
define %Bool* @"Array_all?"(%Array* %self, %Fn1* %f) { | |
alloca: | |
%ret = alloca %Bool*, align 8 | |
br label %alloca_End | |
alloca_End: ; preds = %alloca | |
%sk_bool = call %Bool* @box_bool(i1 true) | |
store %Bool* %sk_bool, %Bool** %ret, align 8 | |
%"::Fn1" = load %Fn1*, %Fn1** @"::Fn1", align 8 | |
%sk_ptr = call %"Shiika::Internal::Ptr"* @box_i8ptr(i8* bitcast (%Void* (%Fn1*, %Object*)* @"lambda_2_in_Array#all?" to i8*)) | |
%the_main = bitcast %Array* %self to %Object* | |
%"::Array" = load %Array*, %Array** @"::Array", align 8 | |
%result = call %Array* @Meta_Array_new(%Array* %"::Array") | |
%capture_item = bitcast %Fn1* %f to %Object* | |
%_ = call %Void* @Array_push(%Array* %result, %Object* %capture_item) | |
%capture_item1 = bitcast %Bool** %ret to %Object* | |
%_2 = call %Void* @Array_push(%Array* %result, %Object* %capture_item1) | |
%result3 = call %Fn1* @Meta_Fn1_new(%Fn1* %"::Fn1", %"Shiika::Internal::Ptr"* %sk_ptr, %Object* %the_main, %Array* %result) | |
%as = bitcast %Fn1* %result3 to %Object* | |
br label %"Invoke_Array#each" | |
End: ; preds = %Ret | |
%methodResult = phi %Bool* [ %ret6, %Ret ] | |
ret %Bool* %methodResult | |
"Invoke_Array#each": ; preds = %alloca_End | |
%addr_vtable = getelementptr inbounds %Array, %Array* %self, i32 0, i32 0 | |
%vtable = load i8*, i8** %addr_vtable, align 8 | |
%vtable_ptr = bitcast i8* %vtable to [54 x i8*]* | |
%vtable4 = load [54 x i8*], [54 x i8*]* %vtable_ptr, align 8 | |
%func_raw = extractvalue [54 x i8*] %vtable4, 29 | |
%func = bitcast i8* %func_raw to %Void* (%Array*, %Object*)* | |
%result5 = call %Void* %func(%Array* %self, %Object* %as) | |
br label %"Invoke_Array#each_end" | |
"Invoke_Array#each_end": ; preds = %"Invoke_Array#each" | |
%ret6 = load %Bool*, %Bool** %ret, align 8 | |
br label %Ret | |
Ret: ; preds = %"Invoke_Array#each_end" | |
br label %End | |
} | |
define %Bool* @"Array_any?"(%Array* %self, %Fn1* %f) { | |
alloca: | |
%ret = alloca %Bool*, align 8 | |
br label %alloca_End | |
alloca_End: ; preds = %alloca | |
%sk_bool = call %Bool* @box_bool(i1 false) | |
store %Bool* %sk_bool, %Bool** %ret, align 8 | |
%"::Fn1" = load %Fn1*, %Fn1** @"::Fn1", align 8 | |
%sk_ptr = call %"Shiika::Internal::Ptr"* @box_i8ptr(i8* bitcast (%Void* (%Fn1*, %Object*)* @"lambda_3_in_Array#any?" to i8*)) | |
%the_main = bitcast %Array* %self to %Object* | |
%"::Array" = load %Array*, %Array** @"::Array", align 8 | |
%result = call %Array* @Meta_Array_new(%Array* %"::Array") | |
%capture_item = bitcast %Fn1* %f to %Object* | |
%_ = call %Void* @Array_push(%Array* %result, %Object* %capture_item) | |
%capture_item1 = bitcast %Bool** %ret to %Object* | |
%_2 = call %Void* @Array_push(%Array* %result, %Object* %capture_item1) | |
%result3 = call %Fn1* @Meta_Fn1_new(%Fn1* %"::Fn1", %"Shiika::Internal::Ptr"* %sk_ptr, %Object* %the_main, %Array* %result) | |
%as = bitcast %Fn1* %result3 to %Object* | |
br label %"Invoke_Array#each" | |
End: ; preds = %Ret | |
%methodResult = phi %Bool* [ %ret6, %Ret ] | |
ret %Bool* %methodResult | |
"Invoke_Array#each": ; preds = %alloca_End | |
%addr_vtable = getelementptr inbounds %Array, %Array* %self, i32 0, i32 0 | |
%vtable = load i8*, i8** %addr_vtable, align 8 | |
%vtable_ptr = bitcast i8* %vtable to [54 x i8*]* | |
%vtable4 = load [54 x i8*], [54 x i8*]* %vtable_ptr, align 8 | |
%func_raw = extractvalue [54 x i8*] %vtable4, 29 | |
%func = bitcast i8* %func_raw to %Void* (%Array*, %Object*)* | |
%result5 = call %Void* %func(%Array* %self, %Object* %as) | |
br label %"Invoke_Array#each_end" | |
"Invoke_Array#each_end": ; preds = %"Invoke_Array#each" | |
%ret6 = load %Bool*, %Bool** %ret, align 8 | |
br label %Ret | |
Ret: ; preds = %"Invoke_Array#each_end" | |
br label %End | |
} | |
define %Void* @Array_append(%Array* %self, %Array* %other) { | |
%"::Fn1" = load %Fn1*, %Fn1** @"::Fn1", align 8 | |
%sk_ptr = call %"Shiika::Internal::Ptr"* @box_i8ptr(i8* bitcast (%Void* (%Fn1*, %Object*)* @"lambda_4_in_Array#append" to i8*)) | |
%the_main = bitcast %Array* %self to %Object* | |
%"::Array" = load %Array*, %Array** @"::Array", align 8 | |
%result = call %Array* @Meta_Array_new(%Array* %"::Array") | |
%result1 = call %Fn1* @Meta_Fn1_new(%Fn1* %"::Fn1", %"Shiika::Internal::Ptr"* %sk_ptr, %Object* %the_main, %Array* %result) | |
%as = bitcast %Fn1* %result1 to %Object* | |
br label %"Invoke_Array#each" | |
End: ; preds = %Ret | |
%"::Void4" = load %Void*, %Void** @"::Void", align 8 | |
ret %Void* %"::Void4" | |
"Invoke_Array#each": ; preds = %0 | |
%addr_vtable = getelementptr inbounds %Array, %Array* %other, i32 0, i32 0 | |
%vtable = load i8*, i8** %addr_vtable, align 8 | |
%vtable_ptr = bitcast i8* %vtable to [54 x i8*]* | |
%vtable2 = load [54 x i8*], [54 x i8*]* %vtable_ptr, align 8 | |
%func_raw = extractvalue [54 x i8*] %vtable2, 29 | |
%func = bitcast i8* %func_raw to %Void* (%Array*, %Object*)* | |
%result3 = call %Void* %func(%Array* %other, %Object* %as) | |
br label %"Invoke_Array#each_end" | |
"Invoke_Array#each_end": ; preds = %"Invoke_Array#each" | |
%"::Void" = load %Void*, %Void** @"::Void", align 8 | |
br label %Ret | |
Ret: ; preds = %"Invoke_Array#each_end" | |
br label %End | |
} | |
define %Void* @Array_clear(%Array* %self) { | |
%sk_int = call %Int* @box_int(i64 0) | |
%"addr_@n_items" = getelementptr inbounds %Array, %Array* %self, i32 0, i32 3 | |
store %Int* %sk_int, %Int** %"addr_@n_items", align 8 | |
%"::Void" = load %Void*, %Void** @"::Void", align 8 | |
br label %Ret | |
End: ; preds = %Ret | |
%"::Void1" = load %Void*, %Void** @"::Void", align 8 | |
ret %Void* %"::Void1" | |
Ret: ; preds = %0 | |
br label %End | |
} | |
define %Array* @Array_clone(%Array* %self) { | |
alloca: | |
%"ary@6_" = alloca %Array*, align 8 | |
%ret = alloca %Array*, align 8 | |
br label %alloca_End | |
alloca_End: ; preds = %alloca | |
%"::Array" = load %Array*, %Array** @"::Array", align 8 | |
%"::Array1" = load %Array*, %Array** @"::Array", align 8 | |
%"::Class" = load %Class.0*, %Class.0** @"::Class", align 8 | |
br label %"Invoke_Class#_specialize1" | |
End: ; preds = %Ret | |
%methodResult = phi %Array* [ %ret45, %Ret ] | |
ret %Array* %methodResult | |
"Invoke_Class#_specialize1": ; preds = %alloca_End | |
%addr_vtable = getelementptr inbounds %Array, %Array* %"::Array1", i32 0, i32 0 | |
%vtable = load i8*, i8** %addr_vtable, align 8 | |
%vtable_ptr = bitcast i8* %vtable to [25 x i8*]* | |
%vtable2 = load [25 x i8*], [25 x i8*]* %vtable_ptr, align 8 | |
%func_raw = extractvalue [25 x i8*] %vtable2, 18 | |
%func = bitcast i8* %func_raw to %Array* (%Array*, %Class.0*)* | |
%result = call %Array* %func(%Array* %"::Array1", %Class.0* %"::Class") | |
br label %"Invoke_Class#_specialize1_end" | |
"Invoke_Class#_specialize1_end": ; preds = %"Invoke_Class#_specialize1" | |
br label %"Invoke_Array#new" | |
"Invoke_Array#new": ; preds = %"Invoke_Class#_specialize1_end" | |
%addr_vtable3 = getelementptr inbounds %Array, %Array* %result, i32 0, i32 0 | |
%vtable4 = load i8*, i8** %addr_vtable3, align 8 | |
%vtable_ptr5 = bitcast i8* %vtable4 to [25 x i8*]* | |
%vtable6 = load [25 x i8*], [25 x i8*]* %vtable_ptr5, align 8 | |
%func_raw7 = extractvalue [25 x i8*] %vtable6, 23 | |
%func8 = bitcast i8* %func_raw7 to %Array* (%Array*)* | |
%result9 = call %Array* %func8(%Array* %result) | |
br label %"Invoke_Array#new_end" | |
"Invoke_Array#new_end": ; preds = %"Invoke_Array#new" | |
store %Array* %result9, %Array** %"ary@6_", align 8 | |
%"ary@6_10" = load %Array*, %Array** %"ary@6_", align 8 | |
%addr_class = getelementptr inbounds %Array, %Array* %self, i32 0, i32 1 | |
%class = load %Class.0*, %Class.0** %addr_class, align 8 | |
%sk_int = call %Int* @box_int(i64 0) | |
%result11 = call %Class.0* @Class___type__argument(%Class.0* %class, %Int* %sk_int) | |
%as = bitcast %Class.0* %result11 to %Object* | |
br label %"Invoke_Array#push" | |
"Invoke_Array#push": ; preds = %"Invoke_Array#new_end" | |
%addr_vtable12 = getelementptr inbounds %Array, %Array* %"ary@6_10", i32 0, i32 0 | |
%vtable13 = load i8*, i8** %addr_vtable12, align 8 | |
%vtable_ptr14 = bitcast i8* %vtable13 to [54 x i8*]* | |
%vtable15 = load [54 x i8*], [54 x i8*]* %vtable_ptr14, align 8 | |
%func_raw16 = extractvalue [54 x i8*] %vtable15, 45 | |
%func17 = bitcast i8* %func_raw16 to %Void* (%Array*, %Object*)* | |
%result18 = call %Void* %func17(%Array* %"ary@6_10", %Object* %as) | |
br label %"Invoke_Array#push_end" | |
"Invoke_Array#push_end": ; preds = %"Invoke_Array#push" | |
%"ary@6_19" = load %Array*, %Array** %"ary@6_", align 8 | |
br label %"Invoke_Class#<>" | |
"Invoke_Class#<>": ; preds = %"Invoke_Array#push_end" | |
%addr_vtable20 = getelementptr inbounds %Array, %Array* %"::Array", i32 0, i32 0 | |
%vtable21 = load i8*, i8** %addr_vtable20, align 8 | |
%vtable_ptr22 = bitcast i8* %vtable21 to [25 x i8*]* | |
%vtable23 = load [25 x i8*], [25 x i8*]* %vtable_ptr22, align 8 | |
%func_raw24 = extractvalue [25 x i8*] %vtable23, 16 | |
%func25 = bitcast i8* %func_raw24 to %Array* (%Array*, %Array*)* | |
%result26 = call %Array* %func25(%Array* %"::Array", %Array* %"ary@6_19") | |
br label %"Invoke_Class#<>_end" | |
"Invoke_Class#<>_end": ; preds = %"Invoke_Class#<>" | |
br label %"Invoke_Meta:Array#new" | |
"Invoke_Meta:Array#new": ; preds = %"Invoke_Class#<>_end" | |
%addr_vtable27 = getelementptr inbounds %Array, %Array* %result26, i32 0, i32 0 | |
%vtable28 = load i8*, i8** %addr_vtable27, align 8 | |
%vtable_ptr29 = bitcast i8* %vtable28 to [25 x i8*]* | |
%vtable30 = load [25 x i8*], [25 x i8*]* %vtable_ptr29, align 8 | |
%func_raw31 = extractvalue [25 x i8*] %vtable30, 23 | |
%func32 = bitcast i8* %func_raw31 to %Array* (%Array*)* | |
%result33 = call %Array* %func32(%Array* %result26) | |
br label %"Invoke_Meta:Array#new_end" | |
"Invoke_Meta:Array#new_end": ; preds = %"Invoke_Meta:Array#new" | |
store %Array* %result33, %Array** %ret, align 8 | |
%"::Fn1" = load %Fn1*, %Fn1** @"::Fn1", align 8 | |
%sk_ptr = call %"Shiika::Internal::Ptr"* @box_i8ptr(i8* bitcast (%Void* (%Fn1*, %Object*)* @"lambda_5_in_Array#clone" to i8*)) | |
%the_main = bitcast %Array* %self to %Object* | |
%"::Array34" = load %Array*, %Array** @"::Array", align 8 | |
%result35 = call %Array* @Meta_Array_new(%Array* %"::Array34") | |
%capture_item = bitcast %Array** %ret to %Object* | |
%_ = call %Void* @Array_push(%Array* %result35, %Object* %capture_item) | |
%result36 = call %Fn1* @Meta_Fn1_new(%Fn1* %"::Fn1", %"Shiika::Internal::Ptr"* %sk_ptr, %Object* %the_main, %Array* %result35) | |
%as37 = bitcast %Fn1* %result36 to %Object* | |
br label %"Invoke_Array#each" | |
"Invoke_Array#each": ; preds = %"Invoke_Meta:Array#new_end" | |
%addr_vtable38 = getelementptr inbounds %Array, %Array* %self, i32 0, i32 0 | |
%vtable39 = load i8*, i8** %addr_vtable38, align 8 | |
%vtable_ptr40 = bitcast i8* %vtable39 to [54 x i8*]* | |
%vtable41 = load [54 x i8*], [54 x i8*]* %vtable_ptr40, align 8 | |
%func_raw42 = extractvalue [54 x i8*] %vtable41, 29 | |
%func43 = bitcast i8* %func_raw42 to %Void* (%Array*, %Object*)* | |
%result44 = call %Void* %func43(%Array* %self, %Object* %as37) | |
br label %"Invoke_Array#each_end" | |
"Invoke_Array#each_end": ; preds = %"Invoke_Array#each" | |
%ret45 = load %Array*, %Array** %ret, align 8 | |
br label %Ret | |
Ret: ; preds = %"Invoke_Array#each_end" | |
br label %End | |
} | |
define %Array* @Array_drop(%Array* %self, %Int* %n) { | |
alloca: | |
%"ary@7_" = alloca %Array*, align 8 | |
%ret = alloca %Array*, align 8 | |
br label %alloca_End | |
alloca_End: ; preds = %alloca | |
%"::Array" = load %Array*, %Array** @"::Array", align 8 | |
%"::Array1" = load %Array*, %Array** @"::Array", align 8 | |
%"::Class" = load %Class.0*, %Class.0** @"::Class", align 8 | |
br label %"Invoke_Class#_specialize1" | |
End: ; preds = %Ret | |
%methodResult = phi %Array* [ %ret52, %Ret ] | |
ret %Array* %methodResult | |
"Invoke_Class#_specialize1": ; preds = %alloca_End | |
%addr_vtable = getelementptr inbounds %Array, %Array* %"::Array1", i32 0, i32 0 | |
%vtable = load i8*, i8** %addr_vtable, align 8 | |
%vtable_ptr = bitcast i8* %vtable to [25 x i8*]* | |
%vtable2 = load [25 x i8*], [25 x i8*]* %vtable_ptr, align 8 | |
%func_raw = extractvalue [25 x i8*] %vtable2, 18 | |
%func = bitcast i8* %func_raw to %Array* (%Array*, %Class.0*)* | |
%result = call %Array* %func(%Array* %"::Array1", %Class.0* %"::Class") | |
br label %"Invoke_Class#_specialize1_end" | |
"Invoke_Class#_specialize1_end": ; preds = %"Invoke_Class#_specialize1" | |
br label %"Invoke_Array#new" | |
"Invoke_Array#new": ; preds = %"Invoke_Class#_specialize1_end" | |
%addr_vtable3 = getelementptr inbounds %Array, %Array* %result, i32 0, i32 0 | |
%vtable4 = load i8*, i8** %addr_vtable3, align 8 | |
%vtable_ptr5 = bitcast i8* %vtable4 to [25 x i8*]* | |
%vtable6 = load [25 x i8*], [25 x i8*]* %vtable_ptr5, align 8 | |
%func_raw7 = extractvalue [25 x i8*] %vtable6, 23 | |
%func8 = bitcast i8* %func_raw7 to %Array* (%Array*)* | |
%result9 = call %Array* %func8(%Array* %result) | |
br label %"Invoke_Array#new_end" | |
"Invoke_Array#new_end": ; preds = %"Invoke_Array#new" | |
store %Array* %result9, %Array** %"ary@7_", align 8 | |
%"ary@7_10" = load %Array*, %Array** %"ary@7_", align 8 | |
%addr_class = getelementptr inbounds %Array, %Array* %self, i32 0, i32 1 | |
%class = load %Class.0*, %Class.0** %addr_class, align 8 | |
%sk_int = call %Int* @box_int(i64 0) | |
%result11 = call %Class.0* @Class___type__argument(%Class.0* %class, %Int* %sk_int) | |
%as = bitcast %Class.0* %result11 to %Object* | |
br label %"Invoke_Array#push" | |
"Invoke_Array#push": ; preds = %"Invoke_Array#new_end" | |
%addr_vtable12 = getelementptr inbounds %Array, %Array* %"ary@7_10", i32 0, i32 0 | |
%vtable13 = load i8*, i8** %addr_vtable12, align 8 | |
%vtable_ptr14 = bitcast i8* %vtable13 to [54 x i8*]* | |
%vtable15 = load [54 x i8*], [54 x i8*]* %vtable_ptr14, align 8 | |
%func_raw16 = extractvalue [54 x i8*] %vtable15, 45 | |
%func17 = bitcast i8* %func_raw16 to %Void* (%Array*, %Object*)* | |
%result18 = call %Void* %func17(%Array* %"ary@7_10", %Object* %as) | |
br label %"Invoke_Array#push_end" | |
"Invoke_Array#push_end": ; preds = %"Invoke_Array#push" | |
%"ary@7_19" = load %Array*, %Array** %"ary@7_", align 8 | |
br label %"Invoke_Class#<>" | |
"Invoke_Class#<>": ; preds = %"Invoke_Array#push_end" | |
%addr_vtable20 = getelementptr inbounds %Array, %Array* %"::Array", i32 0, i32 0 | |
%vtable21 = load i8*, i8** %addr_vtable20, align 8 | |
%vtable_ptr22 = bitcast i8* %vtable21 to [25 x i8*]* | |
%vtable23 = load [25 x i8*], [25 x i8*]* %vtable_ptr22, align 8 | |
%func_raw24 = extractvalue [25 x i8*] %vtable23, 16 | |
%func25 = bitcast i8* %func_raw24 to %Array* (%Array*, %Array*)* | |
%result26 = call %Array* %func25(%Array* %"::Array", %Array* %"ary@7_19") | |
br label %"Invoke_Class#<>_end" | |
"Invoke_Class#<>_end": ; preds = %"Invoke_Class#<>" | |
br label %"Invoke_Meta:Array#new" | |
"Invoke_Meta:Array#new": ; preds = %"Invoke_Class#<>_end" | |
%addr_vtable27 = getelementptr inbounds %Array, %Array* %result26, i32 0, i32 0 | |
%vtable28 = load i8*, i8** %addr_vtable27, align 8 | |
%vtable_ptr29 = bitcast i8* %vtable28 to [25 x i8*]* | |
%vtable30 = load [25 x i8*], [25 x i8*]* %vtable_ptr29, align 8 | |
%func_raw31 = extractvalue [25 x i8*] %vtable30, 23 | |
%func32 = bitcast i8* %func_raw31 to %Array* (%Array*)* | |
%result33 = call %Array* %func32(%Array* %result26) | |
br label %"Invoke_Meta:Array#new_end" | |
"Invoke_Meta:Array#new_end": ; preds = %"Invoke_Meta:Array#new" | |
store %Array* %result33, %Array** %ret, align 8 | |
%"addr_@n_items" = getelementptr inbounds %Array, %Array* %self, i32 0, i32 3 | |
%"@n_items" = load %Int*, %Int** %"addr_@n_items", align 8 | |
%sk_int34 = call %Int* @box_int(i64 1) | |
br label %"Invoke_Int#-" | |
"Invoke_Int#-": ; preds = %"Invoke_Meta:Array#new_end" | |
%addr_vtable35 = getelementptr inbounds %Int, %Int* %"@n_items", i32 0, i32 0 | |
%vtable36 = load i8*, i8** %addr_vtable35, align 8 | |
%vtable_ptr37 = bitcast i8* %vtable36 to [35 x i8*]* | |
%vtable38 = load [35 x i8*], [35 x i8*]* %vtable_ptr37, align 8 | |
%func_raw39 = extractvalue [35 x i8*] %vtable38, 19 | |
%func40 = bitcast i8* %func_raw39 to %Int* (%Int*, %Int*)* | |
%result41 = call %Int* %func40(%Int* %"@n_items", %Int* %sk_int34) | |
br label %"Invoke_Int#-_end" | |
"Invoke_Int#-_end": ; preds = %"Invoke_Int#-" | |
%"::Fn1" = load %Fn1*, %Fn1** @"::Fn1", align 8 | |
%sk_ptr = call %"Shiika::Internal::Ptr"* @box_i8ptr(i8* bitcast (%Void* (%Fn1*, %Object*)* @"lambda_6_in_Array#drop" to i8*)) | |
%the_main = bitcast %Array* %self to %Object* | |
%"::Array42" = load %Array*, %Array** @"::Array", align 8 | |
%result43 = call %Array* @Meta_Array_new(%Array* %"::Array42") | |
%capture_item = bitcast %Array** %ret to %Object* | |
%_ = call %Void* @Array_push(%Array* %result43, %Object* %capture_item) | |
%result44 = call %Fn1* @Meta_Fn1_new(%Fn1* %"::Fn1", %"Shiika::Internal::Ptr"* %sk_ptr, %Object* %the_main, %Array* %result43) | |
br label %"Invoke_Int#upto" | |
"Invoke_Int#upto": ; preds = %"Invoke_Int#-_end" | |
%addr_vtable45 = getelementptr inbounds %Int, %Int* %n, i32 0, i32 0 | |
%vtable46 = load i8*, i8** %addr_vtable45, align 8 | |
%vtable_ptr47 = bitcast i8* %vtable46 to [35 x i8*]* | |
%vtable48 = load [35 x i8*], [35 x i8*]* %vtable_ptr47, align 8 | |
%func_raw49 = extractvalue [35 x i8*] %vtable48, 33 | |
%func50 = bitcast i8* %func_raw49 to %Void* (%Int*, %Int*, %Fn1*)* | |
%result51 = call %Void* %func50(%Int* %n, %Int* %result41, %Fn1* %result44) | |
br label %"Invoke_Int#upto_end" | |
"Invoke_Int#upto_end": ; preds = %"Invoke_Int#upto" | |
%ret52 = load %Array*, %Array** %ret, align 8 | |
br label %Ret | |
Ret: ; preds = %"Invoke_Int#upto_end" | |
br label %End | |
} | |
define %Void* @Array_each(%Array* %self, %Fn1* %f) { | |
alloca: | |
%i = alloca %Int*, align 8 | |
br label %alloca_End | |
alloca_End: ; preds = %alloca | |
%sk_int = call %Int* @box_int(i64 0) | |
store %Int* %sk_int, %Int** %i, align 8 | |
br label %WhileBegin | |
End: ; preds = %Ret, %Invoke_lambda | |
%"::Void26" = load %Void*, %Void** @"::Void", align 8 | |
ret %Void* %"::Void26" | |
WhileBegin: ; preds = %"Invoke_Int#+_end", %alloca_End | |
%i1 = load %Int*, %Int** %i, align 8 | |
%"addr_@n_items" = getelementptr inbounds %Array, %Array* %self, i32 0, i32 3 | |
%"@n_items" = load %Int*, %Int** %"addr_@n_items", align 8 | |
br label %"Invoke_Int#<" | |
"Invoke_Int#<": ; preds = %WhileBegin | |
%addr_vtable = getelementptr inbounds %Int, %Int* %i1, i32 0, i32 0 | |
%vtable = load i8*, i8** %addr_vtable, align 8 | |
%vtable_ptr = bitcast i8* %vtable to [35 x i8*]* | |
%vtable2 = load [35 x i8*], [35 x i8*]* %vtable_ptr, align 8 | |
%func_raw = extractvalue [35 x i8*] %vtable2, 0 | |
%func = bitcast i8* %func_raw to %Bool* (%Int*, %Int*)* | |
%result = call %Bool* %func(%Int* %i1, %Int* %"@n_items") | |
br label %"Invoke_Int#<_end" | |
"Invoke_Int#<_end": ; preds = %"Invoke_Int#<" | |
%llvm_bool = call i1 @unbox_bool(%Bool* %result) | |
%istrue = icmp eq i1 %llvm_bool, true | |
br i1 %istrue, label %WhileBody, label %WhileEnd | |
WhileBody: ; preds = %"Invoke_Int#<_end" | |
%i3 = load %Int*, %Int** %i, align 8 | |
%as = bitcast %Int* %i3 to %Object* | |
br label %"Invoke_Array#[]" | |
WhileEnd: ; preds = %"Invoke_Int#<_end" | |
%"::Void" = load %Void*, %Void** @"::Void", align 8 | |
%"::Void25" = load %Void*, %Void** @"::Void", align 8 | |
br label %Ret | |
"Invoke_Array#[]": ; preds = %WhileBody | |
%addr_vtable4 = getelementptr inbounds %Array, %Array* %self, i32 0, i32 0 | |
%vtable5 = load i8*, i8** %addr_vtable4, align 8 | |
%vtable_ptr6 = bitcast i8* %vtable5 to [54 x i8*]* | |
%vtable7 = load [54 x i8*], [54 x i8*]* %vtable_ptr6, align 8 | |
%func_raw8 = extractvalue [54 x i8*] %vtable7, 16 | |
%func9 = bitcast i8* %func_raw8 to %Object* (%Array*, %Object*)* | |
%result10 = call %Object* %func9(%Array* %self, %Object* %as) | |
br label %"Invoke_Array#[]_end" | |
"Invoke_Array#[]_end": ; preds = %"Invoke_Array#[]" | |
br label %Invoke_lambda | |
Invoke_lambda: ; preds = %"Invoke_Array#[]_end" | |
%"addr_@func" = getelementptr inbounds %Fn1, %Fn1* %f, i32 0, i32 2 | |
%"@func" = load %"Shiika::Internal::Ptr"*, %"Shiika::Internal::Ptr"** %"addr_@func", align 8 | |
%llvm_ptr = call i8* @unbox_i8ptr(%"Shiika::Internal::Ptr"* %"@func") | |
%0 = bitcast i8* %llvm_ptr to %Void* (%Fn1*, %Object*)* | |
%result11 = call %Void* %0(%Fn1* %f, %Object* %result10) | |
%"addr_@exit_status" = getelementptr inbounds %Fn1, %Fn1* %f, i32 0, i32 5 | |
%"@exit_status" = load %Int*, %Int** %"addr_@exit_status", align 8 | |
%sk_int12 = call %Int* @box_int(i64 1) | |
%result13 = call %Bool* @Int_eq_(%Int* %"@exit_status", %Int* %sk_int12) | |
%llvm_bool14 = call i1 @unbox_bool(%Bool* %result13) | |
%istrue15 = icmp eq i1 %llvm_bool14, true | |
br i1 %istrue15, label %End, label %Invoke_lambda_end | |
Invoke_lambda_end: ; preds = %Invoke_lambda | |
%i16 = load %Int*, %Int** %i, align 8 | |
%sk_int17 = call %Int* @box_int(i64 1) | |
br label %"Invoke_Int#+" | |
"Invoke_Int#+": ; preds = %Invoke_lambda_end | |
%addr_vtable18 = getelementptr inbounds %Int, %Int* %i16, i32 0, i32 0 | |
%vtable19 = load i8*, i8** %addr_vtable18, align 8 | |
%vtable_ptr20 = bitcast i8* %vtable19 to [35 x i8*]* | |
%vtable21 = load [35 x i8*], [35 x i8*]* %vtable_ptr20, align 8 | |
%func_raw22 = extractvalue [35 x i8*] %vtable21, 18 | |
%func23 = bitcast i8* %func_raw22 to %Int* (%Int*, %Int*)* | |
%result24 = call %Int* %func23(%Int* %i16, %Int* %sk_int17) | |
br label %"Invoke_Int#+_end" | |
"Invoke_Int#+_end": ; preds = %"Invoke_Int#+" | |
store %Int* %result24, %Int** %i, align 8 | |
br label %WhileBegin | |
Ret: ; preds = %WhileEnd | |
br label %End | |
} | |
define %Maybe* @Array_first(%Array* %self) { | |
alloca: | |
%"ary@8_" = alloca %Array*, align 8 | |
br label %alloca_End | |
alloca_End: ; preds = %alloca | |
br label %IfBegin | |
End: ; preds = %Ret | |
%methodResult = phi %Maybe* [ %ifResult, %Ret ] | |
ret %Maybe* %methodResult | |
IfBegin: ; preds = %alloca_End | |
br label %"Invoke_Array#empty?" | |
IfThen: ; preds = %"Invoke_Array#empty?_end" | |
%"::None" = load %"Maybe::None"*, %"Maybe::None"** @"::None", align 8 | |
%as = bitcast %"Maybe::None"* %"::None" to %Maybe* | |
br label %IfEnd | |
IfElse: ; preds = %"Invoke_Array#empty?_end" | |
%"::Some" = load %"Maybe::Some"*, %"Maybe::Some"** @"::Some", align 8 | |
%"::Array" = load %Array*, %Array** @"::Array", align 8 | |
%"::Class" = load %Class.0*, %Class.0** @"::Class", align 8 | |
br label %"Invoke_Class#_specialize1" | |
IfEnd: ; preds = %"Invoke_Meta:Maybe::Some#new_end", %IfThen | |
%ifResult = phi %Maybe* [ %as, %IfThen ], [ %as50, %"Invoke_Meta:Maybe::Some#new_end" ] | |
br label %Ret | |
"Invoke_Array#empty?": ; preds = %IfBegin | |
%addr_vtable = getelementptr inbounds %Array, %Array* %self, i32 0, i32 0 | |
%vtable = load i8*, i8** %addr_vtable, align 8 | |
%vtable_ptr = bitcast i8* %vtable to [54 x i8*]* | |
%vtable1 = load [54 x i8*], [54 x i8*]* %vtable_ptr, align 8 | |
%func_raw = extractvalue [54 x i8*] %vtable1, 30 | |
%func = bitcast i8* %func_raw to %Bool* (%Array*)* | |
%result = call %Bool* %func(%Array* %self) | |
br label %"Invoke_Array#empty?_end" | |
"Invoke_Array#empty?_end": ; preds = %"Invoke_Array#empty?" | |
%llvm_bool = call i1 @unbox_bool(%Bool* %result) | |
%istrue = icmp eq i1 %llvm_bool, true | |
br i1 %istrue, label %IfThen, label %IfElse | |
"Invoke_Class#_specialize1": ; preds = %IfElse | |
%addr_vtable2 = getelementptr inbounds %Array, %Array* %"::Array", i32 0, i32 0 | |
%vtable3 = load i8*, i8** %addr_vtable2, align 8 | |
%vtable_ptr4 = bitcast i8* %vtable3 to [25 x i8*]* | |
%vtable5 = load [25 x i8*], [25 x i8*]* %vtable_ptr4, align 8 | |
%func_raw6 = extractvalue [25 x i8*] %vtable5, 18 | |
%func7 = bitcast i8* %func_raw6 to %Array* (%Array*, %Class.0*)* | |
%result8 = call %Array* %func7(%Array* %"::Array", %Class.0* %"::Class") | |
br label %"Invoke_Class#_specialize1_end" | |
"Invoke_Class#_specialize1_end": ; preds = %"Invoke_Class#_specialize1" | |
br label %"Invoke_Array#new" | |
"Invoke_Array#new": ; preds = %"Invoke_Class#_specialize1_end" | |
%addr_vtable9 = getelementptr inbounds %Array, %Array* %result8, i32 0, i32 0 | |
%vtable10 = load i8*, i8** %addr_vtable9, align 8 | |
%vtable_ptr11 = bitcast i8* %vtable10 to [25 x i8*]* | |
%vtable12 = load [25 x i8*], [25 x i8*]* %vtable_ptr11, align 8 | |
%func_raw13 = extractvalue [25 x i8*] %vtable12, 23 | |
%func14 = bitcast i8* %func_raw13 to %Array* (%Array*)* | |
%result15 = call %Array* %func14(%Array* %result8) | |
br label %"Invoke_Array#new_end" | |
"Invoke_Array#new_end": ; preds = %"Invoke_Array#new" | |
store %Array* %result15, %Array** %"ary@8_", align 8 | |
%"ary@8_16" = load %Array*, %Array** %"ary@8_", align 8 | |
%addr_class = getelementptr inbounds %Array, %Array* %self, i32 0, i32 1 | |
%class = load %Class.0*, %Class.0** %addr_class, align 8 | |
%sk_int = call %Int* @box_int(i64 0) | |
%result17 = call %Class.0* @Class___type__argument(%Class.0* %class, %Int* %sk_int) | |
%as18 = bitcast %Class.0* %result17 to %Object* | |
br label %"Invoke_Array#push" | |
"Invoke_Array#push": ; preds = %"Invoke_Array#new_end" | |
%addr_vtable19 = getelementptr inbounds %Array, %Array* %"ary@8_16", i32 0, i32 0 | |
%vtable20 = load i8*, i8** %addr_vtable19, align 8 | |
%vtable_ptr21 = bitcast i8* %vtable20 to [54 x i8*]* | |
%vtable22 = load [54 x i8*], [54 x i8*]* %vtable_ptr21, align 8 | |
%func_raw23 = extractvalue [54 x i8*] %vtable22, 45 | |
%func24 = bitcast i8* %func_raw23 to %Void* (%Array*, %Object*)* | |
%result25 = call %Void* %func24(%Array* %"ary@8_16", %Object* %as18) | |
br label %"Invoke_Array#push_end" | |
"Invoke_Array#push_end": ; preds = %"Invoke_Array#push" | |
%"ary@8_26" = load %Array*, %Array** %"ary@8_", align 8 | |
br label %"Invoke_Class#<>" | |
"Invoke_Class#<>": ; preds = %"Invoke_Array#push_end" | |
%addr_vtable27 = getelementptr inbounds %"Maybe::Some", %"Maybe::Some"* %"::Some", i32 0, i32 0 | |
%vtable28 = load i8*, i8** %addr_vtable27, align 8 | |
%vtable_ptr29 = bitcast i8* %vtable28 to [23 x i8*]* | |
%vtable30 = load [23 x i8*], [23 x i8*]* %vtable_ptr29, align 8 | |
%func_raw31 = extractvalue [23 x i8*] %vtable30, 16 | |
%func32 = bitcast i8* %func_raw31 to %"Maybe::Some"* (%"Maybe::Some"*, %Array*)* | |
%result33 = call %"Maybe::Some"* %func32(%"Maybe::Some"* %"::Some", %Array* %"ary@8_26") | |
br label %"Invoke_Class#<>_end" | |
"Invoke_Class#<>_end": ; preds = %"Invoke_Class#<>" | |
%sk_int34 = call %Int* @box_int(i64 0) | |
%as35 = bitcast %Int* %sk_int34 to %Object* | |
br label %"Invoke_Array#[]" | |
"Invoke_Array#[]": ; preds = %"Invoke_Class#<>_end" | |
%addr_vtable36 = getelementptr inbounds %Array, %Array* %self, i32 0, i32 0 | |
%vtable37 = load i8*, i8** %addr_vtable36, align 8 | |
%vtable_ptr38 = bitcast i8* %vtable37 to [54 x i8*]* | |
%vtable39 = load [54 x i8*], [54 x i8*]* %vtable_ptr38, align 8 | |
%func_raw40 = extractvalue [54 x i8*] %vtable39, 16 | |
%func41 = bitcast i8* %func_raw40 to %Object* (%Array*, %Object*)* | |
%result42 = call %Object* %func41(%Array* %self, %Object* %as35) | |
br label %"Invoke_Array#[]_end" | |
"Invoke_Array#[]_end": ; preds = %"Invoke_Array#[]" | |
br label %"Invoke_Meta:Maybe::Some#new" | |
"Invoke_Meta:Maybe::Some#new": ; preds = %"Invoke_Array#[]_end" | |
%addr_vtable43 = getelementptr inbounds %"Maybe::Some", %"Maybe::Some"* %result33, i32 0, i32 0 | |
%vtable44 = load i8*, i8** %addr_vtable43, align 8 | |
%vtable_ptr45 = bitcast i8* %vtable44 to [23 x i8*]* | |
%vtable46 = load [23 x i8*], [23 x i8*]* %vtable_ptr45, align 8 | |
%func_raw47 = extractvalue [23 x i8*] %vtable46, 22 | |
%func48 = bitcast i8* %func_raw47 to %"Maybe::Some"* (%"Maybe::Some"*, %Object*)* | |
%result49 = call %"Maybe::Some"* %func48(%"Maybe::Some"* %result33, %Object* %result42) | |
br label %"Invoke_Meta:Maybe::Some#new_end" | |
"Invoke_Meta:Maybe::Some#new_end": ; preds = %"Invoke_Meta:Maybe::Some#new" | |
%as50 = bitcast %"Maybe::Some"* %result49 to %Maybe* | |
br label %IfEnd | |
Ret: ; preds = %IfEnd | |
br label %End | |
} | |
define %Array* @Array_flat__map(%Array* %self, %Fn1* %f) { | |
alloca: | |
%"ary@10_" = alloca %Array*, align 8 | |
%"ary@11_" = alloca %Array*, align 8 | |
%"ary@9_" = alloca %Array*, align 8 | |
br label %alloca_End | |
alloca_End: ; preds = %alloca | |
%as = bitcast %Fn1* %f to %Object* | |
br label %"Invoke_Array#map" | |
End: ; preds = %Ret | |
%methodResult = phi %Array* [ %result51, %Ret ] | |
ret %Array* %methodResult | |
"Invoke_Array#map": ; preds = %alloca_End | |
%addr_vtable = getelementptr inbounds %Array, %Array* %self, i32 0, i32 0 | |
%vtable = load i8*, i8** %addr_vtable, align 8 | |
%vtable_ptr = bitcast i8* %vtable to [54 x i8*]* | |
%vtable1 = load [54 x i8*], [54 x i8*]* %vtable_ptr, align 8 | |
%func_raw = extractvalue [54 x i8*] %vtable1, 40 | |
%func = bitcast i8* %func_raw to %Array* (%Array*, %Object*)* | |
%result = call %Array* %func(%Array* %self, %Object* %as) | |
br label %"Invoke_Array#map_end" | |
"Invoke_Array#map_end": ; preds = %"Invoke_Array#map" | |
%"::Array" = load %Array*, %Array** @"::Array", align 8 | |
%"::Array2" = load %Array*, %Array** @"::Array", align 8 | |
%"::Class" = load %Class.0*, %Class.0** @"::Class", align 8 | |
br label %"Invoke_Class#_specialize1" | |
"Invoke_Class#_specialize1": ; preds = %"Invoke_Array#map_end" | |
%addr_vtable3 = getelementptr inbounds %Array, %Array* %"::Array2", i32 0, i32 0 | |
%vtable4 = load i8*, i8** %addr_vtable3, align 8 | |
%vtable_ptr5 = bitcast i8* %vtable4 to [25 x i8*]* | |
%vtable6 = load [25 x i8*], [25 x i8*]* %vtable_ptr5, align 8 | |
%func_raw7 = extractvalue [25 x i8*] %vtable6, 18 | |
%func8 = bitcast i8* %func_raw7 to %Array* (%Array*, %Class.0*)* | |
%result9 = call %Array* %func8(%Array* %"::Array2", %Class.0* %"::Class") | |
br label %"Invoke_Class#_specialize1_end" | |
"Invoke_Class#_specialize1_end": ; preds = %"Invoke_Class#_specialize1" | |
br label %"Invoke_Array#new" | |
"Invoke_Array#new": ; preds = %"Invoke_Class#_specialize1_end" | |
%addr_vtable10 = getelementptr inbounds %Array, %Array* %result9, i32 0, i32 0 | |
%vtable11 = load i8*, i8** %addr_vtable10, align 8 | |
%vtable_ptr12 = bitcast i8* %vtable11 to [25 x i8*]* | |
%vtable13 = load [25 x i8*], [25 x i8*]* %vtable_ptr12, align 8 | |
%func_raw14 = extractvalue [25 x i8*] %vtable13, 23 | |
%func15 = bitcast i8* %func_raw14 to %Array* (%Array*)* | |
%result16 = call %Array* %func15(%Array* %result9) | |
br label %"Invoke_Array#new_end" | |
"Invoke_Array#new_end": ; preds = %"Invoke_Array#new" | |
store %Array* %result16, %Array** %"ary@9_", align 8 | |
%"ary@9_17" = load %Array*, %Array** %"ary@9_", align 8 | |
%"::Object" = load %Object*, %Object** @"::Object", align 8 | |
br label %"Invoke_Array#push" | |
"Invoke_Array#push": ; preds = %"Invoke_Array#new_end" | |
%addr_vtable18 = getelementptr inbounds %Array, %Array* %"ary@9_17", i32 0, i32 0 | |
%vtable19 = load i8*, i8** %addr_vtable18, align 8 | |
%vtable_ptr20 = bitcast i8* %vtable19 to [54 x i8*]* | |
%vtable21 = load [54 x i8*], [54 x i8*]* %vtable_ptr20, align 8 | |
%func_raw22 = extractvalue [54 x i8*] %vtable21, 45 | |
%func23 = bitcast i8* %func_raw22 to %Void* (%Array*, %Object*)* | |
%result24 = call %Void* %func23(%Array* %"ary@9_17", %Object* %"::Object") | |
br label %"Invoke_Array#push_end" | |
"Invoke_Array#push_end": ; preds = %"Invoke_Array#push" | |
%"ary@9_25" = load %Array*, %Array** %"ary@9_", align 8 | |
br label %"Invoke_Class#<>" | |
"Invoke_Class#<>": ; preds = %"Invoke_Array#push_end" | |
%addr_vtable26 = getelementptr inbounds %Array, %Array* %"::Array", i32 0, i32 0 | |
%vtable27 = load i8*, i8** %addr_vtable26, align 8 | |
%vtable_ptr28 = bitcast i8* %vtable27 to [25 x i8*]* | |
%vtable29 = load [25 x i8*], [25 x i8*]* %vtable_ptr28, align 8 | |
%func_raw30 = extractvalue [25 x i8*] %vtable29, 16 | |
%func31 = bitcast i8* %func_raw30 to %Array* (%Array*, %Array*)* | |
%result32 = call %Array* %func31(%Array* %"::Array", %Array* %"ary@9_25") | |
br label %"Invoke_Class#<>_end" | |
"Invoke_Class#<>_end": ; preds = %"Invoke_Class#<>" | |
br label %"Invoke_Meta:Array#new" | |
"Invoke_Meta:Array#new": ; preds = %"Invoke_Class#<>_end" | |
%addr_vtable33 = getelementptr inbounds %Array, %Array* %result32, i32 0, i32 0 | |
%vtable34 = load i8*, i8** %addr_vtable33, align 8 | |
%vtable_ptr35 = bitcast i8* %vtable34 to [25 x i8*]* | |
%vtable36 = load [25 x i8*], [25 x i8*]* %vtable_ptr35, align 8 | |
%func_raw37 = extractvalue [25 x i8*] %vtable36, 23 | |
%func38 = bitcast i8* %func_raw37 to %Array* (%Array*)* | |
%result39 = call %Array* %func38(%Array* %result32) | |
br label %"Invoke_Meta:Array#new_end" | |
"Invoke_Meta:Array#new_end": ; preds = %"Invoke_Meta:Array#new" | |
%as40 = bitcast %Array* %result39 to %Object* | |
%"::Fn2" = load %Fn2*, %Fn2** @"::Fn2", align 8 | |
%sk_ptr = call %"Shiika::Internal::Ptr"* @box_i8ptr(i8* bitcast (%Array* (%Fn2*, %Object*, %Object*)* @"lambda_7_in_Array#flat_map" to i8*)) | |
%the_main = bitcast %Array* %self to %Object* | |
%"::Array41" = load %Array*, %Array** @"::Array", align 8 | |
%result42 = call %Array* @Meta_Array_new(%Array* %"::Array41") | |
%result43 = call %Fn2* @Meta_Fn2_new(%Fn2* %"::Fn2", %"Shiika::Internal::Ptr"* %sk_ptr, %Object* %the_main, %Array* %result42) | |
%as44 = bitcast %Fn2* %result43 to %Object* | |
br label %"Invoke_Array#fold" | |
"Invoke_Array#fold": ; preds = %"Invoke_Meta:Array#new_end" | |
%addr_vtable45 = getelementptr inbounds %Array, %Array* %result, i32 0, i32 0 | |
%vtable46 = load i8*, i8** %addr_vtable45, align 8 | |
%vtable_ptr47 = bitcast i8* %vtable46 to [54 x i8*]* | |
%vtable48 = load [54 x i8*], [54 x i8*]* %vtable_ptr47, align 8 | |
%func_raw49 = extractvalue [54 x i8*] %vtable48, 33 | |
%func50 = bitcast i8* %func_raw49 to %Array* (%Array*, %Object*, %Object*)* | |
%result51 = call %Array* %func50(%Array* %result, %Object* %as40, %Object* %as44) | |
br label %"Invoke_Array#fold_end" | |
"Invoke_Array#fold_end": ; preds = %"Invoke_Array#fold" | |
br label %Ret | |
Ret: ; preds = %"Invoke_Array#fold_end" | |
br label %End | |
} | |
define %Object* @Array_fold(%Array* %self, %Object* %initial_sum, %Fn2* %f) { | |
alloca: | |
%sum = alloca %Object*, align 8 | |
br label %alloca_End | |
alloca_End: ; preds = %alloca | |
store %Object* %initial_sum, %Object** %sum, align 8 | |
%"::Fn1" = load %Fn1*, %Fn1** @"::Fn1", align 8 | |
%sk_ptr = call %"Shiika::Internal::Ptr"* @box_i8ptr(i8* bitcast (%Object* (%Fn1*, %Object*)* @"lambda_8_in_Array#fold" to i8*)) | |
%the_main = bitcast %Array* %self to %Object* | |
%"::Array" = load %Array*, %Array** @"::Array", align 8 | |
%result = call %Array* @Meta_Array_new(%Array* %"::Array") | |
%capture_item = bitcast %Object** %sum to %Object* | |
%_ = call %Void* @Array_push(%Array* %result, %Object* %capture_item) | |
%capture_item1 = bitcast %Fn2* %f to %Object* | |
%_2 = call %Void* @Array_push(%Array* %result, %Object* %capture_item1) | |
%capture_item3 = bitcast %Object** %sum to %Object* | |
%_4 = call %Void* @Array_push(%Array* %result, %Object* %capture_item3) | |
%result5 = call %Fn1* @Meta_Fn1_new(%Fn1* %"::Fn1", %"Shiika::Internal::Ptr"* %sk_ptr, %Object* %the_main, %Array* %result) | |
%as = bitcast %Fn1* %result5 to %Object* | |
br label %"Invoke_Array#each" | |
End: ; preds = %Ret | |
%methodResult = phi %Object* [ %sum8, %Ret ] | |
ret %Object* %methodResult | |
"Invoke_Array#each": ; preds = %alloca_End | |
%addr_vtable = getelementptr inbounds %Array, %Array* %self, i32 0, i32 0 | |
%vtable = load i8*, i8** %addr_vtable, align 8 | |
%vtable_ptr = bitcast i8* %vtable to [54 x i8*]* | |
%vtable6 = load [54 x i8*], [54 x i8*]* %vtable_ptr, align 8 | |
%func_raw = extractvalue [54 x i8*] %vtable6, 29 | |
%func = bitcast i8* %func_raw to %Void* (%Array*, %Object*)* | |
%result7 = call %Void* %func(%Array* %self, %Object* %as) | |
br label %"Invoke_Array#each_end" | |
"Invoke_Array#each_end": ; preds = %"Invoke_Array#each" | |
%sum8 = load %Object*, %Object** %sum, align 8 | |
br label %Ret | |
Ret: ; preds = %"Invoke_Array#each_end" | |
br label %End | |
} | |
define %Bool* @"Array_includes?"(%Array* %self, %Object* %item) { | |
alloca: | |
%ret = alloca %Bool*, align 8 | |
br label %alloca_End | |
alloca_End: ; preds = %alloca | |
%sk_bool = call %Bool* @box_bool(i1 false) | |
store %Bool* %sk_bool, %Bool** %ret, align 8 | |
%"::Fn1" = load %Fn1*, %Fn1** @"::Fn1", align 8 | |
%sk_ptr = call %"Shiika::Internal::Ptr"* @box_i8ptr(i8* bitcast (%Void* (%Fn1*, %Object*)* @"lambda_9_in_Array#includes?" to i8*)) | |
%the_main = bitcast %Array* %self to %Object* | |
%"::Array" = load %Array*, %Array** @"::Array", align 8 | |
%result = call %Array* @Meta_Array_new(%Array* %"::Array") | |
%_ = call %Void* @Array_push(%Array* %result, %Object* %item) | |
%capture_item = bitcast %Bool** %ret to %Object* | |
%_1 = call %Void* @Array_push(%Array* %result, %Object* %capture_item) | |
%result2 = call %Fn1* @Meta_Fn1_new(%Fn1* %"::Fn1", %"Shiika::Internal::Ptr"* %sk_ptr, %Object* %the_main, %Array* %result) | |
%as = bitcast %Fn1* %result2 to %Object* | |
br label %"Invoke_Array#each" | |
End: ; preds = %Ret | |
%methodResult = phi %Bool* [ %ret5, %Ret ] | |
ret %Bool* %methodResult | |
"Invoke_Array#each": ; preds = %alloca_End | |
%addr_vtable = getelementptr inbounds %Array, %Array* %self, i32 0, i32 0 | |
%vtable = load i8*, i8** %addr_vtable, align 8 | |
%vtable_ptr = bitcast i8* %vtable to [54 x i8*]* | |
%vtable3 = load [54 x i8*], [54 x i8*]* %vtable_ptr, align 8 | |
%func_raw = extractvalue [54 x i8*] %vtable3, 29 | |
%func = bitcast i8* %func_raw to %Void* (%Array*, %Object*)* | |
%result4 = call %Void* %func(%Array* %self, %Object* %as) | |
br label %"Invoke_Array#each_end" | |
"Invoke_Array#each_end": ; preds = %"Invoke_Array#each" | |
%ret5 = load %Bool*, %Bool** %ret, align 8 | |
br label %Ret | |
Ret: ; preds = %"Invoke_Array#each_end" | |
br label %End | |
} | |
define %String* @Array_inspect(%Array* %self) { | |
alloca: | |
%first = alloca %Bool*, align 8 | |
%ret = alloca %MutableString*, align 8 | |
br label %alloca_End | |
alloca_End: ; preds = %alloca | |
%sk_bool = call %Bool* @box_bool(i1 true) | |
store %Bool* %sk_bool, %Bool** %first, align 8 | |
%"::MutableString" = load %MutableString*, %MutableString** @"::MutableString", align 8 | |
br label %"Invoke_Meta:MutableString#new" | |
End: ; preds = %Ret | |
%methodResult = phi %String* [ %result43, %Ret ] | |
ret %String* %methodResult | |
"Invoke_Meta:MutableString#new": ; preds = %alloca_End | |
%addr_vtable = getelementptr inbounds %MutableString, %MutableString* %"::MutableString", i32 0, i32 0 | |
%vtable = load i8*, i8** %addr_vtable, align 8 | |
%vtable_ptr = bitcast i8* %vtable to [23 x i8*]* | |
%vtable1 = load [23 x i8*], [23 x i8*]* %vtable_ptr, align 8 | |
%func_raw = extractvalue [23 x i8*] %vtable1, 22 | |
%func = bitcast i8* %func_raw to %MutableString* (%MutableString*)* | |
%result = call %MutableString* %func(%MutableString* %"::MutableString") | |
br label %"Invoke_Meta:MutableString#new_end" | |
"Invoke_Meta:MutableString#new_end": ; preds = %"Invoke_Meta:MutableString#new" | |
store %MutableString* %result, %MutableString** %ret, align 8 | |
%ret2 = load %MutableString*, %MutableString** %ret, align 8 | |
%sk_str = call %String* @gen_literal_string(i8* getelementptr inbounds ([2 x i8], [2 x i8]* @str_46, i32 0, i32 0), i64 1) | |
br label %"Invoke_MutableString#append" | |
"Invoke_MutableString#append": ; preds = %"Invoke_Meta:MutableString#new_end" | |
%addr_vtable3 = getelementptr inbounds %MutableString, %MutableString* %ret2, i32 0, i32 0 | |
%vtable4 = load i8*, i8** %addr_vtable3, align 8 | |
%vtable_ptr5 = bitcast i8* %vtable4 to [28 x i8*]* | |
%vtable6 = load [28 x i8*], [28 x i8*]* %vtable_ptr5, align 8 | |
%func_raw7 = extractvalue [28 x i8*] %vtable6, 18 | |
%func8 = bitcast i8* %func_raw7 to %Void* (%MutableString*, %String*)* | |
%result9 = call %Void* %func8(%MutableString* %ret2, %String* %sk_str) | |
br label %"Invoke_MutableString#append_end" | |
"Invoke_MutableString#append_end": ; preds = %"Invoke_MutableString#append" | |
%"::Fn1" = load %Fn1*, %Fn1** @"::Fn1", align 8 | |
%sk_ptr = call %"Shiika::Internal::Ptr"* @box_i8ptr(i8* bitcast (%Void* (%Fn1*, %Object*)* @"lambda_10_in_Array#inspect" to i8*)) | |
%the_main = bitcast %Array* %self to %Object* | |
%"::Array" = load %Array*, %Array** @"::Array", align 8 | |
%result10 = call %Array* @Meta_Array_new(%Array* %"::Array") | |
%capture_item = bitcast %Bool** %first to %Object* | |
%_ = call %Void* @Array_push(%Array* %result10, %Object* %capture_item) | |
%capture_item11 = bitcast %Bool** %first to %Object* | |
%_12 = call %Void* @Array_push(%Array* %result10, %Object* %capture_item11) | |
%capture_item13 = bitcast %MutableString** %ret to %Object* | |
%_14 = call %Void* @Array_push(%Array* %result10, %Object* %capture_item13) | |
%capture_item15 = bitcast %MutableString** %ret to %Object* | |
%_16 = call %Void* @Array_push(%Array* %result10, %Object* %capture_item15) | |
%result17 = call %Fn1* @Meta_Fn1_new(%Fn1* %"::Fn1", %"Shiika::Internal::Ptr"* %sk_ptr, %Object* %the_main, %Array* %result10) | |
%as = bitcast %Fn1* %result17 to %Object* | |
br label %"Invoke_Array#each" | |
"Invoke_Array#each": ; preds = %"Invoke_MutableString#append_end" | |
%addr_vtable18 = getelementptr inbounds %Array, %Array* %self, i32 0, i32 0 | |
%vtable19 = load i8*, i8** %addr_vtable18, align 8 | |
%vtable_ptr20 = bitcast i8* %vtable19 to [54 x i8*]* | |
%vtable21 = load [54 x i8*], [54 x i8*]* %vtable_ptr20, align 8 | |
%func_raw22 = extractvalue [54 x i8*] %vtable21, 29 | |
%func23 = bitcast i8* %func_raw22 to %Void* (%Array*, %Object*)* | |
%result24 = call %Void* %func23(%Array* %self, %Object* %as) | |
br label %"Invoke_Array#each_end" | |
"Invoke_Array#each_end": ; preds = %"Invoke_Array#each" | |
%ret25 = load %MutableString*, %MutableString** %ret, align 8 | |
%sk_str26 = call %String* @gen_literal_string(i8* getelementptr inbounds ([2 x i8], [2 x i8]* @str_48, i32 0, i32 0), i64 1) | |
br label %"Invoke_MutableString#append27" | |
"Invoke_MutableString#append27": ; preds = %"Invoke_Array#each_end" | |
%addr_vtable28 = getelementptr inbounds %MutableString, %MutableString* %ret25, i32 0, i32 0 | |
%vtable29 = load i8*, i8** %addr_vtable28, align 8 | |
%vtable_ptr30 = bitcast i8* %vtable29 to [28 x i8*]* | |
%vtable31 = load [28 x i8*], [28 x i8*]* %vtable_ptr30, align 8 | |
%func_raw32 = extractvalue [28 x i8*] %vtable31, 18 | |
%func33 = bitcast i8* %func_raw32 to %Void* (%MutableString*, %String*)* | |
%result34 = call %Void* %func33(%MutableString* %ret25, %String* %sk_str26) | |
br label %"Invoke_MutableString#append_end35" | |
"Invoke_MutableString#append_end35": ; preds = %"Invoke_MutableString#append27" | |
%ret36 = load %MutableString*, %MutableString** %ret, align 8 | |
br label %"Invoke_MutableString#_unsafe_to_s" | |
"Invoke_MutableString#_unsafe_to_s": ; preds = %"Invoke_MutableString#append_end35" | |
%addr_vtable37 = getelementptr inbounds %MutableString, %MutableString* %ret36, i32 0, i32 0 | |
%vtable38 = load i8*, i8** %addr_vtable37, align 8 | |
%vtable_ptr39 = bitcast i8* %vtable38 to [28 x i8*]* | |
%vtable40 = load [28 x i8*], [28 x i8*]* %vtable_ptr39, align 8 | |
%func_raw41 = extractvalue [28 x i8*] %vtable40, 17 | |
%func42 = bitcast i8* %func_raw41 to %String* (%MutableString*)* | |
%result43 = call %String* %func42(%MutableString* %ret36) | |
br label %"Invoke_MutableString#_unsafe_to_s_end" | |
"Invoke_MutableString#_unsafe_to_s_end": ; preds = %"Invoke_MutableString#_unsafe_to_s" | |
br label %Ret | |
Ret: ; preds = %"Invoke_MutableString#_unsafe_to_s_end" | |
br label %End | |
} | |
define %Bool* @"Array_empty?"(%Array* %self) { | |
%"addr_@n_items" = getelementptr inbounds %Array, %Array* %self, i32 0, i32 3 | |
%"@n_items" = load %Int*, %Int** %"addr_@n_items", align 8 | |
%sk_int = call %Int* @box_int(i64 0) | |
br label %"Invoke_Int#==" | |
End: ; preds = %Ret | |
%methodResult = phi %Bool* [ %result, %Ret ] | |
ret %Bool* %methodResult | |
"Invoke_Int#==": ; preds = %0 | |
%addr_vtable = getelementptr inbounds %Int, %Int* %"@n_items", i32 0, i32 0 | |
%vtable = load i8*, i8** %addr_vtable, align 8 | |
%vtable_ptr = bitcast i8* %vtable to [35 x i8*]* | |
%vtable1 = load [35 x i8*], [35 x i8*]* %vtable_ptr, align 8 | |
%func_raw = extractvalue [35 x i8*] %vtable1, 2 | |
%func = bitcast i8* %func_raw to %Bool* (%Int*, %Int*)* | |
%result = call %Bool* %func(%Int* %"@n_items", %Int* %sk_int) | |
br label %"Invoke_Int#==_end" | |
"Invoke_Int#==_end": ; preds = %"Invoke_Int#==" | |
br label %Ret | |
Ret: ; preds = %"Invoke_Int#==_end" | |
br label %End | |
} | |
define %String* @Array_join(%Array* %self, %String* %separator) { | |
alloca: | |
%first = alloca %Bool*, align 8 | |
%ret = alloca %MutableString*, align 8 | |
br label %alloca_End | |
alloca_End: ; preds = %alloca | |
%sk_bool = call %Bool* @box_bool(i1 true) | |
store %Bool* %sk_bool, %Bool** %first, align 8 | |
%"::MutableString" = load %MutableString*, %MutableString** @"::MutableString", align 8 | |
br label %"Invoke_Meta:MutableString#new" | |
End: ; preds = %Ret | |
%methodResult = phi %String* [ %result26, %Ret ] | |
ret %String* %methodResult | |
"Invoke_Meta:MutableString#new": ; preds = %alloca_End | |
%addr_vtable = getelementptr inbounds %MutableString, %MutableString* %"::MutableString", i32 0, i32 0 | |
%vtable = load i8*, i8** %addr_vtable, align 8 | |
%vtable_ptr = bitcast i8* %vtable to [23 x i8*]* | |
%vtable1 = load [23 x i8*], [23 x i8*]* %vtable_ptr, align 8 | |
%func_raw = extractvalue [23 x i8*] %vtable1, 22 | |
%func = bitcast i8* %func_raw to %MutableString* (%MutableString*)* | |
%result = call %MutableString* %func(%MutableString* %"::MutableString") | |
br label %"Invoke_Meta:MutableString#new_end" | |
"Invoke_Meta:MutableString#new_end": ; preds = %"Invoke_Meta:MutableString#new" | |
store %MutableString* %result, %MutableString** %ret, align 8 | |
%"::Fn1" = load %Fn1*, %Fn1** @"::Fn1", align 8 | |
%sk_ptr = call %"Shiika::Internal::Ptr"* @box_i8ptr(i8* bitcast (%Void* (%Fn1*, %Object*)* @"lambda_11_in_Array#join" to i8*)) | |
%the_main = bitcast %Array* %self to %Object* | |
%"::Array" = load %Array*, %Array** @"::Array", align 8 | |
%result2 = call %Array* @Meta_Array_new(%Array* %"::Array") | |
%capture_item = bitcast %Bool** %first to %Object* | |
%_ = call %Void* @Array_push(%Array* %result2, %Object* %capture_item) | |
%capture_item3 = bitcast %Bool** %first to %Object* | |
%_4 = call %Void* @Array_push(%Array* %result2, %Object* %capture_item3) | |
%capture_item5 = bitcast %String* %separator to %Object* | |
%_6 = call %Void* @Array_push(%Array* %result2, %Object* %capture_item5) | |
%capture_item7 = bitcast %MutableString** %ret to %Object* | |
%_8 = call %Void* @Array_push(%Array* %result2, %Object* %capture_item7) | |
%capture_item9 = bitcast %MutableString** %ret to %Object* | |
%_10 = call %Void* @Array_push(%Array* %result2, %Object* %capture_item9) | |
%result11 = call %Fn1* @Meta_Fn1_new(%Fn1* %"::Fn1", %"Shiika::Internal::Ptr"* %sk_ptr, %Object* %the_main, %Array* %result2) | |
%as = bitcast %Fn1* %result11 to %Object* | |
br label %"Invoke_Array#each" | |
"Invoke_Array#each": ; preds = %"Invoke_Meta:MutableString#new_end" | |
%addr_vtable12 = getelementptr inbounds %Array, %Array* %self, i32 0, i32 0 | |
%vtable13 = load i8*, i8** %addr_vtable12, align 8 | |
%vtable_ptr14 = bitcast i8* %vtable13 to [54 x i8*]* | |
%vtable15 = load [54 x i8*], [54 x i8*]* %vtable_ptr14, align 8 | |
%func_raw16 = extractvalue [54 x i8*] %vtable15, 29 | |
%func17 = bitcast i8* %func_raw16 to %Void* (%Array*, %Object*)* | |
%result18 = call %Void* %func17(%Array* %self, %Object* %as) | |
br label %"Invoke_Array#each_end" | |
"Invoke_Array#each_end": ; preds = %"Invoke_Array#each" | |
%ret19 = load %MutableString*, %MutableString** %ret, align 8 | |
br label %"Invoke_MutableString#_unsafe_to_s" | |
"Invoke_MutableString#_unsafe_to_s": ; preds = %"Invoke_Array#each_end" | |
%addr_vtable20 = getelementptr inbounds %MutableString, %MutableString* %ret19, i32 0, i32 0 | |
%vtable21 = load i8*, i8** %addr_vtable20, align 8 | |
%vtable_ptr22 = bitcast i8* %vtable21 to [28 x i8*]* | |
%vtable23 = load [28 x i8*], [28 x i8*]* %vtable_ptr22, align 8 | |
%func_raw24 = extractvalue [28 x i8*] %vtable23, 17 | |
%func25 = bitcast i8* %func_raw24 to %String* (%MutableString*)* | |
%result26 = call %String* %func25(%MutableString* %ret19) | |
br label %"Invoke_MutableString#_unsafe_to_s_end" | |
"Invoke_MutableString#_unsafe_to_s_end": ; preds = %"Invoke_MutableString#_unsafe_to_s" | |
br label %Ret | |
Ret: ; preds = %"Invoke_MutableString#_unsafe_to_s_end" | |
br label %End | |
} | |
define %Maybe* @Array_last(%Array* %self) { | |
alloca: | |
%"ary@12_" = alloca %Array*, align 8 | |
br label %alloca_End | |
alloca_End: ; preds = %alloca | |
br label %IfBegin | |
End: ; preds = %Ret | |
%methodResult = phi %Maybe* [ %ifResult, %Ret ] | |
ret %Maybe* %methodResult | |
IfBegin: ; preds = %alloca_End | |
%"addr_@n_items" = getelementptr inbounds %Array, %Array* %self, i32 0, i32 3 | |
%"@n_items" = load %Int*, %Int** %"addr_@n_items", align 8 | |
%sk_int = call %Int* @box_int(i64 0) | |
br label %"Invoke_Int#==" | |
IfThen: ; preds = %"Invoke_Int#==_end" | |
%"::None" = load %"Maybe::None"*, %"Maybe::None"** @"::None", align 8 | |
%as = bitcast %"Maybe::None"* %"::None" to %Maybe* | |
br label %IfEnd | |
IfElse: ; preds = %"Invoke_Int#==_end" | |
%"::Some" = load %"Maybe::Some"*, %"Maybe::Some"** @"::Some", align 8 | |
%"::Array" = load %Array*, %Array** @"::Array", align 8 | |
%"::Class" = load %Class.0*, %Class.0** @"::Class", align 8 | |
br label %"Invoke_Class#_specialize1" | |
IfEnd: ; preds = %"Invoke_Meta:Maybe::Some#new_end", %IfThen | |
%ifResult = phi %Maybe* [ %as, %IfThen ], [ %as60, %"Invoke_Meta:Maybe::Some#new_end" ] | |
br label %Ret | |
"Invoke_Int#==": ; preds = %IfBegin | |
%addr_vtable = getelementptr inbounds %Int, %Int* %"@n_items", i32 0, i32 0 | |
%vtable = load i8*, i8** %addr_vtable, align 8 | |
%vtable_ptr = bitcast i8* %vtable to [35 x i8*]* | |
%vtable1 = load [35 x i8*], [35 x i8*]* %vtable_ptr, align 8 | |
%func_raw = extractvalue [35 x i8*] %vtable1, 2 | |
%func = bitcast i8* %func_raw to %Bool* (%Int*, %Int*)* | |
%result = call %Bool* %func(%Int* %"@n_items", %Int* %sk_int) | |
br label %"Invoke_Int#==_end" | |
"Invoke_Int#==_end": ; preds = %"Invoke_Int#==" | |
%llvm_bool = call i1 @unbox_bool(%Bool* %result) | |
%istrue = icmp eq i1 %llvm_bool, true | |
br i1 %istrue, label %IfThen, label %IfElse | |
"Invoke_Class#_specialize1": ; preds = %IfElse | |
%addr_vtable2 = getelementptr inbounds %Array, %Array* %"::Array", i32 0, i32 0 | |
%vtable3 = load i8*, i8** %addr_vtable2, align 8 | |
%vtable_ptr4 = bitcast i8* %vtable3 to [25 x i8*]* | |
%vtable5 = load [25 x i8*], [25 x i8*]* %vtable_ptr4, align 8 | |
%func_raw6 = extractvalue [25 x i8*] %vtable5, 18 | |
%func7 = bitcast i8* %func_raw6 to %Array* (%Array*, %Class.0*)* | |
%result8 = call %Array* %func7(%Array* %"::Array", %Class.0* %"::Class") | |
br label %"Invoke_Class#_specialize1_end" | |
"Invoke_Class#_specialize1_end": ; preds = %"Invoke_Class#_specialize1" | |
br label %"Invoke_Array#new" | |
"Invoke_Array#new": ; preds = %"Invoke_Class#_specialize1_end" | |
%addr_vtable9 = getelementptr inbounds %Array, %Array* %result8, i32 0, i32 0 | |
%vtable10 = load i8*, i8** %addr_vtable9, align 8 | |
%vtable_ptr11 = bitcast i8* %vtable10 to [25 x i8*]* | |
%vtable12 = load [25 x i8*], [25 x i8*]* %vtable_ptr11, align 8 | |
%func_raw13 = extractvalue [25 x i8*] %vtable12, 23 | |
%func14 = bitcast i8* %func_raw13 to %Array* (%Array*)* | |
%result15 = call %Array* %func14(%Array* %result8) | |
br label %"Invoke_Array#new_end" | |
"Invoke_Array#new_end": ; preds = %"Invoke_Array#new" | |
store %Array* %result15, %Array** %"ary@12_", align 8 | |
%"ary@12_16" = load %Array*, %Array** %"ary@12_", align 8 | |
%addr_class = getelementptr inbounds %Array, %Array* %self, i32 0, i32 1 | |
%class = load %Class.0*, %Class.0** %addr_class, align 8 | |
%sk_int17 = call %Int* @box_int(i64 0) | |
%result18 = call %Class.0* @Class___type__argument(%Class.0* %class, %Int* %sk_int17) | |
%as19 = bitcast %Class.0* %result18 to %Object* | |
br label %"Invoke_Array#push" | |
"Invoke_Array#push": ; preds = %"Invoke_Array#new_end" | |
%addr_vtable20 = getelementptr inbounds %Array, %Array* %"ary@12_16", i32 0, i32 0 | |
%vtable21 = load i8*, i8** %addr_vtable20, align 8 | |
%vtable_ptr22 = bitcast i8* %vtable21 to [54 x i8*]* | |
%vtable23 = load [54 x i8*], [54 x i8*]* %vtable_ptr22, align 8 | |
%func_raw24 = extractvalue [54 x i8*] %vtable23, 45 | |
%func25 = bitcast i8* %func_raw24 to %Void* (%Array*, %Object*)* | |
%result26 = call %Void* %func25(%Array* %"ary@12_16", %Object* %as19) | |
br label %"Invoke_Array#push_end" | |
"Invoke_Array#push_end": ; preds = %"Invoke_Array#push" | |
%"ary@12_27" = load %Array*, %Array** %"ary@12_", align 8 | |
br label %"Invoke_Class#<>" | |
"Invoke_Class#<>": ; preds = %"Invoke_Array#push_end" | |
%addr_vtable28 = getelementptr inbounds %"Maybe::Some", %"Maybe::Some"* %"::Some", i32 0, i32 0 | |
%vtable29 = load i8*, i8** %addr_vtable28, align 8 | |
%vtable_ptr30 = bitcast i8* %vtable29 to [23 x i8*]* | |
%vtable31 = load [23 x i8*], [23 x i8*]* %vtable_ptr30, align 8 | |
%func_raw32 = extractvalue [23 x i8*] %vtable31, 16 | |
%func33 = bitcast i8* %func_raw32 to %"Maybe::Some"* (%"Maybe::Some"*, %Array*)* | |
%result34 = call %"Maybe::Some"* %func33(%"Maybe::Some"* %"::Some", %Array* %"ary@12_27") | |
br label %"Invoke_Class#<>_end" | |
"Invoke_Class#<>_end": ; preds = %"Invoke_Class#<>" | |
%"addr_@n_items35" = getelementptr inbounds %Array, %Array* %self, i32 0, i32 3 | |
%"@n_items36" = load %Int*, %Int** %"addr_@n_items35", align 8 | |
%sk_int37 = call %Int* @box_int(i64 1) | |
br label %"Invoke_Int#-" | |
"Invoke_Int#-": ; preds = %"Invoke_Class#<>_end" | |
%addr_vtable38 = getelementptr inbounds %Int, %Int* %"@n_items36", i32 0, i32 0 | |
%vtable39 = load i8*, i8** %addr_vtable38, align 8 | |
%vtable_ptr40 = bitcast i8* %vtable39 to [35 x i8*]* | |
%vtable41 = load [35 x i8*], [35 x i8*]* %vtable_ptr40, align 8 | |
%func_raw42 = extractvalue [35 x i8*] %vtable41, 19 | |
%func43 = bitcast i8* %func_raw42 to %Int* (%Int*, %Int*)* | |
%result44 = call %Int* %func43(%Int* %"@n_items36", %Int* %sk_int37) | |
br label %"Invoke_Int#-_end" | |
"Invoke_Int#-_end": ; preds = %"Invoke_Int#-" | |
%as45 = bitcast %Int* %result44 to %Object* | |
br label %"Invoke_Array#[]" | |
"Invoke_Array#[]": ; preds = %"Invoke_Int#-_end" | |
%addr_vtable46 = getelementptr inbounds %Array, %Array* %self, i32 0, i32 0 | |
%vtable47 = load i8*, i8** %addr_vtable46, align 8 | |
%vtable_ptr48 = bitcast i8* %vtable47 to [54 x i8*]* | |
%vtable49 = load [54 x i8*], [54 x i8*]* %vtable_ptr48, align 8 | |
%func_raw50 = extractvalue [54 x i8*] %vtable49, 16 | |
%func51 = bitcast i8* %func_raw50 to %Object* (%Array*, %Object*)* | |
%result52 = call %Object* %func51(%Array* %self, %Object* %as45) | |
br label %"Invoke_Array#[]_end" | |
"Invoke_Array#[]_end": ; preds = %"Invoke_Array#[]" | |
br label %"Invoke_Meta:Maybe::Some#new" | |
"Invoke_Meta:Maybe::Some#new": ; preds = %"Invoke_Array#[]_end" | |
%addr_vtable53 = getelementptr inbounds %"Maybe::Some", %"Maybe::Some"* %result34, i32 0, i32 0 | |
%vtable54 = load i8*, i8** %addr_vtable53, align 8 | |
%vtable_ptr55 = bitcast i8* %vtable54 to [23 x i8*]* | |
%vtable56 = load [23 x i8*], [23 x i8*]* %vtable_ptr55, align 8 | |
%func_raw57 = extractvalue [23 x i8*] %vtable56, 22 | |
%func58 = bitcast i8* %func_raw57 to %"Maybe::Some"* (%"Maybe::Some"*, %Object*)* | |
%result59 = call %"Maybe::Some"* %func58(%"Maybe::Some"* %result34, %Object* %result52) | |
br label %"Invoke_Meta:Maybe::Some#new_end" | |
"Invoke_Meta:Maybe::Some#new_end": ; preds = %"Invoke_Meta:Maybe::Some#new" | |
%as60 = bitcast %"Maybe::Some"* %result59 to %Maybe* | |
br label %IfEnd | |
Ret: ; preds = %IfEnd | |
br label %End | |
} | |
define %Int* @Array_length(%Array* %self) { | |
%"addr_@n_items" = getelementptr inbounds %Array, %Array* %self, i32 0, i32 3 | |
%"@n_items" = load %Int*, %Int** %"addr_@n_items", align 8 | |
br label %Ret | |
End: ; preds = %Ret | |
%methodResult = phi %Int* [ %"@n_items", %Ret ] | |
ret %Int* %methodResult | |
Ret: ; preds = %0 | |
br label %End | |
} | |
define %Array* @Array_map(%Array* %self, %Fn1* %f) { | |
alloca: | |
%ret = alloca %Array*, align 8 | |
%"ary@13_" = alloca %Array*, align 8 | |
br label %alloca_End | |
alloca_End: ; preds = %alloca | |
%"::Array" = load %Array*, %Array** @"::Array", align 8 | |
%"::Array1" = load %Array*, %Array** @"::Array", align 8 | |
%"::Class" = load %Class.0*, %Class.0** @"::Class", align 8 | |
br label %"Invoke_Class#_specialize1" | |
End: ; preds = %Ret | |
%methodResult = phi %Array* [ %ret45, %Ret ] | |
ret %Array* %methodResult | |
"Invoke_Class#_specialize1": ; preds = %alloca_End | |
%addr_vtable = getelementptr inbounds %Array, %Array* %"::Array1", i32 0, i32 0 | |
%vtable = load i8*, i8** %addr_vtable, align 8 | |
%vtable_ptr = bitcast i8* %vtable to [25 x i8*]* | |
%vtable2 = load [25 x i8*], [25 x i8*]* %vtable_ptr, align 8 | |
%func_raw = extractvalue [25 x i8*] %vtable2, 18 | |
%func = bitcast i8* %func_raw to %Array* (%Array*, %Class.0*)* | |
%result = call %Array* %func(%Array* %"::Array1", %Class.0* %"::Class") | |
br label %"Invoke_Class#_specialize1_end" | |
"Invoke_Class#_specialize1_end": ; preds = %"Invoke_Class#_specialize1" | |
br label %"Invoke_Array#new" | |
"Invoke_Array#new": ; preds = %"Invoke_Class#_specialize1_end" | |
%addr_vtable3 = getelementptr inbounds %Array, %Array* %result, i32 0, i32 0 | |
%vtable4 = load i8*, i8** %addr_vtable3, align 8 | |
%vtable_ptr5 = bitcast i8* %vtable4 to [25 x i8*]* | |
%vtable6 = load [25 x i8*], [25 x i8*]* %vtable_ptr5, align 8 | |
%func_raw7 = extractvalue [25 x i8*] %vtable6, 23 | |
%func8 = bitcast i8* %func_raw7 to %Array* (%Array*)* | |
%result9 = call %Array* %func8(%Array* %result) | |
br label %"Invoke_Array#new_end" | |
"Invoke_Array#new_end": ; preds = %"Invoke_Array#new" | |
store %Array* %result9, %Array** %"ary@13_", align 8 | |
%"ary@13_10" = load %Array*, %Array** %"ary@13_", align 8 | |
%"::Object" = load %Object*, %Object** @"::Object", align 8 | |
br label %"Invoke_Array#push" | |
"Invoke_Array#push": ; preds = %"Invoke_Array#new_end" | |
%addr_vtable11 = getelementptr inbounds %Array, %Array* %"ary@13_10", i32 0, i32 0 | |
%vtable12 = load i8*, i8** %addr_vtable11, align 8 | |
%vtable_ptr13 = bitcast i8* %vtable12 to [54 x i8*]* | |
%vtable14 = load [54 x i8*], [54 x i8*]* %vtable_ptr13, align 8 | |
%func_raw15 = extractvalue [54 x i8*] %vtable14, 45 | |
%func16 = bitcast i8* %func_raw15 to %Void* (%Array*, %Object*)* | |
%result17 = call %Void* %func16(%Array* %"ary@13_10", %Object* %"::Object") | |
br label %"Invoke_Array#push_end" | |
"Invoke_Array#push_end": ; preds = %"Invoke_Array#push" | |
%"ary@13_18" = load %Array*, %Array** %"ary@13_", align 8 | |
br label %"Invoke_Class#<>" | |
"Invoke_Class#<>": ; preds = %"Invoke_Array#push_end" | |
%addr_vtable19 = getelementptr inbounds %Array, %Array* %"::Array", i32 0, i32 0 | |
%vtable20 = load i8*, i8** %addr_vtable19, align 8 | |
%vtable_ptr21 = bitcast i8* %vtable20 to [25 x i8*]* | |
%vtable22 = load [25 x i8*], [25 x i8*]* %vtable_ptr21, align 8 | |
%func_raw23 = extractvalue [25 x i8*] %vtable22, 16 | |
%func24 = bitcast i8* %func_raw23 to %Array* (%Array*, %Array*)* | |
%result25 = call %Array* %func24(%Array* %"::Array", %Array* %"ary@13_18") | |
br label %"Invoke_Class#<>_end" | |
"Invoke_Class#<>_end": ; preds = %"Invoke_Class#<>" | |
br label %"Invoke_Meta:Array#new" | |
"Invoke_Meta:Array#new": ; preds = %"Invoke_Class#<>_end" | |
%addr_vtable26 = getelementptr inbounds %Array, %Array* %result25, i32 0, i32 0 | |
%vtable27 = load i8*, i8** %addr_vtable26, align 8 | |
%vtable_ptr28 = bitcast i8* %vtable27 to [25 x i8*]* | |
%vtable29 = load [25 x i8*], [25 x i8*]* %vtable_ptr28, align 8 | |
%func_raw30 = extractvalue [25 x i8*] %vtable29, 23 | |
%func31 = bitcast i8* %func_raw30 to %Array* (%Array*)* | |
%result32 = call %Array* %func31(%Array* %result25) | |
br label %"Invoke_Meta:Array#new_end" | |
"Invoke_Meta:Array#new_end": ; preds = %"Invoke_Meta:Array#new" | |
store %Array* %result32, %Array** %ret, align 8 | |
%"::Fn1" = load %Fn1*, %Fn1** @"::Fn1", align 8 | |
%sk_ptr = call %"Shiika::Internal::Ptr"* @box_i8ptr(i8* bitcast (%Void* (%Fn1*, %Object*)* @"lambda_12_in_Array#map" to i8*)) | |
%the_main = bitcast %Array* %self to %Object* | |
%"::Array33" = load %Array*, %Array** @"::Array", align 8 | |
%result34 = call %Array* @Meta_Array_new(%Array* %"::Array33") | |
%capture_item = bitcast %Fn1* %f to %Object* | |
%_ = call %Void* @Array_push(%Array* %result34, %Object* %capture_item) | |
%capture_item35 = bitcast %Array** %ret to %Object* | |
%_36 = call %Void* @Array_push(%Array* %result34, %Object* %capture_item35) | |
%result37 = call %Fn1* @Meta_Fn1_new(%Fn1* %"::Fn1", %"Shiika::Internal::Ptr"* %sk_ptr, %Object* %the_main, %Array* %result34) | |
%as = bitcast %Fn1* %result37 to %Object* | |
br label %"Invoke_Array#each" | |
"Invoke_Array#each": ; preds = %"Invoke_Meta:Array#new_end" | |
%addr_vtable38 = getelementptr inbounds %Array, %Array* %self, i32 0, i32 0 | |
%vtable39 = load i8*, i8** %addr_vtable38, align 8 | |
%vtable_ptr40 = bitcast i8* %vtable39 to [54 x i8*]* | |
%vtable41 = load [54 x i8*], [54 x i8*]* %vtable_ptr40, align 8 | |
%func_raw42 = extractvalue [54 x i8*] %vtable41, 29 | |
%func43 = bitcast i8* %func_raw42 to %Void* (%Array*, %Object*)* | |
%result44 = call %Void* %func43(%Array* %self, %Object* %as) | |
br label %"Invoke_Array#each_end" | |
"Invoke_Array#each_end": ; preds = %"Invoke_Array#each" | |
%ret45 = load %Array*, %Array** %ret, align 8 | |
br label %Ret | |
Ret: ; preds = %"Invoke_Array#each_end" | |
br label %End | |
} | |
define %Bool* @"Array_none?"(%Array* %self, %Fn1* %f) { | |
alloca: | |
%ret = alloca %Bool*, align 8 | |
br label %alloca_End | |
alloca_End: ; preds = %alloca | |
%sk_bool = call %Bool* @box_bool(i1 true) | |
store %Bool* %sk_bool, %Bool** %ret, align 8 | |
%"::Fn1" = load %Fn1*, %Fn1** @"::Fn1", align 8 | |
%sk_ptr = call %"Shiika::Internal::Ptr"* @box_i8ptr(i8* bitcast (%Void* (%Fn1*, %Object*)* @"lambda_13_in_Array#none?" to i8*)) | |
%the_main = bitcast %Array* %self to %Object* | |
%"::Array" = load %Array*, %Array** @"::Array", align 8 | |
%result = call %Array* @Meta_Array_new(%Array* %"::Array") | |
%capture_item = bitcast %Fn1* %f to %Object* | |
%_ = call %Void* @Array_push(%Array* %result, %Object* %capture_item) | |
%capture_item1 = bitcast %Bool** %ret to %Object* | |
%_2 = call %Void* @Array_push(%Array* %result, %Object* %capture_item1) | |
%result3 = call %Fn1* @Meta_Fn1_new(%Fn1* %"::Fn1", %"Shiika::Internal::Ptr"* %sk_ptr, %Object* %the_main, %Array* %result) | |
%as = bitcast %Fn1* %result3 to %Object* | |
br label %"Invoke_Array#each" | |
End: ; preds = %Ret | |
%methodResult = phi %Bool* [ %ret6, %Ret ] | |
ret %Bool* %methodResult | |
"Invoke_Array#each": ; preds = %alloca_End | |
%addr_vtable = getelementptr inbounds %Array, %Array* %self, i32 0, i32 0 | |
%vtable = load i8*, i8** %addr_vtable, align 8 | |
%vtable_ptr = bitcast i8* %vtable to [54 x i8*]* | |
%vtable4 = load [54 x i8*], [54 x i8*]* %vtable_ptr, align 8 | |
%func_raw = extractvalue [54 x i8*] %vtable4, 29 | |
%func = bitcast i8* %func_raw to %Void* (%Array*, %Object*)* | |
%result5 = call %Void* %func(%Array* %self, %Object* %as) | |
br label %"Invoke_Array#each_end" | |
"Invoke_Array#each_end": ; preds = %"Invoke_Array#each" | |
%ret6 = load %Bool*, %Bool** %ret, align 8 | |
br label %Ret | |
Ret: ; preds = %"Invoke_Array#each_end" | |
br label %End | |
} | |
define %Object* @Array_pop(%Array* %self) { | |
alloca: | |
%ret = alloca %Object*, align 8 | |
br label %alloca_End | |
alloca_End: ; preds = %alloca | |
br label %IfBegin | |
End: ; preds = %Ret | |
%methodResult = phi %Object* [ %ret41, %Ret ] | |
ret %Object* %methodResult | |
IfBegin: ; preds = %alloca_End | |
%"addr_@n_items" = getelementptr inbounds %Array, %Array* %self, i32 0, i32 3 | |
%"@n_items" = load %Int*, %Int** %"addr_@n_items", align 8 | |
%sk_int = call %Int* @box_int(i64 0) | |
br label %"Invoke_Int#==" | |
IfThen: ; preds = %"Invoke_Int#==_end" | |
%as = bitcast %Array* %self to %Object* | |
%sk_str = call %String* @gen_literal_string(i8* getelementptr inbounds ([28 x i8], [28 x i8]* @str_49, i32 0, i32 0), i64 27) | |
%as2 = bitcast %String* %sk_str to %Object* | |
br label %"Invoke_Object#panic" | |
IfElse: ; preds = %"Invoke_Int#==_end" | |
%"::Void9" = load %Void*, %Void** @"::Void", align 8 | |
br label %IfEnd | |
IfEnd: ; preds = %IfElse | |
%"addr_@n_items10" = getelementptr inbounds %Array, %Array* %self, i32 0, i32 3 | |
%"@n_items11" = load %Int*, %Int** %"addr_@n_items10", align 8 | |
%sk_int12 = call %Int* @box_int(i64 1) | |
br label %"Invoke_Int#-" | |
"Invoke_Int#==": ; preds = %IfBegin | |
%addr_vtable = getelementptr inbounds %Int, %Int* %"@n_items", i32 0, i32 0 | |
%vtable = load i8*, i8** %addr_vtable, align 8 | |
%vtable_ptr = bitcast i8* %vtable to [35 x i8*]* | |
%vtable1 = load [35 x i8*], [35 x i8*]* %vtable_ptr, align 8 | |
%func_raw = extractvalue [35 x i8*] %vtable1, 2 | |
%func = bitcast i8* %func_raw to %Bool* (%Int*, %Int*)* | |
%result = call %Bool* %func(%Int* %"@n_items", %Int* %sk_int) | |
br label %"Invoke_Int#==_end" | |
"Invoke_Int#==_end": ; preds = %"Invoke_Int#==" | |
%llvm_bool = call i1 @unbox_bool(%Bool* %result) | |
%istrue = icmp eq i1 %llvm_bool, true | |
br i1 %istrue, label %IfThen, label %IfElse | |
"Invoke_Object#panic": ; preds = %IfThen | |
%addr_vtable3 = getelementptr inbounds %Object, %Object* %as, i32 0, i32 0 | |
%vtable4 = load i8*, i8** %addr_vtable3, align 8 | |
%vtable_ptr5 = bitcast i8* %vtable4 to [16 x i8*]* | |
%vtable6 = load [16 x i8*], [16 x i8*]* %vtable_ptr5, align 8 | |
%func_raw7 = extractvalue [16 x i8*] %vtable6, 12 | |
%func8 = bitcast i8* %func_raw7 to void (%Object*, %Object*)* | |
call void %func8(%Object* %as, %Object* %as2) | |
%"::Void" = load %Void*, %Void** @"::Void", align 8 | |
unreachable | |
"Invoke_Int#-": ; preds = %IfEnd | |
%addr_vtable13 = getelementptr inbounds %Int, %Int* %"@n_items11", i32 0, i32 0 | |
%vtable14 = load i8*, i8** %addr_vtable13, align 8 | |
%vtable_ptr15 = bitcast i8* %vtable14 to [35 x i8*]* | |
%vtable16 = load [35 x i8*], [35 x i8*]* %vtable_ptr15, align 8 | |
%func_raw17 = extractvalue [35 x i8*] %vtable16, 19 | |
%func18 = bitcast i8* %func_raw17 to %Int* (%Int*, %Int*)* | |
%result19 = call %Int* %func18(%Int* %"@n_items11", %Int* %sk_int12) | |
br label %"Invoke_Int#-_end" | |
"Invoke_Int#-_end": ; preds = %"Invoke_Int#-" | |
%as20 = bitcast %Int* %result19 to %Object* | |
br label %"Invoke_Array#[]" | |
"Invoke_Array#[]": ; preds = %"Invoke_Int#-_end" | |
%addr_vtable21 = getelementptr inbounds %Array, %Array* %self, i32 0, i32 0 | |
%vtable22 = load i8*, i8** %addr_vtable21, align 8 | |
%vtable_ptr23 = bitcast i8* %vtable22 to [54 x i8*]* | |
%vtable24 = load [54 x i8*], [54 x i8*]* %vtable_ptr23, align 8 | |
%func_raw25 = extractvalue [54 x i8*] %vtable24, 16 | |
%func26 = bitcast i8* %func_raw25 to %Object* (%Array*, %Object*)* | |
%result27 = call %Object* %func26(%Array* %self, %Object* %as20) | |
br label %"Invoke_Array#[]_end" | |
"Invoke_Array#[]_end": ; preds = %"Invoke_Array#[]" | |
store %Object* %result27, %Object** %ret, align 8 | |
%"addr_@n_items28" = getelementptr inbounds %Array, %Array* %self, i32 0, i32 3 | |
%"@n_items29" = load %Int*, %Int** %"addr_@n_items28", align 8 | |
%sk_int30 = call %Int* @box_int(i64 1) | |
br label %"Invoke_Int#-31" | |
"Invoke_Int#-31": ; preds = %"Invoke_Array#[]_end" | |
%addr_vtable32 = getelementptr inbounds %Int, %Int* %"@n_items29", i32 0, i32 0 | |
%vtable33 = load i8*, i8** %addr_vtable32, align 8 | |
%vtable_ptr34 = bitcast i8* %vtable33 to [35 x i8*]* | |
%vtable35 = load [35 x i8*], [35 x i8*]* %vtable_ptr34, align 8 | |
%func_raw36 = extractvalue [35 x i8*] %vtable35, 19 | |
%func37 = bitcast i8* %func_raw36 to %Int* (%Int*, %Int*)* | |
%result38 = call %Int* %func37(%Int* %"@n_items29", %Int* %sk_int30) | |
br label %"Invoke_Int#-_end39" | |
"Invoke_Int#-_end39": ; preds = %"Invoke_Int#-31" | |
%"addr_@n_items40" = getelementptr inbounds %Array, %Array* %self, i32 0, i32 3 | |
store %Int* %result38, %Int** %"addr_@n_items40", align 8 | |
%ret41 = load %Object*, %Object** %ret, align 8 | |
br label %Ret | |
Ret: ; preds = %"Invoke_Int#-_end39" | |
br label %End | |
} | |
define %Void* @Array_push(%Array* %self, %Object* %value) { | |
alloca: | |
%ptr = alloca %"Shiika::Internal::Ptr"*, align 8 | |
br label %alloca_End | |
alloca_End: ; preds = %alloca | |
br label %IfBegin | |
End: ; preds = %Ret | |
%"::Void113" = load %Void*, %Void** @"::Void", align 8 | |
ret %Void* %"::Void113" | |
IfBegin: ; preds = %alloca_End | |
%"addr_@n_items" = getelementptr inbounds %Array, %Array* %self, i32 0, i32 3 | |
%"@n_items" = load %Int*, %Int** %"addr_@n_items", align 8 | |
%"addr_@capa" = getelementptr inbounds %Array, %Array* %self, i32 0, i32 2 | |
%"@capa" = load %Int*, %Int** %"addr_@capa", align 8 | |
br label %"Invoke_Int#==" | |
IfThen: ; preds = %"Invoke_Int#==_end" | |
br label %IfBegin2 | |
IfElse: ; preds = %"Invoke_Int#==_end" | |
%"::Void68" = load %Void*, %Void** @"::Void", align 8 | |
br label %IfEnd | |
IfEnd: ; preds = %IfElse, %"Invoke_Meta:Shiika::Internal::Memory#gc_realloc_end" | |
%ifResult69 = phi %Void* [ %"::Void", %"Invoke_Meta:Shiika::Internal::Memory#gc_realloc_end" ], [ %"::Void68", %IfElse ] | |
%"addr_@items70" = getelementptr inbounds %Array, %Array* %self, i32 0, i32 4 | |
%"@items71" = load %"Shiika::Internal::Ptr"*, %"Shiika::Internal::Ptr"** %"addr_@items70", align 8 | |
%"addr_@n_items72" = getelementptr inbounds %Array, %Array* %self, i32 0, i32 3 | |
%"@n_items73" = load %Int*, %Int** %"addr_@n_items72", align 8 | |
%"::Array::BYTES_OF_PTR74" = load %Int*, %Int** @"::Array::BYTES_OF_PTR", align 8 | |
br label %"Invoke_Int#*75" | |
"Invoke_Int#==": ; preds = %IfBegin | |
%addr_vtable = getelementptr inbounds %Int, %Int* %"@n_items", i32 0, i32 0 | |
%vtable = load i8*, i8** %addr_vtable, align 8 | |
%vtable_ptr = bitcast i8* %vtable to [35 x i8*]* | |
%vtable1 = load [35 x i8*], [35 x i8*]* %vtable_ptr, align 8 | |
%func_raw = extractvalue [35 x i8*] %vtable1, 2 | |
%func = bitcast i8* %func_raw to %Bool* (%Int*, %Int*)* | |
%result = call %Bool* %func(%Int* %"@n_items", %Int* %"@capa") | |
br label %"Invoke_Int#==_end" | |
"Invoke_Int#==_end": ; preds = %"Invoke_Int#==" | |
%llvm_bool = call i1 @unbox_bool(%Bool* %result) | |
%istrue = icmp eq i1 %llvm_bool, true | |
br i1 %istrue, label %IfThen, label %IfElse | |
IfBegin2: ; preds = %IfThen | |
%"addr_@capa6" = getelementptr inbounds %Array, %Array* %self, i32 0, i32 2 | |
%"@capa7" = load %Int*, %Int** %"addr_@capa6", align 8 | |
%sk_int = call %Int* @box_int(i64 1024) | |
br label %"Invoke_Int#<" | |
IfThen3: ; preds = %"Invoke_Int#<_end" | |
%"addr_@capa17" = getelementptr inbounds %Array, %Array* %self, i32 0, i32 2 | |
%"@capa18" = load %Int*, %Int** %"addr_@capa17", align 8 | |
%sk_int19 = call %Int* @box_int(i64 2) | |
br label %"Invoke_Int#*" | |
IfElse4: ; preds = %"Invoke_Int#<_end" | |
%"addr_@capa28" = getelementptr inbounds %Array, %Array* %self, i32 0, i32 2 | |
%"@capa29" = load %Int*, %Int** %"addr_@capa28", align 8 | |
%sk_int30 = call %Int* @box_int(i64 256) | |
br label %"Invoke_Int#+" | |
IfEnd5: ; preds = %"Invoke_Int#+_end", %"Invoke_Int#*_end" | |
%ifResult = phi %Int* [ %result26, %"Invoke_Int#*_end" ], [ %result37, %"Invoke_Int#+_end" ] | |
%"::Shiika::Internal::Memory" = load %"Shiika::Internal::Memory"*, %"Shiika::Internal::Memory"** @"::Shiika::Internal::Memory", align 8 | |
%"addr_@items" = getelementptr inbounds %Array, %Array* %self, i32 0, i32 4 | |
%"@items" = load %"Shiika::Internal::Ptr"*, %"Shiika::Internal::Ptr"** %"addr_@items", align 8 | |
%"::Array::BYTES_OF_PTR" = load %Int*, %Int** @"::Array::BYTES_OF_PTR", align 8 | |
%"addr_@capa39" = getelementptr inbounds %Array, %Array* %self, i32 0, i32 2 | |
%"@capa40" = load %Int*, %Int** %"addr_@capa39", align 8 | |
br label %"Invoke_Int#*41" | |
"Invoke_Int#<": ; preds = %IfBegin2 | |
%addr_vtable8 = getelementptr inbounds %Int, %Int* %"@capa7", i32 0, i32 0 | |
%vtable9 = load i8*, i8** %addr_vtable8, align 8 | |
%vtable_ptr10 = bitcast i8* %vtable9 to [35 x i8*]* | |
%vtable11 = load [35 x i8*], [35 x i8*]* %vtable_ptr10, align 8 | |
%func_raw12 = extractvalue [35 x i8*] %vtable11, 0 | |
%func13 = bitcast i8* %func_raw12 to %Bool* (%Int*, %Int*)* | |
%result14 = call %Bool* %func13(%Int* %"@capa7", %Int* %sk_int) | |
br label %"Invoke_Int#<_end" | |
"Invoke_Int#<_end": ; preds = %"Invoke_Int#<" | |
%llvm_bool15 = call i1 @unbox_bool(%Bool* %result14) | |
%istrue16 = icmp eq i1 %llvm_bool15, true | |
br i1 %istrue16, label %IfThen3, label %IfElse4 | |
"Invoke_Int#*": ; preds = %IfThen3 | |
%addr_vtable20 = getelementptr inbounds %Int, %Int* %"@capa18", i32 0, i32 0 | |
%vtable21 = load i8*, i8** %addr_vtable20, align 8 | |
%vtable_ptr22 = bitcast i8* %vtable21 to [35 x i8*]* | |
%vtable23 = load [35 x i8*], [35 x i8*]* %vtable_ptr22, align 8 | |
%func_raw24 = extractvalue [35 x i8*] %vtable23, 17 | |
%func25 = bitcast i8* %func_raw24 to %Int* (%Int*, %Int*)* | |
%result26 = call %Int* %func25(%Int* %"@capa18", %Int* %sk_int19) | |
br label %"Invoke_Int#*_end" | |
"Invoke_Int#*_end": ; preds = %"Invoke_Int#*" | |
%"addr_@capa27" = getelementptr inbounds %Array, %Array* %self, i32 0, i32 2 | |
store %Int* %result26, %Int** %"addr_@capa27", align 8 | |
br label %IfEnd5 | |
"Invoke_Int#+": ; preds = %IfElse4 | |
%addr_vtable31 = getelementptr inbounds %Int, %Int* %"@capa29", i32 0, i32 0 | |
%vtable32 = load i8*, i8** %addr_vtable31, align 8 | |
%vtable_ptr33 = bitcast i8* %vtable32 to [35 x i8*]* | |
%vtable34 = load [35 x i8*], [35 x i8*]* %vtable_ptr33, align 8 | |
%func_raw35 = extractvalue [35 x i8*] %vtable34, 18 | |
%func36 = bitcast i8* %func_raw35 to %Int* (%Int*, %Int*)* | |
%result37 = call %Int* %func36(%Int* %"@capa29", %Int* %sk_int30) | |
br label %"Invoke_Int#+_end" | |
"Invoke_Int#+_end": ; preds = %"Invoke_Int#+" | |
%"addr_@capa38" = getelementptr inbounds %Array, %Array* %self, i32 0, i32 2 | |
store %Int* %result37, %Int** %"addr_@capa38", align 8 | |
br label %IfEnd5 | |
"Invoke_Int#*41": ; preds = %IfEnd5 | |
%addr_vtable42 = getelementptr inbounds %Int, %Int* %"::Array::BYTES_OF_PTR", i32 0, i32 0 | |
%vtable43 = load i8*, i8** %addr_vtable42, align 8 | |
%vtable_ptr44 = bitcast i8* %vtable43 to [35 x i8*]* | |
%vtable45 = load [35 x i8*], [35 x i8*]* %vtable_ptr44, align 8 | |
%func_raw46 = extractvalue [35 x i8*] %vtable45, 17 | |
%func47 = bitcast i8* %func_raw46 to %Int* (%Int*, %Int*)* | |
%result48 = call %Int* %func47(%Int* %"::Array::BYTES_OF_PTR", %Int* %"@capa40") | |
br label %"Invoke_Int#*_end49" | |
"Invoke_Int#*_end49": ; preds = %"Invoke_Int#*41" | |
%sk_int50 = call %Int* @box_int(i64 1) | |
br label %"Invoke_Int#+51" | |
"Invoke_Int#+51": ; preds = %"Invoke_Int#*_end49" | |
%addr_vtable52 = getelementptr inbounds %Int, %Int* %result48, i32 0, i32 0 | |
%vtable53 = load i8*, i8** %addr_vtable52, align 8 | |
%vtable_ptr54 = bitcast i8* %vtable53 to [35 x i8*]* | |
%vtable55 = load [35 x i8*], [35 x i8*]* %vtable_ptr54, align 8 | |
%func_raw56 = extractvalue [35 x i8*] %vtable55, 18 | |
%func57 = bitcast i8* %func_raw56 to %Int* (%Int*, %Int*)* | |
%result58 = call %Int* %func57(%Int* %result48, %Int* %sk_int50) | |
br label %"Invoke_Int#+_end59" | |
"Invoke_Int#+_end59": ; preds = %"Invoke_Int#+51" | |
br label %"Invoke_Meta:Shiika::Internal::Memory#gc_realloc" | |
"Invoke_Meta:Shiika::Internal::Memory#gc_realloc": ; preds = %"Invoke_Int#+_end59" | |
%addr_vtable60 = getelementptr inbounds %"Shiika::Internal::Memory", %"Shiika::Internal::Memory"* %"::Shiika::Internal::Memory", i32 0, i32 0 | |
%vtable61 = load i8*, i8** %addr_vtable60, align 8 | |
%vtable_ptr62 = bitcast i8* %vtable61 to [25 x i8*]* | |
%vtable63 = load [25 x i8*], [25 x i8*]* %vtable_ptr62, align 8 | |
%func_raw64 = extractvalue [25 x i8*] %vtable63, 23 | |
%func65 = bitcast i8* %func_raw64 to %"Shiika::Internal::Ptr"* (%"Shiika::Internal::Memory"*, %"Shiika::Internal::Ptr"*, %Int*)* | |
%result66 = call %"Shiika::Internal::Ptr"* %func65(%"Shiika::Internal::Memory"* %"::Shiika::Internal::Memory", %"Shiika::Internal::Ptr"* %"@items", %Int* %result58) | |
br label %"Invoke_Meta:Shiika::Internal::Memory#gc_realloc_end" | |
"Invoke_Meta:Shiika::Internal::Memory#gc_realloc_end": ; preds = %"Invoke_Meta:Shiika::Internal::Memory#gc_realloc" | |
%"addr_@items67" = getelementptr inbounds %Array, %Array* %self, i32 0, i32 4 | |
store %"Shiika::Internal::Ptr"* %result66, %"Shiika::Internal::Ptr"** %"addr_@items67", align 8 | |
%"::Void" = load %Void*, %Void** @"::Void", align 8 | |
br label %IfEnd | |
"Invoke_Int#*75": ; preds = %IfEnd | |
%addr_vtable76 = getelementptr inbounds %Int, %Int* %"@n_items73", i32 0, i32 0 | |
%vtable77 = load i8*, i8** %addr_vtable76, align 8 | |
%vtable_ptr78 = bitcast i8* %vtable77 to [35 x i8*]* | |
%vtable79 = load [35 x i8*], [35 x i8*]* %vtable_ptr78, align 8 | |
%func_raw80 = extractvalue [35 x i8*] %vtable79, 17 | |
%func81 = bitcast i8* %func_raw80 to %Int* (%Int*, %Int*)* | |
%result82 = call %Int* %func81(%Int* %"@n_items73", %Int* %"::Array::BYTES_OF_PTR74") | |
br label %"Invoke_Int#*_end83" | |
"Invoke_Int#*_end83": ; preds = %"Invoke_Int#*75" | |
br label %"Invoke_Shiika::Internal::Ptr#+" | |
"Invoke_Shiika::Internal::Ptr#+": ; preds = %"Invoke_Int#*_end83" | |
%addr_vtable84 = getelementptr inbounds %"Shiika::Internal::Ptr", %"Shiika::Internal::Ptr"* %"@items71", i32 0, i32 0 | |
%vtable85 = load i8*, i8** %addr_vtable84, align 8 | |
%vtable_ptr86 = bitcast i8* %vtable85 to [21 x i8*]* | |
%vtable87 = load [21 x i8*], [21 x i8*]* %vtable_ptr86, align 8 | |
%func_raw88 = extractvalue [21 x i8*] %vtable87, 16 | |
%func89 = bitcast i8* %func_raw88 to %"Shiika::Internal::Ptr"* (%"Shiika::Internal::Ptr"*, %Int*)* | |
%result90 = call %"Shiika::Internal::Ptr"* %func89(%"Shiika::Internal::Ptr"* %"@items71", %Int* %result82) | |
br label %"Invoke_Shiika::Internal::Ptr#+_end" | |
"Invoke_Shiika::Internal::Ptr#+_end": ; preds = %"Invoke_Shiika::Internal::Ptr#+" | |
store %"Shiika::Internal::Ptr"* %result90, %"Shiika::Internal::Ptr"** %ptr, align 8 | |
%ptr91 = load %"Shiika::Internal::Ptr"*, %"Shiika::Internal::Ptr"** %ptr, align 8 | |
br label %"Invoke_Shiika::Internal::Ptr#store" | |
"Invoke_Shiika::Internal::Ptr#store": ; preds = %"Invoke_Shiika::Internal::Ptr#+_end" | |
%addr_vtable92 = getelementptr inbounds %"Shiika::Internal::Ptr", %"Shiika::Internal::Ptr"* %ptr91, i32 0, i32 0 | |
%vtable93 = load i8*, i8** %addr_vtable92, align 8 | |
%vtable_ptr94 = bitcast i8* %vtable93 to [21 x i8*]* | |
%vtable95 = load [21 x i8*], [21 x i8*]* %vtable_ptr94, align 8 | |
%func_raw96 = extractvalue [21 x i8*] %vtable95, 19 | |
%func97 = bitcast i8* %func_raw96 to %Void* (%"Shiika::Internal::Ptr"*, %Object*)* | |
%result98 = call %Void* %func97(%"Shiika::Internal::Ptr"* %ptr91, %Object* %value) | |
br label %"Invoke_Shiika::Internal::Ptr#store_end" | |
"Invoke_Shiika::Internal::Ptr#store_end": ; preds = %"Invoke_Shiika::Internal::Ptr#store" | |
%"addr_@n_items99" = getelementptr inbounds %Array, %Array* %self, i32 0, i32 3 | |
%"@n_items100" = load %Int*, %Int** %"addr_@n_items99", align 8 | |
%sk_int101 = call %Int* @box_int(i64 1) | |
br label %"Invoke_Int#+102" | |
"Invoke_Int#+102": ; preds = %"Invoke_Shiika::Internal::Ptr#store_end" | |
%addr_vtable103 = getelementptr inbounds %Int, %Int* %"@n_items100", i32 0, i32 0 | |
%vtable104 = load i8*, i8** %addr_vtable103, align 8 | |
%vtable_ptr105 = bitcast i8* %vtable104 to [35 x i8*]* | |
%vtable106 = load [35 x i8*], [35 x i8*]* %vtable_ptr105, align 8 | |
%func_raw107 = extractvalue [35 x i8*] %vtable106, 18 | |
%func108 = bitcast i8* %func_raw107 to %Int* (%Int*, %Int*)* | |
%result109 = call %Int* %func108(%Int* %"@n_items100", %Int* %sk_int101) | |
br label %"Invoke_Int#+_end110" | |
"Invoke_Int#+_end110": ; preds = %"Invoke_Int#+102" | |
%"addr_@n_items111" = getelementptr inbounds %Array, %Array* %self, i32 0, i32 3 | |
store %Int* %result109, %Int** %"addr_@n_items111", align 8 | |
%"::Void112" = load %Void*, %Void** @"::Void", align 8 | |
br label %Ret | |
Ret: ; preds = %"Invoke_Int#+_end110" | |
br label %End | |
} | |
define %Array* @Array_reject(%Array* %self, %Fn1* %f) { | |
alloca: | |
%"ary@14_" = alloca %Array*, align 8 | |
%ret = alloca %Array*, align 8 | |
br label %alloca_End | |
alloca_End: ; preds = %alloca | |
%"::Array" = load %Array*, %Array** @"::Array", align 8 | |
%"::Array1" = load %Array*, %Array** @"::Array", align 8 | |
%"::Class" = load %Class.0*, %Class.0** @"::Class", align 8 | |
br label %"Invoke_Class#_specialize1" | |
End: ; preds = %Ret | |
%methodResult = phi %Array* [ %ret47, %Ret ] | |
ret %Array* %methodResult | |
"Invoke_Class#_specialize1": ; preds = %alloca_End | |
%addr_vtable = getelementptr inbounds %Array, %Array* %"::Array1", i32 0, i32 0 | |
%vtable = load i8*, i8** %addr_vtable, align 8 | |
%vtable_ptr = bitcast i8* %vtable to [25 x i8*]* | |
%vtable2 = load [25 x i8*], [25 x i8*]* %vtable_ptr, align 8 | |
%func_raw = extractvalue [25 x i8*] %vtable2, 18 | |
%func = bitcast i8* %func_raw to %Array* (%Array*, %Class.0*)* | |
%result = call %Array* %func(%Array* %"::Array1", %Class.0* %"::Class") | |
br label %"Invoke_Class#_specialize1_end" | |
"Invoke_Class#_specialize1_end": ; preds = %"Invoke_Class#_specialize1" | |
br label %"Invoke_Array#new" | |
"Invoke_Array#new": ; preds = %"Invoke_Class#_specialize1_end" | |
%addr_vtable3 = getelementptr inbounds %Array, %Array* %result, i32 0, i32 0 | |
%vtable4 = load i8*, i8** %addr_vtable3, align 8 | |
%vtable_ptr5 = bitcast i8* %vtable4 to [25 x i8*]* | |
%vtable6 = load [25 x i8*], [25 x i8*]* %vtable_ptr5, align 8 | |
%func_raw7 = extractvalue [25 x i8*] %vtable6, 23 | |
%func8 = bitcast i8* %func_raw7 to %Array* (%Array*)* | |
%result9 = call %Array* %func8(%Array* %result) | |
br label %"Invoke_Array#new_end" | |
"Invoke_Array#new_end": ; preds = %"Invoke_Array#new" | |
store %Array* %result9, %Array** %"ary@14_", align 8 | |
%"ary@14_10" = load %Array*, %Array** %"ary@14_", align 8 | |
%addr_class = getelementptr inbounds %Array, %Array* %self, i32 0, i32 1 | |
%class = load %Class.0*, %Class.0** %addr_class, align 8 | |
%sk_int = call %Int* @box_int(i64 0) | |
%result11 = call %Class.0* @Class___type__argument(%Class.0* %class, %Int* %sk_int) | |
%as = bitcast %Class.0* %result11 to %Object* | |
br label %"Invoke_Array#push" | |
"Invoke_Array#push": ; preds = %"Invoke_Array#new_end" | |
%addr_vtable12 = getelementptr inbounds %Array, %Array* %"ary@14_10", i32 0, i32 0 | |
%vtable13 = load i8*, i8** %addr_vtable12, align 8 | |
%vtable_ptr14 = bitcast i8* %vtable13 to [54 x i8*]* | |
%vtable15 = load [54 x i8*], [54 x i8*]* %vtable_ptr14, align 8 | |
%func_raw16 = extractvalue [54 x i8*] %vtable15, 45 | |
%func17 = bitcast i8* %func_raw16 to %Void* (%Array*, %Object*)* | |
%result18 = call %Void* %func17(%Array* %"ary@14_10", %Object* %as) | |
br label %"Invoke_Array#push_end" | |
"Invoke_Array#push_end": ; preds = %"Invoke_Array#push" | |
%"ary@14_19" = load %Array*, %Array** %"ary@14_", align 8 | |
br label %"Invoke_Class#<>" | |
"Invoke_Class#<>": ; preds = %"Invoke_Array#push_end" | |
%addr_vtable20 = getelementptr inbounds %Array, %Array* %"::Array", i32 0, i32 0 | |
%vtable21 = load i8*, i8** %addr_vtable20, align 8 | |
%vtable_ptr22 = bitcast i8* %vtable21 to [25 x i8*]* | |
%vtable23 = load [25 x i8*], [25 x i8*]* %vtable_ptr22, align 8 | |
%func_raw24 = extractvalue [25 x i8*] %vtable23, 16 | |
%func25 = bitcast i8* %func_raw24 to %Array* (%Array*, %Array*)* | |
%result26 = call %Array* %func25(%Array* %"::Array", %Array* %"ary@14_19") | |
br label %"Invoke_Class#<>_end" | |
"Invoke_Class#<>_end": ; preds = %"Invoke_Class#<>" | |
br label %"Invoke_Meta:Array#new" | |
"Invoke_Meta:Array#new": ; preds = %"Invoke_Class#<>_end" | |
%addr_vtable27 = getelementptr inbounds %Array, %Array* %result26, i32 0, i32 0 | |
%vtable28 = load i8*, i8** %addr_vtable27, align 8 | |
%vtable_ptr29 = bitcast i8* %vtable28 to [25 x i8*]* | |
%vtable30 = load [25 x i8*], [25 x i8*]* %vtable_ptr29, align 8 | |
%func_raw31 = extractvalue [25 x i8*] %vtable30, 23 | |
%func32 = bitcast i8* %func_raw31 to %Array* (%Array*)* | |
%result33 = call %Array* %func32(%Array* %result26) | |
br label %"Invoke_Meta:Array#new_end" | |
"Invoke_Meta:Array#new_end": ; preds = %"Invoke_Meta:Array#new" | |
store %Array* %result33, %Array** %ret, align 8 | |
%"::Fn1" = load %Fn1*, %Fn1** @"::Fn1", align 8 | |
%sk_ptr = call %"Shiika::Internal::Ptr"* @box_i8ptr(i8* bitcast (%Void* (%Fn1*, %Object*)* @"lambda_14_in_Array#reject" to i8*)) | |
%the_main = bitcast %Array* %self to %Object* | |
%"::Array34" = load %Array*, %Array** @"::Array", align 8 | |
%result35 = call %Array* @Meta_Array_new(%Array* %"::Array34") | |
%capture_item = bitcast %Fn1* %f to %Object* | |
%_ = call %Void* @Array_push(%Array* %result35, %Object* %capture_item) | |
%capture_item36 = bitcast %Array** %ret to %Object* | |
%_37 = call %Void* @Array_push(%Array* %result35, %Object* %capture_item36) | |
%result38 = call %Fn1* @Meta_Fn1_new(%Fn1* %"::Fn1", %"Shiika::Internal::Ptr"* %sk_ptr, %Object* %the_main, %Array* %result35) | |
%as39 = bitcast %Fn1* %result38 to %Object* | |
br label %"Invoke_Array#each" | |
"Invoke_Array#each": ; preds = %"Invoke_Meta:Array#new_end" | |
%addr_vtable40 = getelementptr inbounds %Array, %Array* %self, i32 0, i32 0 | |
%vtable41 = load i8*, i8** %addr_vtable40, align 8 | |
%vtable_ptr42 = bitcast i8* %vtable41 to [54 x i8*]* | |
%vtable43 = load [54 x i8*], [54 x i8*]* %vtable_ptr42, align 8 | |
%func_raw44 = extractvalue [54 x i8*] %vtable43, 29 | |
%func45 = bitcast i8* %func_raw44 to %Void* (%Array*, %Object*)* | |
%result46 = call %Void* %func45(%Array* %self, %Object* %as39) | |
br label %"Invoke_Array#each_end" | |
"Invoke_Array#each_end": ; preds = %"Invoke_Array#each" | |
%ret47 = load %Array*, %Array** %ret, align 8 | |
br label %Ret | |
Ret: ; preds = %"Invoke_Array#each_end" | |
br label %End | |
} | |
define %Void* @Array_reserve(%Array* %self, %Int* %additional) { | |
alloca: | |
%new_capa = alloca %Int*, align 8 | |
br label %alloca_End | |
alloca_End: ; preds = %alloca | |
%"addr_@n_items" = getelementptr inbounds %Array, %Array* %self, i32 0, i32 3 | |
%"@n_items" = load %Int*, %Int** %"addr_@n_items", align 8 | |
br label %"Invoke_Int#+" | |
End: ; preds = %Ret | |
%"::Void30" = load %Void*, %Void** @"::Void", align 8 | |
ret %Void* %"::Void30" | |
"Invoke_Int#+": ; preds = %alloca_End | |
%addr_vtable = getelementptr inbounds %Int, %Int* %"@n_items", i32 0, i32 0 | |
%vtable = load i8*, i8** %addr_vtable, align 8 | |
%vtable_ptr = bitcast i8* %vtable to [35 x i8*]* | |
%vtable1 = load [35 x i8*], [35 x i8*]* %vtable_ptr, align 8 | |
%func_raw = extractvalue [35 x i8*] %vtable1, 18 | |
%func = bitcast i8* %func_raw to %Int* (%Int*, %Int*)* | |
%result = call %Int* %func(%Int* %"@n_items", %Int* %additional) | |
br label %"Invoke_Int#+_end" | |
"Invoke_Int#+_end": ; preds = %"Invoke_Int#+" | |
store %Int* %result, %Int** %new_capa, align 8 | |
br label %IfBegin | |
IfBegin: ; preds = %"Invoke_Int#+_end" | |
%new_capa2 = load %Int*, %Int** %new_capa, align 8 | |
%"addr_@capa" = getelementptr inbounds %Array, %Array* %self, i32 0, i32 2 | |
%"@capa" = load %Int*, %Int** %"addr_@capa", align 8 | |
br label %"Invoke_Int#>" | |
IfThen: ; preds = %"Invoke_Int#>_end" | |
%"::Shiika::Internal::Memory" = load %"Shiika::Internal::Memory"*, %"Shiika::Internal::Memory"** @"::Shiika::Internal::Memory", align 8 | |
%"addr_@items" = getelementptr inbounds %Array, %Array* %self, i32 0, i32 4 | |
%"@items" = load %"Shiika::Internal::Ptr"*, %"Shiika::Internal::Ptr"** %"addr_@items", align 8 | |
%"::Array::BYTES_OF_PTR" = load %Int*, %Int** @"::Array::BYTES_OF_PTR", align 8 | |
%new_capa10 = load %Int*, %Int** %new_capa, align 8 | |
br label %"Invoke_Int#*" | |
IfElse: ; preds = %"Invoke_Int#>_end" | |
%"::Void28" = load %Void*, %Void** @"::Void", align 8 | |
br label %IfEnd | |
IfEnd: ; preds = %IfElse, %"Invoke_Meta:Shiika::Internal::Memory#gc_realloc_end" | |
%ifResult = phi %Void* [ %"::Void", %"Invoke_Meta:Shiika::Internal::Memory#gc_realloc_end" ], [ %"::Void28", %IfElse ] | |
%"::Void29" = load %Void*, %Void** @"::Void", align 8 | |
br label %Ret | |
"Invoke_Int#>": ; preds = %IfBegin | |
%addr_vtable3 = getelementptr inbounds %Int, %Int* %new_capa2, i32 0, i32 0 | |
%vtable4 = load i8*, i8** %addr_vtable3, align 8 | |
%vtable_ptr5 = bitcast i8* %vtable4 to [35 x i8*]* | |
%vtable6 = load [35 x i8*], [35 x i8*]* %vtable_ptr5, align 8 | |
%func_raw7 = extractvalue [35 x i8*] %vtable6, 3 | |
%func8 = bitcast i8* %func_raw7 to %Bool* (%Int*, %Int*)* | |
%result9 = call %Bool* %func8(%Int* %new_capa2, %Int* %"@capa") | |
br label %"Invoke_Int#>_end" | |
"Invoke_Int#>_end": ; preds = %"Invoke_Int#>" | |
%llvm_bool = call i1 @unbox_bool(%Bool* %result9) | |
%istrue = icmp eq i1 %llvm_bool, true | |
br i1 %istrue, label %IfThen, label %IfElse | |
"Invoke_Int#*": ; preds = %IfThen | |
%addr_vtable11 = getelementptr inbounds %Int, %Int* %"::Array::BYTES_OF_PTR", i32 0, i32 0 | |
%vtable12 = load i8*, i8** %addr_vtable11, align 8 | |
%vtable_ptr13 = bitcast i8* %vtable12 to [35 x i8*]* | |
%vtable14 = load [35 x i8*], [35 x i8*]* %vtable_ptr13, align 8 | |
%func_raw15 = extractvalue [35 x i8*] %vtable14, 17 | |
%func16 = bitcast i8* %func_raw15 to %Int* (%Int*, %Int*)* | |
%result17 = call %Int* %func16(%Int* %"::Array::BYTES_OF_PTR", %Int* %new_capa10) | |
br label %"Invoke_Int#*_end" | |
"Invoke_Int#*_end": ; preds = %"Invoke_Int#*" | |
br label %"Invoke_Meta:Shiika::Internal::Memory#gc_realloc" | |
"Invoke_Meta:Shiika::Internal::Memory#gc_realloc": ; preds = %"Invoke_Int#*_end" | |
%addr_vtable18 = getelementptr inbounds %"Shiika::Internal::Memory", %"Shiika::Internal::Memory"* %"::Shiika::Internal::Memory", i32 0, i32 0 | |
%vtable19 = load i8*, i8** %addr_vtable18, align 8 | |
%vtable_ptr20 = bitcast i8* %vtable19 to [25 x i8*]* | |
%vtable21 = load [25 x i8*], [25 x i8*]* %vtable_ptr20, align 8 | |
%func_raw22 = extractvalue [25 x i8*] %vtable21, 23 | |
%func23 = bitcast i8* %func_raw22 to %"Shiika::Internal::Ptr"* (%"Shiika::Internal::Memory"*, %"Shiika::Internal::Ptr"*, %Int*)* | |
%result24 = call %"Shiika::Internal::Ptr"* %func23(%"Shiika::Internal::Memory"* %"::Shiika::Internal::Memory", %"Shiika::Internal::Ptr"* %"@items", %Int* %result17) | |
br label %"Invoke_Meta:Shiika::Internal::Memory#gc_realloc_end" | |
"Invoke_Meta:Shiika::Internal::Memory#gc_realloc_end": ; preds = %"Invoke_Meta:Shiika::Internal::Memory#gc_realloc" | |
%"addr_@items25" = getelementptr inbounds %Array, %Array* %self, i32 0, i32 4 | |
store %"Shiika::Internal::Ptr"* %result24, %"Shiika::Internal::Ptr"** %"addr_@items25", align 8 | |
%new_capa26 = load %Int*, %Int** %new_capa, align 8 | |
%"addr_@capa27" = getelementptr inbounds %Array, %Array* %self, i32 0, i32 2 | |
store %Int* %new_capa26, %Int** %"addr_@capa27", align 8 | |
%"::Void" = load %Void*, %Void** @"::Void", align 8 | |
br label %IfEnd | |
Ret: ; preds = %IfEnd | |
br label %End | |
} | |
define %Array* @Array_reverse(%Array* %self) { | |
alloca: | |
%"ary@15_" = alloca %Array*, align 8 | |
%ret = alloca %Array*, align 8 | |
br label %alloca_End | |
alloca_End: ; preds = %alloca | |
%"::Array" = load %Array*, %Array** @"::Array", align 8 | |
%"::Array1" = load %Array*, %Array** @"::Array", align 8 | |
%"::Class" = load %Class.0*, %Class.0** @"::Class", align 8 | |
br label %"Invoke_Class#_specialize1" | |
End: ; preds = %Ret | |
%methodResult = phi %Array* [ %ret45, %Ret ] | |
ret %Array* %methodResult | |
"Invoke_Class#_specialize1": ; preds = %alloca_End | |
%addr_vtable = getelementptr inbounds %Array, %Array* %"::Array1", i32 0, i32 0 | |
%vtable = load i8*, i8** %addr_vtable, align 8 | |
%vtable_ptr = bitcast i8* %vtable to [25 x i8*]* | |
%vtable2 = load [25 x i8*], [25 x i8*]* %vtable_ptr, align 8 | |
%func_raw = extractvalue [25 x i8*] %vtable2, 18 | |
%func = bitcast i8* %func_raw to %Array* (%Array*, %Class.0*)* | |
%result = call %Array* %func(%Array* %"::Array1", %Class.0* %"::Class") | |
br label %"Invoke_Class#_specialize1_end" | |
"Invoke_Class#_specialize1_end": ; preds = %"Invoke_Class#_specialize1" | |
br label %"Invoke_Array#new" | |
"Invoke_Array#new": ; preds = %"Invoke_Class#_specialize1_end" | |
%addr_vtable3 = getelementptr inbounds %Array, %Array* %result, i32 0, i32 0 | |
%vtable4 = load i8*, i8** %addr_vtable3, align 8 | |
%vtable_ptr5 = bitcast i8* %vtable4 to [25 x i8*]* | |
%vtable6 = load [25 x i8*], [25 x i8*]* %vtable_ptr5, align 8 | |
%func_raw7 = extractvalue [25 x i8*] %vtable6, 23 | |
%func8 = bitcast i8* %func_raw7 to %Array* (%Array*)* | |
%result9 = call %Array* %func8(%Array* %result) | |
br label %"Invoke_Array#new_end" | |
"Invoke_Array#new_end": ; preds = %"Invoke_Array#new" | |
store %Array* %result9, %Array** %"ary@15_", align 8 | |
%"ary@15_10" = load %Array*, %Array** %"ary@15_", align 8 | |
%addr_class = getelementptr inbounds %Array, %Array* %self, i32 0, i32 1 | |
%class = load %Class.0*, %Class.0** %addr_class, align 8 | |
%sk_int = call %Int* @box_int(i64 0) | |
%result11 = call %Class.0* @Class___type__argument(%Class.0* %class, %Int* %sk_int) | |
%as = bitcast %Class.0* %result11 to %Object* | |
br label %"Invoke_Array#push" | |
"Invoke_Array#push": ; preds = %"Invoke_Array#new_end" | |
%addr_vtable12 = getelementptr inbounds %Array, %Array* %"ary@15_10", i32 0, i32 0 | |
%vtable13 = load i8*, i8** %addr_vtable12, align 8 | |
%vtable_ptr14 = bitcast i8* %vtable13 to [54 x i8*]* | |
%vtable15 = load [54 x i8*], [54 x i8*]* %vtable_ptr14, align 8 | |
%func_raw16 = extractvalue [54 x i8*] %vtable15, 45 | |
%func17 = bitcast i8* %func_raw16 to %Void* (%Array*, %Object*)* | |
%result18 = call %Void* %func17(%Array* %"ary@15_10", %Object* %as) | |
br label %"Invoke_Array#push_end" | |
"Invoke_Array#push_end": ; preds = %"Invoke_Array#push" | |
%"ary@15_19" = load %Array*, %Array** %"ary@15_", align 8 | |
br label %"Invoke_Class#<>" | |
"Invoke_Class#<>": ; preds = %"Invoke_Array#push_end" | |
%addr_vtable20 = getelementptr inbounds %Array, %Array* %"::Array", i32 0, i32 0 | |
%vtable21 = load i8*, i8** %addr_vtable20, align 8 | |
%vtable_ptr22 = bitcast i8* %vtable21 to [25 x i8*]* | |
%vtable23 = load [25 x i8*], [25 x i8*]* %vtable_ptr22, align 8 | |
%func_raw24 = extractvalue [25 x i8*] %vtable23, 16 | |
%func25 = bitcast i8* %func_raw24 to %Array* (%Array*, %Array*)* | |
%result26 = call %Array* %func25(%Array* %"::Array", %Array* %"ary@15_19") | |
br label %"Invoke_Class#<>_end" | |
"Invoke_Class#<>_end": ; preds = %"Invoke_Class#<>" | |
br label %"Invoke_Meta:Array#new" | |
"Invoke_Meta:Array#new": ; preds = %"Invoke_Class#<>_end" | |
%addr_vtable27 = getelementptr inbounds %Array, %Array* %result26, i32 0, i32 0 | |
%vtable28 = load i8*, i8** %addr_vtable27, align 8 | |
%vtable_ptr29 = bitcast i8* %vtable28 to [25 x i8*]* | |
%vtable30 = load [25 x i8*], [25 x i8*]* %vtable_ptr29, align 8 | |
%func_raw31 = extractvalue [25 x i8*] %vtable30, 23 | |
%func32 = bitcast i8* %func_raw31 to %Array* (%Array*)* | |
%result33 = call %Array* %func32(%Array* %result26) | |
br label %"Invoke_Meta:Array#new_end" | |
"Invoke_Meta:Array#new_end": ; preds = %"Invoke_Meta:Array#new" | |
store %Array* %result33, %Array** %ret, align 8 | |
%"::Fn1" = load %Fn1*, %Fn1** @"::Fn1", align 8 | |
%sk_ptr = call %"Shiika::Internal::Ptr"* @box_i8ptr(i8* bitcast (%Void* (%Fn1*, %Object*)* @"lambda_15_in_Array#reverse" to i8*)) | |
%the_main = bitcast %Array* %self to %Object* | |
%"::Array34" = load %Array*, %Array** @"::Array", align 8 | |
%result35 = call %Array* @Meta_Array_new(%Array* %"::Array34") | |
%capture_item = bitcast %Array** %ret to %Object* | |
%_ = call %Void* @Array_push(%Array* %result35, %Object* %capture_item) | |
%result36 = call %Fn1* @Meta_Fn1_new(%Fn1* %"::Fn1", %"Shiika::Internal::Ptr"* %sk_ptr, %Object* %the_main, %Array* %result35) | |
%as37 = bitcast %Fn1* %result36 to %Object* | |
br label %"Invoke_Array#reverse_each" | |
"Invoke_Array#reverse_each": ; preds = %"Invoke_Meta:Array#new_end" | |
%addr_vtable38 = getelementptr inbounds %Array, %Array* %self, i32 0, i32 0 | |
%vtable39 = load i8*, i8** %addr_vtable38, align 8 | |
%vtable_ptr40 = bitcast i8* %vtable39 to [54 x i8*]* | |
%vtable41 = load [54 x i8*], [54 x i8*]* %vtable_ptr40, align 8 | |
%func_raw42 = extractvalue [54 x i8*] %vtable41, 49 | |
%func43 = bitcast i8* %func_raw42 to %Void* (%Array*, %Object*)* | |
%result44 = call %Void* %func43(%Array* %self, %Object* %as37) | |
br label %"Invoke_Array#reverse_each_end" | |
"Invoke_Array#reverse_each_end": ; preds = %"Invoke_Array#reverse_each" | |
%ret45 = load %Array*, %Array** %ret, align 8 | |
br label %Ret | |
Ret: ; preds = %"Invoke_Array#reverse_each_end" | |
br label %End | |
} | |
define %Void* @Array_reverse__each(%Array* %self, %Fn1* %f) { | |
alloca: | |
%i = alloca %Int*, align 8 | |
br label %alloca_End | |
alloca_End: ; preds = %alloca | |
%"addr_@n_items" = getelementptr inbounds %Array, %Array* %self, i32 0, i32 3 | |
%"@n_items" = load %Int*, %Int** %"addr_@n_items", align 8 | |
%sk_int = call %Int* @box_int(i64 1) | |
br label %"Invoke_Int#-" | |
End: ; preds = %Ret, %Invoke_lambda | |
%"::Void36" = load %Void*, %Void** @"::Void", align 8 | |
ret %Void* %"::Void36" | |
"Invoke_Int#-": ; preds = %alloca_End | |
%addr_vtable = getelementptr inbounds %Int, %Int* %"@n_items", i32 0, i32 0 | |
%vtable = load i8*, i8** %addr_vtable, align 8 | |
%vtable_ptr = bitcast i8* %vtable to [35 x i8*]* | |
%vtable1 = load [35 x i8*], [35 x i8*]* %vtable_ptr, align 8 | |
%func_raw = extractvalue [35 x i8*] %vtable1, 19 | |
%func = bitcast i8* %func_raw to %Int* (%Int*, %Int*)* | |
%result = call %Int* %func(%Int* %"@n_items", %Int* %sk_int) | |
br label %"Invoke_Int#-_end" | |
"Invoke_Int#-_end": ; preds = %"Invoke_Int#-" | |
store %Int* %result, %Int** %i, align 8 | |
br label %WhileBegin | |
WhileBegin: ; preds = %"Invoke_Int#-_end34", %"Invoke_Int#-_end" | |
%i2 = load %Int*, %Int** %i, align 8 | |
%sk_int3 = call %Int* @box_int(i64 0) | |
br label %"Invoke_Int#>=" | |
"Invoke_Int#>=": ; preds = %WhileBegin | |
%addr_vtable4 = getelementptr inbounds %Int, %Int* %i2, i32 0, i32 0 | |
%vtable5 = load i8*, i8** %addr_vtable4, align 8 | |
%vtable_ptr6 = bitcast i8* %vtable5 to [35 x i8*]* | |
%vtable7 = load [35 x i8*], [35 x i8*]* %vtable_ptr6, align 8 | |
%func_raw8 = extractvalue [35 x i8*] %vtable7, 4 | |
%func9 = bitcast i8* %func_raw8 to %Bool* (%Int*, %Int*)* | |
%result10 = call %Bool* %func9(%Int* %i2, %Int* %sk_int3) | |
br label %"Invoke_Int#>=_end" | |
"Invoke_Int#>=_end": ; preds = %"Invoke_Int#>=" | |
%llvm_bool = call i1 @unbox_bool(%Bool* %result10) | |
%istrue = icmp eq i1 %llvm_bool, true | |
br i1 %istrue, label %WhileBody, label %WhileEnd | |
WhileBody: ; preds = %"Invoke_Int#>=_end" | |
%i11 = load %Int*, %Int** %i, align 8 | |
%as = bitcast %Int* %i11 to %Object* | |
br label %"Invoke_Array#[]" | |
WhileEnd: ; preds = %"Invoke_Int#>=_end" | |
%"::Void" = load %Void*, %Void** @"::Void", align 8 | |
%"::Void35" = load %Void*, %Void** @"::Void", align 8 | |
br label %Ret | |
"Invoke_Array#[]": ; preds = %WhileBody | |
%addr_vtable12 = getelementptr inbounds %Array, %Array* %self, i32 0, i32 0 | |
%vtable13 = load i8*, i8** %addr_vtable12, align 8 | |
%vtable_ptr14 = bitcast i8* %vtable13 to [54 x i8*]* | |
%vtable15 = load [54 x i8*], [54 x i8*]* %vtable_ptr14, align 8 | |
%func_raw16 = extractvalue [54 x i8*] %vtable15, 16 | |
%func17 = bitcast i8* %func_raw16 to %Object* (%Array*, %Object*)* | |
%result18 = call %Object* %func17(%Array* %self, %Object* %as) | |
br label %"Invoke_Array#[]_end" | |
"Invoke_Array#[]_end": ; preds = %"Invoke_Array#[]" | |
br label %Invoke_lambda | |
Invoke_lambda: ; preds = %"Invoke_Array#[]_end" | |
%"addr_@func" = getelementptr inbounds %Fn1, %Fn1* %f, i32 0, i32 2 | |
%"@func" = load %"Shiika::Internal::Ptr"*, %"Shiika::Internal::Ptr"** %"addr_@func", align 8 | |
%llvm_ptr = call i8* @unbox_i8ptr(%"Shiika::Internal::Ptr"* %"@func") | |
%0 = bitcast i8* %llvm_ptr to %Void* (%Fn1*, %Object*)* | |
%result19 = call %Void* %0(%Fn1* %f, %Object* %result18) | |
%"addr_@exit_status" = getelementptr inbounds %Fn1, %Fn1* %f, i32 0, i32 5 | |
%"@exit_status" = load %Int*, %Int** %"addr_@exit_status", align 8 | |
%sk_int20 = call %Int* @box_int(i64 1) | |
%result21 = call %Bool* @Int_eq_(%Int* %"@exit_status", %Int* %sk_int20) | |
%llvm_bool22 = call i1 @unbox_bool(%Bool* %result21) | |
%istrue23 = icmp eq i1 %llvm_bool22, true | |
br i1 %istrue23, label %End, label %Invoke_lambda_end | |
Invoke_lambda_end: ; preds = %Invoke_lambda | |
%i24 = load %Int*, %Int** %i, align 8 | |
%sk_int25 = call %Int* @box_int(i64 1) | |
br label %"Invoke_Int#-26" | |
"Invoke_Int#-26": ; preds = %Invoke_lambda_end | |
%addr_vtable27 = getelementptr inbounds %Int, %Int* %i24, i32 0, i32 0 | |
%vtable28 = load i8*, i8** %addr_vtable27, align 8 | |
%vtable_ptr29 = bitcast i8* %vtable28 to [35 x i8*]* | |
%vtable30 = load [35 x i8*], [35 x i8*]* %vtable_ptr29, align 8 | |
%func_raw31 = extractvalue [35 x i8*] %vtable30, 19 | |
%func32 = bitcast i8* %func_raw31 to %Int* (%Int*, %Int*)* | |
%result33 = call %Int* %func32(%Int* %i24, %Int* %sk_int25) | |
br label %"Invoke_Int#-_end34" | |
"Invoke_Int#-_end34": ; preds = %"Invoke_Int#-26" | |
store %Int* %result33, %Int** %i, align 8 | |
br label %WhileBegin | |
Ret: ; preds = %WhileEnd | |
br label %End | |
} | |
define %Array* @Array_select(%Array* %self, %Fn1* %f) { | |
alloca: | |
%"ary@16_" = alloca %Array*, align 8 | |
%ret = alloca %Array*, align 8 | |
br label %alloca_End | |
alloca_End: ; preds = %alloca | |
%"::Array" = load %Array*, %Array** @"::Array", align 8 | |
%"::Array1" = load %Array*, %Array** @"::Array", align 8 | |
%"::Class" = load %Class.0*, %Class.0** @"::Class", align 8 | |
br label %"Invoke_Class#_specialize1" | |
End: ; preds = %Ret | |
%methodResult = phi %Array* [ %ret47, %Ret ] | |
ret %Array* %methodResult | |
"Invoke_Class#_specialize1": ; preds = %alloca_End | |
%addr_vtable = getelementptr inbounds %Array, %Array* %"::Array1", i32 0, i32 0 | |
%vtable = load i8*, i8** %addr_vtable, align 8 | |
%vtable_ptr = bitcast i8* %vtable to [25 x i8*]* | |
%vtable2 = load [25 x i8*], [25 x i8*]* %vtable_ptr, align 8 | |
%func_raw = extractvalue [25 x i8*] %vtable2, 18 | |
%func = bitcast i8* %func_raw to %Array* (%Array*, %Class.0*)* | |
%result = call %Array* %func(%Array* %"::Array1", %Class.0* %"::Class") | |
br label %"Invoke_Class#_specialize1_end" | |
"Invoke_Class#_specialize1_end": ; preds = %"Invoke_Class#_specialize1" | |
br label %"Invoke_Array#new" | |
"Invoke_Array#new": ; preds = %"Invoke_Class#_specialize1_end" | |
%addr_vtable3 = getelementptr inbounds %Array, %Array* %result, i32 0, i32 0 | |
%vtable4 = load i8*, i8** %addr_vtable3, align 8 | |
%vtable_ptr5 = bitcast i8* %vtable4 to [25 x i8*]* | |
%vtable6 = load [25 x i8*], [25 x i8*]* %vtable_ptr5, align 8 | |
%func_raw7 = extractvalue [25 x i8*] %vtable6, 23 | |
%func8 = bitcast i8* %func_raw7 to %Array* (%Array*)* | |
%result9 = call %Array* %func8(%Array* %result) | |
br label %"Invoke_Array#new_end" | |
"Invoke_Array#new_end": ; preds = %"Invoke_Array#new" | |
store %Array* %result9, %Array** %"ary@16_", align 8 | |
%"ary@16_10" = load %Array*, %Array** %"ary@16_", align 8 | |
%addr_class = getelementptr inbounds %Array, %Array* %self, i32 0, i32 1 | |
%class = load %Class.0*, %Class.0** %addr_class, align 8 | |
%sk_int = call %Int* @box_int(i64 0) | |
%result11 = call %Class.0* @Class___type__argument(%Class.0* %class, %Int* %sk_int) | |
%as = bitcast %Class.0* %result11 to %Object* | |
br label %"Invoke_Array#push" | |
"Invoke_Array#push": ; preds = %"Invoke_Array#new_end" | |
%addr_vtable12 = getelementptr inbounds %Array, %Array* %"ary@16_10", i32 0, i32 0 | |
%vtable13 = load i8*, i8** %addr_vtable12, align 8 | |
%vtable_ptr14 = bitcast i8* %vtable13 to [54 x i8*]* | |
%vtable15 = load [54 x i8*], [54 x i8*]* %vtable_ptr14, align 8 | |
%func_raw16 = extractvalue [54 x i8*] %vtable15, 45 | |
%func17 = bitcast i8* %func_raw16 to %Void* (%Array*, %Object*)* | |
%result18 = call %Void* %func17(%Array* %"ary@16_10", %Object* %as) | |
br label %"Invoke_Array#push_end" | |
"Invoke_Array#push_end": ; preds = %"Invoke_Array#push" | |
%"ary@16_19" = load %Array*, %Array** %"ary@16_", align 8 | |
br label %"Invoke_Class#<>" | |
"Invoke_Class#<>": ; preds = %"Invoke_Array#push_end" | |
%addr_vtable20 = getelementptr inbounds %Array, %Array* %"::Array", i32 0, i32 0 | |
%vtable21 = load i8*, i8** %addr_vtable20, align 8 | |
%vtable_ptr22 = bitcast i8* %vtable21 to [25 x i8*]* | |
%vtable23 = load [25 x i8*], [25 x i8*]* %vtable_ptr22, align 8 | |
%func_raw24 = extractvalue [25 x i8*] %vtable23, 16 | |
%func25 = bitcast i8* %func_raw24 to %Array* (%Array*, %Array*)* | |
%result26 = call %Array* %func25(%Array* %"::Array", %Array* %"ary@16_19") | |
br label %"Invoke_Class#<>_end" | |
"Invoke_Class#<>_end": ; preds = %"Invoke_Class#<>" | |
br label %"Invoke_Meta:Array#new" | |
"Invoke_Meta:Array#new": ; preds = %"Invoke_Class#<>_end" | |
%addr_vtable27 = getelementptr inbounds %Array, %Array* %result26, i32 0, i32 0 | |
%vtable28 = load i8*, i8** %addr_vtable27, align 8 | |
%vtable_ptr29 = bitcast i8* %vtable28 to [25 x i8*]* | |
%vtable30 = load [25 x i8*], [25 x i8*]* %vtable_ptr29, align 8 | |
%func_raw31 = extractvalue [25 x i8*] %vtable30, 23 | |
%func32 = bitcast i8* %func_raw31 to %Array* (%Array*)* | |
%result33 = call %Array* %func32(%Array* %result26) | |
br label %"Invoke_Meta:Array#new_end" | |
"Invoke_Meta:Array#new_end": ; preds = %"Invoke_Meta:Array#new" | |
store %Array* %result33, %Array** %ret, align 8 | |
%"::Fn1" = load %Fn1*, %Fn1** @"::Fn1", align 8 | |
%sk_ptr = call %"Shiika::Internal::Ptr"* @box_i8ptr(i8* bitcast (%Void* (%Fn1*, %Object*)* @"lambda_16_in_Array#select" to i8*)) | |
%the_main = bitcast %Array* %self to %Object* | |
%"::Array34" = load %Array*, %Array** @"::Array", align 8 | |
%result35 = call %Array* @Meta_Array_new(%Array* %"::Array34") | |
%capture_item = bitcast %Fn1* %f to %Object* | |
%_ = call %Void* @Array_push(%Array* %result35, %Object* %capture_item) | |
%capture_item36 = bitcast %Array** %ret to %Object* | |
%_37 = call %Void* @Array_push(%Array* %result35, %Object* %capture_item36) | |
%result38 = call %Fn1* @Meta_Fn1_new(%Fn1* %"::Fn1", %"Shiika::Internal::Ptr"* %sk_ptr, %Object* %the_main, %Array* %result35) | |
%as39 = bitcast %Fn1* %result38 to %Object* | |
br label %"Invoke_Array#each" | |
"Invoke_Array#each": ; preds = %"Invoke_Meta:Array#new_end" | |
%addr_vtable40 = getelementptr inbounds %Array, %Array* %self, i32 0, i32 0 | |
%vtable41 = load i8*, i8** %addr_vtable40, align 8 | |
%vtable_ptr42 = bitcast i8* %vtable41 to [54 x i8*]* | |
%vtable43 = load [54 x i8*], [54 x i8*]* %vtable_ptr42, align 8 | |
%func_raw44 = extractvalue [54 x i8*] %vtable43, 29 | |
%func45 = bitcast i8* %func_raw44 to %Void* (%Array*, %Object*)* | |
%result46 = call %Void* %func45(%Array* %self, %Object* %as39) | |
br label %"Invoke_Array#each_end" | |
"Invoke_Array#each_end": ; preds = %"Invoke_Array#each" | |
%ret47 = load %Array*, %Array** %ret, align 8 | |
br label %Ret | |
Ret: ; preds = %"Invoke_Array#each_end" | |
br label %End | |
} | |
define %Maybe* @Array_shift(%Array* %self) { | |
alloca: | |
%ret = alloca %Object*, align 8 | |
%"ary@17_" = alloca %Array*, align 8 | |
br label %alloca_End | |
alloca_End: ; preds = %alloca | |
br label %IfBegin | |
End: ; preds = %Ret | |
%methodResult = phi %Maybe* [ %ifResult, %Ret ] | |
ret %Maybe* %methodResult | |
IfBegin: ; preds = %alloca_End | |
%"addr_@n_items" = getelementptr inbounds %Array, %Array* %self, i32 0, i32 3 | |
%"@n_items" = load %Int*, %Int** %"addr_@n_items", align 8 | |
%sk_int = call %Int* @box_int(i64 0) | |
br label %"Invoke_Int#==" | |
IfThen: ; preds = %"Invoke_Int#==_end" | |
%"::None" = load %"Maybe::None"*, %"Maybe::None"** @"::None", align 8 | |
%as = bitcast %"Maybe::None"* %"::None" to %Maybe* | |
br label %IfEnd | |
IfElse: ; preds = %"Invoke_Int#==_end" | |
%sk_int2 = call %Int* @box_int(i64 0) | |
%as3 = bitcast %Int* %sk_int2 to %Object* | |
br label %"Invoke_Array#[]" | |
IfEnd: ; preds = %"Invoke_Meta:Maybe::Some#new_end", %IfThen | |
%ifResult = phi %Maybe* [ %as, %IfThen ], [ %as82, %"Invoke_Meta:Maybe::Some#new_end" ] | |
br label %Ret | |
"Invoke_Int#==": ; preds = %IfBegin | |
%addr_vtable = getelementptr inbounds %Int, %Int* %"@n_items", i32 0, i32 0 | |
%vtable = load i8*, i8** %addr_vtable, align 8 | |
%vtable_ptr = bitcast i8* %vtable to [35 x i8*]* | |
%vtable1 = load [35 x i8*], [35 x i8*]* %vtable_ptr, align 8 | |
%func_raw = extractvalue [35 x i8*] %vtable1, 2 | |
%func = bitcast i8* %func_raw to %Bool* (%Int*, %Int*)* | |
%result = call %Bool* %func(%Int* %"@n_items", %Int* %sk_int) | |
br label %"Invoke_Int#==_end" | |
"Invoke_Int#==_end": ; preds = %"Invoke_Int#==" | |
%llvm_bool = call i1 @unbox_bool(%Bool* %result) | |
%istrue = icmp eq i1 %llvm_bool, true | |
br i1 %istrue, label %IfThen, label %IfElse | |
"Invoke_Array#[]": ; preds = %IfElse | |
%addr_vtable4 = getelementptr inbounds %Array, %Array* %self, i32 0, i32 0 | |
%vtable5 = load i8*, i8** %addr_vtable4, align 8 | |
%vtable_ptr6 = bitcast i8* %vtable5 to [54 x i8*]* | |
%vtable7 = load [54 x i8*], [54 x i8*]* %vtable_ptr6, align 8 | |
%func_raw8 = extractvalue [54 x i8*] %vtable7, 16 | |
%func9 = bitcast i8* %func_raw8 to %Object* (%Array*, %Object*)* | |
%result10 = call %Object* %func9(%Array* %self, %Object* %as3) | |
br label %"Invoke_Array#[]_end" | |
"Invoke_Array#[]_end": ; preds = %"Invoke_Array#[]" | |
store %Object* %result10, %Object** %ret, align 8 | |
%"addr_@capa" = getelementptr inbounds %Array, %Array* %self, i32 0, i32 2 | |
%"@capa" = load %Int*, %Int** %"addr_@capa", align 8 | |
%sk_int11 = call %Int* @box_int(i64 1) | |
br label %"Invoke_Int#-" | |
"Invoke_Int#-": ; preds = %"Invoke_Array#[]_end" | |
%addr_vtable12 = getelementptr inbounds %Int, %Int* %"@capa", i32 0, i32 0 | |
%vtable13 = load i8*, i8** %addr_vtable12, align 8 | |
%vtable_ptr14 = bitcast i8* %vtable13 to [35 x i8*]* | |
%vtable15 = load [35 x i8*], [35 x i8*]* %vtable_ptr14, align 8 | |
%func_raw16 = extractvalue [35 x i8*] %vtable15, 19 | |
%func17 = bitcast i8* %func_raw16 to %Int* (%Int*, %Int*)* | |
%result18 = call %Int* %func17(%Int* %"@capa", %Int* %sk_int11) | |
br label %"Invoke_Int#-_end" | |
"Invoke_Int#-_end": ; preds = %"Invoke_Int#-" | |
%"addr_@capa19" = getelementptr inbounds %Array, %Array* %self, i32 0, i32 2 | |
store %Int* %result18, %Int** %"addr_@capa19", align 8 | |
%"addr_@n_items20" = getelementptr inbounds %Array, %Array* %self, i32 0, i32 3 | |
%"@n_items21" = load %Int*, %Int** %"addr_@n_items20", align 8 | |
%sk_int22 = call %Int* @box_int(i64 1) | |
br label %"Invoke_Int#-23" | |
"Invoke_Int#-23": ; preds = %"Invoke_Int#-_end" | |
%addr_vtable24 = getelementptr inbounds %Int, %Int* %"@n_items21", i32 0, i32 0 | |
%vtable25 = load i8*, i8** %addr_vtable24, align 8 | |
%vtable_ptr26 = bitcast i8* %vtable25 to [35 x i8*]* | |
%vtable27 = load [35 x i8*], [35 x i8*]* %vtable_ptr26, align 8 | |
%func_raw28 = extractvalue [35 x i8*] %vtable27, 19 | |
%func29 = bitcast i8* %func_raw28 to %Int* (%Int*, %Int*)* | |
%result30 = call %Int* %func29(%Int* %"@n_items21", %Int* %sk_int22) | |
br label %"Invoke_Int#-_end31" | |
"Invoke_Int#-_end31": ; preds = %"Invoke_Int#-23" | |
%"addr_@n_items32" = getelementptr inbounds %Array, %Array* %self, i32 0, i32 3 | |
store %Int* %result30, %Int** %"addr_@n_items32", align 8 | |
%"addr_@items" = getelementptr inbounds %Array, %Array* %self, i32 0, i32 4 | |
%"@items" = load %"Shiika::Internal::Ptr"*, %"Shiika::Internal::Ptr"** %"addr_@items", align 8 | |
%"::Array::BYTES_OF_PTR" = load %Int*, %Int** @"::Array::BYTES_OF_PTR", align 8 | |
br label %"Invoke_Shiika::Internal::Ptr#+" | |
"Invoke_Shiika::Internal::Ptr#+": ; preds = %"Invoke_Int#-_end31" | |
%addr_vtable33 = getelementptr inbounds %"Shiika::Internal::Ptr", %"Shiika::Internal::Ptr"* %"@items", i32 0, i32 0 | |
%vtable34 = load i8*, i8** %addr_vtable33, align 8 | |
%vtable_ptr35 = bitcast i8* %vtable34 to [21 x i8*]* | |
%vtable36 = load [21 x i8*], [21 x i8*]* %vtable_ptr35, align 8 | |
%func_raw37 = extractvalue [21 x i8*] %vtable36, 16 | |
%func38 = bitcast i8* %func_raw37 to %"Shiika::Internal::Ptr"* (%"Shiika::Internal::Ptr"*, %Int*)* | |
%result39 = call %"Shiika::Internal::Ptr"* %func38(%"Shiika::Internal::Ptr"* %"@items", %Int* %"::Array::BYTES_OF_PTR") | |
br label %"Invoke_Shiika::Internal::Ptr#+_end" | |
"Invoke_Shiika::Internal::Ptr#+_end": ; preds = %"Invoke_Shiika::Internal::Ptr#+" | |
%"addr_@items40" = getelementptr inbounds %Array, %Array* %self, i32 0, i32 4 | |
store %"Shiika::Internal::Ptr"* %result39, %"Shiika::Internal::Ptr"** %"addr_@items40", align 8 | |
%"::Some" = load %"Maybe::Some"*, %"Maybe::Some"** @"::Some", align 8 | |
%"::Array" = load %Array*, %Array** @"::Array", align 8 | |
%"::Class" = load %Class.0*, %Class.0** @"::Class", align 8 | |
br label %"Invoke_Class#_specialize1" | |
"Invoke_Class#_specialize1": ; preds = %"Invoke_Shiika::Internal::Ptr#+_end" | |
%addr_vtable41 = getelementptr inbounds %Array, %Array* %"::Array", i32 0, i32 0 | |
%vtable42 = load i8*, i8** %addr_vtable41, align 8 | |
%vtable_ptr43 = bitcast i8* %vtable42 to [25 x i8*]* | |
%vtable44 = load [25 x i8*], [25 x i8*]* %vtable_ptr43, align 8 | |
%func_raw45 = extractvalue [25 x i8*] %vtable44, 18 | |
%func46 = bitcast i8* %func_raw45 to %Array* (%Array*, %Class.0*)* | |
%result47 = call %Array* %func46(%Array* %"::Array", %Class.0* %"::Class") | |
br label %"Invoke_Class#_specialize1_end" | |
"Invoke_Class#_specialize1_end": ; preds = %"Invoke_Class#_specialize1" | |
br label %"Invoke_Array#new" | |
"Invoke_Array#new": ; preds = %"Invoke_Class#_specialize1_end" | |
%addr_vtable48 = getelementptr inbounds %Array, %Array* %result47, i32 0, i32 0 | |
%vtable49 = load i8*, i8** %addr_vtable48, align 8 | |
%vtable_ptr50 = bitcast i8* %vtable49 to [25 x i8*]* | |
%vtable51 = load [25 x i8*], [25 x i8*]* %vtable_ptr50, align 8 | |
%func_raw52 = extractvalue [25 x i8*] %vtable51, 23 | |
%func53 = bitcast i8* %func_raw52 to %Array* (%Array*)* | |
%result54 = call %Array* %func53(%Array* %result47) | |
br label %"Invoke_Array#new_end" | |
"Invoke_Array#new_end": ; preds = %"Invoke_Array#new" | |
store %Array* %result54, %Array** %"ary@17_", align 8 | |
%"ary@17_55" = load %Array*, %Array** %"ary@17_", align 8 | |
%addr_class = getelementptr inbounds %Array, %Array* %self, i32 0, i32 1 | |
%class = load %Class.0*, %Class.0** %addr_class, align 8 | |
%sk_int56 = call %Int* @box_int(i64 0) | |
%result57 = call %Class.0* @Class___type__argument(%Class.0* %class, %Int* %sk_int56) | |
%as58 = bitcast %Class.0* %result57 to %Object* | |
br label %"Invoke_Array#push" | |
"Invoke_Array#push": ; preds = %"Invoke_Array#new_end" | |
%addr_vtable59 = getelementptr inbounds %Array, %Array* %"ary@17_55", i32 0, i32 0 | |
%vtable60 = load i8*, i8** %addr_vtable59, align 8 | |
%vtable_ptr61 = bitcast i8* %vtable60 to [54 x i8*]* | |
%vtable62 = load [54 x i8*], [54 x i8*]* %vtable_ptr61, align 8 | |
%func_raw63 = extractvalue [54 x i8*] %vtable62, 45 | |
%func64 = bitcast i8* %func_raw63 to %Void* (%Array*, %Object*)* | |
%result65 = call %Void* %func64(%Array* %"ary@17_55", %Object* %as58) | |
br label %"Invoke_Array#push_end" | |
"Invoke_Array#push_end": ; preds = %"Invoke_Array#push" | |
%"ary@17_66" = load %Array*, %Array** %"ary@17_", align 8 | |
br label %"Invoke_Class#<>" | |
"Invoke_Class#<>": ; preds = %"Invoke_Array#push_end" | |
%addr_vtable67 = getelementptr inbounds %"Maybe::Some", %"Maybe::Some"* %"::Some", i32 0, i32 0 | |
%vtable68 = load i8*, i8** %addr_vtable67, align 8 | |
%vtable_ptr69 = bitcast i8* %vtable68 to [23 x i8*]* | |
%vtable70 = load [23 x i8*], [23 x i8*]* %vtable_ptr69, align 8 | |
%func_raw71 = extractvalue [23 x i8*] %vtable70, 16 | |
%func72 = bitcast i8* %func_raw71 to %"Maybe::Some"* (%"Maybe::Some"*, %Array*)* | |
%result73 = call %"Maybe::Some"* %func72(%"Maybe::Some"* %"::Some", %Array* %"ary@17_66") | |
br label %"Invoke_Class#<>_end" | |
"Invoke_Class#<>_end": ; preds = %"Invoke_Class#<>" | |
%ret74 = load %Object*, %Object** %ret, align 8 | |
br label %"Invoke_Meta:Maybe::Some#new" | |
"Invoke_Meta:Maybe::Some#new": ; preds = %"Invoke_Class#<>_end" | |
%addr_vtable75 = getelementptr inbounds %"Maybe::Some", %"Maybe::Some"* %result73, i32 0, i32 0 | |
%vtable76 = load i8*, i8** %addr_vtable75, align 8 | |
%vtable_ptr77 = bitcast i8* %vtable76 to [23 x i8*]* | |
%vtable78 = load [23 x i8*], [23 x i8*]* %vtable_ptr77, align 8 | |
%func_raw79 = extractvalue [23 x i8*] %vtable78, 22 | |
%func80 = bitcast i8* %func_raw79 to %"Maybe::Some"* (%"Maybe::Some"*, %Object*)* | |
%result81 = call %"Maybe::Some"* %func80(%"Maybe::Some"* %result73, %Object* %ret74) | |
br label %"Invoke_Meta:Maybe::Some#new_end" | |
"Invoke_Meta:Maybe::Some#new_end": ; preds = %"Invoke_Meta:Maybe::Some#new" | |
%as82 = bitcast %"Maybe::Some"* %result81 to %Maybe* | |
br label %IfEnd | |
Ret: ; preds = %IfEnd | |
br label %End | |
} | |
define %Array* @Array_sort(%Array* %self) { | |
alloca: | |
%ret = alloca %Array*, align 8 | |
br label %alloca_End | |
alloca_End: ; preds = %alloca | |
br label %"Invoke_Array#clone" | |
End: ; preds = %Ret | |
%methodResult = phi %Array* [ %ret10, %Ret ] | |
ret %Array* %methodResult | |
"Invoke_Array#clone": ; preds = %alloca_End | |
%addr_vtable = getelementptr inbounds %Array, %Array* %self, i32 0, i32 0 | |
%vtable = load i8*, i8** %addr_vtable, align 8 | |
%vtable_ptr = bitcast i8* %vtable to [54 x i8*]* | |
%vtable1 = load [54 x i8*], [54 x i8*]* %vtable_ptr, align 8 | |
%func_raw = extractvalue [54 x i8*] %vtable1, 27 | |
%func = bitcast i8* %func_raw to %Array* (%Array*)* | |
%result = call %Array* %func(%Array* %self) | |
br label %"Invoke_Array#clone_end" | |
"Invoke_Array#clone_end": ; preds = %"Invoke_Array#clone" | |
store %Array* %result, %Array** %ret, align 8 | |
%ret2 = load %Array*, %Array** %ret, align 8 | |
br label %"Invoke_Array#sort_inplace" | |
"Invoke_Array#sort_inplace": ; preds = %"Invoke_Array#clone_end" | |
%addr_vtable3 = getelementptr inbounds %Array, %Array* %ret2, i32 0, i32 0 | |
%vtable4 = load i8*, i8** %addr_vtable3, align 8 | |
%vtable_ptr5 = bitcast i8* %vtable4 to [54 x i8*]* | |
%vtable6 = load [54 x i8*], [54 x i8*]* %vtable_ptr5, align 8 | |
%func_raw7 = extractvalue [54 x i8*] %vtable6, 53 | |
%func8 = bitcast i8* %func_raw7 to %Void* (%Array*)* | |
%result9 = call %Void* %func8(%Array* %ret2) | |
br label %"Invoke_Array#sort_inplace_end" | |
"Invoke_Array#sort_inplace_end": ; preds = %"Invoke_Array#sort_inplace" | |
%ret10 = load %Array*, %Array** %ret, align 8 | |
br label %Ret | |
Ret: ; preds = %"Invoke_Array#sort_inplace_end" | |
br label %End | |
} | |
define %Void* @Array_sort__inplace(%Array* %self) { | |
br label %IfBegin | |
End: ; preds = %Ret | |
%"::Void20" = load %Void*, %Void** @"::Void", align 8 | |
ret %Void* %"::Void20" | |
IfBegin: ; preds = %0 | |
br label %"Invoke_Array#empty?" | |
IfThen: ; preds = %"Invoke_Array#empty?_end" | |
%"::Void" = load %Void*, %Void** @"::Void", align 8 | |
br label %IfEnd | |
IfElse: ; preds = %"Invoke_Array#empty?_end" | |
%sk_int = call %Int* @box_int(i64 0) | |
%as = bitcast %Int* %sk_int to %Object* | |
%"addr_@n_items" = getelementptr inbounds %Array, %Array* %self, i32 0, i32 3 | |
%"@n_items" = load %Int*, %Int** %"addr_@n_items", align 8 | |
%sk_int2 = call %Int* @box_int(i64 1) | |
br label %"Invoke_Int#-" | |
IfEnd: ; preds = %"Invoke_Array#_quicksort_end", %IfThen | |
%ifResult = phi %Void* [ %"::Void", %IfThen ], [ %"::Void18", %"Invoke_Array#_quicksort_end" ] | |
%"::Void19" = load %Void*, %Void** @"::Void", align 8 | |
br label %Ret | |
"Invoke_Array#empty?": ; preds = %IfBegin | |
%addr_vtable = getelementptr inbounds %Array, %Array* %self, i32 0, i32 0 | |
%vtable = load i8*, i8** %addr_vtable, align 8 | |
%vtable_ptr = bitcast i8* %vtable to [54 x i8*]* | |
%vtable1 = load [54 x i8*], [54 x i8*]* %vtable_ptr, align 8 | |
%func_raw = extractvalue [54 x i8*] %vtable1, 30 | |
%func = bitcast i8* %func_raw to %Bool* (%Array*)* | |
%result = call %Bool* %func(%Array* %self) | |
br label %"Invoke_Array#empty?_end" | |
"Invoke_Array#empty?_end": ; preds = %"Invoke_Array#empty?" | |
%llvm_bool = call i1 @unbox_bool(%Bool* %result) | |
%istrue = icmp eq i1 %llvm_bool, true | |
br i1 %istrue, label %IfThen, label %IfElse | |
"Invoke_Int#-": ; preds = %IfElse | |
%addr_vtable3 = getelementptr inbounds %Int, %Int* %"@n_items", i32 0, i32 0 | |
%vtable4 = load i8*, i8** %addr_vtable3, align 8 | |
%vtable_ptr5 = bitcast i8* %vtable4 to [35 x i8*]* | |
%vtable6 = load [35 x i8*], [35 x i8*]* %vtable_ptr5, align 8 | |
%func_raw7 = extractvalue [35 x i8*] %vtable6, 19 | |
%func8 = bitcast i8* %func_raw7 to %Int* (%Int*, %Int*)* | |
%result9 = call %Int* %func8(%Int* %"@n_items", %Int* %sk_int2) | |
br label %"Invoke_Int#-_end" | |
"Invoke_Int#-_end": ; preds = %"Invoke_Int#-" | |
%as10 = bitcast %Int* %result9 to %Object* | |
br label %"Invoke_Array#_quicksort" | |
"Invoke_Array#_quicksort": ; preds = %"Invoke_Int#-_end" | |
%addr_vtable11 = getelementptr inbounds %Array, %Array* %self, i32 0, i32 0 | |
%vtable12 = load i8*, i8** %addr_vtable11, align 8 | |
%vtable_ptr13 = bitcast i8* %vtable12 to [54 x i8*]* | |
%vtable14 = load [54 x i8*], [54 x i8*]* %vtable_ptr13, align 8 | |
%func_raw15 = extractvalue [54 x i8*] %vtable14, 20 | |
%func16 = bitcast i8* %func_raw15 to %Void* (%Array*, %Object*, %Object*)* | |
%result17 = call %Void* %func16(%Array* %self, %Object* %as, %Object* %as10) | |
br label %"Invoke_Array#_quicksort_end" | |
"Invoke_Array#_quicksort_end": ; preds = %"Invoke_Array#_quicksort" | |
%"::Void18" = load %Void*, %Void** @"::Void", align 8 | |
br label %IfEnd | |
Ret: ; preds = %IfEnd | |
br label %End | |
} | |
define %Void* @Array___quicksort(%Array* %self, %Int* %i, %Int* %j) { | |
alloca: | |
%k = alloca %Int*, align 8 | |
br label %alloca_End | |
alloca_End: ; preds = %alloca | |
br label %IfBegin | |
End: ; preds = %Ret | |
%"::Void58" = load %Void*, %Void** @"::Void", align 8 | |
ret %Void* %"::Void58" | |
IfBegin: ; preds = %alloca_End | |
br label %"Invoke_Int#==" | |
IfThen: ; preds = %"Invoke_Int#==_end" | |
%"::Void" = load %Void*, %Void** @"::Void", align 8 | |
br label %IfEnd | |
IfElse: ; preds = %"Invoke_Int#==_end" | |
%as = bitcast %Int* %i to %Object* | |
%as2 = bitcast %Int* %j to %Object* | |
%as3 = bitcast %Int* %i to %Object* | |
%as4 = bitcast %Int* %j to %Object* | |
br label %"Invoke_Array#_choose_pivot" | |
IfEnd: ; preds = %"Invoke_Array#_quicksort_end55", %IfThen | |
%ifResult = phi %Void* [ %"::Void", %IfThen ], [ %"::Void56", %"Invoke_Array#_quicksort_end55" ] | |
%"::Void57" = load %Void*, %Void** @"::Void", align 8 | |
br label %Ret | |
"Invoke_Int#==": ; preds = %IfBegin | |
%addr_vtable = getelementptr inbounds %Int, %Int* %i, i32 0, i32 0 | |
%vtable = load i8*, i8** %addr_vtable, align 8 | |
%vtable_ptr = bitcast i8* %vtable to [35 x i8*]* | |
%vtable1 = load [35 x i8*], [35 x i8*]* %vtable_ptr, align 8 | |
%func_raw = extractvalue [35 x i8*] %vtable1, 2 | |
%func = bitcast i8* %func_raw to %Bool* (%Int*, %Int*)* | |
%result = call %Bool* %func(%Int* %i, %Int* %j) | |
br label %"Invoke_Int#==_end" | |
"Invoke_Int#==_end": ; preds = %"Invoke_Int#==" | |
%llvm_bool = call i1 @unbox_bool(%Bool* %result) | |
%istrue = icmp eq i1 %llvm_bool, true | |
br i1 %istrue, label %IfThen, label %IfElse | |
"Invoke_Array#_choose_pivot": ; preds = %IfElse | |
%addr_vtable5 = getelementptr inbounds %Array, %Array* %self, i32 0, i32 0 | |
%vtable6 = load i8*, i8** %addr_vtable5, align 8 | |
%vtable_ptr7 = bitcast i8* %vtable6 to [54 x i8*]* | |
%vtable8 = load [54 x i8*], [54 x i8*]* %vtable_ptr7, align 8 | |
%func_raw9 = extractvalue [54 x i8*] %vtable8, 18 | |
%func10 = bitcast i8* %func_raw9 to %Int* (%Array*, %Object*, %Object*)* | |
%result11 = call %Int* %func10(%Array* %self, %Object* %as3, %Object* %as4) | |
br label %"Invoke_Array#_choose_pivot_end" | |
"Invoke_Array#_choose_pivot_end": ; preds = %"Invoke_Array#_choose_pivot" | |
%as12 = bitcast %Int* %result11 to %Object* | |
br label %"Invoke_Array#[]" | |
"Invoke_Array#[]": ; preds = %"Invoke_Array#_choose_pivot_end" | |
%addr_vtable13 = getelementptr inbounds %Array, %Array* %self, i32 0, i32 0 | |
%vtable14 = load i8*, i8** %addr_vtable13, align 8 | |
%vtable_ptr15 = bitcast i8* %vtable14 to [54 x i8*]* | |
%vtable16 = load [54 x i8*], [54 x i8*]* %vtable_ptr15, align 8 | |
%func_raw17 = extractvalue [54 x i8*] %vtable16, 16 | |
%func18 = bitcast i8* %func_raw17 to %Object* (%Array*, %Object*)* | |
%result19 = call %Object* %func18(%Array* %self, %Object* %as12) | |
br label %"Invoke_Array#[]_end" | |
"Invoke_Array#[]_end": ; preds = %"Invoke_Array#[]" | |
br label %"Invoke_Array#_partition" | |
"Invoke_Array#_partition": ; preds = %"Invoke_Array#[]_end" | |
%addr_vtable20 = getelementptr inbounds %Array, %Array* %self, i32 0, i32 0 | |
%vtable21 = load i8*, i8** %addr_vtable20, align 8 | |
%vtable_ptr22 = bitcast i8* %vtable21 to [54 x i8*]* | |
%vtable23 = load [54 x i8*], [54 x i8*]* %vtable_ptr22, align 8 | |
%func_raw24 = extractvalue [54 x i8*] %vtable23, 19 | |
%func25 = bitcast i8* %func_raw24 to %Int* (%Array*, %Object*, %Object*, %Object*)* | |
%result26 = call %Int* %func25(%Array* %self, %Object* %as, %Object* %as2, %Object* %result19) | |
br label %"Invoke_Array#_partition_end" | |
"Invoke_Array#_partition_end": ; preds = %"Invoke_Array#_partition" | |
store %Int* %result26, %Int** %k, align 8 | |
%as27 = bitcast %Int* %i to %Object* | |
%k28 = load %Int*, %Int** %k, align 8 | |
%sk_int = call %Int* @box_int(i64 1) | |
br label %"Invoke_Int#-" | |
"Invoke_Int#-": ; preds = %"Invoke_Array#_partition_end" | |
%addr_vtable29 = getelementptr inbounds %Int, %Int* %k28, i32 0, i32 0 | |
%vtable30 = load i8*, i8** %addr_vtable29, align 8 | |
%vtable_ptr31 = bitcast i8* %vtable30 to [35 x i8*]* | |
%vtable32 = load [35 x i8*], [35 x i8*]* %vtable_ptr31, align 8 | |
%func_raw33 = extractvalue [35 x i8*] %vtable32, 19 | |
%func34 = bitcast i8* %func_raw33 to %Int* (%Int*, %Int*)* | |
%result35 = call %Int* %func34(%Int* %k28, %Int* %sk_int) | |
br label %"Invoke_Int#-_end" | |
"Invoke_Int#-_end": ; preds = %"Invoke_Int#-" | |
%as36 = bitcast %Int* %result35 to %Object* | |
br label %"Invoke_Array#_quicksort" | |
"Invoke_Array#_quicksort": ; preds = %"Invoke_Int#-_end" | |
%addr_vtable37 = getelementptr inbounds %Array, %Array* %self, i32 0, i32 0 | |
%vtable38 = load i8*, i8** %addr_vtable37, align 8 | |
%vtable_ptr39 = bitcast i8* %vtable38 to [54 x i8*]* | |
%vtable40 = load [54 x i8*], [54 x i8*]* %vtable_ptr39, align 8 | |
%func_raw41 = extractvalue [54 x i8*] %vtable40, 20 | |
%func42 = bitcast i8* %func_raw41 to %Void* (%Array*, %Object*, %Object*)* | |
%result43 = call %Void* %func42(%Array* %self, %Object* %as27, %Object* %as36) | |
br label %"Invoke_Array#_quicksort_end" | |
"Invoke_Array#_quicksort_end": ; preds = %"Invoke_Array#_quicksort" | |
%k44 = load %Int*, %Int** %k, align 8 | |
%as45 = bitcast %Int* %k44 to %Object* | |
%as46 = bitcast %Int* %j to %Object* | |
br label %"Invoke_Array#_quicksort47" | |
"Invoke_Array#_quicksort47": ; preds = %"Invoke_Array#_quicksort_end" | |
%addr_vtable48 = getelementptr inbounds %Array, %Array* %self, i32 0, i32 0 | |
%vtable49 = load i8*, i8** %addr_vtable48, align 8 | |
%vtable_ptr50 = bitcast i8* %vtable49 to [54 x i8*]* | |
%vtable51 = load [54 x i8*], [54 x i8*]* %vtable_ptr50, align 8 | |
%func_raw52 = extractvalue [54 x i8*] %vtable51, 20 | |
%func53 = bitcast i8* %func_raw52 to %Void* (%Array*, %Object*, %Object*)* | |
%result54 = call %Void* %func53(%Array* %self, %Object* %as45, %Object* %as46) | |
br label %"Invoke_Array#_quicksort_end55" | |
"Invoke_Array#_quicksort_end55": ; preds = %"Invoke_Array#_quicksort47" | |
%"::Void56" = load %Void*, %Void** @"::Void", align 8 | |
br label %IfEnd | |
Ret: ; preds = %IfEnd | |
br label %End | |
} | |
define %Int* @Array___choose__pivot(%Array* %self, %Int* %i, %Int* %j) { | |
alloca: | |
%k = alloca %Int*, align 8 | |
br label %alloca_End | |
alloca_End: ; preds = %alloca | |
%sk_int = call %Int* @box_int(i64 1) | |
br label %"Invoke_Int#+" | |
End: ; preds = %Ret | |
%methodResult = phi %Int* [ %ifResult101, %Ret ] | |
ret %Int* %methodResult | |
"Invoke_Int#+": ; preds = %alloca_End | |
%addr_vtable = getelementptr inbounds %Int, %Int* %i, i32 0, i32 0 | |
%vtable = load i8*, i8** %addr_vtable, align 8 | |
%vtable_ptr = bitcast i8* %vtable to [35 x i8*]* | |
%vtable1 = load [35 x i8*], [35 x i8*]* %vtable_ptr, align 8 | |
%func_raw = extractvalue [35 x i8*] %vtable1, 18 | |
%func = bitcast i8* %func_raw to %Int* (%Int*, %Int*)* | |
%result = call %Int* %func(%Int* %i, %Int* %sk_int) | |
br label %"Invoke_Int#+_end" | |
"Invoke_Int#+_end": ; preds = %"Invoke_Int#+" | |
store %Int* %result, %Int** %k, align 8 | |
br label %WhileBegin | |
WhileBegin: ; preds = %"Invoke_Int#+_end47", %"Invoke_Int#+_end" | |
br label %AndBegin | |
AndBegin: ; preds = %WhileBegin | |
%k2 = load %Int*, %Int** %k, align 8 | |
br label %"Invoke_Int#<=" | |
AndMore: ; preds = %"Invoke_Int#<=_end" | |
%as = bitcast %Int* %i to %Object* | |
br label %"Invoke_Array#[]" | |
AndEnd: ; preds = %"Invoke_Object#==_end", %"Invoke_Int#<=_end" | |
%AndResult = phi %Bool* [ %result9, %"Invoke_Int#<=_end" ], [ %result34, %"Invoke_Object#==_end" ] | |
%llvm_bool35 = call i1 @unbox_bool(%Bool* %AndResult) | |
%istrue36 = icmp eq i1 %llvm_bool35, true | |
br i1 %istrue36, label %WhileBody, label %WhileEnd | |
"Invoke_Int#<=": ; preds = %AndBegin | |
%addr_vtable3 = getelementptr inbounds %Int, %Int* %k2, i32 0, i32 0 | |
%vtable4 = load i8*, i8** %addr_vtable3, align 8 | |
%vtable_ptr5 = bitcast i8* %vtable4 to [35 x i8*]* | |
%vtable6 = load [35 x i8*], [35 x i8*]* %vtable_ptr5, align 8 | |
%func_raw7 = extractvalue [35 x i8*] %vtable6, 1 | |
%func8 = bitcast i8* %func_raw7 to %Bool* (%Int*, %Int*)* | |
%result9 = call %Bool* %func8(%Int* %k2, %Int* %j) | |
br label %"Invoke_Int#<=_end" | |
"Invoke_Int#<=_end": ; preds = %"Invoke_Int#<=" | |
%llvm_bool = call i1 @unbox_bool(%Bool* %result9) | |
%istrue = icmp eq i1 %llvm_bool, true | |
br i1 %istrue, label %AndMore, label %AndEnd | |
"Invoke_Array#[]": ; preds = %AndMore | |
%addr_vtable10 = getelementptr inbounds %Array, %Array* %self, i32 0, i32 0 | |
%vtable11 = load i8*, i8** %addr_vtable10, align 8 | |
%vtable_ptr12 = bitcast i8* %vtable11 to [54 x i8*]* | |
%vtable13 = load [54 x i8*], [54 x i8*]* %vtable_ptr12, align 8 | |
%func_raw14 = extractvalue [54 x i8*] %vtable13, 16 | |
%func15 = bitcast i8* %func_raw14 to %Object* (%Array*, %Object*)* | |
%result16 = call %Object* %func15(%Array* %self, %Object* %as) | |
br label %"Invoke_Array#[]_end" | |
"Invoke_Array#[]_end": ; preds = %"Invoke_Array#[]" | |
%k17 = load %Int*, %Int** %k, align 8 | |
%as18 = bitcast %Int* %k17 to %Object* | |
br label %"Invoke_Array#[]19" | |
"Invoke_Array#[]19": ; preds = %"Invoke_Array#[]_end" | |
%addr_vtable20 = getelementptr inbounds %Array, %Array* %self, i32 0, i32 0 | |
%vtable21 = load i8*, i8** %addr_vtable20, align 8 | |
%vtable_ptr22 = bitcast i8* %vtable21 to [54 x i8*]* | |
%vtable23 = load [54 x i8*], [54 x i8*]* %vtable_ptr22, align 8 | |
%func_raw24 = extractvalue [54 x i8*] %vtable23, 16 | |
%func25 = bitcast i8* %func_raw24 to %Object* (%Array*, %Object*)* | |
%result26 = call %Object* %func25(%Array* %self, %Object* %as18) | |
br label %"Invoke_Array#[]_end27" | |
"Invoke_Array#[]_end27": ; preds = %"Invoke_Array#[]19" | |
br label %"Invoke_Object#==" | |
"Invoke_Object#==": ; preds = %"Invoke_Array#[]_end27" | |
%addr_vtable28 = getelementptr inbounds %Object, %Object* %result16, i32 0, i32 0 | |
%vtable29 = load i8*, i8** %addr_vtable28, align 8 | |
%vtable_ptr30 = bitcast i8* %vtable29 to [16 x i8*]* | |
%vtable31 = load [16 x i8*], [16 x i8*]* %vtable_ptr30, align 8 | |
%func_raw32 = extractvalue [16 x i8*] %vtable31, 2 | |
%func33 = bitcast i8* %func_raw32 to %Bool* (%Object*, %Object*)* | |
%result34 = call %Bool* %func33(%Object* %result16, %Object* %result26) | |
br label %"Invoke_Object#==_end" | |
"Invoke_Object#==_end": ; preds = %"Invoke_Object#==" | |
br label %AndEnd | |
WhileBody: ; preds = %AndEnd | |
%k37 = load %Int*, %Int** %k, align 8 | |
%sk_int38 = call %Int* @box_int(i64 1) | |
br label %"Invoke_Int#+39" | |
WhileEnd: ; preds = %AndEnd | |
%"::Void" = load %Void*, %Void** @"::Void", align 8 | |
br label %IfBegin | |
"Invoke_Int#+39": ; preds = %WhileBody | |
%addr_vtable40 = getelementptr inbounds %Int, %Int* %k37, i32 0, i32 0 | |
%vtable41 = load i8*, i8** %addr_vtable40, align 8 | |
%vtable_ptr42 = bitcast i8* %vtable41 to [35 x i8*]* | |
%vtable43 = load [35 x i8*], [35 x i8*]* %vtable_ptr42, align 8 | |
%func_raw44 = extractvalue [35 x i8*] %vtable43, 18 | |
%func45 = bitcast i8* %func_raw44 to %Int* (%Int*, %Int*)* | |
%result46 = call %Int* %func45(%Int* %k37, %Int* %sk_int38) | |
br label %"Invoke_Int#+_end47" | |
"Invoke_Int#+_end47": ; preds = %"Invoke_Int#+39" | |
store %Int* %result46, %Int** %k, align 8 | |
br label %WhileBegin | |
IfBegin: ; preds = %WhileEnd | |
%k48 = load %Int*, %Int** %k, align 8 | |
br label %"Invoke_Int#>" | |
IfThen: ; preds = %"Invoke_Int#>_end" | |
%sk_int58 = call %Int* @box_int(i64 1) | |
br label %"Invoke_Int#-@" | |
IfElse: ; preds = %"Invoke_Int#>_end" | |
br label %IfBegin66 | |
IfEnd: ; preds = %IfEnd69, %"Invoke_Int#-@_end" | |
%ifResult101 = phi %Int* [ %result65, %"Invoke_Int#-@_end" ], [ %ifResult, %IfEnd69 ] | |
br label %Ret | |
"Invoke_Int#>": ; preds = %IfBegin | |
%addr_vtable49 = getelementptr inbounds %Int, %Int* %k48, i32 0, i32 0 | |
%vtable50 = load i8*, i8** %addr_vtable49, align 8 | |
%vtable_ptr51 = bitcast i8* %vtable50 to [35 x i8*]* | |
%vtable52 = load [35 x i8*], [35 x i8*]* %vtable_ptr51, align 8 | |
%func_raw53 = extractvalue [35 x i8*] %vtable52, 3 | |
%func54 = bitcast i8* %func_raw53 to %Bool* (%Int*, %Int*)* | |
%result55 = call %Bool* %func54(%Int* %k48, %Int* %j) | |
br label %"Invoke_Int#>_end" | |
"Invoke_Int#>_end": ; preds = %"Invoke_Int#>" | |
%llvm_bool56 = call i1 @unbox_bool(%Bool* %result55) | |
%istrue57 = icmp eq i1 %llvm_bool56, true | |
br i1 %istrue57, label %IfThen, label %IfElse | |
"Invoke_Int#-@": ; preds = %IfThen | |
%addr_vtable59 = getelementptr inbounds %Int, %Int* %sk_int58, i32 0, i32 0 | |
%vtable60 = load i8*, i8** %addr_vtable59, align 8 | |
%vtable_ptr61 = bitcast i8* %vtable60 to [35 x i8*]* | |
%vtable62 = load [35 x i8*], [35 x i8*]* %vtable_ptr61, align 8 | |
%func_raw63 = extractvalue [35 x i8*] %vtable62, 20 | |
%func64 = bitcast i8* %func_raw63 to %Int* (%Int*)* | |
%result65 = call %Int* %func64(%Int* %sk_int58) | |
br label %"Invoke_Int#-@_end" | |
"Invoke_Int#-@_end": ; preds = %"Invoke_Int#-@" | |
br label %IfEnd | |
IfBegin66: ; preds = %IfElse | |
%as70 = bitcast %Int* %i to %Object* | |
br label %"Invoke_Array#[]71" | |
IfThen67: ; preds = %"Invoke_Object#>=_end" | |
br label %IfEnd69 | |
IfElse68: ; preds = %"Invoke_Object#>=_end" | |
%k100 = load %Int*, %Int** %k, align 8 | |
br label %IfEnd69 | |
IfEnd69: ; preds = %IfElse68, %IfThen67 | |
%ifResult = phi %Int* [ %i, %IfThen67 ], [ %k100, %IfElse68 ] | |
br label %IfEnd | |
"Invoke_Array#[]71": ; preds = %IfBegin66 | |
%addr_vtable72 = getelementptr inbounds %Array, %Array* %self, i32 0, i32 0 | |
%vtable73 = load i8*, i8** %addr_vtable72, align 8 | |
%vtable_ptr74 = bitcast i8* %vtable73 to [54 x i8*]* | |
%vtable75 = load [54 x i8*], [54 x i8*]* %vtable_ptr74, align 8 | |
%func_raw76 = extractvalue [54 x i8*] %vtable75, 16 | |
%func77 = bitcast i8* %func_raw76 to %Object* (%Array*, %Object*)* | |
%result78 = call %Object* %func77(%Array* %self, %Object* %as70) | |
br label %"Invoke_Array#[]_end79" | |
"Invoke_Array#[]_end79": ; preds = %"Invoke_Array#[]71" | |
%k80 = load %Int*, %Int** %k, align 8 | |
%as81 = bitcast %Int* %k80 to %Object* | |
br label %"Invoke_Array#[]82" | |
"Invoke_Array#[]82": ; preds = %"Invoke_Array#[]_end79" | |
%addr_vtable83 = getelementptr inbounds %Array, %Array* %self, i32 0, i32 0 | |
%vtable84 = load i8*, i8** %addr_vtable83, align 8 | |
%vtable_ptr85 = bitcast i8* %vtable84 to [54 x i8*]* | |
%vtable86 = load [54 x i8*], [54 x i8*]* %vtable_ptr85, align 8 | |
%func_raw87 = extractvalue [54 x i8*] %vtable86, 16 | |
%func88 = bitcast i8* %func_raw87 to %Object* (%Array*, %Object*)* | |
%result89 = call %Object* %func88(%Array* %self, %Object* %as81) | |
br label %"Invoke_Array#[]_end90" | |
"Invoke_Array#[]_end90": ; preds = %"Invoke_Array#[]82" | |
br label %"Invoke_Object#>=" | |
"Invoke_Object#>=": ; preds = %"Invoke_Array#[]_end90" | |
%addr_vtable91 = getelementptr inbounds %Object, %Object* %result78, i32 0, i32 0 | |
%vtable92 = load i8*, i8** %addr_vtable91, align 8 | |
%vtable_ptr93 = bitcast i8* %vtable92 to [16 x i8*]* | |
%vtable94 = load [16 x i8*], [16 x i8*]* %vtable_ptr93, align 8 | |
%func_raw95 = extractvalue [16 x i8*] %vtable94, 4 | |
%func96 = bitcast i8* %func_raw95 to %Bool* (%Object*, %Object*)* | |
%result97 = call %Bool* %func96(%Object* %result78, %Object* %result89) | |
br label %"Invoke_Object#>=_end" | |
"Invoke_Object#>=_end": ; preds = %"Invoke_Object#>=" | |
%llvm_bool98 = call i1 @unbox_bool(%Bool* %result97) | |
%istrue99 = icmp eq i1 %llvm_bool98, true | |
br i1 %istrue99, label %IfThen67, label %IfElse68 | |
Ret: ; preds = %IfEnd | |
br label %End | |
} | |
define %Int* @Array___partition(%Array* %self, %Int* %i, %Int* %j, %Object* %pivot) { | |
alloca: | |
%l = alloca %Int*, align 8 | |
%r = alloca %Int*, align 8 | |
%tmp = alloca %Object*, align 8 | |
br label %alloca_End | |
alloca_End: ; preds = %alloca | |
store %Int* %i, %Int** %l, align 8 | |
store %Int* %j, %Int** %r, align 8 | |
br label %WhileBegin | |
End: ; preds = %Ret | |
%methodResult = phi %Int* [ %l170, %Ret ] | |
ret %Int* %methodResult | |
WhileBegin: ; preds = %IfEnd, %alloca_End | |
%l1 = load %Int*, %Int** %l, align 8 | |
%r2 = load %Int*, %Int** %r, align 8 | |
br label %"Invoke_Int#<=" | |
"Invoke_Int#<=": ; preds = %WhileBegin | |
%addr_vtable = getelementptr inbounds %Int, %Int* %l1, i32 0, i32 0 | |
%vtable = load i8*, i8** %addr_vtable, align 8 | |
%vtable_ptr = bitcast i8* %vtable to [35 x i8*]* | |
%vtable3 = load [35 x i8*], [35 x i8*]* %vtable_ptr, align 8 | |
%func_raw = extractvalue [35 x i8*] %vtable3, 1 | |
%func = bitcast i8* %func_raw to %Bool* (%Int*, %Int*)* | |
%result = call %Bool* %func(%Int* %l1, %Int* %r2) | |
br label %"Invoke_Int#<=_end" | |
"Invoke_Int#<=_end": ; preds = %"Invoke_Int#<=" | |
%llvm_bool = call i1 @unbox_bool(%Bool* %result) | |
%istrue = icmp eq i1 %llvm_bool, true | |
br i1 %istrue, label %WhileBody, label %WhileEnd | |
WhileBody: ; preds = %"Invoke_Int#<=_end" | |
br label %WhileBegin4 | |
WhileEnd: ; preds = %"Invoke_Int#<=_end" | |
%"::Void169" = load %Void*, %Void** @"::Void", align 8 | |
%l170 = load %Int*, %Int** %l, align 8 | |
br label %Ret | |
WhileBegin4: ; preds = %"Invoke_Int#+_end", %WhileBody | |
br label %AndBegin | |
AndBegin: ; preds = %WhileBegin4 | |
%l5 = load %Int*, %Int** %l, align 8 | |
br label %"Invoke_Int#<=6" | |
AndMore: ; preds = %"Invoke_Int#<=_end14" | |
%l17 = load %Int*, %Int** %l, align 8 | |
%as = bitcast %Int* %l17 to %Object* | |
br label %"Invoke_Array#[]" | |
AndEnd: ; preds = %"Invoke_Object#<_end", %"Invoke_Int#<=_end14" | |
%AndResult = phi %Bool* [ %result13, %"Invoke_Int#<=_end14" ], [ %result31, %"Invoke_Object#<_end" ] | |
%llvm_bool34 = call i1 @unbox_bool(%Bool* %AndResult) | |
%istrue35 = icmp eq i1 %llvm_bool34, true | |
br i1 %istrue35, label %WhileBody32, label %WhileEnd33 | |
"Invoke_Int#<=6": ; preds = %AndBegin | |
%addr_vtable7 = getelementptr inbounds %Int, %Int* %l5, i32 0, i32 0 | |
%vtable8 = load i8*, i8** %addr_vtable7, align 8 | |
%vtable_ptr9 = bitcast i8* %vtable8 to [35 x i8*]* | |
%vtable10 = load [35 x i8*], [35 x i8*]* %vtable_ptr9, align 8 | |
%func_raw11 = extractvalue [35 x i8*] %vtable10, 1 | |
%func12 = bitcast i8* %func_raw11 to %Bool* (%Int*, %Int*)* | |
%result13 = call %Bool* %func12(%Int* %l5, %Int* %j) | |
br label %"Invoke_Int#<=_end14" | |
"Invoke_Int#<=_end14": ; preds = %"Invoke_Int#<=6" | |
%llvm_bool15 = call i1 @unbox_bool(%Bool* %result13) | |
%istrue16 = icmp eq i1 %llvm_bool15, true | |
br i1 %istrue16, label %AndMore, label %AndEnd | |
"Invoke_Array#[]": ; preds = %AndMore | |
%addr_vtable18 = getelementptr inbounds %Array, %Array* %self, i32 0, i32 0 | |
%vtable19 = load i8*, i8** %addr_vtable18, align 8 | |
%vtable_ptr20 = bitcast i8* %vtable19 to [54 x i8*]* | |
%vtable21 = load [54 x i8*], [54 x i8*]* %vtable_ptr20, align 8 | |
%func_raw22 = extractvalue [54 x i8*] %vtable21, 16 | |
%func23 = bitcast i8* %func_raw22 to %Object* (%Array*, %Object*)* | |
%result24 = call %Object* %func23(%Array* %self, %Object* %as) | |
br label %"Invoke_Array#[]_end" | |
"Invoke_Array#[]_end": ; preds = %"Invoke_Array#[]" | |
br label %"Invoke_Object#<" | |
"Invoke_Object#<": ; preds = %"Invoke_Array#[]_end" | |
%addr_vtable25 = getelementptr inbounds %Object, %Object* %result24, i32 0, i32 0 | |
%vtable26 = load i8*, i8** %addr_vtable25, align 8 | |
%vtable_ptr27 = bitcast i8* %vtable26 to [16 x i8*]* | |
%vtable28 = load [16 x i8*], [16 x i8*]* %vtable_ptr27, align 8 | |
%func_raw29 = extractvalue [16 x i8*] %vtable28, 0 | |
%func30 = bitcast i8* %func_raw29 to %Bool* (%Object*, %Object*)* | |
%result31 = call %Bool* %func30(%Object* %result24, %Object* %pivot) | |
br label %"Invoke_Object#<_end" | |
"Invoke_Object#<_end": ; preds = %"Invoke_Object#<" | |
br label %AndEnd | |
WhileBody32: ; preds = %AndEnd | |
%l36 = load %Int*, %Int** %l, align 8 | |
%sk_int = call %Int* @box_int(i64 1) | |
br label %"Invoke_Int#+" | |
WhileEnd33: ; preds = %AndEnd | |
%"::Void" = load %Void*, %Void** @"::Void", align 8 | |
br label %WhileBegin44 | |
"Invoke_Int#+": ; preds = %WhileBody32 | |
%addr_vtable37 = getelementptr inbounds %Int, %Int* %l36, i32 0, i32 0 | |
%vtable38 = load i8*, i8** %addr_vtable37, align 8 | |
%vtable_ptr39 = bitcast i8* %vtable38 to [35 x i8*]* | |
%vtable40 = load [35 x i8*], [35 x i8*]* %vtable_ptr39, align 8 | |
%func_raw41 = extractvalue [35 x i8*] %vtable40, 18 | |
%func42 = bitcast i8* %func_raw41 to %Int* (%Int*, %Int*)* | |
%result43 = call %Int* %func42(%Int* %l36, %Int* %sk_int) | |
br label %"Invoke_Int#+_end" | |
"Invoke_Int#+_end": ; preds = %"Invoke_Int#+" | |
store %Int* %result43, %Int** %l, align 8 | |
br label %WhileBegin4 | |
WhileBegin44: ; preds = %"Invoke_Int#-_end", %WhileEnd33 | |
br label %AndBegin45 | |
AndBegin45: ; preds = %WhileBegin44 | |
%r48 = load %Int*, %Int** %r, align 8 | |
br label %"Invoke_Int#>=" | |
AndMore46: ; preds = %"Invoke_Int#>=_end" | |
%r58 = load %Int*, %Int** %r, align 8 | |
%as59 = bitcast %Int* %r58 to %Object* | |
br label %"Invoke_Array#[]60" | |
AndEnd47: ; preds = %"Invoke_Object#>=_end", %"Invoke_Int#>=_end" | |
%AndResult76 = phi %Bool* [ %result55, %"Invoke_Int#>=_end" ], [ %result75, %"Invoke_Object#>=_end" ] | |
%llvm_bool79 = call i1 @unbox_bool(%Bool* %AndResult76) | |
%istrue80 = icmp eq i1 %llvm_bool79, true | |
br i1 %istrue80, label %WhileBody77, label %WhileEnd78 | |
"Invoke_Int#>=": ; preds = %AndBegin45 | |
%addr_vtable49 = getelementptr inbounds %Int, %Int* %r48, i32 0, i32 0 | |
%vtable50 = load i8*, i8** %addr_vtable49, align 8 | |
%vtable_ptr51 = bitcast i8* %vtable50 to [35 x i8*]* | |
%vtable52 = load [35 x i8*], [35 x i8*]* %vtable_ptr51, align 8 | |
%func_raw53 = extractvalue [35 x i8*] %vtable52, 4 | |
%func54 = bitcast i8* %func_raw53 to %Bool* (%Int*, %Int*)* | |
%result55 = call %Bool* %func54(%Int* %r48, %Int* %i) | |
br label %"Invoke_Int#>=_end" | |
"Invoke_Int#>=_end": ; preds = %"Invoke_Int#>=" | |
%llvm_bool56 = call i1 @unbox_bool(%Bool* %result55) | |
%istrue57 = icmp eq i1 %llvm_bool56, true | |
br i1 %istrue57, label %AndMore46, label %AndEnd47 | |
"Invoke_Array#[]60": ; preds = %AndMore46 | |
%addr_vtable61 = getelementptr inbounds %Array, %Array* %self, i32 0, i32 0 | |
%vtable62 = load i8*, i8** %addr_vtable61, align 8 | |
%vtable_ptr63 = bitcast i8* %vtable62 to [54 x i8*]* | |
%vtable64 = load [54 x i8*], [54 x i8*]* %vtable_ptr63, align 8 | |
%func_raw65 = extractvalue [54 x i8*] %vtable64, 16 | |
%func66 = bitcast i8* %func_raw65 to %Object* (%Array*, %Object*)* | |
%result67 = call %Object* %func66(%Array* %self, %Object* %as59) | |
br label %"Invoke_Array#[]_end68" | |
"Invoke_Array#[]_end68": ; preds = %"Invoke_Array#[]60" | |
br label %"Invoke_Object#>=" | |
"Invoke_Object#>=": ; preds = %"Invoke_Array#[]_end68" | |
%addr_vtable69 = getelementptr inbounds %Object, %Object* %result67, i32 0, i32 0 | |
%vtable70 = load i8*, i8** %addr_vtable69, align 8 | |
%vtable_ptr71 = bitcast i8* %vtable70 to [16 x i8*]* | |
%vtable72 = load [16 x i8*], [16 x i8*]* %vtable_ptr71, align 8 | |
%func_raw73 = extractvalue [16 x i8*] %vtable72, 4 | |
%func74 = bitcast i8* %func_raw73 to %Bool* (%Object*, %Object*)* | |
%result75 = call %Bool* %func74(%Object* %result67, %Object* %pivot) | |
br label %"Invoke_Object#>=_end" | |
"Invoke_Object#>=_end": ; preds = %"Invoke_Object#>=" | |
br label %AndEnd47 | |
WhileBody77: ; preds = %AndEnd47 | |
%r81 = load %Int*, %Int** %r, align 8 | |
%sk_int82 = call %Int* @box_int(i64 1) | |
br label %"Invoke_Int#-" | |
WhileEnd78: ; preds = %AndEnd47 | |
%"::Void90" = load %Void*, %Void** @"::Void", align 8 | |
br label %IfBegin | |
"Invoke_Int#-": ; preds = %WhileBody77 | |
%addr_vtable83 = getelementptr inbounds %Int, %Int* %r81, i32 0, i32 0 | |
%vtable84 = load i8*, i8** %addr_vtable83, align 8 | |
%vtable_ptr85 = bitcast i8* %vtable84 to [35 x i8*]* | |
%vtable86 = load [35 x i8*], [35 x i8*]* %vtable_ptr85, align 8 | |
%func_raw87 = extractvalue [35 x i8*] %vtable86, 19 | |
%func88 = bitcast i8* %func_raw87 to %Int* (%Int*, %Int*)* | |
%result89 = call %Int* %func88(%Int* %r81, %Int* %sk_int82) | |
br label %"Invoke_Int#-_end" | |
"Invoke_Int#-_end": ; preds = %"Invoke_Int#-" | |
store %Int* %result89, %Int** %r, align 8 | |
br label %WhileBegin44 | |
IfBegin: ; preds = %WhileEnd78 | |
%l91 = load %Int*, %Int** %l, align 8 | |
%r92 = load %Int*, %Int** %r, align 8 | |
br label %"Invoke_Int#>" | |
IfThen: ; preds = %"Invoke_Int#>_end" | |
%"::Void102" = load %Void*, %Void** @"::Void", align 8 | |
br label %IfEnd | |
IfElse: ; preds = %"Invoke_Int#>_end" | |
%l103 = load %Int*, %Int** %l, align 8 | |
%as104 = bitcast %Int* %l103 to %Object* | |
br label %"Invoke_Array#[]105" | |
IfEnd: ; preds = %"Invoke_Int#-_end167", %IfThen | |
%ifResult = phi %Void* [ %"::Void102", %IfThen ], [ %"::Void168", %"Invoke_Int#-_end167" ] | |
br label %WhileBegin | |
"Invoke_Int#>": ; preds = %IfBegin | |
%addr_vtable93 = getelementptr inbounds %Int, %Int* %l91, i32 0, i32 0 | |
%vtable94 = load i8*, i8** %addr_vtable93, align 8 | |
%vtable_ptr95 = bitcast i8* %vtable94 to [35 x i8*]* | |
%vtable96 = load [35 x i8*], [35 x i8*]* %vtable_ptr95, align 8 | |
%func_raw97 = extractvalue [35 x i8*] %vtable96, 3 | |
%func98 = bitcast i8* %func_raw97 to %Bool* (%Int*, %Int*)* | |
%result99 = call %Bool* %func98(%Int* %l91, %Int* %r92) | |
br label %"Invoke_Int#>_end" | |
"Invoke_Int#>_end": ; preds = %"Invoke_Int#>" | |
%llvm_bool100 = call i1 @unbox_bool(%Bool* %result99) | |
%istrue101 = icmp eq i1 %llvm_bool100, true | |
br i1 %istrue101, label %IfThen, label %IfElse | |
"Invoke_Array#[]105": ; preds = %IfElse | |
%addr_vtable106 = getelementptr inbounds %Array, %Array* %self, i32 0, i32 0 | |
%vtable107 = load i8*, i8** %addr_vtable106, align 8 | |
%vtable_ptr108 = bitcast i8* %vtable107 to [54 x i8*]* | |
%vtable109 = load [54 x i8*], [54 x i8*]* %vtable_ptr108, align 8 | |
%func_raw110 = extractvalue [54 x i8*] %vtable109, 16 | |
%func111 = bitcast i8* %func_raw110 to %Object* (%Array*, %Object*)* | |
%result112 = call %Object* %func111(%Array* %self, %Object* %as104) | |
br label %"Invoke_Array#[]_end113" | |
"Invoke_Array#[]_end113": ; preds = %"Invoke_Array#[]105" | |
store %Object* %result112, %Object** %tmp, align 8 | |
%l114 = load %Int*, %Int** %l, align 8 | |
%as115 = bitcast %Int* %l114 to %Object* | |
%r116 = load %Int*, %Int** %r, align 8 | |
%as117 = bitcast %Int* %r116 to %Object* | |
br label %"Invoke_Array#[]118" | |
"Invoke_Array#[]118": ; preds = %"Invoke_Array#[]_end113" | |
%addr_vtable119 = getelementptr inbounds %Array, %Array* %self, i32 0, i32 0 | |
%vtable120 = load i8*, i8** %addr_vtable119, align 8 | |
%vtable_ptr121 = bitcast i8* %vtable120 to [54 x i8*]* | |
%vtable122 = load [54 x i8*], [54 x i8*]* %vtable_ptr121, align 8 | |
%func_raw123 = extractvalue [54 x i8*] %vtable122, 16 | |
%func124 = bitcast i8* %func_raw123 to %Object* (%Array*, %Object*)* | |
%result125 = call %Object* %func124(%Array* %self, %Object* %as117) | |
br label %"Invoke_Array#[]_end126" | |
"Invoke_Array#[]_end126": ; preds = %"Invoke_Array#[]118" | |
br label %"Invoke_Array#[]=" | |
"Invoke_Array#[]=": ; preds = %"Invoke_Array#[]_end126" | |
%addr_vtable127 = getelementptr inbounds %Array, %Array* %self, i32 0, i32 0 | |
%vtable128 = load i8*, i8** %addr_vtable127, align 8 | |
%vtable_ptr129 = bitcast i8* %vtable128 to [54 x i8*]* | |
%vtable130 = load [54 x i8*], [54 x i8*]* %vtable_ptr129, align 8 | |
%func_raw131 = extractvalue [54 x i8*] %vtable130, 17 | |
%func132 = bitcast i8* %func_raw131 to %Void* (%Array*, %Object*, %Object*)* | |
%result133 = call %Void* %func132(%Array* %self, %Object* %as115, %Object* %result125) | |
br label %"Invoke_Array#[]=_end" | |
"Invoke_Array#[]=_end": ; preds = %"Invoke_Array#[]=" | |
%r134 = load %Int*, %Int** %r, align 8 | |
%as135 = bitcast %Int* %r134 to %Object* | |
%tmp136 = load %Object*, %Object** %tmp, align 8 | |
br label %"Invoke_Array#[]=137" | |
"Invoke_Array#[]=137": ; preds = %"Invoke_Array#[]=_end" | |
%addr_vtable138 = getelementptr inbounds %Array, %Array* %self, i32 0, i32 0 | |
%vtable139 = load i8*, i8** %addr_vtable138, align 8 | |
%vtable_ptr140 = bitcast i8* %vtable139 to [54 x i8*]* | |
%vtable141 = load [54 x i8*], [54 x i8*]* %vtable_ptr140, align 8 | |
%func_raw142 = extractvalue [54 x i8*] %vtable141, 17 | |
%func143 = bitcast i8* %func_raw142 to %Void* (%Array*, %Object*, %Object*)* | |
%result144 = call %Void* %func143(%Array* %self, %Object* %as135, %Object* %tmp136) | |
br label %"Invoke_Array#[]=_end145" | |
"Invoke_Array#[]=_end145": ; preds = %"Invoke_Array#[]=137" | |
%l146 = load %Int*, %Int** %l, align 8 | |
%sk_int147 = call %Int* @box_int(i64 1) | |
br label %"Invoke_Int#+148" | |
"Invoke_Int#+148": ; preds = %"Invoke_Array#[]=_end145" | |
%addr_vtable149 = getelementptr inbounds %Int, %Int* %l146, i32 0, i32 0 | |
%vtable150 = load i8*, i8** %addr_vtable149, align 8 | |
%vtable_ptr151 = bitcast i8* %vtable150 to [35 x i8*]* | |
%vtable152 = load [35 x i8*], [35 x i8*]* %vtable_ptr151, align 8 | |
%func_raw153 = extractvalue [35 x i8*] %vtable152, 18 | |
%func154 = bitcast i8* %func_raw153 to %Int* (%Int*, %Int*)* | |
%result155 = call %Int* %func154(%Int* %l146, %Int* %sk_int147) | |
br label %"Invoke_Int#+_end156" | |
"Invoke_Int#+_end156": ; preds = %"Invoke_Int#+148" | |
store %Int* %result155, %Int** %l, align 8 | |
%r157 = load %Int*, %Int** %r, align 8 | |
%sk_int158 = call %Int* @box_int(i64 1) | |
br label %"Invoke_Int#-159" | |
"Invoke_Int#-159": ; preds = %"Invoke_Int#+_end156" | |
%addr_vtable160 = getelementptr inbounds %Int, %Int* %r157, i32 0, i32 0 | |
%vtable161 = load i8*, i8** %addr_vtable160, align 8 | |
%vtable_ptr162 = bitcast i8* %vtable161 to [35 x i8*]* | |
%vtable163 = load [35 x i8*], [35 x i8*]* %vtable_ptr162, align 8 | |
%func_raw164 = extractvalue [35 x i8*] %vtable163, 19 | |
%func165 = bitcast i8* %func_raw164 to %Int* (%Int*, %Int*)* | |
%result166 = call %Int* %func165(%Int* %r157, %Int* %sk_int158) | |
br label %"Invoke_Int#-_end167" | |
"Invoke_Int#-_end167": ; preds = %"Invoke_Int#-159" | |
store %Int* %result166, %Int** %r, align 8 | |
%"::Void168" = load %Void*, %Void** @"::Void", align 8 | |
br label %IfEnd | |
Ret: ; preds = %WhileEnd | |
br label %End | |
} | |
declare %Object* @Array_aref_(%Array*, %Int*) | |
define %String* @Meta_String_new(%String* %self, %"Shiika::Internal::Ptr"* %ptr, %Int* %bytesize) { | |
%mem = call i8* @shiika_malloc(i64 mul nuw (i64 ptrtoint (i1** getelementptr (i1*, i1** null, i32 1) to i64), i64 4)) | |
%addr = bitcast i8* %mem to %String* | |
%addr_vtable = getelementptr inbounds %String, %String* %addr, i32 0, i32 0 | |
store i8* bitcast ([35 x i8*]* @shiika_vtable_String to i8*), i8** %addr_vtable, align 8 | |
%class = bitcast %String* %self to %Class.0* | |
%addr_my_class = getelementptr inbounds %String, %String* %addr, i32 0, i32 1 | |
store %Class.0* %class, %Class.0** %addr_my_class, align 8 | |
%1 = call %Void* @String_initialize(%String* %addr, %"Shiika::Internal::Ptr"* %ptr, %Int* %bytesize) | |
ret %String* %addr | |
} | |
define %"Result::Fail"* @Meta_Result_Fail_new(%"Result::Fail"* %self, %Object* %err) { | |
%mem = call i8* @shiika_malloc(i64 mul nuw (i64 ptrtoint (i1** getelementptr (i1*, i1** null, i32 1) to i64), i64 3)) | |
%addr = bitcast i8* %mem to %"Result::Fail"* | |
%addr_vtable = getelementptr inbounds %"Result::Fail", %"Result::Fail"* %addr, i32 0, i32 0 | |
store i8* bitcast ([18 x i8*]* @"shiika_vtable_Result::Fail" to i8*), i8** %addr_vtable, align 8 | |
%class = bitcast %"Result::Fail"* %self to %Class.0* | |
%addr_my_class = getelementptr inbounds %"Result::Fail", %"Result::Fail"* %addr, i32 0, i32 1 | |
store %Class.0* %class, %Class.0** %addr_my_class, align 8 | |
%1 = call %Void* @Result_Fail_initialize(%"Result::Fail"* %addr, %Object* %err) | |
ret %"Result::Fail"* %addr | |
} | |
define %Fn* @Meta_Fn_new(%Fn* %self, %"Shiika::Internal::Ptr"* %"@func", %Object* %"@the_self", %Array* %"@captures") { | |
%mem = call i8* @shiika_malloc(i64 mul nuw (i64 ptrtoint (i1** getelementptr (i1*, i1** null, i32 1) to i64), i64 6)) | |
%addr = bitcast i8* %mem to %Fn* | |
%addr_vtable = getelementptr inbounds %Fn, %Fn* %addr, i32 0, i32 0 | |
store i8* bitcast ([24 x i8*]* @shiika_vtable_Fn to i8*), i8** %addr_vtable, align 8 | |
%class = bitcast %Fn* %self to %Class.0* | |
%addr_my_class = getelementptr inbounds %Fn, %Fn* %addr, i32 0, i32 1 | |
store %Class.0* %class, %Class.0** %addr_my_class, align 8 | |
%1 = call %Void* @Fn_initialize(%Fn* %addr, %"Shiika::Internal::Ptr"* %"@func", %Object* %"@the_self", %Array* %"@captures") | |
ret %Fn* %addr | |
} | |
define %File* @Meta_File_new(%File* %self, %String* %"@path", %Object* %"@file") { | |
%mem = call i8* @shiika_malloc(i64 mul nuw (i64 ptrtoint (i1** getelementptr (i1*, i1** null, i32 1) to i64), i64 4)) | |
%addr = bitcast i8* %mem to %File* | |
%addr_vtable = getelementptr inbounds %File, %File* %addr, i32 0, i32 0 | |
store i8* bitcast ([20 x i8*]* @shiika_vtable_File to i8*), i8** %addr_vtable, align 8 | |
%class = bitcast %File* %self to %Class.0* | |
%addr_my_class = getelementptr inbounds %File, %File* %addr, i32 0, i32 1 | |
store %Class.0* %class, %Class.0** %addr_my_class, align 8 | |
%1 = call %Void* @File_initialize(%File* %addr, %String* %"@path", %Object* %"@file") | |
ret %File* %addr | |
} | |
define %Bool* @Object_lt_(%Object* %self, %Object* %other) { | |
%sk_str = call %String* @gen_literal_string(i8* getelementptr inbounds ([40 x i8], [40 x i8]* @str_65, i32 0, i32 0), i64 39) | |
br label %"Invoke_Object#panic" | |
End: ; No predecessors! | |
ret %Bool* null | |
"Invoke_Object#panic": ; preds = %0 | |
%addr_vtable = getelementptr inbounds %Object, %Object* %self, i32 0, i32 0 | |
%vtable = load i8*, i8** %addr_vtable, align 8 | |
%vtable_ptr = bitcast i8* %vtable to [16 x i8*]* | |
%vtable1 = load [16 x i8*], [16 x i8*]* %vtable_ptr, align 8 | |
%func_raw = extractvalue [16 x i8*] %vtable1, 12 | |
%func = bitcast i8* %func_raw to void (%Object*, %String*)* | |
call void %func(%Object* %self, %String* %sk_str) | |
%"::Void" = load %Void*, %Void** @"::Void", align 8 | |
unreachable | |
} | |
define %Bool* @Object_gt_(%Object* %self, %Object* %other) { | |
br label %"Invoke_Object#<" | |
End: ; preds = %Ret | |
%methodResult = phi %Bool* [ %result, %Ret ] | |
ret %Bool* %methodResult | |
"Invoke_Object#<": ; preds = %0 | |
%addr_vtable = getelementptr inbounds %Object, %Object* %other, i32 0, i32 0 | |
%vtable = load i8*, i8** %addr_vtable, align 8 | |
%vtable_ptr = bitcast i8* %vtable to [16 x i8*]* | |
%vtable1 = load [16 x i8*], [16 x i8*]* %vtable_ptr, align 8 | |
%func_raw = extractvalue [16 x i8*] %vtable1, 0 | |
%func = bitcast i8* %func_raw to %Bool* (%Object*, %Object*)* | |
%result = call %Bool* %func(%Object* %other, %Object* %self) | |
br label %"Invoke_Object#<_end" | |
"Invoke_Object#<_end": ; preds = %"Invoke_Object#<" | |
br label %Ret | |
Ret: ; preds = %"Invoke_Object#<_end" | |
br label %End | |
} | |
define %Bool* @Object_le_(%Object* %self, %Object* %other) { | |
br label %OrBegin | |
End: ; preds = %Ret | |
%methodResult = phi %Bool* [ %OrResult, %Ret ] | |
ret %Bool* %methodResult | |
OrBegin: ; preds = %0 | |
br label %"Invoke_Object#<" | |
OrElse: ; preds = %"Invoke_Object#<_end" | |
br label %"Invoke_Object#==" | |
OrEnd: ; preds = %"Invoke_Object#==_end", %"Invoke_Object#<_end" | |
%OrResult = phi %Bool* [ %result, %"Invoke_Object#<_end" ], [ %result8, %"Invoke_Object#==_end" ] | |
br label %Ret | |
"Invoke_Object#<": ; preds = %OrBegin | |
%addr_vtable = getelementptr inbounds %Object, %Object* %self, i32 0, i32 0 | |
%vtable = load i8*, i8** %addr_vtable, align 8 | |
%vtable_ptr = bitcast i8* %vtable to [16 x i8*]* | |
%vtable1 = load [16 x i8*], [16 x i8*]* %vtable_ptr, align 8 | |
%func_raw = extractvalue [16 x i8*] %vtable1, 0 | |
%func = bitcast i8* %func_raw to %Bool* (%Object*, %Object*)* | |
%result = call %Bool* %func(%Object* %self, %Object* %other) | |
br label %"Invoke_Object#<_end" | |
"Invoke_Object#<_end": ; preds = %"Invoke_Object#<" | |
%llvm_bool = call i1 @unbox_bool(%Bool* %result) | |
%istrue = icmp eq i1 %llvm_bool, true | |
br i1 %istrue, label %OrEnd, label %OrElse | |
"Invoke_Object#==": ; preds = %OrElse | |
%addr_vtable2 = getelementptr inbounds %Object, %Object* %self, i32 0, i32 0 | |
%vtable3 = load i8*, i8** %addr_vtable2, align 8 | |
%vtable_ptr4 = bitcast i8* %vtable3 to [16 x i8*]* | |
%vtable5 = load [16 x i8*], [16 x i8*]* %vtable_ptr4, align 8 | |
%func_raw6 = extractvalue [16 x i8*] %vtable5, 2 | |
%func7 = bitcast i8* %func_raw6 to %Bool* (%Object*, %Object*)* | |
%result8 = call %Bool* %func7(%Object* %self, %Object* %other) | |
br label %"Invoke_Object#==_end" | |
"Invoke_Object#==_end": ; preds = %"Invoke_Object#==" | |
br label %OrEnd | |
Ret: ; preds = %OrEnd | |
br label %End | |
} | |
define %Bool* @Object_ge_(%Object* %self, %Object* %other) { | |
br label %OrBegin | |
End: ; preds = %Ret | |
%methodResult = phi %Bool* [ %OrResult, %Ret ] | |
ret %Bool* %methodResult | |
OrBegin: ; preds = %0 | |
br label %"Invoke_Object#>" | |
OrElse: ; preds = %"Invoke_Object#>_end" | |
br label %"Invoke_Object#==" | |
OrEnd: ; preds = %"Invoke_Object#==_end", %"Invoke_Object#>_end" | |
%OrResult = phi %Bool* [ %result, %"Invoke_Object#>_end" ], [ %result8, %"Invoke_Object#==_end" ] | |
br label %Ret | |
"Invoke_Object#>": ; preds = %OrBegin | |
%addr_vtable = getelementptr inbounds %Object, %Object* %self, i32 0, i32 0 | |
%vtable = load i8*, i8** %addr_vtable, align 8 | |
%vtable_ptr = bitcast i8* %vtable to [16 x i8*]* | |
%vtable1 = load [16 x i8*], [16 x i8*]* %vtable_ptr, align 8 | |
%func_raw = extractvalue [16 x i8*] %vtable1, 3 | |
%func = bitcast i8* %func_raw to %Bool* (%Object*, %Object*)* | |
%result = call %Bool* %func(%Object* %self, %Object* %other) | |
br label %"Invoke_Object#>_end" | |
"Invoke_Object#>_end": ; preds = %"Invoke_Object#>" | |
%llvm_bool = call i1 @unbox_bool(%Bool* %result) | |
%istrue = icmp eq i1 %llvm_bool, true | |
br i1 %istrue, label %OrEnd, label %OrElse | |
"Invoke_Object#==": ; preds = %OrElse | |
%addr_vtable2 = getelementptr inbounds %Object, %Object* %self, i32 0, i32 0 | |
%vtable3 = load i8*, i8** %addr_vtable2, align 8 | |
%vtable_ptr4 = bitcast i8* %vtable3 to [16 x i8*]* | |
%vtable5 = load [16 x i8*], [16 x i8*]* %vtable_ptr4, align 8 | |
%func_raw6 = extractvalue [16 x i8*] %vtable5, 2 | |
%func7 = bitcast i8* %func_raw6 to %Bool* (%Object*, %Object*)* | |
%result8 = call %Bool* %func7(%Object* %self, %Object* %other) | |
br label %"Invoke_Object#==_end" | |
"Invoke_Object#==_end": ; preds = %"Invoke_Object#==" | |
br label %OrEnd | |
Ret: ; preds = %OrEnd | |
br label %End | |
} | |
define %Int* @Object_hash(%Object* %self) { | |
%sk_int = call %Int* @box_int(i64 0) | |
br label %Ret | |
End: ; preds = %Ret | |
%methodResult = phi %Int* [ %sk_int, %Ret ] | |
ret %Int* %methodResult | |
Ret: ; preds = %0 | |
br label %End | |
} | |
define %String* @Object_inspect(%Object* %self) { | |
br label %"Invoke_Object#to_s" | |
End: ; preds = %Ret | |
%methodResult = phi %String* [ %result, %Ret ] | |
ret %String* %methodResult | |
"Invoke_Object#to_s": ; preds = %0 | |
%addr_vtable = getelementptr inbounds %Object, %Object* %self, i32 0, i32 0 | |
%vtable = load i8*, i8** %addr_vtable, align 8 | |
%vtable_ptr = bitcast i8* %vtable to [16 x i8*]* | |
%vtable1 = load [16 x i8*], [16 x i8*]* %vtable_ptr, align 8 | |
%func_raw = extractvalue [16 x i8*] %vtable1, 15 | |
%func = bitcast i8* %func_raw to %String* (%Object*)* | |
%result = call %String* %func(%Object* %self) | |
br label %"Invoke_Object#to_s_end" | |
"Invoke_Object#to_s_end": ; preds = %"Invoke_Object#to_s" | |
br label %Ret | |
Ret: ; preds = %"Invoke_Object#to_s_end" | |
br label %End | |
} | |
define %Void* @Object_p(%Object* %self, %Object* %obj) { | |
br label %"Invoke_Object#inspect" | |
End: ; preds = %Ret | |
%"::Void9" = load %Void*, %Void** @"::Void", align 8 | |
ret %Void* %"::Void9" | |
"Invoke_Object#inspect": ; preds = %0 | |
%addr_vtable = getelementptr inbounds %Object, %Object* %obj, i32 0, i32 0 | |
%vtable = load i8*, i8** %addr_vtable, align 8 | |
%vtable_ptr = bitcast i8* %vtable to [16 x i8*]* | |
%vtable1 = load [16 x i8*], [16 x i8*]* %vtable_ptr, align 8 | |
%func_raw = extractvalue [16 x i8*] %vtable1, 9 | |
%func = bitcast i8* %func_raw to %String* (%Object*)* | |
%result = call %String* %func(%Object* %obj) | |
br label %"Invoke_Object#inspect_end" | |
"Invoke_Object#inspect_end": ; preds = %"Invoke_Object#inspect" | |
br label %"Invoke_Object#puts" | |
"Invoke_Object#puts": ; preds = %"Invoke_Object#inspect_end" | |
%addr_vtable2 = getelementptr inbounds %Object, %Object* %self, i32 0, i32 0 | |
%vtable3 = load i8*, i8** %addr_vtable2, align 8 | |
%vtable_ptr4 = bitcast i8* %vtable3 to [16 x i8*]* | |
%vtable5 = load [16 x i8*], [16 x i8*]* %vtable_ptr4, align 8 | |
%func_raw6 = extractvalue [16 x i8*] %vtable5, 14 | |
%func7 = bitcast i8* %func_raw6 to %Void* (%Object*, %String*)* | |
%result8 = call %Void* %func7(%Object* %self, %String* %result) | |
br label %"Invoke_Object#puts_end" | |
"Invoke_Object#puts_end": ; preds = %"Invoke_Object#puts" | |
%"::Void" = load %Void*, %Void** @"::Void", align 8 | |
br label %Ret | |
Ret: ; preds = %"Invoke_Object#puts_end" | |
br label %End | |
} | |
define void @Object_panic(%Object* %self, %String* %msg) { | |
br label %"Invoke_Object#puts" | |
End: ; No predecessors! | |
ret void | |
"Invoke_Object#puts": ; preds = %0 | |
%addr_vtable = getelementptr inbounds %Object, %Object* %self, i32 0, i32 0 | |
%vtable = load i8*, i8** %addr_vtable, align 8 | |
%vtable_ptr = bitcast i8* %vtable to [16 x i8*]* | |
%vtable1 = load [16 x i8*], [16 x i8*]* %vtable_ptr, align 8 | |
%func_raw = extractvalue [16 x i8*] %vtable1, 14 | |
%func = bitcast i8* %func_raw to %Void* (%Object*, %String*)* | |
%result = call %Void* %func(%Object* %self, %String* %msg) | |
br label %"Invoke_Object#puts_end" | |
"Invoke_Object#puts_end": ; preds = %"Invoke_Object#puts" | |
%sk_int = call %Int* @box_int(i64 1) | |
br label %"Invoke_Object#exit" | |
"Invoke_Object#exit": ; preds = %"Invoke_Object#puts_end" | |
%addr_vtable2 = getelementptr inbounds %Object, %Object* %self, i32 0, i32 0 | |
%vtable3 = load i8*, i8** %addr_vtable2, align 8 | |
%vtable_ptr4 = bitcast i8* %vtable3 to [16 x i8*]* | |
%vtable5 = load [16 x i8*], [16 x i8*]* %vtable_ptr4, align 8 | |
%func_raw6 = extractvalue [16 x i8*] %vtable5, 6 | |
%func7 = bitcast i8* %func_raw6 to void (%Object*, %Int*)* | |
call void %func7(%Object* %self, %Int* %sk_int) | |
%"::Void" = load %Void*, %Void** @"::Void", align 8 | |
unreachable | |
} | |
define %String* @Object_to__s(%Object* %self) { | |
%sk_str = call %String* @gen_literal_string(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @str_68, i32 0, i32 0), i64 2) | |
br label %"Invoke_Object#class" | |
End: ; preds = %Ret | |
%methodResult = phi %String* [ %result64, %Ret ] | |
ret %String* %methodResult | |
"Invoke_Object#class": ; preds = %0 | |
%addr_vtable = getelementptr inbounds %Object, %Object* %self, i32 0, i32 0 | |
%vtable = load i8*, i8** %addr_vtable, align 8 | |
%vtable_ptr = bitcast i8* %vtable to [16 x i8*]* | |
%vtable1 = load [16 x i8*], [16 x i8*]* %vtable_ptr, align 8 | |
%func_raw = extractvalue [16 x i8*] %vtable1, 5 | |
%func = bitcast i8* %func_raw to %Class.0* (%Object*)* | |
%result = call %Class.0* %func(%Object* %self) | |
br label %"Invoke_Object#class_end" | |
"Invoke_Object#class_end": ; preds = %"Invoke_Object#class" | |
br label %"Invoke_Class#name" | |
"Invoke_Class#name": ; preds = %"Invoke_Object#class_end" | |
%addr_vtable2 = getelementptr inbounds %Class.0, %Class.0* %result, i32 0, i32 0 | |
%vtable3 = load i8*, i8** %addr_vtable2, align 8 | |
%vtable_ptr4 = bitcast i8* %vtable3 to [22 x i8*]* | |
%vtable5 = load [22 x i8*], [22 x i8*]* %vtable_ptr4, align 8 | |
%func_raw6 = extractvalue [22 x i8*] %vtable5, 20 | |
%func7 = bitcast i8* %func_raw6 to %String* (%Class.0*)* | |
%result8 = call %String* %func7(%Class.0* %result) | |
br label %"Invoke_Class#name_end" | |
"Invoke_Class#name_end": ; preds = %"Invoke_Class#name" | |
br label %"Invoke_String#to_s" | |
"Invoke_String#to_s": ; preds = %"Invoke_Class#name_end" | |
%addr_vtable9 = getelementptr inbounds %String, %String* %result8, i32 0, i32 0 | |
%vtable10 = load i8*, i8** %addr_vtable9, align 8 | |
%vtable_ptr11 = bitcast i8* %vtable10 to [35 x i8*]* | |
%vtable12 = load [35 x i8*], [35 x i8*]* %vtable_ptr11, align 8 | |
%func_raw13 = extractvalue [35 x i8*] %vtable12, 15 | |
%func14 = bitcast i8* %func_raw13 to %String* (%String*)* | |
%result15 = call %String* %func14(%String* %result8) | |
br label %"Invoke_String#to_s_end" | |
"Invoke_String#to_s_end": ; preds = %"Invoke_String#to_s" | |
br label %"Invoke_String#+" | |
"Invoke_String#+": ; preds = %"Invoke_String#to_s_end" | |
%addr_vtable16 = getelementptr inbounds %String, %String* %sk_str, i32 0, i32 0 | |
%vtable17 = load i8*, i8** %addr_vtable16, align 8 | |
%vtable_ptr18 = bitcast i8* %vtable17 to [35 x i8*]* | |
%vtable19 = load [35 x i8*], [35 x i8*]* %vtable_ptr18, align 8 | |
%func_raw20 = extractvalue [35 x i8*] %vtable19, 17 | |
%func21 = bitcast i8* %func_raw20 to %String* (%String*, %String*)* | |
%result22 = call %String* %func21(%String* %sk_str, %String* %result15) | |
br label %"Invoke_String#+_end" | |
"Invoke_String#+_end": ; preds = %"Invoke_String#+" | |
%sk_str23 = call %String* @gen_literal_string(i8* getelementptr inbounds ([2 x i8], [2 x i8]* @str_67, i32 0, i32 0), i64 1) | |
br label %"Invoke_String#+24" | |
"Invoke_String#+24": ; preds = %"Invoke_String#+_end" | |
%addr_vtable25 = getelementptr inbounds %String, %String* %result22, i32 0, i32 0 | |
%vtable26 = load i8*, i8** %addr_vtable25, align 8 | |
%vtable_ptr27 = bitcast i8* %vtable26 to [35 x i8*]* | |
%vtable28 = load [35 x i8*], [35 x i8*]* %vtable_ptr27, align 8 | |
%func_raw29 = extractvalue [35 x i8*] %vtable28, 17 | |
%func30 = bitcast i8* %func_raw29 to %String* (%String*, %String*)* | |
%result31 = call %String* %func30(%String* %result22, %String* %sk_str23) | |
br label %"Invoke_String#+_end32" | |
"Invoke_String#+_end32": ; preds = %"Invoke_String#+24" | |
br label %"Invoke_Object#object_id" | |
"Invoke_Object#object_id": ; preds = %"Invoke_String#+_end32" | |
%addr_vtable33 = getelementptr inbounds %Object, %Object* %self, i32 0, i32 0 | |
%vtable34 = load i8*, i8** %addr_vtable33, align 8 | |
%vtable_ptr35 = bitcast i8* %vtable34 to [16 x i8*]* | |
%vtable36 = load [16 x i8*], [16 x i8*]* %vtable_ptr35, align 8 | |
%func_raw37 = extractvalue [16 x i8*] %vtable36, 10 | |
%func38 = bitcast i8* %func_raw37 to %Int* (%Object*)* | |
%result39 = call %Int* %func38(%Object* %self) | |
br label %"Invoke_Object#object_id_end" | |
"Invoke_Object#object_id_end": ; preds = %"Invoke_Object#object_id" | |
br label %"Invoke_Int#to_s" | |
"Invoke_Int#to_s": ; preds = %"Invoke_Object#object_id_end" | |
%addr_vtable40 = getelementptr inbounds %Int, %Int* %result39, i32 0, i32 0 | |
%vtable41 = load i8*, i8** %addr_vtable40, align 8 | |
%vtable_ptr42 = bitcast i8* %vtable41 to [35 x i8*]* | |
%vtable43 = load [35 x i8*], [35 x i8*]* %vtable_ptr42, align 8 | |
%func_raw44 = extractvalue [35 x i8*] %vtable43, 15 | |
%func45 = bitcast i8* %func_raw44 to %String* (%Int*)* | |
%result46 = call %String* %func45(%Int* %result39) | |
br label %"Invoke_Int#to_s_end" | |
"Invoke_Int#to_s_end": ; preds = %"Invoke_Int#to_s" | |
br label %"Invoke_String#+47" | |
"Invoke_String#+47": ; preds = %"Invoke_Int#to_s_end" | |
%addr_vtable48 = getelementptr inbounds %String, %String* %result31, i32 0, i32 0 | |
%vtable49 = load i8*, i8** %addr_vtable48, align 8 | |
%vtable_ptr50 = bitcast i8* %vtable49 to [35 x i8*]* | |
%vtable51 = load [35 x i8*], [35 x i8*]* %vtable_ptr50, align 8 | |
%func_raw52 = extractvalue [35 x i8*] %vtable51, 17 | |
%func53 = bitcast i8* %func_raw52 to %String* (%String*, %String*)* | |
%result54 = call %String* %func53(%String* %result31, %String* %result46) | |
br label %"Invoke_String#+_end55" | |
"Invoke_String#+_end55": ; preds = %"Invoke_String#+47" | |
%sk_str56 = call %String* @gen_literal_string(i8* getelementptr inbounds ([2 x i8], [2 x i8]* @str_66, i32 0, i32 0), i64 1) | |
br label %"Invoke_String#+57" | |
"Invoke_String#+57": ; preds = %"Invoke_String#+_end55" | |
%addr_vtable58 = getelementptr inbounds %String, %String* %result54, i32 0, i32 0 | |
%vtable59 = load i8*, i8** %addr_vtable58, align 8 | |
%vtable_ptr60 = bitcast i8* %vtable59 to [35 x i8*]* | |
%vtable61 = load [35 x i8*], [35 x i8*]* %vtable_ptr60, align 8 | |
%func_raw62 = extractvalue [35 x i8*] %vtable61, 17 | |
%func63 = bitcast i8* %func_raw62 to %String* (%String*, %String*)* | |
%result64 = call %String* %func63(%String* %result54, %String* %sk_str56) | |
br label %"Invoke_String#+_end65" | |
"Invoke_String#+_end65": ; preds = %"Invoke_String#+57" | |
br label %Ret | |
Ret: ; preds = %"Invoke_String#+_end65" | |
br label %End | |
} | |
define %Void* @Object_initialize(%Object* %self) { | |
%"::Void" = load %Void*, %Void** @"::Void", align 8 | |
br label %Ret | |
End: ; preds = %Ret | |
%"::Void1" = load %Void*, %Void** @"::Void", align 8 | |
ret %Void* %"::Void1" | |
Ret: ; preds = %0 | |
br label %End | |
} | |
declare %Bool* @Object_eq_(%Object*, %Object*) | |
declare %Class.0* @Object_class(%Object*) | |
declare void @Object_exit(%Object*, %Int*) | |
declare %Int* @Object_object__id(%Object*) | |
declare %Void* @Object_print(%Object*, %String*) | |
declare %Void* @Object_puts(%Object*, %String*) | |
define %Fn1* @Meta_Fn1_new(%Fn1* %self, %"Shiika::Internal::Ptr"* %"@func", %Object* %"@the_self", %Array* %"@captures") { | |
%mem = call i8* @shiika_malloc(i64 mul nuw (i64 ptrtoint (i1** getelementptr (i1*, i1** null, i32 1) to i64), i64 6)) | |
%addr = bitcast i8* %mem to %Fn1* | |
%addr_vtable = getelementptr inbounds %Fn1, %Fn1* %addr, i32 0, i32 0 | |
store i8* bitcast ([24 x i8*]* @shiika_vtable_Fn1 to i8*), i8** %addr_vtable, align 8 | |
%class = bitcast %Fn1* %self to %Class.0* | |
%addr_my_class = getelementptr inbounds %Fn1, %Fn1* %addr, i32 0, i32 1 | |
store %Class.0* %class, %Class.0** %addr_my_class, align 8 | |
%obj_as_super = bitcast %Fn1* %addr to %Fn* | |
%1 = call %Void* @Fn_initialize(%Fn* %obj_as_super, %"Shiika::Internal::Ptr"* %"@func", %Object* %"@the_self", %Array* %"@captures") | |
ret %Fn1* %addr | |
} | |
define %Void* @Dict_Table_initialize(%"Dict::Table"* %self) { | |
alloca: | |
%"ary@21_" = alloca %Array*, align 8 | |
%"ary@22_" = alloca %Array*, align 8 | |
br label %alloca_End | |
alloca_End: ; preds = %alloca | |
%"::Array" = load %Array*, %Array** @"::Array", align 8 | |
%"::Array1" = load %Array*, %Array** @"::Array", align 8 | |
%"::Class" = load %Class.0*, %Class.0** @"::Class", align 8 | |
br label %"Invoke_Class#_specialize1" | |
End: ; preds = %Ret | |
%"::Void90" = load %Void*, %Void** @"::Void", align 8 | |
ret %Void* %"::Void90" | |
"Invoke_Class#_specialize1": ; preds = %alloca_End | |
%addr_vtable = getelementptr inbounds %Array, %Array* %"::Array1", i32 0, i32 0 | |
%vtable = load i8*, i8** %addr_vtable, align 8 | |
%vtable_ptr = bitcast i8* %vtable to [25 x i8*]* | |
%vtable2 = load [25 x i8*], [25 x i8*]* %vtable_ptr, align 8 | |
%func_raw = extractvalue [25 x i8*] %vtable2, 18 | |
%func = bitcast i8* %func_raw to %Array* (%Array*, %Class.0*)* | |
%result = call %Array* %func(%Array* %"::Array1", %Class.0* %"::Class") | |
br label %"Invoke_Class#_specialize1_end" | |
"Invoke_Class#_specialize1_end": ; preds = %"Invoke_Class#_specialize1" | |
br label %"Invoke_Array#new" | |
"Invoke_Array#new": ; preds = %"Invoke_Class#_specialize1_end" | |
%addr_vtable3 = getelementptr inbounds %Array, %Array* %result, i32 0, i32 0 | |
%vtable4 = load i8*, i8** %addr_vtable3, align 8 | |
%vtable_ptr5 = bitcast i8* %vtable4 to [25 x i8*]* | |
%vtable6 = load [25 x i8*], [25 x i8*]* %vtable_ptr5, align 8 | |
%func_raw7 = extractvalue [25 x i8*] %vtable6, 23 | |
%func8 = bitcast i8* %func_raw7 to %Array* (%Array*)* | |
%result9 = call %Array* %func8(%Array* %result) | |
br label %"Invoke_Array#new_end" | |
"Invoke_Array#new_end": ; preds = %"Invoke_Array#new" | |
store %Array* %result9, %Array** %"ary@22_", align 8 | |
%"ary@22_10" = load %Array*, %Array** %"ary@22_", align 8 | |
%"::Pair" = load %Pair*, %Pair** @"::Pair", align 8 | |
%"::Array11" = load %Array*, %Array** @"::Array", align 8 | |
%"::Class12" = load %Class.0*, %Class.0** @"::Class", align 8 | |
br label %"Invoke_Class#_specialize113" | |
"Invoke_Class#_specialize113": ; preds = %"Invoke_Array#new_end" | |
%addr_vtable14 = getelementptr inbounds %Array, %Array* %"::Array11", i32 0, i32 0 | |
%vtable15 = load i8*, i8** %addr_vtable14, align 8 | |
%vtable_ptr16 = bitcast i8* %vtable15 to [25 x i8*]* | |
%vtable17 = load [25 x i8*], [25 x i8*]* %vtable_ptr16, align 8 | |
%func_raw18 = extractvalue [25 x i8*] %vtable17, 18 | |
%func19 = bitcast i8* %func_raw18 to %Array* (%Array*, %Class.0*)* | |
%result20 = call %Array* %func19(%Array* %"::Array11", %Class.0* %"::Class12") | |
br label %"Invoke_Class#_specialize1_end21" | |
"Invoke_Class#_specialize1_end21": ; preds = %"Invoke_Class#_specialize113" | |
br label %"Invoke_Array#new22" | |
"Invoke_Array#new22": ; preds = %"Invoke_Class#_specialize1_end21" | |
%addr_vtable23 = getelementptr inbounds %Array, %Array* %result20, i32 0, i32 0 | |
%vtable24 = load i8*, i8** %addr_vtable23, align 8 | |
%vtable_ptr25 = bitcast i8* %vtable24 to [25 x i8*]* | |
%vtable26 = load [25 x i8*], [25 x i8*]* %vtable_ptr25, align 8 | |
%func_raw27 = extractvalue [25 x i8*] %vtable26, 23 | |
%func28 = bitcast i8* %func_raw27 to %Array* (%Array*)* | |
%result29 = call %Array* %func28(%Array* %result20) | |
br label %"Invoke_Array#new_end30" | |
"Invoke_Array#new_end30": ; preds = %"Invoke_Array#new22" | |
store %Array* %result29, %Array** %"ary@21_", align 8 | |
%"ary@21_31" = load %Array*, %Array** %"ary@21_", align 8 | |
%addr_class = getelementptr inbounds %"Dict::Table", %"Dict::Table"* %self, i32 0, i32 1 | |
%class = load %Class.0*, %Class.0** %addr_class, align 8 | |
%sk_int = call %Int* @box_int(i64 0) | |
%result32 = call %Class.0* @Class___type__argument(%Class.0* %class, %Int* %sk_int) | |
%as = bitcast %Class.0* %result32 to %Object* | |
br label %"Invoke_Array#push" | |
"Invoke_Array#push": ; preds = %"Invoke_Array#new_end30" | |
%addr_vtable33 = getelementptr inbounds %Array, %Array* %"ary@21_31", i32 0, i32 0 | |
%vtable34 = load i8*, i8** %addr_vtable33, align 8 | |
%vtable_ptr35 = bitcast i8* %vtable34 to [54 x i8*]* | |
%vtable36 = load [54 x i8*], [54 x i8*]* %vtable_ptr35, align 8 | |
%func_raw37 = extractvalue [54 x i8*] %vtable36, 45 | |
%func38 = bitcast i8* %func_raw37 to %Void* (%Array*, %Object*)* | |
%result39 = call %Void* %func38(%Array* %"ary@21_31", %Object* %as) | |
br label %"Invoke_Array#push_end" | |
"Invoke_Array#push_end": ; preds = %"Invoke_Array#push" | |
%"ary@21_40" = load %Array*, %Array** %"ary@21_", align 8 | |
%addr_class41 = getelementptr inbounds %"Dict::Table", %"Dict::Table"* %self, i32 0, i32 1 | |
%class42 = load %Class.0*, %Class.0** %addr_class41, align 8 | |
%sk_int43 = call %Int* @box_int(i64 1) | |
%result44 = call %Class.0* @Class___type__argument(%Class.0* %class42, %Int* %sk_int43) | |
%as45 = bitcast %Class.0* %result44 to %Object* | |
br label %"Invoke_Array#push46" | |
"Invoke_Array#push46": ; preds = %"Invoke_Array#push_end" | |
%addr_vtable47 = getelementptr inbounds %Array, %Array* %"ary@21_40", i32 0, i32 0 | |
%vtable48 = load i8*, i8** %addr_vtable47, align 8 | |
%vtable_ptr49 = bitcast i8* %vtable48 to [54 x i8*]* | |
%vtable50 = load [54 x i8*], [54 x i8*]* %vtable_ptr49, align 8 | |
%func_raw51 = extractvalue [54 x i8*] %vtable50, 45 | |
%func52 = bitcast i8* %func_raw51 to %Void* (%Array*, %Object*)* | |
%result53 = call %Void* %func52(%Array* %"ary@21_40", %Object* %as45) | |
br label %"Invoke_Array#push_end54" | |
"Invoke_Array#push_end54": ; preds = %"Invoke_Array#push46" | |
%"ary@21_55" = load %Array*, %Array** %"ary@21_", align 8 | |
br label %"Invoke_Class#<>" | |
"Invoke_Class#<>": ; preds = %"Invoke_Array#push_end54" | |
%addr_vtable56 = getelementptr inbounds %Pair, %Pair* %"::Pair", i32 0, i32 0 | |
%vtable57 = load i8*, i8** %addr_vtable56, align 8 | |
%vtable_ptr58 = bitcast i8* %vtable57 to [23 x i8*]* | |
%vtable59 = load [23 x i8*], [23 x i8*]* %vtable_ptr58, align 8 | |
%func_raw60 = extractvalue [23 x i8*] %vtable59, 16 | |
%func61 = bitcast i8* %func_raw60 to %Pair* (%Pair*, %Array*)* | |
%result62 = call %Pair* %func61(%Pair* %"::Pair", %Array* %"ary@21_55") | |
br label %"Invoke_Class#<>_end" | |
"Invoke_Class#<>_end": ; preds = %"Invoke_Class#<>" | |
%as63 = bitcast %Pair* %result62 to %Object* | |
br label %"Invoke_Array#push64" | |
"Invoke_Array#push64": ; preds = %"Invoke_Class#<>_end" | |
%addr_vtable65 = getelementptr inbounds %Array, %Array* %"ary@22_10", i32 0, i32 0 | |
%vtable66 = load i8*, i8** %addr_vtable65, align 8 | |
%vtable_ptr67 = bitcast i8* %vtable66 to [54 x i8*]* | |
%vtable68 = load [54 x i8*], [54 x i8*]* %vtable_ptr67, align 8 | |
%func_raw69 = extractvalue [54 x i8*] %vtable68, 45 | |
%func70 = bitcast i8* %func_raw69 to %Void* (%Array*, %Object*)* | |
%result71 = call %Void* %func70(%Array* %"ary@22_10", %Object* %as63) | |
br label %"Invoke_Array#push_end72" | |
"Invoke_Array#push_end72": ; preds = %"Invoke_Array#push64" | |
%"ary@22_73" = load %Array*, %Array** %"ary@22_", align 8 | |
br label %"Invoke_Class#<>74" | |
"Invoke_Class#<>74": ; preds = %"Invoke_Array#push_end72" | |
%addr_vtable75 = getelementptr inbounds %Array, %Array* %"::Array", i32 0, i32 0 | |
%vtable76 = load i8*, i8** %addr_vtable75, align 8 | |
%vtable_ptr77 = bitcast i8* %vtable76 to [25 x i8*]* | |
%vtable78 = load [25 x i8*], [25 x i8*]* %vtable_ptr77, align 8 | |
%func_raw79 = extractvalue [25 x i8*] %vtable78, 16 | |
%func80 = bitcast i8* %func_raw79 to %Array* (%Array*, %Array*)* | |
%result81 = call %Array* %func80(%Array* %"::Array", %Array* %"ary@22_73") | |
br label %"Invoke_Class#<>_end82" | |
"Invoke_Class#<>_end82": ; preds = %"Invoke_Class#<>74" | |
br label %"Invoke_Meta:Array#new" | |
"Invoke_Meta:Array#new": ; preds = %"Invoke_Class#<>_end82" | |
%addr_vtable83 = getelementptr inbounds %Array, %Array* %result81, i32 0, i32 0 | |
%vtable84 = load i8*, i8** %addr_vtable83, align 8 | |
%vtable_ptr85 = bitcast i8* %vtable84 to [25 x i8*]* | |
%vtable86 = load [25 x i8*], [25 x i8*]* %vtable_ptr85, align 8 | |
%func_raw87 = extractvalue [25 x i8*] %vtable86, 23 | |
%func88 = bitcast i8* %func_raw87 to %Array* (%Array*)* | |
%result89 = call %Array* %func88(%Array* %result81) | |
br label %"Invoke_Meta:Array#new_end" | |
"Invoke_Meta:Array#new_end": ; preds = %"Invoke_Meta:Array#new" | |
%"addr_@pairs" = getelementptr inbounds %"Dict::Table", %"Dict::Table"* %self, i32 0, i32 2 | |
store %Array* %result89, %Array** %"addr_@pairs", align 8 | |
%"::Void" = load %Void*, %Void** @"::Void", align 8 | |
br label %Ret | |
Ret: ; preds = %"Invoke_Meta:Array#new_end" | |
br label %End | |
} | |
define %Array* @Dict_Table_pairs(%"Dict::Table"* %self) { | |
%"addr_@pairs" = getelementptr inbounds %"Dict::Table", %"Dict::Table"* %self, i32 0, i32 2 | |
%"@pairs" = load %Array*, %Array** %"addr_@pairs", align 8 | |
ret %Array* %"@pairs" | |
} | |
define %Array* @_set_Dict_Table_pairs(%"Dict::Table"* %self, %Array* %pairs) { | |
%"addr_@pairs" = getelementptr inbounds %"Dict::Table", %"Dict::Table"* %self, i32 0, i32 2 | |
store %Array* %pairs, %Array** %"addr_@pairs", align 8 | |
ret %Array* %pairs | |
} | |
define %Void* @Dict_Table_aset_(%"Dict::Table"* %self, %Object* %key, %Object* %value) { | |
alloca: | |
%done = alloca %Bool*, align 8 | |
%"ary@23_" = alloca %Array*, align 8 | |
br label %alloca_End | |
alloca_End: ; preds = %alloca | |
%sk_bool = call %Bool* @box_bool(i1 false) | |
store %Bool* %sk_bool, %Bool** %done, align 8 | |
%"addr_@pairs" = getelementptr inbounds %"Dict::Table", %"Dict::Table"* %self, i32 0, i32 2 | |
%"@pairs" = load %Array*, %Array** %"addr_@pairs", align 8 | |
%"::Fn1" = load %Fn1*, %Fn1** @"::Fn1", align 8 | |
%sk_ptr = call %"Shiika::Internal::Ptr"* @box_i8ptr(i8* bitcast (%Void* (%Fn1*, %Object*)* @"lambda_18_in_Dict::Table#[]=" to i8*)) | |
%the_main = bitcast %"Dict::Table"* %self to %Object* | |
%"::Array" = load %Array*, %Array** @"::Array", align 8 | |
%result = call %Array* @Meta_Array_new(%Array* %"::Array") | |
%_ = call %Void* @Array_push(%Array* %result, %Object* %key) | |
%_1 = call %Void* @Array_push(%Array* %result, %Object* %value) | |
%capture_item = bitcast %Bool** %done to %Object* | |
%_2 = call %Void* @Array_push(%Array* %result, %Object* %capture_item) | |
%result3 = call %Fn1* @Meta_Fn1_new(%Fn1* %"::Fn1", %"Shiika::Internal::Ptr"* %sk_ptr, %Object* %the_main, %Array* %result) | |
%as = bitcast %Fn1* %result3 to %Object* | |
br label %"Invoke_Array#each" | |
End: ; preds = %Ret | |
%"::Void78" = load %Void*, %Void** @"::Void", align 8 | |
ret %Void* %"::Void78" | |
"Invoke_Array#each": ; preds = %alloca_End | |
%addr_vtable = getelementptr inbounds %Array, %Array* %"@pairs", i32 0, i32 0 | |
%vtable = load i8*, i8** %addr_vtable, align 8 | |
%vtable_ptr = bitcast i8* %vtable to [54 x i8*]* | |
%vtable4 = load [54 x i8*], [54 x i8*]* %vtable_ptr, align 8 | |
%func_raw = extractvalue [54 x i8*] %vtable4, 29 | |
%func = bitcast i8* %func_raw to %Void* (%Array*, %Object*)* | |
%result5 = call %Void* %func(%Array* %"@pairs", %Object* %as) | |
br label %"Invoke_Array#each_end" | |
"Invoke_Array#each_end": ; preds = %"Invoke_Array#each" | |
br label %IfBegin | |
IfBegin: ; preds = %"Invoke_Array#each_end" | |
%done6 = load %Bool*, %Bool** %done, align 8 | |
%llvm_bool = call i1 @unbox_bool(%Bool* %done6) | |
%b2 = xor i1 %llvm_bool, true | |
%sk_bool7 = call %Bool* @box_bool(i1 %b2) | |
%llvm_bool8 = call i1 @unbox_bool(%Bool* %sk_bool7) | |
%istrue = icmp eq i1 %llvm_bool8, true | |
br i1 %istrue, label %IfThen, label %IfElse | |
IfThen: ; preds = %IfBegin | |
%"addr_@pairs9" = getelementptr inbounds %"Dict::Table", %"Dict::Table"* %self, i32 0, i32 2 | |
%"@pairs10" = load %Array*, %Array** %"addr_@pairs9", align 8 | |
%"::Pair" = load %Pair*, %Pair** @"::Pair", align 8 | |
%"::Array11" = load %Array*, %Array** @"::Array", align 8 | |
%"::Class" = load %Class.0*, %Class.0** @"::Class", align 8 | |
br label %"Invoke_Class#_specialize1" | |
IfElse: ; preds = %IfBegin | |
%"::Void" = load %Void*, %Void** @"::Void", align 8 | |
%"::Void76" = load %Void*, %Void** @"::Void", align 8 | |
br label %IfEnd | |
IfEnd: ; preds = %IfElse, %"Invoke_Array#push_end75" | |
%ifResult = phi %Void* [ %result74, %"Invoke_Array#push_end75" ], [ %"::Void76", %IfElse ] | |
%"::Void77" = load %Void*, %Void** @"::Void", align 8 | |
br label %Ret | |
"Invoke_Class#_specialize1": ; preds = %IfThen | |
%addr_vtable12 = getelementptr inbounds %Array, %Array* %"::Array11", i32 0, i32 0 | |
%vtable13 = load i8*, i8** %addr_vtable12, align 8 | |
%vtable_ptr14 = bitcast i8* %vtable13 to [25 x i8*]* | |
%vtable15 = load [25 x i8*], [25 x i8*]* %vtable_ptr14, align 8 | |
%func_raw16 = extractvalue [25 x i8*] %vtable15, 18 | |
%func17 = bitcast i8* %func_raw16 to %Array* (%Array*, %Class.0*)* | |
%result18 = call %Array* %func17(%Array* %"::Array11", %Class.0* %"::Class") | |
br label %"Invoke_Class#_specialize1_end" | |
"Invoke_Class#_specialize1_end": ; preds = %"Invoke_Class#_specialize1" | |
br label %"Invoke_Array#new" | |
"Invoke_Array#new": ; preds = %"Invoke_Class#_specialize1_end" | |
%addr_vtable19 = getelementptr inbounds %Array, %Array* %result18, i32 0, i32 0 | |
%vtable20 = load i8*, i8** %addr_vtable19, align 8 | |
%vtable_ptr21 = bitcast i8* %vtable20 to [25 x i8*]* | |
%vtable22 = load [25 x i8*], [25 x i8*]* %vtable_ptr21, align 8 | |
%func_raw23 = extractvalue [25 x i8*] %vtable22, 23 | |
%func24 = bitcast i8* %func_raw23 to %Array* (%Array*)* | |
%result25 = call %Array* %func24(%Array* %result18) | |
br label %"Invoke_Array#new_end" | |
"Invoke_Array#new_end": ; preds = %"Invoke_Array#new" | |
store %Array* %result25, %Array** %"ary@23_", align 8 | |
%"ary@23_26" = load %Array*, %Array** %"ary@23_", align 8 | |
%addr_class = getelementptr inbounds %"Dict::Table", %"Dict::Table"* %self, i32 0, i32 1 | |
%class = load %Class.0*, %Class.0** %addr_class, align 8 | |
%sk_int = call %Int* @box_int(i64 0) | |
%result27 = call %Class.0* @Class___type__argument(%Class.0* %class, %Int* %sk_int) | |
%as28 = bitcast %Class.0* %result27 to %Object* | |
br label %"Invoke_Array#push" | |
"Invoke_Array#push": ; preds = %"Invoke_Array#new_end" | |
%addr_vtable29 = getelementptr inbounds %Array, %Array* %"ary@23_26", i32 0, i32 0 | |
%vtable30 = load i8*, i8** %addr_vtable29, align 8 | |
%vtable_ptr31 = bitcast i8* %vtable30 to [54 x i8*]* | |
%vtable32 = load [54 x i8*], [54 x i8*]* %vtable_ptr31, align 8 | |
%func_raw33 = extractvalue [54 x i8*] %vtable32, 45 | |
%func34 = bitcast i8* %func_raw33 to %Void* (%Array*, %Object*)* | |
%result35 = call %Void* %func34(%Array* %"ary@23_26", %Object* %as28) | |
br label %"Invoke_Array#push_end" | |
"Invoke_Array#push_end": ; preds = %"Invoke_Array#push" | |
%"ary@23_36" = load %Array*, %Array** %"ary@23_", align 8 | |
%addr_class37 = getelementptr inbounds %"Dict::Table", %"Dict::Table"* %self, i32 0, i32 1 | |
%class38 = load %Class.0*, %Class.0** %addr_class37, align 8 | |
%sk_int39 = call %Int* @box_int(i64 1) | |
%result40 = call %Class.0* @Class___type__argument(%Class.0* %class38, %Int* %sk_int39) | |
%as41 = bitcast %Class.0* %result40 to %Object* | |
br label %"Invoke_Array#push42" | |
"Invoke_Array#push42": ; preds = %"Invoke_Array#push_end" | |
%addr_vtable43 = getelementptr inbounds %Array, %Array* %"ary@23_36", i32 0, i32 0 | |
%vtable44 = load i8*, i8** %addr_vtable43, align 8 | |
%vtable_ptr45 = bitcast i8* %vtable44 to [54 x i8*]* | |
%vtable46 = load [54 x i8*], [54 x i8*]* %vtable_ptr45, align 8 | |
%func_raw47 = extractvalue [54 x i8*] %vtable46, 45 | |
%func48 = bitcast i8* %func_raw47 to %Void* (%Array*, %Object*)* | |
%result49 = call %Void* %func48(%Array* %"ary@23_36", %Object* %as41) | |
br label %"Invoke_Array#push_end50" | |
"Invoke_Array#push_end50": ; preds = %"Invoke_Array#push42" | |
%"ary@23_51" = load %Array*, %Array** %"ary@23_", align 8 | |
br label %"Invoke_Class#<>" | |
"Invoke_Class#<>": ; preds = %"Invoke_Array#push_end50" | |
%addr_vtable52 = getelementptr inbounds %Pair, %Pair* %"::Pair", i32 0, i32 0 | |
%vtable53 = load i8*, i8** %addr_vtable52, align 8 | |
%vtable_ptr54 = bitcast i8* %vtable53 to [23 x i8*]* | |
%vtable55 = load [23 x i8*], [23 x i8*]* %vtable_ptr54, align 8 | |
%func_raw56 = extractvalue [23 x i8*] %vtable55, 16 | |
%func57 = bitcast i8* %func_raw56 to %Pair* (%Pair*, %Array*)* | |
%result58 = call %Pair* %func57(%Pair* %"::Pair", %Array* %"ary@23_51") | |
br label %"Invoke_Class#<>_end" | |
"Invoke_Class#<>_end": ; preds = %"Invoke_Class#<>" | |
br label %"Invoke_Meta:Pair#new" | |
"Invoke_Meta:Pair#new": ; preds = %"Invoke_Class#<>_end" | |
%addr_vtable59 = getelementptr inbounds %Pair, %Pair* %result58, i32 0, i32 0 | |
%vtable60 = load i8*, i8** %addr_vtable59, align 8 | |
%vtable_ptr61 = bitcast i8* %vtable60 to [23 x i8*]* | |
%vtable62 = load [23 x i8*], [23 x i8*]* %vtable_ptr61, align 8 | |
%func_raw63 = extractvalue [23 x i8*] %vtable62, 22 | |
%func64 = bitcast i8* %func_raw63 to %Pair* (%Pair*, %Object*, %Object*)* | |
%result65 = call %Pair* %func64(%Pair* %result58, %Object* %key, %Object* %value) | |
br label %"Invoke_Meta:Pair#new_end" | |
"Invoke_Meta:Pair#new_end": ; preds = %"Invoke_Meta:Pair#new" | |
%as66 = bitcast %Pair* %result65 to %Object* | |
br label %"Invoke_Array#push67" | |
"Invoke_Array#push67": ; preds = %"Invoke_Meta:Pair#new_end" | |
%addr_vtable68 = getelementptr inbounds %Array, %Array* %"@pairs10", i32 0, i32 0 | |
%vtable69 = load i8*, i8** %addr_vtable68, align 8 | |
%vtable_ptr70 = bitcast i8* %vtable69 to [54 x i8*]* | |
%vtable71 = load [54 x i8*], [54 x i8*]* %vtable_ptr70, align 8 | |
%func_raw72 = extractvalue [54 x i8*] %vtable71, 45 | |
%func73 = bitcast i8* %func_raw72 to %Void* (%Array*, %Object*)* | |
%result74 = call %Void* %func73(%Array* %"@pairs10", %Object* %as66) | |
br label %"Invoke_Array#push_end75" | |
"Invoke_Array#push_end75": ; preds = %"Invoke_Array#push67" | |
br label %IfEnd | |
Ret: ; preds = %IfEnd | |
br label %End | |
} | |
define %Maybe* @Dict_Table_aref_(%"Dict::Table"* %self, %Object* %key) { | |
alloca: | |
%ret = alloca %"Maybe::None"*, align 8 | |
br label %alloca_End | |
alloca_End: ; preds = %alloca | |
%"::None" = load %"Maybe::None"*, %"Maybe::None"** @"::None", align 8 | |
store %"Maybe::None"* %"::None", %"Maybe::None"** %ret, align 8 | |
%"addr_@pairs" = getelementptr inbounds %"Dict::Table", %"Dict::Table"* %self, i32 0, i32 2 | |
%"@pairs" = load %Array*, %Array** %"addr_@pairs", align 8 | |
%"::Fn1" = load %Fn1*, %Fn1** @"::Fn1", align 8 | |
%sk_ptr = call %"Shiika::Internal::Ptr"* @box_i8ptr(i8* bitcast (%Void* (%Fn1*, %Object*)* @"lambda_19_in_Dict::Table#[]" to i8*)) | |
%the_main = bitcast %"Dict::Table"* %self to %Object* | |
%"::Array" = load %Array*, %Array** @"::Array", align 8 | |
%result = call %Array* @Meta_Array_new(%Array* %"::Array") | |
%_ = call %Void* @Array_push(%Array* %result, %Object* %key) | |
%capture_item = bitcast %"Maybe::None"** %ret to %Object* | |
%_1 = call %Void* @Array_push(%Array* %result, %Object* %capture_item) | |
%result2 = call %Fn1* @Meta_Fn1_new(%Fn1* %"::Fn1", %"Shiika::Internal::Ptr"* %sk_ptr, %Object* %the_main, %Array* %result) | |
%as = bitcast %Fn1* %result2 to %Object* | |
br label %"Invoke_Array#each" | |
End: ; preds = %Ret | |
%methodResult = phi %Maybe* [ %as6, %Ret ] | |
ret %Maybe* %methodResult | |
"Invoke_Array#each": ; preds = %alloca_End | |
%addr_vtable = getelementptr inbounds %Array, %Array* %"@pairs", i32 0, i32 0 | |
%vtable = load i8*, i8** %addr_vtable, align 8 | |
%vtable_ptr = bitcast i8* %vtable to [54 x i8*]* | |
%vtable3 = load [54 x i8*], [54 x i8*]* %vtable_ptr, align 8 | |
%func_raw = extractvalue [54 x i8*] %vtable3, 29 | |
%func = bitcast i8* %func_raw to %Void* (%Array*, %Object*)* | |
%result4 = call %Void* %func(%Array* %"@pairs", %Object* %as) | |
br label %"Invoke_Array#each_end" | |
"Invoke_Array#each_end": ; preds = %"Invoke_Array#each" | |
%ret5 = load %"Maybe::None"*, %"Maybe::None"** %ret, align 8 | |
br label %Ret | |
Ret: ; preds = %"Invoke_Array#each_end" | |
%as6 = bitcast %"Maybe::None"* %ret5 to %Maybe* | |
br label %End | |
} | |
define %Bool* @"Dict_Table_has__key?"(%"Dict::Table"* %self, %Object* %key) { | |
alloca: | |
%ret = alloca %Bool*, align 8 | |
br label %alloca_End | |
alloca_End: ; preds = %alloca | |
%sk_bool = call %Bool* @box_bool(i1 false) | |
store %Bool* %sk_bool, %Bool** %ret, align 8 | |
%"addr_@pairs" = getelementptr inbounds %"Dict::Table", %"Dict::Table"* %self, i32 0, i32 2 | |
%"@pairs" = load %Array*, %Array** %"addr_@pairs", align 8 | |
%"::Fn1" = load %Fn1*, %Fn1** @"::Fn1", align 8 | |
%sk_ptr = call %"Shiika::Internal::Ptr"* @box_i8ptr(i8* bitcast (%Void* (%Fn1*, %Object*)* @"lambda_20_in_Dict::Table#has_key?" to i8*)) | |
%the_main = bitcast %"Dict::Table"* %self to %Object* | |
%"::Array" = load %Array*, %Array** @"::Array", align 8 | |
%result = call %Array* @Meta_Array_new(%Array* %"::Array") | |
%_ = call %Void* @Array_push(%Array* %result, %Object* %key) | |
%capture_item = bitcast %Bool** %ret to %Object* | |
%_1 = call %Void* @Array_push(%Array* %result, %Object* %capture_item) | |
%result2 = call %Fn1* @Meta_Fn1_new(%Fn1* %"::Fn1", %"Shiika::Internal::Ptr"* %sk_ptr, %Object* %the_main, %Array* %result) | |
%as = bitcast %Fn1* %result2 to %Object* | |
br label %"Invoke_Array#each" | |
End: ; preds = %Ret | |
%methodResult = phi %Bool* [ %ret5, %Ret ] | |
ret %Bool* %methodResult | |
"Invoke_Array#each": ; preds = %alloca_End | |
%addr_vtable = getelementptr inbounds %Array, %Array* %"@pairs", i32 0, i32 0 | |
%vtable = load i8*, i8** %addr_vtable, align 8 | |
%vtable_ptr = bitcast i8* %vtable to [54 x i8*]* | |
%vtable3 = load [54 x i8*], [54 x i8*]* %vtable_ptr, align 8 | |
%func_raw = extractvalue [54 x i8*] %vtable3, 29 | |
%func = bitcast i8* %func_raw to %Void* (%Array*, %Object*)* | |
%result4 = call %Void* %func(%Array* %"@pairs", %Object* %as) | |
br label %"Invoke_Array#each_end" | |
"Invoke_Array#each_end": ; preds = %"Invoke_Array#each" | |
%ret5 = load %Bool*, %Bool** %ret, align 8 | |
br label %Ret | |
Ret: ; preds = %"Invoke_Array#each_end" | |
br label %End | |
} | |
define %Array* @Dict_Table_keys(%"Dict::Table"* %self) { | |
alloca: | |
%ret = alloca %Array*, align 8 | |
%"ary@24_" = alloca %Array*, align 8 | |
br label %alloca_End | |
alloca_End: ; preds = %alloca | |
%"::Array" = load %Array*, %Array** @"::Array", align 8 | |
%"::Array1" = load %Array*, %Array** @"::Array", align 8 | |
%"::Class" = load %Class.0*, %Class.0** @"::Class", align 8 | |
br label %"Invoke_Class#_specialize1" | |
End: ; preds = %Ret | |
%methodResult = phi %Array* [ %ret45, %Ret ] | |
ret %Array* %methodResult | |
"Invoke_Class#_specialize1": ; preds = %alloca_End | |
%addr_vtable = getelementptr inbounds %Array, %Array* %"::Array1", i32 0, i32 0 | |
%vtable = load i8*, i8** %addr_vtable, align 8 | |
%vtable_ptr = bitcast i8* %vtable to [25 x i8*]* | |
%vtable2 = load [25 x i8*], [25 x i8*]* %vtable_ptr, align 8 | |
%func_raw = extractvalue [25 x i8*] %vtable2, 18 | |
%func = bitcast i8* %func_raw to %Array* (%Array*, %Class.0*)* | |
%result = call %Array* %func(%Array* %"::Array1", %Class.0* %"::Class") | |
br label %"Invoke_Class#_specialize1_end" | |
"Invoke_Class#_specialize1_end": ; preds = %"Invoke_Class#_specialize1" | |
br label %"Invoke_Array#new" | |
"Invoke_Array#new": ; preds = %"Invoke_Class#_specialize1_end" | |
%addr_vtable3 = getelementptr inbounds %Array, %Array* %result, i32 0, i32 0 | |
%vtable4 = load i8*, i8** %addr_vtable3, align 8 | |
%vtable_ptr5 = bitcast i8* %vtable4 to [25 x i8*]* | |
%vtable6 = load [25 x i8*], [25 x i8*]* %vtable_ptr5, align 8 | |
%func_raw7 = extractvalue [25 x i8*] %vtable6, 23 | |
%func8 = bitcast i8* %func_raw7 to %Array* (%Array*)* | |
%result9 = call %Array* %func8(%Array* %result) | |
br label %"Invoke_Array#new_end" | |
"Invoke_Array#new_end": ; preds = %"Invoke_Array#new" | |
store %Array* %result9, %Array** %"ary@24_", align 8 | |
%"ary@24_10" = load %Array*, %Array** %"ary@24_", align 8 | |
%addr_class = getelementptr inbounds %"Dict::Table", %"Dict::Table"* %self, i32 0, i32 1 | |
%class = load %Class.0*, %Class.0** %addr_class, align 8 | |
%sk_int = call %Int* @box_int(i64 0) | |
%result11 = call %Class.0* @Class___type__argument(%Class.0* %class, %Int* %sk_int) | |
%as = bitcast %Class.0* %result11 to %Object* | |
br label %"Invoke_Array#push" | |
"Invoke_Array#push": ; preds = %"Invoke_Array#new_end" | |
%addr_vtable12 = getelementptr inbounds %Array, %Array* %"ary@24_10", i32 0, i32 0 | |
%vtable13 = load i8*, i8** %addr_vtable12, align 8 | |
%vtable_ptr14 = bitcast i8* %vtable13 to [54 x i8*]* | |
%vtable15 = load [54 x i8*], [54 x i8*]* %vtable_ptr14, align 8 | |
%func_raw16 = extractvalue [54 x i8*] %vtable15, 45 | |
%func17 = bitcast i8* %func_raw16 to %Void* (%Array*, %Object*)* | |
%result18 = call %Void* %func17(%Array* %"ary@24_10", %Object* %as) | |
br label %"Invoke_Array#push_end" | |
"Invoke_Array#push_end": ; preds = %"Invoke_Array#push" | |
%"ary@24_19" = load %Array*, %Array** %"ary@24_", align 8 | |
br label %"Invoke_Class#<>" | |
"Invoke_Class#<>": ; preds = %"Invoke_Array#push_end" | |
%addr_vtable20 = getelementptr inbounds %Array, %Array* %"::Array", i32 0, i32 0 | |
%vtable21 = load i8*, i8** %addr_vtable20, align 8 | |
%vtable_ptr22 = bitcast i8* %vtable21 to [25 x i8*]* | |
%vtable23 = load [25 x i8*], [25 x i8*]* %vtable_ptr22, align 8 | |
%func_raw24 = extractvalue [25 x i8*] %vtable23, 16 | |
%func25 = bitcast i8* %func_raw24 to %Array* (%Array*, %Array*)* | |
%result26 = call %Array* %func25(%Array* %"::Array", %Array* %"ary@24_19") | |
br label %"Invoke_Class#<>_end" | |
"Invoke_Class#<>_end": ; preds = %"Invoke_Class#<>" | |
br label %"Invoke_Meta:Array#new" | |
"Invoke_Meta:Array#new": ; preds = %"Invoke_Class#<>_end" | |
%addr_vtable27 = getelementptr inbounds %Array, %Array* %result26, i32 0, i32 0 | |
%vtable28 = load i8*, i8** %addr_vtable27, align 8 | |
%vtable_ptr29 = bitcast i8* %vtable28 to [25 x i8*]* | |
%vtable30 = load [25 x i8*], [25 x i8*]* %vtable_ptr29, align 8 | |
%func_raw31 = extractvalue [25 x i8*] %vtable30, 23 | |
%func32 = bitcast i8* %func_raw31 to %Array* (%Array*)* | |
%result33 = call %Array* %func32(%Array* %result26) | |
br label %"Invoke_Meta:Array#new_end" | |
"Invoke_Meta:Array#new_end": ; preds = %"Invoke_Meta:Array#new" | |
store %Array* %result33, %Array** %ret, align 8 | |
%"addr_@pairs" = getelementptr inbounds %"Dict::Table", %"Dict::Table"* %self, i32 0, i32 2 | |
%"@pairs" = load %Array*, %Array** %"addr_@pairs", align 8 | |
%"::Fn1" = load %Fn1*, %Fn1** @"::Fn1", align 8 | |
%sk_ptr = call %"Shiika::Internal::Ptr"* @box_i8ptr(i8* bitcast (%Void* (%Fn1*, %Object*)* @"lambda_21_in_Dict::Table#keys" to i8*)) | |
%the_main = bitcast %"Dict::Table"* %self to %Object* | |
%"::Array34" = load %Array*, %Array** @"::Array", align 8 | |
%result35 = call %Array* @Meta_Array_new(%Array* %"::Array34") | |
%capture_item = bitcast %Array** %ret to %Object* | |
%_ = call %Void* @Array_push(%Array* %result35, %Object* %capture_item) | |
%result36 = call %Fn1* @Meta_Fn1_new(%Fn1* %"::Fn1", %"Shiika::Internal::Ptr"* %sk_ptr, %Object* %the_main, %Array* %result35) | |
%as37 = bitcast %Fn1* %result36 to %Object* | |
br label %"Invoke_Array#each" | |
"Invoke_Array#each": ; preds = %"Invoke_Meta:Array#new_end" | |
%addr_vtable38 = getelementptr inbounds %Array, %Array* %"@pairs", i32 0, i32 0 | |
%vtable39 = load i8*, i8** %addr_vtable38, align 8 | |
%vtable_ptr40 = bitcast i8* %vtable39 to [54 x i8*]* | |
%vtable41 = load [54 x i8*], [54 x i8*]* %vtable_ptr40, align 8 | |
%func_raw42 = extractvalue [54 x i8*] %vtable41, 29 | |
%func43 = bitcast i8* %func_raw42 to %Void* (%Array*, %Object*)* | |
%result44 = call %Void* %func43(%Array* %"@pairs", %Object* %as37) | |
br label %"Invoke_Array#each_end" | |
"Invoke_Array#each_end": ; preds = %"Invoke_Array#each" | |
%ret45 = load %Array*, %Array** %ret, align 8 | |
br label %Ret | |
Ret: ; preds = %"Invoke_Array#each_end" | |
br label %End | |
} | |
define %Array* @Dict_Table_values(%"Dict::Table"* %self) { | |
alloca: | |
%ret = alloca %Array*, align 8 | |
%"ary@25_" = alloca %Array*, align 8 | |
br label %alloca_End | |
alloca_End: ; preds = %alloca | |
%"::Array" = load %Array*, %Array** @"::Array", align 8 | |
%"::Array1" = load %Array*, %Array** @"::Array", align 8 | |
%"::Class" = load %Class.0*, %Class.0** @"::Class", align 8 | |
br label %"Invoke_Class#_specialize1" | |
End: ; preds = %Ret | |
%methodResult = phi %Array* [ %ret45, %Ret ] | |
ret %Array* %methodResult | |
"Invoke_Class#_specialize1": ; preds = %alloca_End | |
%addr_vtable = getelementptr inbounds %Array, %Array* %"::Array1", i32 0, i32 0 | |
%vtable = load i8*, i8** %addr_vtable, align 8 | |
%vtable_ptr = bitcast i8* %vtable to [25 x i8*]* | |
%vtable2 = load [25 x i8*], [25 x i8*]* %vtable_ptr, align 8 | |
%func_raw = extractvalue [25 x i8*] %vtable2, 18 | |
%func = bitcast i8* %func_raw to %Array* (%Array*, %Class.0*)* | |
%result = call %Array* %func(%Array* %"::Array1", %Class.0* %"::Class") | |
br label %"Invoke_Class#_specialize1_end" | |
"Invoke_Class#_specialize1_end": ; preds = %"Invoke_Class#_specialize1" | |
br label %"Invoke_Array#new" | |
"Invoke_Array#new": ; preds = %"Invoke_Class#_specialize1_end" | |
%addr_vtable3 = getelementptr inbounds %Array, %Array* %result, i32 0, i32 0 | |
%vtable4 = load i8*, i8** %addr_vtable3, align 8 | |
%vtable_ptr5 = bitcast i8* %vtable4 to [25 x i8*]* | |
%vtable6 = load [25 x i8*], [25 x i8*]* %vtable_ptr5, align 8 | |
%func_raw7 = extractvalue [25 x i8*] %vtable6, 23 | |
%func8 = bitcast i8* %func_raw7 to %Array* (%Array*)* | |
%result9 = call %Array* %func8(%Array* %result) | |
br label %"Invoke_Array#new_end" | |
"Invoke_Array#new_end": ; preds = %"Invoke_Array#new" | |
store %Array* %result9, %Array** %"ary@25_", align 8 | |
%"ary@25_10" = load %Array*, %Array** %"ary@25_", align 8 | |
%addr_class = getelementptr inbounds %"Dict::Table", %"Dict::Table"* %self, i32 0, i32 1 | |
%class = load %Class.0*, %Class.0** %addr_class, align 8 | |
%sk_int = call %Int* @box_int(i64 1) | |
%result11 = call %Class.0* @Class___type__argument(%Class.0* %class, %Int* %sk_int) | |
%as = bitcast %Class.0* %result11 to %Object* | |
br label %"Invoke_Array#push" | |
"Invoke_Array#push": ; preds = %"Invoke_Array#new_end" | |
%addr_vtable12 = getelementptr inbounds %Array, %Array* %"ary@25_10", i32 0, i32 0 | |
%vtable13 = load i8*, i8** %addr_vtable12, align 8 | |
%vtable_ptr14 = bitcast i8* %vtable13 to [54 x i8*]* | |
%vtable15 = load [54 x i8*], [54 x i8*]* %vtable_ptr14, align 8 | |
%func_raw16 = extractvalue [54 x i8*] %vtable15, 45 | |
%func17 = bitcast i8* %func_raw16 to %Void* (%Array*, %Object*)* | |
%result18 = call %Void* %func17(%Array* %"ary@25_10", %Object* %as) | |
br label %"Invoke_Array#push_end" | |
"Invoke_Array#push_end": ; preds = %"Invoke_Array#push" | |
%"ary@25_19" = load %Array*, %Array** %"ary@25_", align 8 | |
br label %"Invoke_Class#<>" | |
"Invoke_Class#<>": ; preds = %"Invoke_Array#push_end" | |
%addr_vtable20 = getelementptr inbounds %Array, %Array* %"::Array", i32 0, i32 0 | |
%vtable21 = load i8*, i8** %addr_vtable20, align 8 | |
%vtable_ptr22 = bitcast i8* %vtable21 to [25 x i8*]* | |
%vtable23 = load [25 x i8*], [25 x i8*]* %vtable_ptr22, align 8 | |
%func_raw24 = extractvalue [25 x i8*] %vtable23, 16 | |
%func25 = bitcast i8* %func_raw24 to %Array* (%Array*, %Array*)* | |
%result26 = call %Array* %func25(%Array* %"::Array", %Array* %"ary@25_19") | |
br label %"Invoke_Class#<>_end" | |
"Invoke_Class#<>_end": ; preds = %"Invoke_Class#<>" | |
br label %"Invoke_Meta:Array#new" | |
"Invoke_Meta:Array#new": ; preds = %"Invoke_Class#<>_end" | |
%addr_vtable27 = getelementptr inbounds %Array, %Array* %result26, i32 0, i32 0 | |
%vtable28 = load i8*, i8** %addr_vtable27, align 8 | |
%vtable_ptr29 = bitcast i8* %vtable28 to [25 x i8*]* | |
%vtable30 = load [25 x i8*], [25 x i8*]* %vtable_ptr29, align 8 | |
%func_raw31 = extractvalue [25 x i8*] %vtable30, 23 | |
%func32 = bitcast i8* %func_raw31 to %Array* (%Array*)* | |
%result33 = call %Array* %func32(%Array* %result26) | |
br label %"Invoke_Meta:Array#new_end" | |
"Invoke_Meta:Array#new_end": ; preds = %"Invoke_Meta:Array#new" | |
store %Array* %result33, %Array** %ret, align 8 | |
%"addr_@pairs" = getelementptr inbounds %"Dict::Table", %"Dict::Table"* %self, i32 0, i32 2 | |
%"@pairs" = load %Array*, %Array** %"addr_@pairs", align 8 | |
%"::Fn1" = load %Fn1*, %Fn1** @"::Fn1", align 8 | |
%sk_ptr = call %"Shiika::Internal::Ptr"* @box_i8ptr(i8* bitcast (%Void* (%Fn1*, %Object*)* @"lambda_22_in_Dict::Table#values" to i8*)) | |
%the_main = bitcast %"Dict::Table"* %self to %Object* | |
%"::Array34" = load %Array*, %Array** @"::Array", align 8 | |
%result35 = call %Array* @Meta_Array_new(%Array* %"::Array34") | |
%capture_item = bitcast %Array** %ret to %Object* | |
%_ = call %Void* @Array_push(%Array* %result35, %Object* %capture_item) | |
%result36 = call %Fn1* @Meta_Fn1_new(%Fn1* %"::Fn1", %"Shiika::Internal::Ptr"* %sk_ptr, %Object* %the_main, %Array* %result35) | |
%as37 = bitcast %Fn1* %result36 to %Object* | |
br label %"Invoke_Array#each" | |
"Invoke_Array#each": ; preds = %"Invoke_Meta:Array#new_end" | |
%addr_vtable38 = getelementptr inbounds %Array, %Array* %"@pairs", i32 0, i32 0 | |
%vtable39 = load i8*, i8** %addr_vtable38, align 8 | |
%vtable_ptr40 = bitcast i8* %vtable39 to [54 x i8*]* | |
%vtable41 = load [54 x i8*], [54 x i8*]* %vtable_ptr40, align 8 | |
%func_raw42 = extractvalue [54 x i8*] %vtable41, 29 | |
%func43 = bitcast i8* %func_raw42 to %Void* (%Array*, %Object*)* | |
%result44 = call %Void* %func43(%Array* %"@pairs", %Object* %as37) | |
br label %"Invoke_Array#each_end" | |
"Invoke_Array#each_end": ; preds = %"Invoke_Array#each" | |
%ret45 = load %Array*, %Array** %ret, align 8 | |
br label %Ret | |
Ret: ; preds = %"Invoke_Array#each_end" | |
br label %End | |
} | |
define %Bool* @Meta_Bool_new(%Bool* %self) { | |
%mem = call i8* @shiika_malloc(i64 ptrtoint (%Bool* getelementptr (%Bool, %Bool* null, i32 1) to i64)) | |
%addr = bitcast i8* %mem to %Bool* | |
%addr_vtable = getelementptr inbounds %Bool, %Bool* %addr, i32 0, i32 0 | |
store i8* bitcast ([16 x i8*]* @shiika_vtable_Bool to i8*), i8** %addr_vtable, align 8 | |
%class = bitcast %Bool* %self to %Class.0* | |
%addr_my_class = getelementptr inbounds %Bool, %Bool* %addr, i32 0, i32 1 | |
store %Class.0* %class, %Class.0** %addr_my_class, align 8 | |
%obj_as_super = bitcast %Bool* %addr to %Object* | |
%1 = call %Void* @Object_initialize(%Object* %obj_as_super) | |
ret %Bool* %addr | |
} | |
define %Int* @Meta_Int_new(%Int* %self) { | |
%mem = call i8* @shiika_malloc(i64 ptrtoint (%Int* getelementptr (%Int, %Int* null, i32 1) to i64)) | |
%addr = bitcast i8* %mem to %Int* | |
%addr_vtable = getelementptr inbounds %Int, %Int* %addr, i32 0, i32 0 | |
store i8* bitcast ([35 x i8*]* @shiika_vtable_Int to i8*), i8** %addr_vtable, align 8 | |
%class = bitcast %Int* %self to %Class.0* | |
%addr_my_class = getelementptr inbounds %Int, %Int* %addr, i32 0, i32 1 | |
store %Class.0* %class, %Class.0** %addr_my_class, align 8 | |
%obj_as_super = bitcast %Int* %addr to %Object* | |
%1 = call %Void* @Object_initialize(%Object* %obj_as_super) | |
ret %Int* %addr | |
} | |
define %Fn4* @Meta_Fn4_new(%Fn4* %self, %"Shiika::Internal::Ptr"* %"@func", %Object* %"@the_self", %Array* %"@captures") { | |
%mem = call i8* @shiika_malloc(i64 mul nuw (i64 ptrtoint (i1** getelementptr (i1*, i1** null, i32 1) to i64), i64 6)) | |
%addr = bitcast i8* %mem to %Fn4* | |
%addr_vtable = getelementptr inbounds %Fn4, %Fn4* %addr, i32 0, i32 0 | |
store i8* bitcast ([24 x i8*]* @shiika_vtable_Fn4 to i8*), i8** %addr_vtable, align 8 | |
%class = bitcast %Fn4* %self to %Class.0* | |
%addr_my_class = getelementptr inbounds %Fn4, %Fn4* %addr, i32 0, i32 1 | |
store %Class.0* %class, %Class.0** %addr_my_class, align 8 | |
%obj_as_super = bitcast %Fn4* %addr to %Fn* | |
%1 = call %Void* @Fn_initialize(%Fn* %obj_as_super, %"Shiika::Internal::Ptr"* %"@func", %Object* %"@the_self", %Array* %"@captures") | |
ret %Fn4* %addr | |
} | |
define %Fn2* @Meta_Fn2_new(%Fn2* %self, %"Shiika::Internal::Ptr"* %"@func", %Object* %"@the_self", %Array* %"@captures") { | |
%mem = call i8* @shiika_malloc(i64 mul nuw (i64 ptrtoint (i1** getelementptr (i1*, i1** null, i32 1) to i64), i64 6)) | |
%addr = bitcast i8* %mem to %Fn2* | |
%addr_vtable = getelementptr inbounds %Fn2, %Fn2* %addr, i32 0, i32 0 | |
store i8* bitcast ([24 x i8*]* @shiika_vtable_Fn2 to i8*), i8** %addr_vtable, align 8 | |
%class = bitcast %Fn2* %self to %Class.0* | |
%addr_my_class = getelementptr inbounds %Fn2, %Fn2* %addr, i32 0, i32 1 | |
store %Class.0* %class, %Class.0** %addr_my_class, align 8 | |
%obj_as_super = bitcast %Fn2* %addr to %Fn* | |
%1 = call %Void* @Fn_initialize(%Fn* %obj_as_super, %"Shiika::Internal::Ptr"* %"@func", %Object* %"@the_self", %Array* %"@captures") | |
ret %Fn2* %addr | |
} | |
define %Float* @Float_mod_(%Float* %self, %Int* %other) { | |
br label %"Invoke_Int#to_f" | |
End: ; preds = %Ret | |
%methodResult = phi %Float* [ %result38, %Ret ] | |
ret %Float* %methodResult | |
"Invoke_Int#to_f": ; preds = %0 | |
%addr_vtable = getelementptr inbounds %Int, %Int* %other, i32 0, i32 0 | |
%vtable = load i8*, i8** %addr_vtable, align 8 | |
%vtable_ptr = bitcast i8* %vtable to [35 x i8*]* | |
%vtable1 = load [35 x i8*], [35 x i8*]* %vtable_ptr, align 8 | |
%func_raw = extractvalue [35 x i8*] %vtable1, 31 | |
%func = bitcast i8* %func_raw to %Float* (%Int*)* | |
%result = call %Float* %func(%Int* %other) | |
br label %"Invoke_Int#to_f_end" | |
"Invoke_Int#to_f_end": ; preds = %"Invoke_Int#to_f" | |
br label %"Invoke_Int#to_f2" | |
"Invoke_Int#to_f2": ; preds = %"Invoke_Int#to_f_end" | |
%addr_vtable3 = getelementptr inbounds %Int, %Int* %other, i32 0, i32 0 | |
%vtable4 = load i8*, i8** %addr_vtable3, align 8 | |
%vtable_ptr5 = bitcast i8* %vtable4 to [35 x i8*]* | |
%vtable6 = load [35 x i8*], [35 x i8*]* %vtable_ptr5, align 8 | |
%func_raw7 = extractvalue [35 x i8*] %vtable6, 31 | |
%func8 = bitcast i8* %func_raw7 to %Float* (%Int*)* | |
%result9 = call %Float* %func8(%Int* %other) | |
br label %"Invoke_Int#to_f_end10" | |
"Invoke_Int#to_f_end10": ; preds = %"Invoke_Int#to_f2" | |
br label %"Invoke_Float#/" | |
"Invoke_Float#/": ; preds = %"Invoke_Int#to_f_end10" | |
%addr_vtable11 = getelementptr inbounds %Float, %Float* %self, i32 0, i32 0 | |
%vtable12 = load i8*, i8** %addr_vtable11, align 8 | |
%vtable_ptr13 = bitcast i8* %vtable12 to [25 x i8*]* | |
%vtable14 = load [25 x i8*], [25 x i8*]* %vtable_ptr13, align 8 | |
%func_raw15 = extractvalue [25 x i8*] %vtable14, 21 | |
%func16 = bitcast i8* %func_raw15 to %Float* (%Float*, %Float*)* | |
%result17 = call %Float* %func16(%Float* %self, %Float* %result9) | |
br label %"Invoke_Float#/_end" | |
"Invoke_Float#/_end": ; preds = %"Invoke_Float#/" | |
br label %"Invoke_Float#floor" | |
"Invoke_Float#floor": ; preds = %"Invoke_Float#/_end" | |
%addr_vtable18 = getelementptr inbounds %Float, %Float* %result17, i32 0, i32 0 | |
%vtable19 = load i8*, i8** %addr_vtable18, align 8 | |
%vtable_ptr20 = bitcast i8* %vtable19 to [25 x i8*]* | |
%vtable21 = load [25 x i8*], [25 x i8*]* %vtable_ptr20, align 8 | |
%func_raw22 = extractvalue [25 x i8*] %vtable21, 23 | |
%func23 = bitcast i8* %func_raw22 to %Float* (%Float*)* | |
%result24 = call %Float* %func23(%Float* %result17) | |
br label %"Invoke_Float#floor_end" | |
"Invoke_Float#floor_end": ; preds = %"Invoke_Float#floor" | |
br label %"Invoke_Float#*" | |
"Invoke_Float#*": ; preds = %"Invoke_Float#floor_end" | |
%addr_vtable25 = getelementptr inbounds %Float, %Float* %result, i32 0, i32 0 | |
%vtable26 = load i8*, i8** %addr_vtable25, align 8 | |
%vtable_ptr27 = bitcast i8* %vtable26 to [25 x i8*]* | |
%vtable28 = load [25 x i8*], [25 x i8*]* %vtable_ptr27, align 8 | |
%func_raw29 = extractvalue [25 x i8*] %vtable28, 17 | |
%func30 = bitcast i8* %func_raw29 to %Float* (%Float*, %Float*)* | |
%result31 = call %Float* %func30(%Float* %result, %Float* %result24) | |
br label %"Invoke_Float#*_end" | |
"Invoke_Float#*_end": ; preds = %"Invoke_Float#*" | |
br label %"Invoke_Float#-" | |
"Invoke_Float#-": ; preds = %"Invoke_Float#*_end" | |
%addr_vtable32 = getelementptr inbounds %Float, %Float* %self, i32 0, i32 0 | |
%vtable33 = load i8*, i8** %addr_vtable32, align 8 | |
%vtable_ptr34 = bitcast i8* %vtable33 to [25 x i8*]* | |
%vtable35 = load [25 x i8*], [25 x i8*]* %vtable_ptr34, align 8 | |
%func_raw36 = extractvalue [25 x i8*] %vtable35, 19 | |
%func37 = bitcast i8* %func_raw36 to %Float* (%Float*, %Float*)* | |
%result38 = call %Float* %func37(%Float* %self, %Float* %result31) | |
br label %"Invoke_Float#-_end" | |
"Invoke_Float#-_end": ; preds = %"Invoke_Float#-" | |
br label %Ret | |
Ret: ; preds = %"Invoke_Float#-_end" | |
br label %End | |
} | |
declare %Float* @Float_uminus_(%Float*) | |
declare %Float* @Float_add_(%Float*, %Float*) | |
declare %Float* @Float_sub_(%Float*, %Float*) | |
declare %Float* @Float_mul_(%Float*, %Float*) | |
declare %Float* @Float_div_(%Float*, %Float*) | |
declare %Bool* @Float_lt_(%Float*, %Float*) | |
declare %Bool* @Float_le_(%Float*, %Float*) | |
declare %Bool* @Float_gt_(%Float*, %Float*) | |
declare %Bool* @Float_ge_(%Float*, %Float*) | |
declare %Bool* @Float_eq_(%Float*, %Float*) | |
declare %Float* @Float_abs(%Float*) | |
declare %Float* @Float_floor(%Float*) | |
declare %Int* @Float_to__i(%Float*) | |
declare %String* @Float_to__s(%Float*) | |
define %Void* @Meta_Void_new(%Void* %self) { | |
%mem = call i8* @shiika_malloc(i64 mul nuw (i64 ptrtoint (i1** getelementptr (i1*, i1** null, i32 1) to i64), i64 2)) | |
%addr = bitcast i8* %mem to %Void* | |
%addr_vtable = getelementptr inbounds %Void, %Void* %addr, i32 0, i32 0 | |
store i8* bitcast ([16 x i8*]* @shiika_vtable_Void to i8*), i8** %addr_vtable, align 8 | |
%class = bitcast %Void* %self to %Class.0* | |
%addr_my_class = getelementptr inbounds %Void, %Void* %addr, i32 0, i32 1 | |
store %Class.0* %class, %Class.0** %addr_my_class, align 8 | |
%obj_as_super = bitcast %Void* %addr to %Object* | |
%1 = call %Void* @Object_initialize(%Object* %obj_as_super) | |
ret %Void* %addr | |
} | |
define %"Result::Ok"* @Meta_Result_Ok_new(%"Result::Ok"* %self, %Object* %value) { | |
%mem = call i8* @shiika_malloc(i64 mul nuw (i64 ptrtoint (i1** getelementptr (i1*, i1** null, i32 1) to i64), i64 3)) | |
%addr = bitcast i8* %mem to %"Result::Ok"* | |
%addr_vtable = getelementptr inbounds %"Result::Ok", %"Result::Ok"* %addr, i32 0, i32 0 | |
store i8* bitcast ([18 x i8*]* @"shiika_vtable_Result::Ok" to i8*), i8** %addr_vtable, align 8 | |
%class = bitcast %"Result::Ok"* %self to %Class.0* | |
%addr_my_class = getelementptr inbounds %"Result::Ok", %"Result::Ok"* %addr, i32 0, i32 1 | |
store %Class.0* %class, %Class.0** %addr_my_class, align 8 | |
%1 = call %Void* @Result_Ok_initialize(%"Result::Ok"* %addr, %Object* %value) | |
ret %"Result::Ok"* %addr | |
} | |
define %Void* @Maybe_None_initialize(%"Maybe::None"* %self) { | |
%"::Void" = load %Void*, %Void** @"::Void", align 8 | |
br label %Ret | |
End: ; preds = %Ret | |
%"::Void1" = load %Void*, %Void** @"::Void", align 8 | |
ret %Void* %"::Void1" | |
Ret: ; preds = %0 | |
br label %End | |
} | |
define %String* @Bool_inspect(%Bool* %self) { | |
br label %IfBegin | |
End: ; preds = %Ret | |
%methodResult = phi %String* [ %ifResult, %Ret ] | |
ret %String* %methodResult | |
IfBegin: ; preds = %0 | |
%llvm_bool = call i1 @unbox_bool(%Bool* %self) | |
%istrue = icmp eq i1 %llvm_bool, true | |
br i1 %istrue, label %IfThen, label %IfElse | |
IfThen: ; preds = %IfBegin | |
%sk_str = call %String* @gen_literal_string(i8* getelementptr inbounds ([5 x i8], [5 x i8]* @str_50, i32 0, i32 0), i64 4) | |
br label %IfEnd | |
IfElse: ; preds = %IfBegin | |
%sk_str1 = call %String* @gen_literal_string(i8* getelementptr inbounds ([6 x i8], [6 x i8]* @str_51, i32 0, i32 0), i64 5) | |
br label %IfEnd | |
IfEnd: ; preds = %IfElse, %IfThen | |
%ifResult = phi %String* [ %sk_str, %IfThen ], [ %sk_str1, %IfElse ] | |
br label %Ret | |
Ret: ; preds = %IfEnd | |
br label %End | |
} | |
define %Int* @Int_abs(%Int* %self) { | |
br label %IfBegin | |
End: ; preds = %Ret | |
%methodResult = phi %Int* [ %ifResult, %Ret ] | |
ret %Int* %methodResult | |
IfBegin: ; preds = %0 | |
%sk_int = call %Int* @box_int(i64 0) | |
br label %"Invoke_Int#>=" | |
IfThen: ; preds = %"Invoke_Int#>=_end" | |
br label %IfEnd | |
IfElse: ; preds = %"Invoke_Int#>=_end" | |
br label %"Invoke_Int#-@" | |
IfEnd: ; preds = %"Invoke_Int#-@_end", %IfThen | |
%ifResult = phi %Int* [ %self, %IfThen ], [ %result8, %"Invoke_Int#-@_end" ] | |
br label %Ret | |
"Invoke_Int#>=": ; preds = %IfBegin | |
%addr_vtable = getelementptr inbounds %Int, %Int* %self, i32 0, i32 0 | |
%vtable = load i8*, i8** %addr_vtable, align 8 | |
%vtable_ptr = bitcast i8* %vtable to [35 x i8*]* | |
%vtable1 = load [35 x i8*], [35 x i8*]* %vtable_ptr, align 8 | |
%func_raw = extractvalue [35 x i8*] %vtable1, 4 | |
%func = bitcast i8* %func_raw to %Bool* (%Int*, %Int*)* | |
%result = call %Bool* %func(%Int* %self, %Int* %sk_int) | |
br label %"Invoke_Int#>=_end" | |
"Invoke_Int#>=_end": ; preds = %"Invoke_Int#>=" | |
%llvm_bool = call i1 @unbox_bool(%Bool* %result) | |
%istrue = icmp eq i1 %llvm_bool, true | |
br i1 %istrue, label %IfThen, label %IfElse | |
"Invoke_Int#-@": ; preds = %IfElse | |
%addr_vtable2 = getelementptr inbounds %Int, %Int* %self, i32 0, i32 0 | |
%vtable3 = load i8*, i8** %addr_vtable2, align 8 | |
%vtable_ptr4 = bitcast i8* %vtable3 to [35 x i8*]* | |
%vtable5 = load [35 x i8*], [35 x i8*]* %vtable_ptr4, align 8 | |
%func_raw6 = extractvalue [35 x i8*] %vtable5, 20 | |
%func7 = bitcast i8* %func_raw6 to %Int* (%Int*)* | |
%result8 = call %Int* %func7(%Int* %self) | |
br label %"Invoke_Int#-@_end" | |
"Invoke_Int#-@_end": ; preds = %"Invoke_Int#-@" | |
br label %IfEnd | |
Ret: ; preds = %IfEnd | |
br label %End | |
} | |
define %Void* @Int_downto(%Int* %self, %Int* %n, %Fn1* %f) { | |
alloca: | |
%i = alloca %Int*, align 8 | |
br label %alloca_End | |
alloca_End: ; preds = %alloca | |
store %Int* %self, %Int** %i, align 8 | |
br label %WhileBegin | |
End: ; preds = %Ret, %Invoke_lambda | |
%"::Void18" = load %Void*, %Void** @"::Void", align 8 | |
ret %Void* %"::Void18" | |
WhileBegin: ; preds = %"Invoke_Int#-_end", %alloca_End | |
%i1 = load %Int*, %Int** %i, align 8 | |
br label %"Invoke_Int#>=" | |
"Invoke_Int#>=": ; preds = %WhileBegin | |
%addr_vtable = getelementptr inbounds %Int, %Int* %i1, i32 0, i32 0 | |
%vtable = load i8*, i8** %addr_vtable, align 8 | |
%vtable_ptr = bitcast i8* %vtable to [35 x i8*]* | |
%vtable2 = load [35 x i8*], [35 x i8*]* %vtable_ptr, align 8 | |
%func_raw = extractvalue [35 x i8*] %vtable2, 4 | |
%func = bitcast i8* %func_raw to %Bool* (%Int*, %Int*)* | |
%result = call %Bool* %func(%Int* %i1, %Int* %n) | |
br label %"Invoke_Int#>=_end" | |
"Invoke_Int#>=_end": ; preds = %"Invoke_Int#>=" | |
%llvm_bool = call i1 @unbox_bool(%Bool* %result) | |
%istrue = icmp eq i1 %llvm_bool, true | |
br i1 %istrue, label %WhileBody, label %WhileEnd | |
WhileBody: ; preds = %"Invoke_Int#>=_end" | |
%i3 = load %Int*, %Int** %i, align 8 | |
br label %Invoke_lambda | |
WhileEnd: ; preds = %"Invoke_Int#>=_end" | |
%"::Void" = load %Void*, %Void** @"::Void", align 8 | |
%"::Void17" = load %Void*, %Void** @"::Void", align 8 | |
br label %Ret | |
Invoke_lambda: ; preds = %WhileBody | |
%"addr_@func" = getelementptr inbounds %Fn1, %Fn1* %f, i32 0, i32 2 | |
%"@func" = load %"Shiika::Internal::Ptr"*, %"Shiika::Internal::Ptr"** %"addr_@func", align 8 | |
%llvm_ptr = call i8* @unbox_i8ptr(%"Shiika::Internal::Ptr"* %"@func") | |
%0 = bitcast i8* %llvm_ptr to %Void* (%Fn1*, %Int*)* | |
%result4 = call %Void* %0(%Fn1* %f, %Int* %i3) | |
%"addr_@exit_status" = getelementptr inbounds %Fn1, %Fn1* %f, i32 0, i32 5 | |
%"@exit_status" = load %Int*, %Int** %"addr_@exit_status", align 8 | |
%sk_int = call %Int* @box_int(i64 1) | |
%result5 = call %Bool* @Int_eq_(%Int* %"@exit_status", %Int* %sk_int) | |
%llvm_bool6 = call i1 @unbox_bool(%Bool* %result5) | |
%istrue7 = icmp eq i1 %llvm_bool6, true | |
br i1 %istrue7, label %End, label %Invoke_lambda_end | |
Invoke_lambda_end: ; preds = %Invoke_lambda | |
%i8 = load %Int*, %Int** %i, align 8 | |
%sk_int9 = call %Int* @box_int(i64 1) | |
br label %"Invoke_Int#-" | |
"Invoke_Int#-": ; preds = %Invoke_lambda_end | |
%addr_vtable10 = getelementptr inbounds %Int, %Int* %i8, i32 0, i32 0 | |
%vtable11 = load i8*, i8** %addr_vtable10, align 8 | |
%vtable_ptr12 = bitcast i8* %vtable11 to [35 x i8*]* | |
%vtable13 = load [35 x i8*], [35 x i8*]* %vtable_ptr12, align 8 | |
%func_raw14 = extractvalue [35 x i8*] %vtable13, 19 | |
%func15 = bitcast i8* %func_raw14 to %Int* (%Int*, %Int*)* | |
%result16 = call %Int* %func15(%Int* %i8, %Int* %sk_int9) | |
br label %"Invoke_Int#-_end" | |
"Invoke_Int#-_end": ; preds = %"Invoke_Int#-" | |
store %Int* %result16, %Int** %i, align 8 | |
br label %WhileBegin | |
Ret: ; preds = %WhileEnd | |
br label %End | |
} | |
define %Bool* @"Int_even?"(%Int* %self) { | |
%sk_int = call %Int* @box_int(i64 2) | |
br label %"Invoke_Int#%" | |
End: ; preds = %Ret | |
%methodResult = phi %Bool* [ %result9, %Ret ] | |
ret %Bool* %methodResult | |
"Invoke_Int#%": ; preds = %0 | |
%addr_vtable = getelementptr inbounds %Int, %Int* %self, i32 0, i32 0 | |
%vtable = load i8*, i8** %addr_vtable, align 8 | |
%vtable_ptr = bitcast i8* %vtable to [35 x i8*]* | |
%vtable1 = load [35 x i8*], [35 x i8*]* %vtable_ptr, align 8 | |
%func_raw = extractvalue [35 x i8*] %vtable1, 16 | |
%func = bitcast i8* %func_raw to %Int* (%Int*, %Int*)* | |
%result = call %Int* %func(%Int* %self, %Int* %sk_int) | |
br label %"Invoke_Int#%_end" | |
"Invoke_Int#%_end": ; preds = %"Invoke_Int#%" | |
%sk_int2 = call %Int* @box_int(i64 0) | |
br label %"Invoke_Int#==" | |
"Invoke_Int#==": ; preds = %"Invoke_Int#%_end" | |
%addr_vtable3 = getelementptr inbounds %Int, %Int* %result, i32 0, i32 0 | |
%vtable4 = load i8*, i8** %addr_vtable3, align 8 | |
%vtable_ptr5 = bitcast i8* %vtable4 to [35 x i8*]* | |
%vtable6 = load [35 x i8*], [35 x i8*]* %vtable_ptr5, align 8 | |
%func_raw7 = extractvalue [35 x i8*] %vtable6, 2 | |
%func8 = bitcast i8* %func_raw7 to %Bool* (%Int*, %Int*)* | |
%result9 = call %Bool* %func8(%Int* %result, %Int* %sk_int2) | |
br label %"Invoke_Int#==_end" | |
"Invoke_Int#==_end": ; preds = %"Invoke_Int#==" | |
br label %Ret | |
Ret: ; preds = %"Invoke_Int#==_end" | |
br label %End | |
} | |
define %Bool* @"Int_odd?"(%Int* %self) { | |
%sk_int = call %Int* @box_int(i64 2) | |
br label %"Invoke_Int#%" | |
End: ; preds = %Ret | |
%methodResult = phi %Bool* [ %sk_bool, %Ret ] | |
ret %Bool* %methodResult | |
"Invoke_Int#%": ; preds = %0 | |
%addr_vtable = getelementptr inbounds %Int, %Int* %self, i32 0, i32 0 | |
%vtable = load i8*, i8** %addr_vtable, align 8 | |
%vtable_ptr = bitcast i8* %vtable to [35 x i8*]* | |
%vtable1 = load [35 x i8*], [35 x i8*]* %vtable_ptr, align 8 | |
%func_raw = extractvalue [35 x i8*] %vtable1, 16 | |
%func = bitcast i8* %func_raw to %Int* (%Int*, %Int*)* | |
%result = call %Int* %func(%Int* %self, %Int* %sk_int) | |
br label %"Invoke_Int#%_end" | |
"Invoke_Int#%_end": ; preds = %"Invoke_Int#%" | |
%sk_int2 = call %Int* @box_int(i64 0) | |
br label %"Invoke_Int#==" | |
"Invoke_Int#==": ; preds = %"Invoke_Int#%_end" | |
%addr_vtable3 = getelementptr inbounds %Int, %Int* %result, i32 0, i32 0 | |
%vtable4 = load i8*, i8** %addr_vtable3, align 8 | |
%vtable_ptr5 = bitcast i8* %vtable4 to [35 x i8*]* | |
%vtable6 = load [35 x i8*], [35 x i8*]* %vtable_ptr5, align 8 | |
%func_raw7 = extractvalue [35 x i8*] %vtable6, 2 | |
%func8 = bitcast i8* %func_raw7 to %Bool* (%Int*, %Int*)* | |
%result9 = call %Bool* %func8(%Int* %result, %Int* %sk_int2) | |
br label %"Invoke_Int#==_end" | |
"Invoke_Int#==_end": ; preds = %"Invoke_Int#==" | |
%llvm_bool = call i1 @unbox_bool(%Bool* %result9) | |
%b2 = xor i1 %llvm_bool, true | |
%sk_bool = call %Bool* @box_bool(i1 %b2) | |
br label %Ret | |
Ret: ; preds = %"Invoke_Int#==_end" | |
br label %End | |
} | |
define %Int* @Int_hash(%Int* %self) { | |
br label %Ret | |
End: ; preds = %Ret | |
%methodResult = phi %Int* [ %self, %Ret ] | |
ret %Int* %methodResult | |
Ret: ; preds = %0 | |
br label %End | |
} | |
define %Void* @Int_times(%Int* %self, %Fn1* %f) { | |
alloca: | |
%i = alloca %Int*, align 8 | |
br label %alloca_End | |
alloca_End: ; preds = %alloca | |
%sk_int = call %Int* @box_int(i64 0) | |
store %Int* %sk_int, %Int** %i, align 8 | |
br label %WhileBegin | |
End: ; preds = %Ret, %Invoke_lambda | |
%"::Void19" = load %Void*, %Void** @"::Void", align 8 | |
ret %Void* %"::Void19" | |
WhileBegin: ; preds = %"Invoke_Int#+_end", %alloca_End | |
%i1 = load %Int*, %Int** %i, align 8 | |
br label %"Invoke_Int#<" | |
"Invoke_Int#<": ; preds = %WhileBegin | |
%addr_vtable = getelementptr inbounds %Int, %Int* %i1, i32 0, i32 0 | |
%vtable = load i8*, i8** %addr_vtable, align 8 | |
%vtable_ptr = bitcast i8* %vtable to [35 x i8*]* | |
%vtable2 = load [35 x i8*], [35 x i8*]* %vtable_ptr, align 8 | |
%func_raw = extractvalue [35 x i8*] %vtable2, 0 | |
%func = bitcast i8* %func_raw to %Bool* (%Int*, %Int*)* | |
%result = call %Bool* %func(%Int* %i1, %Int* %self) | |
br label %"Invoke_Int#<_end" | |
"Invoke_Int#<_end": ; preds = %"Invoke_Int#<" | |
%llvm_bool = call i1 @unbox_bool(%Bool* %result) | |
%istrue = icmp eq i1 %llvm_bool, true | |
br i1 %istrue, label %WhileBody, label %WhileEnd | |
WhileBody: ; preds = %"Invoke_Int#<_end" | |
%i3 = load %Int*, %Int** %i, align 8 | |
br label %Invoke_lambda | |
WhileEnd: ; preds = %"Invoke_Int#<_end" | |
%"::Void" = load %Void*, %Void** @"::Void", align 8 | |
%"::Void18" = load %Void*, %Void** @"::Void", align 8 | |
br label %Ret | |
Invoke_lambda: ; preds = %WhileBody | |
%"addr_@func" = getelementptr inbounds %Fn1, %Fn1* %f, i32 0, i32 2 | |
%"@func" = load %"Shiika::Internal::Ptr"*, %"Shiika::Internal::Ptr"** %"addr_@func", align 8 | |
%llvm_ptr = call i8* @unbox_i8ptr(%"Shiika::Internal::Ptr"* %"@func") | |
%0 = bitcast i8* %llvm_ptr to %Void* (%Fn1*, %Int*)* | |
%result4 = call %Void* %0(%Fn1* %f, %Int* %i3) | |
%"addr_@exit_status" = getelementptr inbounds %Fn1, %Fn1* %f, i32 0, i32 5 | |
%"@exit_status" = load %Int*, %Int** %"addr_@exit_status", align 8 | |
%sk_int5 = call %Int* @box_int(i64 1) | |
%result6 = call %Bool* @Int_eq_(%Int* %"@exit_status", %Int* %sk_int5) | |
%llvm_bool7 = call i1 @unbox_bool(%Bool* %result6) | |
%istrue8 = icmp eq i1 %llvm_bool7, true | |
br i1 %istrue8, label %End, label %Invoke_lambda_end | |
Invoke_lambda_end: ; preds = %Invoke_lambda | |
%i9 = load %Int*, %Int** %i, align 8 | |
%sk_int10 = call %Int* @box_int(i64 1) | |
br label %"Invoke_Int#+" | |
"Invoke_Int#+": ; preds = %Invoke_lambda_end | |
%addr_vtable11 = getelementptr inbounds %Int, %Int* %i9, i32 0, i32 0 | |
%vtable12 = load i8*, i8** %addr_vtable11, align 8 | |
%vtable_ptr13 = bitcast i8* %vtable12 to [35 x i8*]* | |
%vtable14 = load [35 x i8*], [35 x i8*]* %vtable_ptr13, align 8 | |
%func_raw15 = extractvalue [35 x i8*] %vtable14, 18 | |
%func16 = bitcast i8* %func_raw15 to %Int* (%Int*, %Int*)* | |
%result17 = call %Int* %func16(%Int* %i9, %Int* %sk_int10) | |
br label %"Invoke_Int#+_end" | |
"Invoke_Int#+_end": ; preds = %"Invoke_Int#+" | |
store %Int* %result17, %Int** %i, align 8 | |
br label %WhileBegin | |
Ret: ; preds = %WhileEnd | |
br label %End | |
} | |
define %Int* @Int_to__i(%Int* %self) { | |
br label %Ret | |
End: ; preds = %Ret | |
%methodResult = phi %Int* [ %self, %Ret ] | |
ret %Int* %methodResult | |
Ret: ; preds = %0 | |
br label %End | |
} | |
define %String* @Int_to__s(%Int* %self) { | |
alloca: | |
%minus = alloca %Bool*, align 8 | |
%n = alloca %Int*, align 8 | |
%"ary@28_" = alloca %Array*, align 8 | |
%ret = alloca %MutableString*, align 8 | |
%a = alloca %Array*, align 8 | |
%i = alloca %Int*, align 8 | |
br label %alloca_End | |
alloca_End: ; preds = %alloca | |
%sk_bool = call %Bool* @box_bool(i1 false) | |
store %Bool* %sk_bool, %Bool** %minus, align 8 | |
store %Int* %self, %Int** %n, align 8 | |
br label %IfBegin | |
End: ; preds = %Ret | |
%methodResult = phi %String* [ %result165, %Ret ] | |
ret %String* %methodResult | |
IfBegin: ; preds = %alloca_End | |
%sk_int = call %Int* @box_int(i64 0) | |
br label %"Invoke_Int#<" | |
IfThen: ; preds = %"Invoke_Int#<_end" | |
%sk_bool2 = call %Bool* @box_bool(i1 true) | |
store %Bool* %sk_bool2, %Bool** %minus, align 8 | |
br label %"Invoke_Int#-@" | |
IfElse: ; preds = %"Invoke_Int#<_end" | |
%"::Void10" = load %Void*, %Void** @"::Void", align 8 | |
br label %IfEnd | |
IfEnd: ; preds = %IfElse, %"Invoke_Int#-@_end" | |
%ifResult = phi %Void* [ %"::Void", %"Invoke_Int#-@_end" ], [ %"::Void10", %IfElse ] | |
%"::Array" = load %Array*, %Array** @"::Array", align 8 | |
%"::Array11" = load %Array*, %Array** @"::Array", align 8 | |
%"::Class" = load %Class.0*, %Class.0** @"::Class", align 8 | |
br label %"Invoke_Class#_specialize1" | |
"Invoke_Int#<": ; preds = %IfBegin | |
%addr_vtable = getelementptr inbounds %Int, %Int* %self, i32 0, i32 0 | |
%vtable = load i8*, i8** %addr_vtable, align 8 | |
%vtable_ptr = bitcast i8* %vtable to [35 x i8*]* | |
%vtable1 = load [35 x i8*], [35 x i8*]* %vtable_ptr, align 8 | |
%func_raw = extractvalue [35 x i8*] %vtable1, 0 | |
%func = bitcast i8* %func_raw to %Bool* (%Int*, %Int*)* | |
%result = call %Bool* %func(%Int* %self, %Int* %sk_int) | |
br label %"Invoke_Int#<_end" | |
"Invoke_Int#<_end": ; preds = %"Invoke_Int#<" | |
%llvm_bool = call i1 @unbox_bool(%Bool* %result) | |
%istrue = icmp eq i1 %llvm_bool, true | |
br i1 %istrue, label %IfThen, label %IfElse | |
"Invoke_Int#-@": ; preds = %IfThen | |
%addr_vtable3 = getelementptr inbounds %Int, %Int* %self, i32 0, i32 0 | |
%vtable4 = load i8*, i8** %addr_vtable3, align 8 | |
%vtable_ptr5 = bitcast i8* %vtable4 to [35 x i8*]* | |
%vtable6 = load [35 x i8*], [35 x i8*]* %vtable_ptr5, align 8 | |
%func_raw7 = extractvalue [35 x i8*] %vtable6, 20 | |
%func8 = bitcast i8* %func_raw7 to %Int* (%Int*)* | |
%result9 = call %Int* %func8(%Int* %self) | |
br label %"Invoke_Int#-@_end" | |
"Invoke_Int#-@_end": ; preds = %"Invoke_Int#-@" | |
store %Int* %result9, %Int** %n, align 8 | |
%"::Void" = load %Void*, %Void** @"::Void", align 8 | |
br label %IfEnd | |
"Invoke_Class#_specialize1": ; preds = %IfEnd | |
%addr_vtable12 = getelementptr inbounds %Array, %Array* %"::Array11", i32 0, i32 0 | |
%vtable13 = load i8*, i8** %addr_vtable12, align 8 | |
%vtable_ptr14 = bitcast i8* %vtable13 to [25 x i8*]* | |
%vtable15 = load [25 x i8*], [25 x i8*]* %vtable_ptr14, align 8 | |
%func_raw16 = extractvalue [25 x i8*] %vtable15, 18 | |
%func17 = bitcast i8* %func_raw16 to %Array* (%Array*, %Class.0*)* | |
%result18 = call %Array* %func17(%Array* %"::Array11", %Class.0* %"::Class") | |
br label %"Invoke_Class#_specialize1_end" | |
"Invoke_Class#_specialize1_end": ; preds = %"Invoke_Class#_specialize1" | |
br label %"Invoke_Array#new" | |
"Invoke_Array#new": ; preds = %"Invoke_Class#_specialize1_end" | |
%addr_vtable19 = getelementptr inbounds %Array, %Array* %result18, i32 0, i32 0 | |
%vtable20 = load i8*, i8** %addr_vtable19, align 8 | |
%vtable_ptr21 = bitcast i8* %vtable20 to [25 x i8*]* | |
%vtable22 = load [25 x i8*], [25 x i8*]* %vtable_ptr21, align 8 | |
%func_raw23 = extractvalue [25 x i8*] %vtable22, 23 | |
%func24 = bitcast i8* %func_raw23 to %Array* (%Array*)* | |
%result25 = call %Array* %func24(%Array* %result18) | |
br label %"Invoke_Array#new_end" | |
"Invoke_Array#new_end": ; preds = %"Invoke_Array#new" | |
store %Array* %result25, %Array** %"ary@28_", align 8 | |
%"ary@28_26" = load %Array*, %Array** %"ary@28_", align 8 | |
%"::Int" = load %Int*, %Int** @"::Int", align 8 | |
%as = bitcast %Int* %"::Int" to %Object* | |
br label %"Invoke_Array#push" | |
"Invoke_Array#push": ; preds = %"Invoke_Array#new_end" | |
%addr_vtable27 = getelementptr inbounds %Array, %Array* %"ary@28_26", i32 0, i32 0 | |
%vtable28 = load i8*, i8** %addr_vtable27, align 8 | |
%vtable_ptr29 = bitcast i8* %vtable28 to [54 x i8*]* | |
%vtable30 = load [54 x i8*], [54 x i8*]* %vtable_ptr29, align 8 | |
%func_raw31 = extractvalue [54 x i8*] %vtable30, 45 | |
%func32 = bitcast i8* %func_raw31 to %Void* (%Array*, %Object*)* | |
%result33 = call %Void* %func32(%Array* %"ary@28_26", %Object* %as) | |
br label %"Invoke_Array#push_end" | |
"Invoke_Array#push_end": ; preds = %"Invoke_Array#push" | |
%"ary@28_34" = load %Array*, %Array** %"ary@28_", align 8 | |
br label %"Invoke_Class#<>" | |
"Invoke_Class#<>": ; preds = %"Invoke_Array#push_end" | |
%addr_vtable35 = getelementptr inbounds %Array, %Array* %"::Array", i32 0, i32 0 | |
%vtable36 = load i8*, i8** %addr_vtable35, align 8 | |
%vtable_ptr37 = bitcast i8* %vtable36 to [25 x i8*]* | |
%vtable38 = load [25 x i8*], [25 x i8*]* %vtable_ptr37, align 8 | |
%func_raw39 = extractvalue [25 x i8*] %vtable38, 16 | |
%func40 = bitcast i8* %func_raw39 to %Array* (%Array*, %Array*)* | |
%result41 = call %Array* %func40(%Array* %"::Array", %Array* %"ary@28_34") | |
br label %"Invoke_Class#<>_end" | |
"Invoke_Class#<>_end": ; preds = %"Invoke_Class#<>" | |
br label %"Invoke_Meta:Array#new" | |
"Invoke_Meta:Array#new": ; preds = %"Invoke_Class#<>_end" | |
%addr_vtable42 = getelementptr inbounds %Array, %Array* %result41, i32 0, i32 0 | |
%vtable43 = load i8*, i8** %addr_vtable42, align 8 | |
%vtable_ptr44 = bitcast i8* %vtable43 to [25 x i8*]* | |
%vtable45 = load [25 x i8*], [25 x i8*]* %vtable_ptr44, align 8 | |
%func_raw46 = extractvalue [25 x i8*] %vtable45, 23 | |
%func47 = bitcast i8* %func_raw46 to %Array* (%Array*)* | |
%result48 = call %Array* %func47(%Array* %result41) | |
br label %"Invoke_Meta:Array#new_end" | |
"Invoke_Meta:Array#new_end": ; preds = %"Invoke_Meta:Array#new" | |
store %Array* %result48, %Array** %a, align 8 | |
br label %WhileBegin | |
WhileBegin: ; preds = %IfEnd99, %"Invoke_Meta:Array#new_end" | |
%sk_bool49 = call %Bool* @box_bool(i1 true) | |
%llvm_bool50 = call i1 @unbox_bool(%Bool* %sk_bool49) | |
%istrue51 = icmp eq i1 %llvm_bool50, true | |
br i1 %istrue51, label %WhileBody, label %WhileEnd | |
WhileBody: ; preds = %WhileBegin | |
%a52 = load %Array*, %Array** %a, align 8 | |
%n53 = load %Int*, %Int** %n, align 8 | |
%sk_int54 = call %Int* @box_int(i64 10) | |
br label %"Invoke_Int#%" | |
WhileEnd: ; preds = %IfThen97, %WhileBegin | |
%"::Void112" = load %Void*, %Void** @"::Void", align 8 | |
%"::MutableString" = load %MutableString*, %MutableString** @"::MutableString", align 8 | |
br label %"Invoke_Meta:MutableString#new" | |
"Invoke_Int#%": ; preds = %WhileBody | |
%addr_vtable55 = getelementptr inbounds %Int, %Int* %n53, i32 0, i32 0 | |
%vtable56 = load i8*, i8** %addr_vtable55, align 8 | |
%vtable_ptr57 = bitcast i8* %vtable56 to [35 x i8*]* | |
%vtable58 = load [35 x i8*], [35 x i8*]* %vtable_ptr57, align 8 | |
%func_raw59 = extractvalue [35 x i8*] %vtable58, 16 | |
%func60 = bitcast i8* %func_raw59 to %Int* (%Int*, %Int*)* | |
%result61 = call %Int* %func60(%Int* %n53, %Int* %sk_int54) | |
br label %"Invoke_Int#%_end" | |
"Invoke_Int#%_end": ; preds = %"Invoke_Int#%" | |
%sk_int62 = call %Int* @box_int(i64 48) | |
br label %"Invoke_Int#+" | |
"Invoke_Int#+": ; preds = %"Invoke_Int#%_end" | |
%addr_vtable63 = getelementptr inbounds %Int, %Int* %result61, i32 0, i32 0 | |
%vtable64 = load i8*, i8** %addr_vtable63, align 8 | |
%vtable_ptr65 = bitcast i8* %vtable64 to [35 x i8*]* | |
%vtable66 = load [35 x i8*], [35 x i8*]* %vtable_ptr65, align 8 | |
%func_raw67 = extractvalue [35 x i8*] %vtable66, 18 | |
%func68 = bitcast i8* %func_raw67 to %Int* (%Int*, %Int*)* | |
%result69 = call %Int* %func68(%Int* %result61, %Int* %sk_int62) | |
br label %"Invoke_Int#+_end" | |
"Invoke_Int#+_end": ; preds = %"Invoke_Int#+" | |
%as70 = bitcast %Int* %result69 to %Object* | |
br label %"Invoke_Array#push71" | |
"Invoke_Array#push71": ; preds = %"Invoke_Int#+_end" | |
%addr_vtable72 = getelementptr inbounds %Array, %Array* %a52, i32 0, i32 0 | |
%vtable73 = load i8*, i8** %addr_vtable72, align 8 | |
%vtable_ptr74 = bitcast i8* %vtable73 to [54 x i8*]* | |
%vtable75 = load [54 x i8*], [54 x i8*]* %vtable_ptr74, align 8 | |
%func_raw76 = extractvalue [54 x i8*] %vtable75, 45 | |
%func77 = bitcast i8* %func_raw76 to %Void* (%Array*, %Object*)* | |
%result78 = call %Void* %func77(%Array* %a52, %Object* %as70) | |
br label %"Invoke_Array#push_end79" | |
"Invoke_Array#push_end79": ; preds = %"Invoke_Array#push71" | |
%n80 = load %Int*, %Int** %n, align 8 | |
%sk_int81 = call %Int* @box_int(i64 10) | |
br label %"Invoke_Int#/" | |
"Invoke_Int#/": ; preds = %"Invoke_Array#push_end79" | |
%addr_vtable82 = getelementptr inbounds %Int, %Int* %n80, i32 0, i32 0 | |
%vtable83 = load i8*, i8** %addr_vtable82, align 8 | |
%vtable_ptr84 = bitcast i8* %vtable83 to [35 x i8*]* | |
%vtable85 = load [35 x i8*], [35 x i8*]* %vtable_ptr84, align 8 | |
%func_raw86 = extractvalue [35 x i8*] %vtable85, 21 | |
%func87 = bitcast i8* %func_raw86 to %Float* (%Int*, %Int*)* | |
%result88 = call %Float* %func87(%Int* %n80, %Int* %sk_int81) | |
br label %"Invoke_Int#/_end" | |
"Invoke_Int#/_end": ; preds = %"Invoke_Int#/" | |
br label %"Invoke_Float#to_i" | |
"Invoke_Float#to_i": ; preds = %"Invoke_Int#/_end" | |
%addr_vtable89 = getelementptr inbounds %Float, %Float* %result88, i32 0, i32 0 | |
%vtable90 = load i8*, i8** %addr_vtable89, align 8 | |
%vtable_ptr91 = bitcast i8* %vtable90 to [25 x i8*]* | |
%vtable92 = load [25 x i8*], [25 x i8*]* %vtable_ptr91, align 8 | |
%func_raw93 = extractvalue [25 x i8*] %vtable92, 24 | |
%func94 = bitcast i8* %func_raw93 to %Int* (%Float*)* | |
%result95 = call %Int* %func94(%Float* %result88) | |
br label %"Invoke_Float#to_i_end" | |
"Invoke_Float#to_i_end": ; preds = %"Invoke_Float#to_i" | |
store %Int* %result95, %Int** %n, align 8 | |
br label %IfBegin96 | |
IfBegin96: ; preds = %"Invoke_Float#to_i_end" | |
%n100 = load %Int*, %Int** %n, align 8 | |
%sk_int101 = call %Int* @box_int(i64 0) | |
br label %"Invoke_Int#==" | |
IfThen97: ; preds = %"Invoke_Int#==_end" | |
br label %WhileEnd | |
IfElse98: ; preds = %"Invoke_Int#==_end" | |
%"::Void111" = load %Void*, %Void** @"::Void", align 8 | |
br label %IfEnd99 | |
IfEnd99: ; preds = %IfElse98 | |
br label %WhileBegin | |
"Invoke_Int#==": ; preds = %IfBegin96 | |
%addr_vtable102 = getelementptr inbounds %Int, %Int* %n100, i32 0, i32 0 | |
%vtable103 = load i8*, i8** %addr_vtable102, align 8 | |
%vtable_ptr104 = bitcast i8* %vtable103 to [35 x i8*]* | |
%vtable105 = load [35 x i8*], [35 x i8*]* %vtable_ptr104, align 8 | |
%func_raw106 = extractvalue [35 x i8*] %vtable105, 2 | |
%func107 = bitcast i8* %func_raw106 to %Bool* (%Int*, %Int*)* | |
%result108 = call %Bool* %func107(%Int* %n100, %Int* %sk_int101) | |
br label %"Invoke_Int#==_end" | |
"Invoke_Int#==_end": ; preds = %"Invoke_Int#==" | |
%llvm_bool109 = call i1 @unbox_bool(%Bool* %result108) | |
%istrue110 = icmp eq i1 %llvm_bool109, true | |
br i1 %istrue110, label %IfThen97, label %IfElse98 | |
"Invoke_Meta:MutableString#new": ; preds = %WhileEnd | |
%addr_vtable113 = getelementptr inbounds %MutableString, %MutableString* %"::MutableString", i32 0, i32 0 | |
%vtable114 = load i8*, i8** %addr_vtable113, align 8 | |
%vtable_ptr115 = bitcast i8* %vtable114 to [23 x i8*]* | |
%vtable116 = load [23 x i8*], [23 x i8*]* %vtable_ptr115, align 8 | |
%func_raw117 = extractvalue [23 x i8*] %vtable116, 22 | |
%func118 = bitcast i8* %func_raw117 to %MutableString* (%MutableString*)* | |
%result119 = call %MutableString* %func118(%MutableString* %"::MutableString") | |
br label %"Invoke_Meta:MutableString#new_end" | |
"Invoke_Meta:MutableString#new_end": ; preds = %"Invoke_Meta:MutableString#new" | |
store %MutableString* %result119, %MutableString** %ret, align 8 | |
%sk_int120 = call %Int* @box_int(i64 0) | |
store %Int* %sk_int120, %Int** %i, align 8 | |
br label %IfBegin121 | |
IfBegin121: ; preds = %"Invoke_Meta:MutableString#new_end" | |
%minus125 = load %Bool*, %Bool** %minus, align 8 | |
%llvm_bool126 = call i1 @unbox_bool(%Bool* %minus125) | |
%istrue127 = icmp eq i1 %llvm_bool126, true | |
br i1 %istrue127, label %IfThen122, label %IfElse123 | |
IfThen122: ; preds = %IfBegin121 | |
%ret128 = load %MutableString*, %MutableString** %ret, align 8 | |
%sk_str = call %String* @gen_literal_string(i8* getelementptr inbounds ([2 x i8], [2 x i8]* @str_54, i32 0, i32 0), i64 1) | |
br label %"Invoke_MutableString#append" | |
IfElse123: ; preds = %IfBegin121 | |
%"::Void138" = load %Void*, %Void** @"::Void", align 8 | |
br label %IfEnd124 | |
IfEnd124: ; preds = %IfElse123, %"Invoke_MutableString#append_end" | |
%ifResult139 = phi %Void* [ %"::Void137", %"Invoke_MutableString#append_end" ], [ %"::Void138", %IfElse123 ] | |
%a140 = load %Array*, %Array** %a, align 8 | |
%"::Fn1" = load %Fn1*, %Fn1** @"::Fn1", align 8 | |
%sk_ptr = call %"Shiika::Internal::Ptr"* @box_i8ptr(i8* bitcast (%Int* (%Fn1*, %Object*)* @"lambda_26_in_Int#to_s" to i8*)) | |
%the_main = bitcast %Int* %self to %Object* | |
%"::Array141" = load %Array*, %Array** @"::Array", align 8 | |
%result142 = call %Array* @Meta_Array_new(%Array* %"::Array141") | |
%capture_item = bitcast %Int** %i to %Object* | |
%_ = call %Void* @Array_push(%Array* %result142, %Object* %capture_item) | |
%capture_item143 = bitcast %MutableString** %ret to %Object* | |
%_144 = call %Void* @Array_push(%Array* %result142, %Object* %capture_item143) | |
%capture_item145 = bitcast %Int** %i to %Object* | |
%_146 = call %Void* @Array_push(%Array* %result142, %Object* %capture_item145) | |
%capture_item147 = bitcast %Int** %i to %Object* | |
%_148 = call %Void* @Array_push(%Array* %result142, %Object* %capture_item147) | |
%result149 = call %Fn1* @Meta_Fn1_new(%Fn1* %"::Fn1", %"Shiika::Internal::Ptr"* %sk_ptr, %Object* %the_main, %Array* %result142) | |
%as150 = bitcast %Fn1* %result149 to %Object* | |
br label %"Invoke_Array#reverse_each" | |
"Invoke_MutableString#append": ; preds = %IfThen122 | |
%addr_vtable129 = getelementptr inbounds %MutableString, %MutableString* %ret128, i32 0, i32 0 | |
%vtable130 = load i8*, i8** %addr_vtable129, align 8 | |
%vtable_ptr131 = bitcast i8* %vtable130 to [28 x i8*]* | |
%vtable132 = load [28 x i8*], [28 x i8*]* %vtable_ptr131, align 8 | |
%func_raw133 = extractvalue [28 x i8*] %vtable132, 18 | |
%func134 = bitcast i8* %func_raw133 to %Void* (%MutableString*, %String*)* | |
%result135 = call %Void* %func134(%MutableString* %ret128, %String* %sk_str) | |
br label %"Invoke_MutableString#append_end" | |
"Invoke_MutableString#append_end": ; preds = %"Invoke_MutableString#append" | |
%sk_int136 = call %Int* @box_int(i64 1) | |
store %Int* %sk_int136, %Int** %i, align 8 | |
%"::Void137" = load %Void*, %Void** @"::Void", align 8 | |
br label %IfEnd124 | |
"Invoke_Array#reverse_each": ; preds = %IfEnd124 | |
%addr_vtable151 = getelementptr inbounds %Array, %Array* %a140, i32 0, i32 0 | |
%vtable152 = load i8*, i8** %addr_vtable151, align 8 | |
%vtable_ptr153 = bitcast i8* %vtable152 to [54 x i8*]* | |
%vtable154 = load [54 x i8*], [54 x i8*]* %vtable_ptr153, align 8 | |
%func_raw155 = extractvalue [54 x i8*] %vtable154, 49 | |
%func156 = bitcast i8* %func_raw155 to %Void* (%Array*, %Object*)* | |
%result157 = call %Void* %func156(%Array* %a140, %Object* %as150) | |
br label %"Invoke_Array#reverse_each_end" | |
"Invoke_Array#reverse_each_end": ; preds = %"Invoke_Array#reverse_each" | |
%ret158 = load %MutableString*, %MutableString** %ret, align 8 | |
br label %"Invoke_MutableString#_unsafe_to_s" | |
"Invoke_MutableString#_unsafe_to_s": ; preds = %"Invoke_Array#reverse_each_end" | |
%addr_vtable159 = getelementptr inbounds %MutableString, %MutableString* %ret158, i32 0, i32 0 | |
%vtable160 = load i8*, i8** %addr_vtable159, align 8 | |
%vtable_ptr161 = bitcast i8* %vtable160 to [28 x i8*]* | |
%vtable162 = load [28 x i8*], [28 x i8*]* %vtable_ptr161, align 8 | |
%func_raw163 = extractvalue [28 x i8*] %vtable162, 17 | |
%func164 = bitcast i8* %func_raw163 to %String* (%MutableString*)* | |
%result165 = call %String* %func164(%MutableString* %ret158) | |
br label %"Invoke_MutableString#_unsafe_to_s_end" | |
"Invoke_MutableString#_unsafe_to_s_end": ; preds = %"Invoke_MutableString#_unsafe_to_s" | |
br label %Ret | |
Ret: ; preds = %"Invoke_MutableString#_unsafe_to_s_end" | |
br label %End | |
} | |
define %Void* @Int_upto(%Int* %self, %Int* %n, %Fn1* %f) { | |
alloca: | |
%i = alloca %Int*, align 8 | |
br label %alloca_End | |
alloca_End: ; preds = %alloca | |
store %Int* %self, %Int** %i, align 8 | |
br label %WhileBegin | |
End: ; preds = %Ret, %Invoke_lambda | |
%"::Void18" = load %Void*, %Void** @"::Void", align 8 | |
ret %Void* %"::Void18" | |
WhileBegin: ; preds = %"Invoke_Int#+_end", %alloca_End | |
%i1 = load %Int*, %Int** %i, align 8 | |
br label %"Invoke_Int#<=" | |
"Invoke_Int#<=": ; preds = %WhileBegin | |
%addr_vtable = getelementptr inbounds %Int, %Int* %i1, i32 0, i32 0 | |
%vtable = load i8*, i8** %addr_vtable, align 8 | |
%vtable_ptr = bitcast i8* %vtable to [35 x i8*]* | |
%vtable2 = load [35 x i8*], [35 x i8*]* %vtable_ptr, align 8 | |
%func_raw = extractvalue [35 x i8*] %vtable2, 1 | |
%func = bitcast i8* %func_raw to %Bool* (%Int*, %Int*)* | |
%result = call %Bool* %func(%Int* %i1, %Int* %n) | |
br label %"Invoke_Int#<=_end" | |
"Invoke_Int#<=_end": ; preds = %"Invoke_Int#<=" | |
%llvm_bool = call i1 @unbox_bool(%Bool* %result) | |
%istrue = icmp eq i1 %llvm_bool, true | |
br i1 %istrue, label %WhileBody, label %WhileEnd | |
WhileBody: ; preds = %"Invoke_Int#<=_end" | |
%i3 = load %Int*, %Int** %i, align 8 | |
br label %Invoke_lambda | |
WhileEnd: ; preds = %"Invoke_Int#<=_end" | |
%"::Void" = load %Void*, %Void** @"::Void", align 8 | |
%"::Void17" = load %Void*, %Void** @"::Void", align 8 | |
br label %Ret | |
Invoke_lambda: ; preds = %WhileBody | |
%"addr_@func" = getelementptr inbounds %Fn1, %Fn1* %f, i32 0, i32 2 | |
%"@func" = load %"Shiika::Internal::Ptr"*, %"Shiika::Internal::Ptr"** %"addr_@func", align 8 | |
%llvm_ptr = call i8* @unbox_i8ptr(%"Shiika::Internal::Ptr"* %"@func") | |
%0 = bitcast i8* %llvm_ptr to %Void* (%Fn1*, %Int*)* | |
%result4 = call %Void* %0(%Fn1* %f, %Int* %i3) | |
%"addr_@exit_status" = getelementptr inbounds %Fn1, %Fn1* %f, i32 0, i32 5 | |
%"@exit_status" = load %Int*, %Int** %"addr_@exit_status", align 8 | |
%sk_int = call %Int* @box_int(i64 1) | |
%result5 = call %Bool* @Int_eq_(%Int* %"@exit_status", %Int* %sk_int) | |
%llvm_bool6 = call i1 @unbox_bool(%Bool* %result5) | |
%istrue7 = icmp eq i1 %llvm_bool6, true | |
br i1 %istrue7, label %End, label %Invoke_lambda_end | |
Invoke_lambda_end: ; preds = %Invoke_lambda | |
%i8 = load %Int*, %Int** %i, align 8 | |
%sk_int9 = call %Int* @box_int(i64 1) | |
br label %"Invoke_Int#+" | |
"Invoke_Int#+": ; preds = %Invoke_lambda_end | |
%addr_vtable10 = getelementptr inbounds %Int, %Int* %i8, i32 0, i32 0 | |
%vtable11 = load i8*, i8** %addr_vtable10, align 8 | |
%vtable_ptr12 = bitcast i8* %vtable11 to [35 x i8*]* | |
%vtable13 = load [35 x i8*], [35 x i8*]* %vtable_ptr12, align 8 | |
%func_raw14 = extractvalue [35 x i8*] %vtable13, 18 | |
%func15 = bitcast i8* %func_raw14 to %Int* (%Int*, %Int*)* | |
%result16 = call %Int* %func15(%Int* %i8, %Int* %sk_int9) | |
br label %"Invoke_Int#+_end" | |
"Invoke_Int#+_end": ; preds = %"Invoke_Int#+" | |
store %Int* %result16, %Int** %i, align 8 | |
br label %WhileBegin | |
Ret: ; preds = %WhileEnd | |
br label %End | |
} | |
declare %Int* @Int_uminus_(%Int*) | |
declare %Int* @Int_add_(%Int*, %Int*) | |
declare %Int* @Int_sub_(%Int*, %Int*) | |
declare %Int* @Int_mul_(%Int*, %Int*) | |
declare %Float* @Int_div_(%Int*, %Int*) | |
declare %Int* @Int_mod_(%Int*, %Int*) | |
declare %Int* @Int_and(%Int*, %Int*) | |
declare %Int* @Int_or(%Int*, %Int*) | |
declare %Int* @Int_xor(%Int*, %Int*) | |
declare %Int* @Int_lshift(%Int*, %Int*) | |
declare %Int* @Int_rshift(%Int*, %Int*) | |
declare %Bool* @Int_lt_(%Int*, %Int*) | |
declare %Bool* @Int_le_(%Int*, %Int*) | |
declare %Bool* @Int_gt_(%Int*, %Int*) | |
declare %Bool* @Int_ge_(%Int*, %Int*) | |
declare %Bool* @Int_eq_(%Int*, %Int*) | |
declare %Float* @Int_to__f(%Int*) | |
define %Void* @MutableString_initialize(%MutableString* %self) { | |
%"::Shiika::Internal::Memory" = load %"Shiika::Internal::Memory"*, %"Shiika::Internal::Memory"** @"::Shiika::Internal::Memory", align 8 | |
%"::MutableString::INITIAL_STR_CAPA" = load %Int*, %Int** @"::MutableString::INITIAL_STR_CAPA", align 8 | |
%sk_int = call %Int* @box_int(i64 1) | |
br label %"Invoke_Int#+" | |
End: ; preds = %Ret | |
%"::Void11" = load %Void*, %Void** @"::Void", align 8 | |
ret %Void* %"::Void11" | |
"Invoke_Int#+": ; preds = %0 | |
%addr_vtable = getelementptr inbounds %Int, %Int* %"::MutableString::INITIAL_STR_CAPA", i32 0, i32 0 | |
%vtable = load i8*, i8** %addr_vtable, align 8 | |
%vtable_ptr = bitcast i8* %vtable to [35 x i8*]* | |
%vtable1 = load [35 x i8*], [35 x i8*]* %vtable_ptr, align 8 | |
%func_raw = extractvalue [35 x i8*] %vtable1, 18 | |
%func = bitcast i8* %func_raw to %Int* (%Int*, %Int*)* | |
%result = call %Int* %func(%Int* %"::MutableString::INITIAL_STR_CAPA", %Int* %sk_int) | |
br label %"Invoke_Int#+_end" | |
"Invoke_Int#+_end": ; preds = %"Invoke_Int#+" | |
br label %"Invoke_Meta:Shiika::Internal::Memory#gc_malloc" | |
"Invoke_Meta:Shiika::Internal::Memory#gc_malloc": ; preds = %"Invoke_Int#+_end" | |
%addr_vtable2 = getelementptr inbounds %"Shiika::Internal::Memory", %"Shiika::Internal::Memory"* %"::Shiika::Internal::Memory", i32 0, i32 0 | |
%vtable3 = load i8*, i8** %addr_vtable2, align 8 | |
%vtable_ptr4 = bitcast i8* %vtable3 to [25 x i8*]* | |
%vtable5 = load [25 x i8*], [25 x i8*]* %vtable_ptr4, align 8 | |
%func_raw6 = extractvalue [25 x i8*] %vtable5, 22 | |
%func7 = bitcast i8* %func_raw6 to %"Shiika::Internal::Ptr"* (%"Shiika::Internal::Memory"*, %Int*)* | |
%result8 = call %"Shiika::Internal::Ptr"* %func7(%"Shiika::Internal::Memory"* %"::Shiika::Internal::Memory", %Int* %result) | |
br label %"Invoke_Meta:Shiika::Internal::Memory#gc_malloc_end" | |
"Invoke_Meta:Shiika::Internal::Memory#gc_malloc_end": ; preds = %"Invoke_Meta:Shiika::Internal::Memory#gc_malloc" | |
%"addr_@ptr" = getelementptr inbounds %MutableString, %MutableString* %self, i32 0, i32 2 | |
store %"Shiika::Internal::Ptr"* %result8, %"Shiika::Internal::Ptr"** %"addr_@ptr", align 8 | |
%"::MutableString::INITIAL_STR_CAPA9" = load %Int*, %Int** @"::MutableString::INITIAL_STR_CAPA", align 8 | |
%"addr_@capa" = getelementptr inbounds %MutableString, %MutableString* %self, i32 0, i32 3 | |
store %Int* %"::MutableString::INITIAL_STR_CAPA9", %Int** %"addr_@capa", align 8 | |
%sk_int10 = call %Int* @box_int(i64 0) | |
%"addr_@bytesize" = getelementptr inbounds %MutableString, %MutableString* %self, i32 0, i32 4 | |
store %Int* %sk_int10, %Int** %"addr_@bytesize", align 8 | |
%"::Void" = load %Void*, %Void** @"::Void", align 8 | |
br label %Ret | |
Ret: ; preds = %"Invoke_Meta:Shiika::Internal::Memory#gc_malloc_end" | |
br label %End | |
} | |
define %"Shiika::Internal::Ptr"* @MutableString_ptr(%MutableString* %self) { | |
%"addr_@ptr" = getelementptr inbounds %MutableString, %MutableString* %self, i32 0, i32 2 | |
%"@ptr" = load %"Shiika::Internal::Ptr"*, %"Shiika::Internal::Ptr"** %"addr_@ptr", align 8 | |
ret %"Shiika::Internal::Ptr"* %"@ptr" | |
} | |
define %"Shiika::Internal::Ptr"* @_set_MutableString_ptr(%MutableString* %self, %"Shiika::Internal::Ptr"* %ptr) { | |
%"addr_@ptr" = getelementptr inbounds %MutableString, %MutableString* %self, i32 0, i32 2 | |
store %"Shiika::Internal::Ptr"* %ptr, %"Shiika::Internal::Ptr"** %"addr_@ptr", align 8 | |
ret %"Shiika::Internal::Ptr"* %ptr | |
} | |
define %Int* @MutableString_capa(%MutableString* %self) { | |
%"addr_@capa" = getelementptr inbounds %MutableString, %MutableString* %self, i32 0, i32 3 | |
%"@capa" = load %Int*, %Int** %"addr_@capa", align 8 | |
ret %Int* %"@capa" | |
} | |
define %Int* @_set_MutableString_capa(%MutableString* %self, %Int* %capa) { | |
%"addr_@capa" = getelementptr inbounds %MutableString, %MutableString* %self, i32 0, i32 3 | |
store %Int* %capa, %Int** %"addr_@capa", align 8 | |
ret %Int* %capa | |
} | |
define %Int* @MutableString_bytesize(%MutableString* %self) { | |
%"addr_@bytesize" = getelementptr inbounds %MutableString, %MutableString* %self, i32 0, i32 4 | |
%"@bytesize" = load %Int*, %Int** %"addr_@bytesize", align 8 | |
ret %Int* %"@bytesize" | |
} | |
define %Int* @_set_MutableString_bytesize(%MutableString* %self, %Int* %bytesize) { | |
%"addr_@bytesize" = getelementptr inbounds %MutableString, %MutableString* %self, i32 0, i32 4 | |
store %Int* %bytesize, %Int** %"addr_@bytesize", align 8 | |
ret %Int* %bytesize | |
} | |
define %Int* @MutableString_nth__byte(%MutableString* %self, %Int* %n) { | |
br label %IfBegin | |
End: ; preds = %Ret | |
%methodResult = phi %Int* [ %result46, %Ret ] | |
ret %Int* %methodResult | |
IfBegin: ; preds = %0 | |
%sk_int = call %Int* @box_int(i64 0) | |
br label %"Invoke_Int#<" | |
IfThen: ; preds = %"Invoke_Int#<_end" | |
%as = bitcast %MutableString* %self to %Object* | |
%sk_str = call %String* @gen_literal_string(i8* getelementptr inbounds ([40 x i8], [40 x i8]* @str_60, i32 0, i32 0), i64 39) | |
br label %"Invoke_Object#panic" | |
IfElse: ; preds = %"Invoke_Int#<_end" | |
%"::Void8" = load %Void*, %Void** @"::Void", align 8 | |
br label %IfEnd | |
IfEnd: ; preds = %IfElse | |
br label %IfBegin9 | |
"Invoke_Int#<": ; preds = %IfBegin | |
%addr_vtable = getelementptr inbounds %Int, %Int* %n, i32 0, i32 0 | |
%vtable = load i8*, i8** %addr_vtable, align 8 | |
%vtable_ptr = bitcast i8* %vtable to [35 x i8*]* | |
%vtable1 = load [35 x i8*], [35 x i8*]* %vtable_ptr, align 8 | |
%func_raw = extractvalue [35 x i8*] %vtable1, 0 | |
%func = bitcast i8* %func_raw to %Bool* (%Int*, %Int*)* | |
%result = call %Bool* %func(%Int* %n, %Int* %sk_int) | |
br label %"Invoke_Int#<_end" | |
"Invoke_Int#<_end": ; preds = %"Invoke_Int#<" | |
%llvm_bool = call i1 @unbox_bool(%Bool* %result) | |
%istrue = icmp eq i1 %llvm_bool, true | |
br i1 %istrue, label %IfThen, label %IfElse | |
"Invoke_Object#panic": ; preds = %IfThen | |
%addr_vtable2 = getelementptr inbounds %Object, %Object* %as, i32 0, i32 0 | |
%vtable3 = load i8*, i8** %addr_vtable2, align 8 | |
%vtable_ptr4 = bitcast i8* %vtable3 to [16 x i8*]* | |
%vtable5 = load [16 x i8*], [16 x i8*]* %vtable_ptr4, align 8 | |
%func_raw6 = extractvalue [16 x i8*] %vtable5, 12 | |
%func7 = bitcast i8* %func_raw6 to void (%Object*, %String*)* | |
call void %func7(%Object* %as, %String* %sk_str) | |
%"::Void" = load %Void*, %Void** @"::Void", align 8 | |
unreachable | |
IfBegin9: ; preds = %IfEnd | |
%"addr_@bytesize" = getelementptr inbounds %MutableString, %MutableString* %self, i32 0, i32 4 | |
%"@bytesize" = load %Int*, %Int** %"addr_@bytesize", align 8 | |
br label %"Invoke_Int#>=" | |
IfThen10: ; preds = %"Invoke_Int#>=_end" | |
%as22 = bitcast %MutableString* %self to %Object* | |
%sk_str23 = call %String* @gen_literal_string(i8* getelementptr inbounds ([35 x i8], [35 x i8]* @str_61, i32 0, i32 0), i64 34) | |
br label %"Invoke_Object#panic24" | |
IfElse11: ; preds = %"Invoke_Int#>=_end" | |
%"::Void32" = load %Void*, %Void** @"::Void", align 8 | |
br label %IfEnd12 | |
IfEnd12: ; preds = %IfElse11 | |
%"addr_@ptr" = getelementptr inbounds %MutableString, %MutableString* %self, i32 0, i32 2 | |
%"@ptr" = load %"Shiika::Internal::Ptr"*, %"Shiika::Internal::Ptr"** %"addr_@ptr", align 8 | |
br label %"Invoke_Shiika::Internal::Ptr#+" | |
"Invoke_Int#>=": ; preds = %IfBegin9 | |
%addr_vtable13 = getelementptr inbounds %Int, %Int* %n, i32 0, i32 0 | |
%vtable14 = load i8*, i8** %addr_vtable13, align 8 | |
%vtable_ptr15 = bitcast i8* %vtable14 to [35 x i8*]* | |
%vtable16 = load [35 x i8*], [35 x i8*]* %vtable_ptr15, align 8 | |
%func_raw17 = extractvalue [35 x i8*] %vtable16, 4 | |
%func18 = bitcast i8* %func_raw17 to %Bool* (%Int*, %Int*)* | |
%result19 = call %Bool* %func18(%Int* %n, %Int* %"@bytesize") | |
br label %"Invoke_Int#>=_end" | |
"Invoke_Int#>=_end": ; preds = %"Invoke_Int#>=" | |
%llvm_bool20 = call i1 @unbox_bool(%Bool* %result19) | |
%istrue21 = icmp eq i1 %llvm_bool20, true | |
br i1 %istrue21, label %IfThen10, label %IfElse11 | |
"Invoke_Object#panic24": ; preds = %IfThen10 | |
%addr_vtable25 = getelementptr inbounds %Object, %Object* %as22, i32 0, i32 0 | |
%vtable26 = load i8*, i8** %addr_vtable25, align 8 | |
%vtable_ptr27 = bitcast i8* %vtable26 to [16 x i8*]* | |
%vtable28 = load [16 x i8*], [16 x i8*]* %vtable_ptr27, align 8 | |
%func_raw29 = extractvalue [16 x i8*] %vtable28, 12 | |
%func30 = bitcast i8* %func_raw29 to void (%Object*, %String*)* | |
call void %func30(%Object* %as22, %String* %sk_str23) | |
%"::Void31" = load %Void*, %Void** @"::Void", align 8 | |
unreachable | |
"Invoke_Shiika::Internal::Ptr#+": ; preds = %IfEnd12 | |
%addr_vtable33 = getelementptr inbounds %"Shiika::Internal::Ptr", %"Shiika::Internal::Ptr"* %"@ptr", i32 0, i32 0 | |
%vtable34 = load i8*, i8** %addr_vtable33, align 8 | |
%vtable_ptr35 = bitcast i8* %vtable34 to [21 x i8*]* | |
%vtable36 = load [21 x i8*], [21 x i8*]* %vtable_ptr35, align 8 | |
%func_raw37 = extractvalue [21 x i8*] %vtable36, 16 | |
%func38 = bitcast i8* %func_raw37 to %"Shiika::Internal::Ptr"* (%"Shiika::Internal::Ptr"*, %Int*)* | |
%result39 = call %"Shiika::Internal::Ptr"* %func38(%"Shiika::Internal::Ptr"* %"@ptr", %Int* %n) | |
br label %"Invoke_Shiika::Internal::Ptr#+_end" | |
"Invoke_Shiika::Internal::Ptr#+_end": ; preds = %"Invoke_Shiika::Internal::Ptr#+" | |
br label %"Invoke_Shiika::Internal::Ptr#read" | |
"Invoke_Shiika::Internal::Ptr#read": ; preds = %"Invoke_Shiika::Internal::Ptr#+_end" | |
%addr_vtable40 = getelementptr inbounds %"Shiika::Internal::Ptr", %"Shiika::Internal::Ptr"* %result39, i32 0, i32 0 | |
%vtable41 = load i8*, i8** %addr_vtable40, align 8 | |
%vtable_ptr42 = bitcast i8* %vtable41 to [21 x i8*]* | |
%vtable43 = load [21 x i8*], [21 x i8*]* %vtable_ptr42, align 8 | |
%func_raw44 = extractvalue [21 x i8*] %vtable43, 18 | |
%func45 = bitcast i8* %func_raw44 to %Int* (%"Shiika::Internal::Ptr"*)* | |
%result46 = call %Int* %func45(%"Shiika::Internal::Ptr"* %result39) | |
br label %"Invoke_Shiika::Internal::Ptr#read_end" | |
"Invoke_Shiika::Internal::Ptr#read_end": ; preds = %"Invoke_Shiika::Internal::Ptr#read" | |
br label %Ret | |
Ret: ; preds = %"Invoke_Shiika::Internal::Ptr#read_end" | |
br label %End | |
} | |
define %Void* @MutableString_append(%MutableString* %self, %String* %other) { | |
alloca: | |
%new_bytesize = alloca %Int*, align 8 | |
br label %alloca_End | |
alloca_End: ; preds = %alloca | |
%"addr_@bytesize" = getelementptr inbounds %MutableString, %MutableString* %self, i32 0, i32 4 | |
%"@bytesize" = load %Int*, %Int** %"addr_@bytesize", align 8 | |
br label %"Invoke_String#bytesize" | |
End: ; preds = %Ret | |
%"::Void51" = load %Void*, %Void** @"::Void", align 8 | |
ret %Void* %"::Void51" | |
"Invoke_String#bytesize": ; preds = %alloca_End | |
%addr_vtable = getelementptr inbounds %String, %String* %other, i32 0, i32 0 | |
%vtable = load i8*, i8** %addr_vtable, align 8 | |
%vtable_ptr = bitcast i8* %vtable to [35 x i8*]* | |
%vtable1 = load [35 x i8*], [35 x i8*]* %vtable_ptr, align 8 | |
%func_raw = extractvalue [35 x i8*] %vtable1, 19 | |
%func = bitcast i8* %func_raw to %Int* (%String*)* | |
%result = call %Int* %func(%String* %other) | |
br label %"Invoke_String#bytesize_end" | |
"Invoke_String#bytesize_end": ; preds = %"Invoke_String#bytesize" | |
br label %"Invoke_Int#+" | |
"Invoke_Int#+": ; preds = %"Invoke_String#bytesize_end" | |
%addr_vtable2 = getelementptr inbounds %Int, %Int* %"@bytesize", i32 0, i32 0 | |
%vtable3 = load i8*, i8** %addr_vtable2, align 8 | |
%vtable_ptr4 = bitcast i8* %vtable3 to [35 x i8*]* | |
%vtable5 = load [35 x i8*], [35 x i8*]* %vtable_ptr4, align 8 | |
%func_raw6 = extractvalue [35 x i8*] %vtable5, 18 | |
%func7 = bitcast i8* %func_raw6 to %Int* (%Int*, %Int*)* | |
%result8 = call %Int* %func7(%Int* %"@bytesize", %Int* %result) | |
br label %"Invoke_Int#+_end" | |
"Invoke_Int#+_end": ; preds = %"Invoke_Int#+" | |
store %Int* %result8, %Int** %new_bytesize, align 8 | |
%new_bytesize9 = load %Int*, %Int** %new_bytesize, align 8 | |
br label %"Invoke_MutableString#_realloc_if_needed" | |
"Invoke_MutableString#_realloc_if_needed": ; preds = %"Invoke_Int#+_end" | |
%addr_vtable10 = getelementptr inbounds %MutableString, %MutableString* %self, i32 0, i32 0 | |
%vtable11 = load i8*, i8** %addr_vtable10, align 8 | |
%vtable_ptr12 = bitcast i8* %vtable11 to [28 x i8*]* | |
%vtable13 = load [28 x i8*], [28 x i8*]* %vtable_ptr12, align 8 | |
%func_raw14 = extractvalue [28 x i8*] %vtable13, 16 | |
%func15 = bitcast i8* %func_raw14 to %Void* (%MutableString*, %Int*)* | |
%result16 = call %Void* %func15(%MutableString* %self, %Int* %new_bytesize9) | |
br label %"Invoke_MutableString#_realloc_if_needed_end" | |
"Invoke_MutableString#_realloc_if_needed_end": ; preds = %"Invoke_MutableString#_realloc_if_needed" | |
%"::Shiika::Internal::Memory" = load %"Shiika::Internal::Memory"*, %"Shiika::Internal::Memory"** @"::Shiika::Internal::Memory", align 8 | |
%"addr_@ptr" = getelementptr inbounds %MutableString, %MutableString* %self, i32 0, i32 2 | |
%"@ptr" = load %"Shiika::Internal::Ptr"*, %"Shiika::Internal::Ptr"** %"addr_@ptr", align 8 | |
%"addr_@bytesize17" = getelementptr inbounds %MutableString, %MutableString* %self, i32 0, i32 4 | |
%"@bytesize18" = load %Int*, %Int** %"addr_@bytesize17", align 8 | |
br label %"Invoke_Shiika::Internal::Ptr#+" | |
"Invoke_Shiika::Internal::Ptr#+": ; preds = %"Invoke_MutableString#_realloc_if_needed_end" | |
%addr_vtable19 = getelementptr inbounds %"Shiika::Internal::Ptr", %"Shiika::Internal::Ptr"* %"@ptr", i32 0, i32 0 | |
%vtable20 = load i8*, i8** %addr_vtable19, align 8 | |
%vtable_ptr21 = bitcast i8* %vtable20 to [21 x i8*]* | |
%vtable22 = load [21 x i8*], [21 x i8*]* %vtable_ptr21, align 8 | |
%func_raw23 = extractvalue [21 x i8*] %vtable22, 16 | |
%func24 = bitcast i8* %func_raw23 to %"Shiika::Internal::Ptr"* (%"Shiika::Internal::Ptr"*, %Int*)* | |
%result25 = call %"Shiika::Internal::Ptr"* %func24(%"Shiika::Internal::Ptr"* %"@ptr", %Int* %"@bytesize18") | |
br label %"Invoke_Shiika::Internal::Ptr#+_end" | |
"Invoke_Shiika::Internal::Ptr#+_end": ; preds = %"Invoke_Shiika::Internal::Ptr#+" | |
br label %"Invoke_String#ptr" | |
"Invoke_String#ptr": ; preds = %"Invoke_Shiika::Internal::Ptr#+_end" | |
%addr_vtable26 = getelementptr inbounds %String, %String* %other, i32 0, i32 0 | |
%vtable27 = load i8*, i8** %addr_vtable26, align 8 | |
%vtable_ptr28 = bitcast i8* %vtable27 to [35 x i8*]* | |
%vtable29 = load [35 x i8*], [35 x i8*]* %vtable_ptr28, align 8 | |
%func_raw30 = extractvalue [35 x i8*] %vtable29, 28 | |
%func31 = bitcast i8* %func_raw30 to %"Shiika::Internal::Ptr"* (%String*)* | |
%result32 = call %"Shiika::Internal::Ptr"* %func31(%String* %other) | |
br label %"Invoke_String#ptr_end" | |
"Invoke_String#ptr_end": ; preds = %"Invoke_String#ptr" | |
br label %"Invoke_String#bytesize33" | |
"Invoke_String#bytesize33": ; preds = %"Invoke_String#ptr_end" | |
%addr_vtable34 = getelementptr inbounds %String, %String* %other, i32 0, i32 0 | |
%vtable35 = load i8*, i8** %addr_vtable34, align 8 | |
%vtable_ptr36 = bitcast i8* %vtable35 to [35 x i8*]* | |
%vtable37 = load [35 x i8*], [35 x i8*]* %vtable_ptr36, align 8 | |
%func_raw38 = extractvalue [35 x i8*] %vtable37, 19 | |
%func39 = bitcast i8* %func_raw38 to %Int* (%String*)* | |
%result40 = call %Int* %func39(%String* %other) | |
br label %"Invoke_String#bytesize_end41" | |
"Invoke_String#bytesize_end41": ; preds = %"Invoke_String#bytesize33" | |
br label %"Invoke_Meta:Shiika::Internal::Memory#memcpy" | |
"Invoke_Meta:Shiika::Internal::Memory#memcpy": ; preds = %"Invoke_String#bytesize_end41" | |
%addr_vtable42 = getelementptr inbounds %"Shiika::Internal::Memory", %"Shiika::Internal::Memory"* %"::Shiika::Internal::Memory", i32 0, i32 0 | |
%vtable43 = load i8*, i8** %addr_vtable42, align 8 | |
%vtable_ptr44 = bitcast i8* %vtable43 to [25 x i8*]* | |
%vtable45 = load [25 x i8*], [25 x i8*]* %vtable_ptr44, align 8 | |
%func_raw46 = extractvalue [25 x i8*] %vtable45, 24 | |
%func47 = bitcast i8* %func_raw46 to %Void* (%"Shiika::Internal::Memory"*, %"Shiika::Internal::Ptr"*, %"Shiika::Internal::Ptr"*, %Int*)* | |
%result48 = call %Void* %func47(%"Shiika::Internal::Memory"* %"::Shiika::Internal::Memory", %"Shiika::Internal::Ptr"* %result25, %"Shiika::Internal::Ptr"* %result32, %Int* %result40) | |
br label %"Invoke_Meta:Shiika::Internal::Memory#memcpy_end" | |
"Invoke_Meta:Shiika::Internal::Memory#memcpy_end": ; preds = %"Invoke_Meta:Shiika::Internal::Memory#memcpy" | |
%new_bytesize49 = load %Int*, %Int** %new_bytesize, align 8 | |
%"addr_@bytesize50" = getelementptr inbounds %MutableString, %MutableString* %self, i32 0, i32 4 | |
store %Int* %new_bytesize49, %Int** %"addr_@bytesize50", align 8 | |
%"::Void" = load %Void*, %Void** @"::Void", align 8 | |
br label %Ret | |
Ret: ; preds = %"Invoke_Meta:Shiika::Internal::Memory#memcpy_end" | |
br label %End | |
} | |
define %Void* @MutableString_append__byte(%MutableString* %self, %Int* %b) { | |
%"addr_@bytesize" = getelementptr inbounds %MutableString, %MutableString* %self, i32 0, i32 4 | |
%"@bytesize" = load %Int*, %Int** %"addr_@bytesize", align 8 | |
%sk_int = call %Int* @box_int(i64 1) | |
br label %"Invoke_Int#+" | |
End: ; preds = %Ret | |
%"::Void29" = load %Void*, %Void** @"::Void", align 8 | |
ret %Void* %"::Void29" | |
"Invoke_Int#+": ; preds = %0 | |
%addr_vtable = getelementptr inbounds %Int, %Int* %"@bytesize", i32 0, i32 0 | |
%vtable = load i8*, i8** %addr_vtable, align 8 | |
%vtable_ptr = bitcast i8* %vtable to [35 x i8*]* | |
%vtable1 = load [35 x i8*], [35 x i8*]* %vtable_ptr, align 8 | |
%func_raw = extractvalue [35 x i8*] %vtable1, 18 | |
%func = bitcast i8* %func_raw to %Int* (%Int*, %Int*)* | |
%result = call %Int* %func(%Int* %"@bytesize", %Int* %sk_int) | |
br label %"Invoke_Int#+_end" | |
"Invoke_Int#+_end": ; preds = %"Invoke_Int#+" | |
%"addr_@bytesize2" = getelementptr inbounds %MutableString, %MutableString* %self, i32 0, i32 4 | |
store %Int* %result, %Int** %"addr_@bytesize2", align 8 | |
%"addr_@bytesize3" = getelementptr inbounds %MutableString, %MutableString* %self, i32 0, i32 4 | |
%"@bytesize4" = load %Int*, %Int** %"addr_@bytesize3", align 8 | |
br label %"Invoke_MutableString#_realloc_if_needed" | |
"Invoke_MutableString#_realloc_if_needed": ; preds = %"Invoke_Int#+_end" | |
%addr_vtable5 = getelementptr inbounds %MutableString, %MutableString* %self, i32 0, i32 0 | |
%vtable6 = load i8*, i8** %addr_vtable5, align 8 | |
%vtable_ptr7 = bitcast i8* %vtable6 to [28 x i8*]* | |
%vtable8 = load [28 x i8*], [28 x i8*]* %vtable_ptr7, align 8 | |
%func_raw9 = extractvalue [28 x i8*] %vtable8, 16 | |
%func10 = bitcast i8* %func_raw9 to %Void* (%MutableString*, %Int*)* | |
%result11 = call %Void* %func10(%MutableString* %self, %Int* %"@bytesize4") | |
br label %"Invoke_MutableString#_realloc_if_needed_end" | |
"Invoke_MutableString#_realloc_if_needed_end": ; preds = %"Invoke_MutableString#_realloc_if_needed" | |
%"addr_@bytesize12" = getelementptr inbounds %MutableString, %MutableString* %self, i32 0, i32 4 | |
%"@bytesize13" = load %Int*, %Int** %"addr_@bytesize12", align 8 | |
%sk_int14 = call %Int* @box_int(i64 1) | |
br label %"Invoke_Int#-" | |
"Invoke_Int#-": ; preds = %"Invoke_MutableString#_realloc_if_needed_end" | |
%addr_vtable15 = getelementptr inbounds %Int, %Int* %"@bytesize13", i32 0, i32 0 | |
%vtable16 = load i8*, i8** %addr_vtable15, align 8 | |
%vtable_ptr17 = bitcast i8* %vtable16 to [35 x i8*]* | |
%vtable18 = load [35 x i8*], [35 x i8*]* %vtable_ptr17, align 8 | |
%func_raw19 = extractvalue [35 x i8*] %vtable18, 19 | |
%func20 = bitcast i8* %func_raw19 to %Int* (%Int*, %Int*)* | |
%result21 = call %Int* %func20(%Int* %"@bytesize13", %Int* %sk_int14) | |
br label %"Invoke_Int#-_end" | |
"Invoke_Int#-_end": ; preds = %"Invoke_Int#-" | |
br label %"Invoke_MutableString#write_byte" | |
"Invoke_MutableString#write_byte": ; preds = %"Invoke_Int#-_end" | |
%addr_vtable22 = getelementptr inbounds %MutableString, %MutableString* %self, i32 0, i32 0 | |
%vtable23 = load i8*, i8** %addr_vtable22, align 8 | |
%vtable_ptr24 = bitcast i8* %vtable23 to [28 x i8*]* | |
%vtable25 = load [28 x i8*], [28 x i8*]* %vtable_ptr24, align 8 | |
%func_raw26 = extractvalue [28 x i8*] %vtable25, 27 | |
%func27 = bitcast i8* %func_raw26 to %Void* (%MutableString*, %Int*, %Int*)* | |
%result28 = call %Void* %func27(%MutableString* %self, %Int* %result21, %Int* %b) | |
br label %"Invoke_MutableString#write_byte_end" | |
"Invoke_MutableString#write_byte_end": ; preds = %"Invoke_MutableString#write_byte" | |
%"::Void" = load %Void*, %Void** @"::Void", align 8 | |
br label %Ret | |
Ret: ; preds = %"Invoke_MutableString#write_byte_end" | |
br label %End | |
} | |
define %String* @MutableString_to__s(%MutableString* %self) { | |
alloca: | |
%newptr = alloca %"Shiika::Internal::Ptr"*, align 8 | |
br label %alloca_End | |
alloca_End: ; preds = %alloca | |
%"::Shiika::Internal::Memory" = load %"Shiika::Internal::Memory"*, %"Shiika::Internal::Memory"** @"::Shiika::Internal::Memory", align 8 | |
%"addr_@bytesize" = getelementptr inbounds %MutableString, %MutableString* %self, i32 0, i32 4 | |
%"@bytesize" = load %Int*, %Int** %"addr_@bytesize", align 8 | |
%sk_int = call %Int* @box_int(i64 1) | |
br label %"Invoke_Int#+" | |
End: ; preds = %Ret | |
%methodResult = phi %String* [ %result29, %Ret ] | |
ret %String* %methodResult | |
"Invoke_Int#+": ; preds = %alloca_End | |
%addr_vtable = getelementptr inbounds %Int, %Int* %"@bytesize", i32 0, i32 0 | |
%vtable = load i8*, i8** %addr_vtable, align 8 | |
%vtable_ptr = bitcast i8* %vtable to [35 x i8*]* | |
%vtable1 = load [35 x i8*], [35 x i8*]* %vtable_ptr, align 8 | |
%func_raw = extractvalue [35 x i8*] %vtable1, 18 | |
%func = bitcast i8* %func_raw to %Int* (%Int*, %Int*)* | |
%result = call %Int* %func(%Int* %"@bytesize", %Int* %sk_int) | |
br label %"Invoke_Int#+_end" | |
"Invoke_Int#+_end": ; preds = %"Invoke_Int#+" | |
br label %"Invoke_Meta:Shiika::Internal::Memory#gc_malloc" | |
"Invoke_Meta:Shiika::Internal::Memory#gc_malloc": ; preds = %"Invoke_Int#+_end" | |
%addr_vtable2 = getelementptr inbounds %"Shiika::Internal::Memory", %"Shiika::Internal::Memory"* %"::Shiika::Internal::Memory", i32 0, i32 0 | |
%vtable3 = load i8*, i8** %addr_vtable2, align 8 | |
%vtable_ptr4 = bitcast i8* %vtable3 to [25 x i8*]* | |
%vtable5 = load [25 x i8*], [25 x i8*]* %vtable_ptr4, align 8 | |
%func_raw6 = extractvalue [25 x i8*] %vtable5, 22 | |
%func7 = bitcast i8* %func_raw6 to %"Shiika::Internal::Ptr"* (%"Shiika::Internal::Memory"*, %Int*)* | |
%result8 = call %"Shiika::Internal::Ptr"* %func7(%"Shiika::Internal::Memory"* %"::Shiika::Internal::Memory", %Int* %result) | |
br label %"Invoke_Meta:Shiika::Internal::Memory#gc_malloc_end" | |
"Invoke_Meta:Shiika::Internal::Memory#gc_malloc_end": ; preds = %"Invoke_Meta:Shiika::Internal::Memory#gc_malloc" | |
store %"Shiika::Internal::Ptr"* %result8, %"Shiika::Internal::Ptr"** %newptr, align 8 | |
%"::Shiika::Internal::Memory9" = load %"Shiika::Internal::Memory"*, %"Shiika::Internal::Memory"** @"::Shiika::Internal::Memory", align 8 | |
%newptr10 = load %"Shiika::Internal::Ptr"*, %"Shiika::Internal::Ptr"** %newptr, align 8 | |
%"addr_@ptr" = getelementptr inbounds %MutableString, %MutableString* %self, i32 0, i32 2 | |
%"@ptr" = load %"Shiika::Internal::Ptr"*, %"Shiika::Internal::Ptr"** %"addr_@ptr", align 8 | |
%"addr_@bytesize11" = getelementptr inbounds %MutableString, %MutableString* %self, i32 0, i32 4 | |
%"@bytesize12" = load %Int*, %Int** %"addr_@bytesize11", align 8 | |
br label %"Invoke_Meta:Shiika::Internal::Memory#memcpy" | |
"Invoke_Meta:Shiika::Internal::Memory#memcpy": ; preds = %"Invoke_Meta:Shiika::Internal::Memory#gc_malloc_end" | |
%addr_vtable13 = getelementptr inbounds %"Shiika::Internal::Memory", %"Shiika::Internal::Memory"* %"::Shiika::Internal::Memory9", i32 0, i32 0 | |
%vtable14 = load i8*, i8** %addr_vtable13, align 8 | |
%vtable_ptr15 = bitcast i8* %vtable14 to [25 x i8*]* | |
%vtable16 = load [25 x i8*], [25 x i8*]* %vtable_ptr15, align 8 | |
%func_raw17 = extractvalue [25 x i8*] %vtable16, 24 | |
%func18 = bitcast i8* %func_raw17 to %Void* (%"Shiika::Internal::Memory"*, %"Shiika::Internal::Ptr"*, %"Shiika::Internal::Ptr"*, %Int*)* | |
%result19 = call %Void* %func18(%"Shiika::Internal::Memory"* %"::Shiika::Internal::Memory9", %"Shiika::Internal::Ptr"* %newptr10, %"Shiika::Internal::Ptr"* %"@ptr", %Int* %"@bytesize12") | |
br label %"Invoke_Meta:Shiika::Internal::Memory#memcpy_end" | |
"Invoke_Meta:Shiika::Internal::Memory#memcpy_end": ; preds = %"Invoke_Meta:Shiika::Internal::Memory#memcpy" | |
%"::String" = load %String*, %String** @"::String", align 8 | |
%newptr20 = load %"Shiika::Internal::Ptr"*, %"Shiika::Internal::Ptr"** %newptr, align 8 | |
%"addr_@bytesize21" = getelementptr inbounds %MutableString, %MutableString* %self, i32 0, i32 4 | |
%"@bytesize22" = load %Int*, %Int** %"addr_@bytesize21", align 8 | |
br label %"Invoke_Meta:String#new" | |
"Invoke_Meta:String#new": ; preds = %"Invoke_Meta:Shiika::Internal::Memory#memcpy_end" | |
%addr_vtable23 = getelementptr inbounds %String, %String* %"::String", i32 0, i32 0 | |
%vtable24 = load i8*, i8** %addr_vtable23, align 8 | |
%vtable_ptr25 = bitcast i8* %vtable24 to [23 x i8*]* | |
%vtable26 = load [23 x i8*], [23 x i8*]* %vtable_ptr25, align 8 | |
%func_raw27 = extractvalue [23 x i8*] %vtable26, 22 | |
%func28 = bitcast i8* %func_raw27 to %String* (%String*, %"Shiika::Internal::Ptr"*, %Int*)* | |
%result29 = call %String* %func28(%String* %"::String", %"Shiika::Internal::Ptr"* %newptr20, %Int* %"@bytesize22") | |
br label %"Invoke_Meta:String#new_end" | |
"Invoke_Meta:String#new_end": ; preds = %"Invoke_Meta:String#new" | |
br label %Ret | |
Ret: ; preds = %"Invoke_Meta:String#new_end" | |
br label %End | |
} | |
define %Void* @MutableString_write__byte(%MutableString* %self, %Int* %nth, %Int* %byte) { | |
br label %IfBegin | |
End: ; preds = %Ret | |
%"::Void107" = load %Void*, %Void** @"::Void", align 8 | |
ret %Void* %"::Void107" | |
IfBegin: ; preds = %0 | |
%sk_int = call %Int* @box_int(i64 0) | |
br label %"Invoke_Int#<" | |
IfThen: ; preds = %"Invoke_Int#<_end" | |
%as = bitcast %MutableString* %self to %Object* | |
%sk_str = call %String* @gen_literal_string(i8* getelementptr inbounds ([42 x i8], [42 x i8]* @str_62, i32 0, i32 0), i64 41) | |
br label %"Invoke_Object#panic" | |
IfElse: ; preds = %"Invoke_Int#<_end" | |
%"::Void8" = load %Void*, %Void** @"::Void", align 8 | |
br label %IfEnd | |
IfEnd: ; preds = %IfElse | |
br label %IfBegin9 | |
"Invoke_Int#<": ; preds = %IfBegin | |
%addr_vtable = getelementptr inbounds %Int, %Int* %nth, i32 0, i32 0 | |
%vtable = load i8*, i8** %addr_vtable, align 8 | |
%vtable_ptr = bitcast i8* %vtable to [35 x i8*]* | |
%vtable1 = load [35 x i8*], [35 x i8*]* %vtable_ptr, align 8 | |
%func_raw = extractvalue [35 x i8*] %vtable1, 0 | |
%func = bitcast i8* %func_raw to %Bool* (%Int*, %Int*)* | |
%result = call %Bool* %func(%Int* %nth, %Int* %sk_int) | |
br label %"Invoke_Int#<_end" | |
"Invoke_Int#<_end": ; preds = %"Invoke_Int#<" | |
%llvm_bool = call i1 @unbox_bool(%Bool* %result) | |
%istrue = icmp eq i1 %llvm_bool, true | |
br i1 %istrue, label %IfThen, label %IfElse | |
"Invoke_Object#panic": ; preds = %IfThen | |
%addr_vtable2 = getelementptr inbounds %Object, %Object* %as, i32 0, i32 0 | |
%vtable3 = load i8*, i8** %addr_vtable2, align 8 | |
%vtable_ptr4 = bitcast i8* %vtable3 to [16 x i8*]* | |
%vtable5 = load [16 x i8*], [16 x i8*]* %vtable_ptr4, align 8 | |
%func_raw6 = extractvalue [16 x i8*] %vtable5, 12 | |
%func7 = bitcast i8* %func_raw6 to void (%Object*, %String*)* | |
call void %func7(%Object* %as, %String* %sk_str) | |
%"::Void" = load %Void*, %Void** @"::Void", align 8 | |
unreachable | |
IfBegin9: ; preds = %IfEnd | |
%sk_int13 = call %Int* @box_int(i64 0) | |
br label %"Invoke_Int#<14" | |
IfThen10: ; preds = %"Invoke_Int#<_end22" | |
%as25 = bitcast %MutableString* %self to %Object* | |
%sk_str26 = call %String* @gen_literal_string(i8* getelementptr inbounds ([41 x i8], [41 x i8]* @str_63, i32 0, i32 0), i64 40) | |
br label %"Invoke_Object#panic27" | |
IfElse11: ; preds = %"Invoke_Int#<_end22" | |
%"::Void35" = load %Void*, %Void** @"::Void", align 8 | |
br label %IfEnd12 | |
IfEnd12: ; preds = %IfElse11 | |
br label %IfBegin36 | |
"Invoke_Int#<14": ; preds = %IfBegin9 | |
%addr_vtable15 = getelementptr inbounds %Int, %Int* %byte, i32 0, i32 0 | |
%vtable16 = load i8*, i8** %addr_vtable15, align 8 | |
%vtable_ptr17 = bitcast i8* %vtable16 to [35 x i8*]* | |
%vtable18 = load [35 x i8*], [35 x i8*]* %vtable_ptr17, align 8 | |
%func_raw19 = extractvalue [35 x i8*] %vtable18, 0 | |
%func20 = bitcast i8* %func_raw19 to %Bool* (%Int*, %Int*)* | |
%result21 = call %Bool* %func20(%Int* %byte, %Int* %sk_int13) | |
br label %"Invoke_Int#<_end22" | |
"Invoke_Int#<_end22": ; preds = %"Invoke_Int#<14" | |
%llvm_bool23 = call i1 @unbox_bool(%Bool* %result21) | |
%istrue24 = icmp eq i1 %llvm_bool23, true | |
br i1 %istrue24, label %IfThen10, label %IfElse11 | |
"Invoke_Object#panic27": ; preds = %IfThen10 | |
%addr_vtable28 = getelementptr inbounds %Object, %Object* %as25, i32 0, i32 0 | |
%vtable29 = load i8*, i8** %addr_vtable28, align 8 | |
%vtable_ptr30 = bitcast i8* %vtable29 to [16 x i8*]* | |
%vtable31 = load [16 x i8*], [16 x i8*]* %vtable_ptr30, align 8 | |
%func_raw32 = extractvalue [16 x i8*] %vtable31, 12 | |
%func33 = bitcast i8* %func_raw32 to void (%Object*, %String*)* | |
call void %func33(%Object* %as25, %String* %sk_str26) | |
%"::Void34" = load %Void*, %Void** @"::Void", align 8 | |
unreachable | |
IfBegin36: ; preds = %IfEnd12 | |
%sk_int40 = call %Int* @box_int(i64 256) | |
br label %"Invoke_Int#>=" | |
IfThen37: ; preds = %"Invoke_Int#>=_end" | |
%as50 = bitcast %MutableString* %self to %Object* | |
%sk_str51 = call %String* @gen_literal_string(i8* getelementptr inbounds ([42 x i8], [42 x i8]* @str_64, i32 0, i32 0), i64 41) | |
br label %"Invoke_Object#panic52" | |
IfElse38: ; preds = %"Invoke_Int#>=_end" | |
%"::Void60" = load %Void*, %Void** @"::Void", align 8 | |
br label %IfEnd39 | |
IfEnd39: ; preds = %IfElse38 | |
br label %"Invoke_MutableString#_realloc_if_needed" | |
"Invoke_Int#>=": ; preds = %IfBegin36 | |
%addr_vtable41 = getelementptr inbounds %Int, %Int* %byte, i32 0, i32 0 | |
%vtable42 = load i8*, i8** %addr_vtable41, align 8 | |
%vtable_ptr43 = bitcast i8* %vtable42 to [35 x i8*]* | |
%vtable44 = load [35 x i8*], [35 x i8*]* %vtable_ptr43, align 8 | |
%func_raw45 = extractvalue [35 x i8*] %vtable44, 4 | |
%func46 = bitcast i8* %func_raw45 to %Bool* (%Int*, %Int*)* | |
%result47 = call %Bool* %func46(%Int* %byte, %Int* %sk_int40) | |
br label %"Invoke_Int#>=_end" | |
"Invoke_Int#>=_end": ; preds = %"Invoke_Int#>=" | |
%llvm_bool48 = call i1 @unbox_bool(%Bool* %result47) | |
%istrue49 = icmp eq i1 %llvm_bool48, true | |
br i1 %istrue49, label %IfThen37, label %IfElse38 | |
"Invoke_Object#panic52": ; preds = %IfThen37 | |
%addr_vtable53 = getelementptr inbounds %Object, %Object* %as50, i32 0, i32 0 | |
%vtable54 = load i8*, i8** %addr_vtable53, align 8 | |
%vtable_ptr55 = bitcast i8* %vtable54 to [16 x i8*]* | |
%vtable56 = load [16 x i8*], [16 x i8*]* %vtable_ptr55, align 8 | |
%func_raw57 = extractvalue [16 x i8*] %vtable56, 12 | |
%func58 = bitcast i8* %func_raw57 to void (%Object*, %String*)* | |
call void %func58(%Object* %as50, %String* %sk_str51) | |
%"::Void59" = load %Void*, %Void** @"::Void", align 8 | |
unreachable | |
"Invoke_MutableString#_realloc_if_needed": ; preds = %IfEnd39 | |
%addr_vtable61 = getelementptr inbounds %MutableString, %MutableString* %self, i32 0, i32 0 | |
%vtable62 = load i8*, i8** %addr_vtable61, align 8 | |
%vtable_ptr63 = bitcast i8* %vtable62 to [28 x i8*]* | |
%vtable64 = load [28 x i8*], [28 x i8*]* %vtable_ptr63, align 8 | |
%func_raw65 = extractvalue [28 x i8*] %vtable64, 16 | |
%func66 = bitcast i8* %func_raw65 to %Void* (%MutableString*, %Int*)* | |
%result67 = call %Void* %func66(%MutableString* %self, %Int* %nth) | |
br label %"Invoke_MutableString#_realloc_if_needed_end" | |
"Invoke_MutableString#_realloc_if_needed_end": ; preds = %"Invoke_MutableString#_realloc_if_needed" | |
%"addr_@ptr" = getelementptr inbounds %MutableString, %MutableString* %self, i32 0, i32 2 | |
%"@ptr" = load %"Shiika::Internal::Ptr"*, %"Shiika::Internal::Ptr"** %"addr_@ptr", align 8 | |
br label %"Invoke_Shiika::Internal::Ptr#+" | |
"Invoke_Shiika::Internal::Ptr#+": ; preds = %"Invoke_MutableString#_realloc_if_needed_end" | |
%addr_vtable68 = getelementptr inbounds %"Shiika::Internal::Ptr", %"Shiika::Internal::Ptr"* %"@ptr", i32 0, i32 0 | |
%vtable69 = load i8*, i8** %addr_vtable68, align 8 | |
%vtable_ptr70 = bitcast i8* %vtable69 to [21 x i8*]* | |
%vtable71 = load [21 x i8*], [21 x i8*]* %vtable_ptr70, align 8 | |
%func_raw72 = extractvalue [21 x i8*] %vtable71, 16 | |
%func73 = bitcast i8* %func_raw72 to %"Shiika::Internal::Ptr"* (%"Shiika::Internal::Ptr"*, %Int*)* | |
%result74 = call %"Shiika::Internal::Ptr"* %func73(%"Shiika::Internal::Ptr"* %"@ptr", %Int* %nth) | |
br label %"Invoke_Shiika::Internal::Ptr#+_end" | |
"Invoke_Shiika::Internal::Ptr#+_end": ; preds = %"Invoke_Shiika::Internal::Ptr#+" | |
br label %"Invoke_Shiika::Internal::Ptr#write" | |
"Invoke_Shiika::Internal::Ptr#write": ; preds = %"Invoke_Shiika::Internal::Ptr#+_end" | |
%addr_vtable75 = getelementptr inbounds %"Shiika::Internal::Ptr", %"Shiika::Internal::Ptr"* %result74, i32 0, i32 0 | |
%vtable76 = load i8*, i8** %addr_vtable75, align 8 | |
%vtable_ptr77 = bitcast i8* %vtable76 to [21 x i8*]* | |
%vtable78 = load [21 x i8*], [21 x i8*]* %vtable_ptr77, align 8 | |
%func_raw79 = extractvalue [21 x i8*] %vtable78, 20 | |
%func80 = bitcast i8* %func_raw79 to %Void* (%"Shiika::Internal::Ptr"*, %Int*)* | |
%result81 = call %Void* %func80(%"Shiika::Internal::Ptr"* %result74, %Int* %byte) | |
br label %"Invoke_Shiika::Internal::Ptr#write_end" | |
"Invoke_Shiika::Internal::Ptr#write_end": ; preds = %"Invoke_Shiika::Internal::Ptr#write" | |
br label %IfBegin82 | |
IfBegin82: ; preds = %"Invoke_Shiika::Internal::Ptr#write_end" | |
%"addr_@bytesize" = getelementptr inbounds %MutableString, %MutableString* %self, i32 0, i32 4 | |
%"@bytesize" = load %Int*, %Int** %"addr_@bytesize", align 8 | |
br label %"Invoke_Int#<=" | |
IfThen83: ; preds = %"Invoke_Int#<=_end" | |
%sk_int95 = call %Int* @box_int(i64 1) | |
br label %"Invoke_Int#+" | |
IfElse84: ; preds = %"Invoke_Int#<=_end" | |
%"::Void105" = load %Void*, %Void** @"::Void", align 8 | |
br label %IfEnd85 | |
IfEnd85: ; preds = %IfElse84, %"Invoke_Int#+_end" | |
%ifResult = phi %Void* [ %"::Void104", %"Invoke_Int#+_end" ], [ %"::Void105", %IfElse84 ] | |
%"::Void106" = load %Void*, %Void** @"::Void", align 8 | |
br label %Ret | |
"Invoke_Int#<=": ; preds = %IfBegin82 | |
%addr_vtable86 = getelementptr inbounds %Int, %Int* %"@bytesize", i32 0, i32 0 | |
%vtable87 = load i8*, i8** %addr_vtable86, align 8 | |
%vtable_ptr88 = bitcast i8* %vtable87 to [35 x i8*]* | |
%vtable89 = load [35 x i8*], [35 x i8*]* %vtable_ptr88, align 8 | |
%func_raw90 = extractvalue [35 x i8*] %vtable89, 1 | |
%func91 = bitcast i8* %func_raw90 to %Bool* (%Int*, %Int*)* | |
%result92 = call %Bool* %func91(%Int* %"@bytesize", %Int* %nth) | |
br label %"Invoke_Int#<=_end" | |
"Invoke_Int#<=_end": ; preds = %"Invoke_Int#<=" | |
%llvm_bool93 = call i1 @unbox_bool(%Bool* %result92) | |
%istrue94 = icmp eq i1 %llvm_bool93, true | |
br i1 %istrue94, label %IfThen83, label %IfElse84 | |
"Invoke_Int#+": ; preds = %IfThen83 | |
%addr_vtable96 = getelementptr inbounds %Int, %Int* %nth, i32 0, i32 0 | |
%vtable97 = load i8*, i8** %addr_vtable96, align 8 | |
%vtable_ptr98 = bitcast i8* %vtable97 to [35 x i8*]* | |
%vtable99 = load [35 x i8*], [35 x i8*]* %vtable_ptr98, align 8 | |
%func_raw100 = extractvalue [35 x i8*] %vtable99, 18 | |
%func101 = bitcast i8* %func_raw100 to %Int* (%Int*, %Int*)* | |
%result102 = call %Int* %func101(%Int* %nth, %Int* %sk_int95) | |
br label %"Invoke_Int#+_end" | |
"Invoke_Int#+_end": ; preds = %"Invoke_Int#+" | |
%"addr_@bytesize103" = getelementptr inbounds %MutableString, %MutableString* %self, i32 0, i32 4 | |
store %Int* %result102, %Int** %"addr_@bytesize103", align 8 | |
%"::Void104" = load %Void*, %Void** @"::Void", align 8 | |
br label %IfEnd85 | |
Ret: ; preds = %IfEnd85 | |
br label %End | |
} | |
define %Void* @MutableString___realloc__if__needed(%MutableString* %self, %Int* %new_bytesize) { | |
br label %IfBegin | |
End: ; preds = %Ret | |
%"::Void20" = load %Void*, %Void** @"::Void", align 8 | |
ret %Void* %"::Void20" | |
IfBegin: ; preds = %0 | |
%"addr_@capa" = getelementptr inbounds %MutableString, %MutableString* %self, i32 0, i32 3 | |
%"@capa" = load %Int*, %Int** %"addr_@capa", align 8 | |
br label %"Invoke_Int#<" | |
IfThen: ; preds = %"Invoke_Int#<_end" | |
%"::Shiika::Internal::Memory" = load %"Shiika::Internal::Memory"*, %"Shiika::Internal::Memory"** @"::Shiika::Internal::Memory", align 8 | |
%"addr_@ptr" = getelementptr inbounds %MutableString, %MutableString* %self, i32 0, i32 2 | |
%"@ptr" = load %"Shiika::Internal::Ptr"*, %"Shiika::Internal::Ptr"** %"addr_@ptr", align 8 | |
%sk_int = call %Int* @box_int(i64 1) | |
br label %"Invoke_Int#+" | |
IfElse: ; preds = %"Invoke_Int#<_end" | |
%"::Void18" = load %Void*, %Void** @"::Void", align 8 | |
br label %IfEnd | |
IfEnd: ; preds = %IfElse, %"Invoke_Meta:Shiika::Internal::Memory#gc_realloc_end" | |
%ifResult = phi %Void* [ %"::Void", %"Invoke_Meta:Shiika::Internal::Memory#gc_realloc_end" ], [ %"::Void18", %IfElse ] | |
%"::Void19" = load %Void*, %Void** @"::Void", align 8 | |
br label %Ret | |
"Invoke_Int#<": ; preds = %IfBegin | |
%addr_vtable = getelementptr inbounds %Int, %Int* %"@capa", i32 0, i32 0 | |
%vtable = load i8*, i8** %addr_vtable, align 8 | |
%vtable_ptr = bitcast i8* %vtable to [35 x i8*]* | |
%vtable1 = load [35 x i8*], [35 x i8*]* %vtable_ptr, align 8 | |
%func_raw = extractvalue [35 x i8*] %vtable1, 0 | |
%func = bitcast i8* %func_raw to %Bool* (%Int*, %Int*)* | |
%result = call %Bool* %func(%Int* %"@capa", %Int* %new_bytesize) | |
br label %"Invoke_Int#<_end" | |
"Invoke_Int#<_end": ; preds = %"Invoke_Int#<" | |
%llvm_bool = call i1 @unbox_bool(%Bool* %result) | |
%istrue = icmp eq i1 %llvm_bool, true | |
br i1 %istrue, label %IfThen, label %IfElse | |
"Invoke_Int#+": ; preds = %IfThen | |
%addr_vtable2 = getelementptr inbounds %Int, %Int* %new_bytesize, i32 0, i32 0 | |
%vtable3 = load i8*, i8** %addr_vtable2, align 8 | |
%vtable_ptr4 = bitcast i8* %vtable3 to [35 x i8*]* | |
%vtable5 = load [35 x i8*], [35 x i8*]* %vtable_ptr4, align 8 | |
%func_raw6 = extractvalue [35 x i8*] %vtable5, 18 | |
%func7 = bitcast i8* %func_raw6 to %Int* (%Int*, %Int*)* | |
%result8 = call %Int* %func7(%Int* %new_bytesize, %Int* %sk_int) | |
br label %"Invoke_Int#+_end" | |
"Invoke_Int#+_end": ; preds = %"Invoke_Int#+" | |
br label %"Invoke_Meta:Shiika::Internal::Memory#gc_realloc" | |
"Invoke_Meta:Shiika::Internal::Memory#gc_realloc": ; preds = %"Invoke_Int#+_end" | |
%addr_vtable9 = getelementptr inbounds %"Shiika::Internal::Memory", %"Shiika::Internal::Memory"* %"::Shiika::Internal::Memory", i32 0, i32 0 | |
%vtable10 = load i8*, i8** %addr_vtable9, align 8 | |
%vtable_ptr11 = bitcast i8* %vtable10 to [25 x i8*]* | |
%vtable12 = load [25 x i8*], [25 x i8*]* %vtable_ptr11, align 8 | |
%func_raw13 = extractvalue [25 x i8*] %vtable12, 23 | |
%func14 = bitcast i8* %func_raw13 to %"Shiika::Internal::Ptr"* (%"Shiika::Internal::Memory"*, %"Shiika::Internal::Ptr"*, %Int*)* | |
%result15 = call %"Shiika::Internal::Ptr"* %func14(%"Shiika::Internal::Memory"* %"::Shiika::Internal::Memory", %"Shiika::Internal::Ptr"* %"@ptr", %Int* %result8) | |
br label %"Invoke_Meta:Shiika::Internal::Memory#gc_realloc_end" | |
"Invoke_Meta:Shiika::Internal::Memory#gc_realloc_end": ; preds = %"Invoke_Meta:Shiika::Internal::Memory#gc_realloc" | |
%"addr_@ptr16" = getelementptr inbounds %MutableString, %MutableString* %self, i32 0, i32 2 | |
store %"Shiika::Internal::Ptr"* %result15, %"Shiika::Internal::Ptr"** %"addr_@ptr16", align 8 | |
%"addr_@capa17" = getelementptr inbounds %MutableString, %MutableString* %self, i32 0, i32 3 | |
store %Int* %new_bytesize, %Int** %"addr_@capa17", align 8 | |
%"::Void" = load %Void*, %Void** @"::Void", align 8 | |
br label %IfEnd | |
Ret: ; preds = %IfEnd | |
br label %End | |
} | |
define %String* @MutableString___unsafe__to__s(%MutableString* %self) { | |
%"::String" = load %String*, %String** @"::String", align 8 | |
%"addr_@ptr" = getelementptr inbounds %MutableString, %MutableString* %self, i32 0, i32 2 | |
%"@ptr" = load %"Shiika::Internal::Ptr"*, %"Shiika::Internal::Ptr"** %"addr_@ptr", align 8 | |
%"addr_@bytesize" = getelementptr inbounds %MutableString, %MutableString* %self, i32 0, i32 4 | |
%"@bytesize" = load %Int*, %Int** %"addr_@bytesize", align 8 | |
br label %"Invoke_Meta:String#new" | |
End: ; preds = %Ret | |
%methodResult = phi %String* [ %result, %Ret ] | |
ret %String* %methodResult | |
"Invoke_Meta:String#new": ; preds = %0 | |
%addr_vtable = getelementptr inbounds %String, %String* %"::String", i32 0, i32 0 | |
%vtable = load i8*, i8** %addr_vtable, align 8 | |
%vtable_ptr = bitcast i8* %vtable to [23 x i8*]* | |
%vtable1 = load [23 x i8*], [23 x i8*]* %vtable_ptr, align 8 | |
%func_raw = extractvalue [23 x i8*] %vtable1, 22 | |
%func = bitcast i8* %func_raw to %String* (%String*, %"Shiika::Internal::Ptr"*, %Int*)* | |
%result = call %String* %func(%String* %"::String", %"Shiika::Internal::Ptr"* %"@ptr", %Int* %"@bytesize") | |
br label %"Invoke_Meta:String#new_end" | |
"Invoke_Meta:String#new_end": ; preds = %"Invoke_Meta:String#new" | |
br label %Ret | |
Ret: ; preds = %"Invoke_Meta:String#new_end" | |
br label %End | |
} | |
define %Float* @Meta_Float_new(%Float* %self) { | |
%mem = call i8* @shiika_malloc(i64 ptrtoint (%Float* getelementptr (%Float, %Float* null, i32 1) to i64)) | |
%addr = bitcast i8* %mem to %Float* | |
%addr_vtable = getelementptr inbounds %Float, %Float* %addr, i32 0, i32 0 | |
store i8* bitcast ([25 x i8*]* @shiika_vtable_Float to i8*), i8** %addr_vtable, align 8 | |
%class = bitcast %Float* %self to %Class.0* | |
%addr_my_class = getelementptr inbounds %Float, %Float* %addr, i32 0, i32 1 | |
store %Class.0* %class, %Class.0** %addr_my_class, align 8 | |
%obj_as_super = bitcast %Float* %addr to %Object* | |
%1 = call %Void* @Object_initialize(%Object* %obj_as_super) | |
ret %Float* %addr | |
} | |
define %Triple* @Meta_Triple_new(%Triple* %self, %Object* %"@fst", %Object* %"@snd", %Object* %"@thd") { | |
%mem = call i8* @shiika_malloc(i64 mul nuw (i64 ptrtoint (i1** getelementptr (i1*, i1** null, i32 1) to i64), i64 5)) | |
%addr = bitcast i8* %mem to %Triple* | |
%addr_vtable = getelementptr inbounds %Triple, %Triple* %addr, i32 0, i32 0 | |
store i8* bitcast ([22 x i8*]* @shiika_vtable_Triple to i8*), i8** %addr_vtable, align 8 | |
%class = bitcast %Triple* %self to %Class.0* | |
%addr_my_class = getelementptr inbounds %Triple, %Triple* %addr, i32 0, i32 1 | |
store %Class.0* %class, %Class.0** %addr_my_class, align 8 | |
%1 = call %Void* @Triple_initialize(%Triple* %addr, %Object* %"@fst", %Object* %"@snd", %Object* %"@thd") | |
ret %Triple* %addr | |
} | |
define %Void* @Maybe_Some_initialize(%"Maybe::Some"* %self, %Object* %value) { | |
%addr_value = getelementptr inbounds %"Maybe::Some", %"Maybe::Some"* %self, i32 0, i32 2 | |
store %Object* %value, %Object** %addr_value, align 8 | |
br label %Ret | |
End: ; preds = %Ret | |
%"::Void" = load %Void*, %Void** @"::Void", align 8 | |
ret %Void* %"::Void" | |
Ret: ; preds = %0 | |
%as = bitcast %Object* %value to %Void* | |
br label %End | |
} | |
define %Object* @Maybe_Some_value(%"Maybe::Some"* %self) { | |
%addr_value = getelementptr inbounds %"Maybe::Some", %"Maybe::Some"* %self, i32 0, i32 2 | |
%value = load %Object*, %Object** %addr_value, align 8 | |
ret %Object* %value | |
} | |
define %Object* @_set_Maybe_Some_value(%"Maybe::Some"* %self, %Object* %value) { | |
%addr_value = getelementptr inbounds %"Maybe::Some", %"Maybe::Some"* %self, i32 0, i32 2 | |
store %Object* %value, %Object** %addr_value, align 8 | |
ret %Object* %value | |
} | |
define %Void* @Result_Fail_initialize(%"Result::Fail"* %self, %Object* %err) { | |
%addr_err = getelementptr inbounds %"Result::Fail", %"Result::Fail"* %self, i32 0, i32 2 | |
store %Object* %err, %Object** %addr_err, align 8 | |
br label %Ret | |
End: ; preds = %Ret | |
%"::Void" = load %Void*, %Void** @"::Void", align 8 | |
ret %Void* %"::Void" | |
Ret: ; preds = %0 | |
%as = bitcast %Object* %err to %Void* | |
br label %End | |
} | |
define %Object* @Result_Fail_err(%"Result::Fail"* %self) { | |
%addr_err = getelementptr inbounds %"Result::Fail", %"Result::Fail"* %self, i32 0, i32 2 | |
%err = load %Object*, %Object** %addr_err, align 8 | |
ret %Object* %err | |
} | |
define %Object* @_set_Result_Fail_err(%"Result::Fail"* %self, %Object* %err) { | |
%addr_err = getelementptr inbounds %"Result::Fail", %"Result::Fail"* %self, i32 0, i32 2 | |
store %Object* %err, %Object** %addr_err, align 8 | |
ret %Object* %err | |
} | |
define %Void* @Pair_initialize(%Pair* %self, %Object* %"@fst", %Object* %"@snd") { | |
%"addr_@fst" = getelementptr inbounds %Pair, %Pair* %self, i32 0, i32 2 | |
store %Object* %"@fst", %Object** %"addr_@fst", align 8 | |
%"addr_@snd" = getelementptr inbounds %Pair, %Pair* %self, i32 0, i32 3 | |
store %Object* %"@snd", %Object** %"addr_@snd", align 8 | |
%"::Void" = load %Void*, %Void** @"::Void", align 8 | |
br label %Ret | |
End: ; preds = %Ret | |
%"::Void1" = load %Void*, %Void** @"::Void", align 8 | |
ret %Void* %"::Void1" | |
Ret: ; preds = %0 | |
br label %End | |
} | |
define %Object* @Pair_snd(%Pair* %self) { | |
%"addr_@snd" = getelementptr inbounds %Pair, %Pair* %self, i32 0, i32 3 | |
%"@snd" = load %Object*, %Object** %"addr_@snd", align 8 | |
ret %Object* %"@snd" | |
} | |
define %Object* @_set_Pair_snd(%Pair* %self, %Object* %snd) { | |
%"addr_@snd" = getelementptr inbounds %Pair, %Pair* %self, i32 0, i32 3 | |
store %Object* %snd, %Object** %"addr_@snd", align 8 | |
ret %Object* %snd | |
} | |
define %Object* @Pair_fst(%Pair* %self) { | |
%"addr_@fst" = getelementptr inbounds %Pair, %Pair* %self, i32 0, i32 2 | |
%"@fst" = load %Object*, %Object** %"addr_@fst", align 8 | |
ret %Object* %"@fst" | |
} | |
define %Object* @_set_Pair_fst(%Pair* %self, %Object* %fst) { | |
%"addr_@fst" = getelementptr inbounds %Pair, %Pair* %self, i32 0, i32 2 | |
store %Object* %fst, %Object** %"addr_@fst", align 8 | |
ret %Object* %fst | |
} | |
define %MutableString* @Meta_MutableString_new(%MutableString* %self) { | |
%mem = call i8* @shiika_malloc(i64 mul nuw (i64 ptrtoint (i1** getelementptr (i1*, i1** null, i32 1) to i64), i64 5)) | |
%addr = bitcast i8* %mem to %MutableString* | |
%addr_vtable = getelementptr inbounds %MutableString, %MutableString* %addr, i32 0, i32 0 | |
store i8* bitcast ([28 x i8*]* @shiika_vtable_MutableString to i8*), i8** %addr_vtable, align 8 | |
%class = bitcast %MutableString* %self to %Class.0* | |
%addr_my_class = getelementptr inbounds %MutableString, %MutableString* %addr, i32 0, i32 1 | |
store %Class.0* %class, %Class.0** %addr_my_class, align 8 | |
%1 = call %Void* @MutableString_initialize(%MutableString* %addr) | |
ret %MutableString* %addr | |
} | |
define %Void* @Result_Ok_initialize(%"Result::Ok"* %self, %Object* %value) { | |
%addr_value = getelementptr inbounds %"Result::Ok", %"Result::Ok"* %self, i32 0, i32 2 | |
store %Object* %value, %Object** %addr_value, align 8 | |
br label %Ret | |
End: ; preds = %Ret | |
%"::Void" = load %Void*, %Void** @"::Void", align 8 | |
ret %Void* %"::Void" | |
Ret: ; preds = %0 | |
%as = bitcast %Object* %value to %Void* | |
br label %End | |
} | |
define %Object* @Result_Ok_value(%"Result::Ok"* %self) { | |
%addr_value = getelementptr inbounds %"Result::Ok", %"Result::Ok"* %self, i32 0, i32 2 | |
%value = load %Object*, %Object** %addr_value, align 8 | |
ret %Object* %value | |
} | |
define %Object* @_set_Result_Ok_value(%"Result::Ok"* %self, %Object* %value) { | |
%addr_value = getelementptr inbounds %"Result::Ok", %"Result::Ok"* %self, i32 0, i32 2 | |
store %Object* %value, %Object** %addr_value, align 8 | |
ret %Object* %value | |
} | |
define %Void* @String_initialize(%String* %self, %"Shiika::Internal::Ptr"* %ptr, %Int* %bytesize) { | |
%"addr_@ptr" = getelementptr inbounds %String, %String* %self, i32 0, i32 2 | |
store %"Shiika::Internal::Ptr"* %ptr, %"Shiika::Internal::Ptr"** %"addr_@ptr", align 8 | |
%"addr_@bytesize" = getelementptr inbounds %String, %String* %self, i32 0, i32 3 | |
store %Int* %bytesize, %Int** %"addr_@bytesize", align 8 | |
%"::Void" = load %Void*, %Void** @"::Void", align 8 | |
br label %Ret | |
End: ; preds = %Ret | |
%"::Void1" = load %Void*, %Void** @"::Void", align 8 | |
ret %Void* %"::Void1" | |
Ret: ; preds = %0 | |
br label %End | |
} | |
define %"Shiika::Internal::Ptr"* @_set_String_ptr(%String* %self, %"Shiika::Internal::Ptr"* %ptr) { | |
%"addr_@ptr" = getelementptr inbounds %String, %String* %self, i32 0, i32 2 | |
store %"Shiika::Internal::Ptr"* %ptr, %"Shiika::Internal::Ptr"** %"addr_@ptr", align 8 | |
ret %"Shiika::Internal::Ptr"* %ptr | |
} | |
define %Int* @_set_String_bytesize(%String* %self, %Int* %bytesize) { | |
%"addr_@bytesize" = getelementptr inbounds %String, %String* %self, i32 0, i32 3 | |
store %Int* %bytesize, %Int** %"addr_@bytesize", align 8 | |
ret %Int* %bytesize | |
} | |
define %Int* @String_bytesize(%String* %self) { | |
%"addr_@bytesize" = getelementptr inbounds %String, %String* %self, i32 0, i32 3 | |
%"@bytesize" = load %Int*, %Int** %"addr_@bytesize", align 8 | |
br label %Ret | |
End: ; preds = %Ret | |
%methodResult = phi %Int* [ %"@bytesize", %Ret ] | |
ret %Int* %methodResult | |
Ret: ; preds = %0 | |
br label %End | |
} | |
define %"Shiika::Internal::Ptr"* @String_ptr(%String* %self) { | |
%"addr_@ptr" = getelementptr inbounds %String, %String* %self, i32 0, i32 2 | |
%"@ptr" = load %"Shiika::Internal::Ptr"*, %"Shiika::Internal::Ptr"** %"addr_@ptr", align 8 | |
br label %Ret | |
End: ; preds = %Ret | |
%methodResult = phi %"Shiika::Internal::Ptr"* [ %"@ptr", %Ret ] | |
ret %"Shiika::Internal::Ptr"* %methodResult | |
Ret: ; preds = %0 | |
br label %End | |
} | |
define %String* @String_add_(%String* %self, %String* %other) { | |
alloca: | |
%ret = alloca %MutableString*, align 8 | |
br label %alloca_End | |
alloca_End: ; preds = %alloca | |
%"::MutableString" = load %MutableString*, %MutableString** @"::MutableString", align 8 | |
br label %"Invoke_Meta:MutableString#new" | |
End: ; preds = %Ret | |
%methodResult = phi %String* [ %result27, %Ret ] | |
ret %String* %methodResult | |
"Invoke_Meta:MutableString#new": ; preds = %alloca_End | |
%addr_vtable = getelementptr inbounds %MutableString, %MutableString* %"::MutableString", i32 0, i32 0 | |
%vtable = load i8*, i8** %addr_vtable, align 8 | |
%vtable_ptr = bitcast i8* %vtable to [23 x i8*]* | |
%vtable1 = load [23 x i8*], [23 x i8*]* %vtable_ptr, align 8 | |
%func_raw = extractvalue [23 x i8*] %vtable1, 22 | |
%func = bitcast i8* %func_raw to %MutableString* (%MutableString*)* | |
%result = call %MutableString* %func(%MutableString* %"::MutableString") | |
br label %"Invoke_Meta:MutableString#new_end" | |
"Invoke_Meta:MutableString#new_end": ; preds = %"Invoke_Meta:MutableString#new" | |
store %MutableString* %result, %MutableString** %ret, align 8 | |
%ret2 = load %MutableString*, %MutableString** %ret, align 8 | |
br label %"Invoke_MutableString#append" | |
"Invoke_MutableString#append": ; preds = %"Invoke_Meta:MutableString#new_end" | |
%addr_vtable3 = getelementptr inbounds %MutableString, %MutableString* %ret2, i32 0, i32 0 | |
%vtable4 = load i8*, i8** %addr_vtable3, align 8 | |
%vtable_ptr5 = bitcast i8* %vtable4 to [28 x i8*]* | |
%vtable6 = load [28 x i8*], [28 x i8*]* %vtable_ptr5, align 8 | |
%func_raw7 = extractvalue [28 x i8*] %vtable6, 18 | |
%func8 = bitcast i8* %func_raw7 to %Void* (%MutableString*, %String*)* | |
%result9 = call %Void* %func8(%MutableString* %ret2, %String* %self) | |
br label %"Invoke_MutableString#append_end" | |
"Invoke_MutableString#append_end": ; preds = %"Invoke_MutableString#append" | |
%ret10 = load %MutableString*, %MutableString** %ret, align 8 | |
br label %"Invoke_MutableString#append11" | |
"Invoke_MutableString#append11": ; preds = %"Invoke_MutableString#append_end" | |
%addr_vtable12 = getelementptr inbounds %MutableString, %MutableString* %ret10, i32 0, i32 0 | |
%vtable13 = load i8*, i8** %addr_vtable12, align 8 | |
%vtable_ptr14 = bitcast i8* %vtable13 to [28 x i8*]* | |
%vtable15 = load [28 x i8*], [28 x i8*]* %vtable_ptr14, align 8 | |
%func_raw16 = extractvalue [28 x i8*] %vtable15, 18 | |
%func17 = bitcast i8* %func_raw16 to %Void* (%MutableString*, %String*)* | |
%result18 = call %Void* %func17(%MutableString* %ret10, %String* %other) | |
br label %"Invoke_MutableString#append_end19" | |
"Invoke_MutableString#append_end19": ; preds = %"Invoke_MutableString#append11" | |
%ret20 = load %MutableString*, %MutableString** %ret, align 8 | |
br label %"Invoke_MutableString#_unsafe_to_s" | |
"Invoke_MutableString#_unsafe_to_s": ; preds = %"Invoke_MutableString#append_end19" | |
%addr_vtable21 = getelementptr inbounds %MutableString, %MutableString* %ret20, i32 0, i32 0 | |
%vtable22 = load i8*, i8** %addr_vtable21, align 8 | |
%vtable_ptr23 = bitcast i8* %vtable22 to [28 x i8*]* | |
%vtable24 = load [28 x i8*], [28 x i8*]* %vtable_ptr23, align 8 | |
%func_raw25 = extractvalue [28 x i8*] %vtable24, 17 | |
%func26 = bitcast i8* %func_raw25 to %String* (%MutableString*)* | |
%result27 = call %String* %func26(%MutableString* %ret20) | |
br label %"Invoke_MutableString#_unsafe_to_s_end" | |
"Invoke_MutableString#_unsafe_to_s_end": ; preds = %"Invoke_MutableString#_unsafe_to_s" | |
br label %Ret | |
Ret: ; preds = %"Invoke_MutableString#_unsafe_to_s_end" | |
br label %End | |
} | |
define %String* @String_mul_(%String* %self, %Int* %n) { | |
alloca: | |
%ret = alloca %MutableString*, align 8 | |
br label %alloca_End | |
alloca_End: ; preds = %alloca | |
%"::MutableString" = load %MutableString*, %MutableString** @"::MutableString", align 8 | |
br label %"Invoke_Meta:MutableString#new" | |
End: ; preds = %Ret | |
%methodResult = phi %String* [ %result18, %Ret ] | |
ret %String* %methodResult | |
"Invoke_Meta:MutableString#new": ; preds = %alloca_End | |
%addr_vtable = getelementptr inbounds %MutableString, %MutableString* %"::MutableString", i32 0, i32 0 | |
%vtable = load i8*, i8** %addr_vtable, align 8 | |
%vtable_ptr = bitcast i8* %vtable to [23 x i8*]* | |
%vtable1 = load [23 x i8*], [23 x i8*]* %vtable_ptr, align 8 | |
%func_raw = extractvalue [23 x i8*] %vtable1, 22 | |
%func = bitcast i8* %func_raw to %MutableString* (%MutableString*)* | |
%result = call %MutableString* %func(%MutableString* %"::MutableString") | |
br label %"Invoke_Meta:MutableString#new_end" | |
"Invoke_Meta:MutableString#new_end": ; preds = %"Invoke_Meta:MutableString#new" | |
store %MutableString* %result, %MutableString** %ret, align 8 | |
%"::Fn1" = load %Fn1*, %Fn1** @"::Fn1", align 8 | |
%sk_ptr = call %"Shiika::Internal::Ptr"* @box_i8ptr(i8* bitcast (%Void* (%Fn1*, %Object*)* @"lambda_27_in_String#*" to i8*)) | |
%the_main = bitcast %String* %self to %Object* | |
%"::Array" = load %Array*, %Array** @"::Array", align 8 | |
%result2 = call %Array* @Meta_Array_new(%Array* %"::Array") | |
%capture_item = bitcast %MutableString** %ret to %Object* | |
%_ = call %Void* @Array_push(%Array* %result2, %Object* %capture_item) | |
%result3 = call %Fn1* @Meta_Fn1_new(%Fn1* %"::Fn1", %"Shiika::Internal::Ptr"* %sk_ptr, %Object* %the_main, %Array* %result2) | |
br label %"Invoke_Int#times" | |
"Invoke_Int#times": ; preds = %"Invoke_Meta:MutableString#new_end" | |
%addr_vtable4 = getelementptr inbounds %Int, %Int* %n, i32 0, i32 0 | |
%vtable5 = load i8*, i8** %addr_vtable4, align 8 | |
%vtable_ptr6 = bitcast i8* %vtable5 to [35 x i8*]* | |
%vtable7 = load [35 x i8*], [35 x i8*]* %vtable_ptr6, align 8 | |
%func_raw8 = extractvalue [35 x i8*] %vtable7, 30 | |
%func9 = bitcast i8* %func_raw8 to %Void* (%Int*, %Fn1*)* | |
%result10 = call %Void* %func9(%Int* %n, %Fn1* %result3) | |
br label %"Invoke_Int#times_end" | |
"Invoke_Int#times_end": ; preds = %"Invoke_Int#times" | |
%ret11 = load %MutableString*, %MutableString** %ret, align 8 | |
br label %"Invoke_MutableString#_unsafe_to_s" | |
"Invoke_MutableString#_unsafe_to_s": ; preds = %"Invoke_Int#times_end" | |
%addr_vtable12 = getelementptr inbounds %MutableString, %MutableString* %ret11, i32 0, i32 0 | |
%vtable13 = load i8*, i8** %addr_vtable12, align 8 | |
%vtable_ptr14 = bitcast i8* %vtable13 to [28 x i8*]* | |
%vtable15 = load [28 x i8*], [28 x i8*]* %vtable_ptr14, align 8 | |
%func_raw16 = extractvalue [28 x i8*] %vtable15, 17 | |
%func17 = bitcast i8* %func_raw16 to %String* (%MutableString*)* | |
%result18 = call %String* %func17(%MutableString* %ret11) | |
br label %"Invoke_MutableString#_unsafe_to_s_end" | |
"Invoke_MutableString#_unsafe_to_s_end": ; preds = %"Invoke_MutableString#_unsafe_to_s" | |
br label %Ret | |
Ret: ; preds = %"Invoke_MutableString#_unsafe_to_s_end" | |
br label %End | |
} | |
define %Bool* @String_eq_(%String* %self, %String* %other) { | |
alloca: | |
%ret = alloca %Bool*, align 8 | |
%i = alloca %Int*, align 8 | |
br label %alloca_End | |
alloca_End: ; preds = %alloca | |
br label %IfBegin | |
End: ; preds = %Ret | |
%methodResult = phi %Bool* [ %ifResult73, %Ret ] | |
ret %Bool* %methodResult | |
IfBegin: ; preds = %alloca_End | |
%"addr_@bytesize" = getelementptr inbounds %String, %String* %self, i32 0, i32 3 | |
%"@bytesize" = load %Int*, %Int** %"addr_@bytesize", align 8 | |
br label %"Invoke_String#bytesize" | |
IfThen: ; preds = %"Invoke_Int#==_end" | |
%sk_bool10 = call %Bool* @box_bool(i1 false) | |
br label %IfEnd | |
IfElse: ; preds = %"Invoke_Int#==_end" | |
%sk_bool11 = call %Bool* @box_bool(i1 true) | |
store %Bool* %sk_bool11, %Bool** %ret, align 8 | |
%sk_int = call %Int* @box_int(i64 0) | |
store %Int* %sk_int, %Int** %i, align 8 | |
br label %WhileBegin | |
IfEnd: ; preds = %WhileEnd, %IfThen | |
%ifResult73 = phi %Bool* [ %sk_bool10, %IfThen ], [ %ret72, %WhileEnd ] | |
br label %Ret | |
"Invoke_String#bytesize": ; preds = %IfBegin | |
%addr_vtable = getelementptr inbounds %String, %String* %other, i32 0, i32 0 | |
%vtable = load i8*, i8** %addr_vtable, align 8 | |
%vtable_ptr = bitcast i8* %vtable to [35 x i8*]* | |
%vtable1 = load [35 x i8*], [35 x i8*]* %vtable_ptr, align 8 | |
%func_raw = extractvalue [35 x i8*] %vtable1, 19 | |
%func = bitcast i8* %func_raw to %Int* (%String*)* | |
%result = call %Int* %func(%String* %other) | |
br label %"Invoke_String#bytesize_end" | |
"Invoke_String#bytesize_end": ; preds = %"Invoke_String#bytesize" | |
br label %"Invoke_Int#==" | |
"Invoke_Int#==": ; preds = %"Invoke_String#bytesize_end" | |
%addr_vtable2 = getelementptr inbounds %Int, %Int* %"@bytesize", i32 0, i32 0 | |
%vtable3 = load i8*, i8** %addr_vtable2, align 8 | |
%vtable_ptr4 = bitcast i8* %vtable3 to [35 x i8*]* | |
%vtable5 = load [35 x i8*], [35 x i8*]* %vtable_ptr4, align 8 | |
%func_raw6 = extractvalue [35 x i8*] %vtable5, 2 | |
%func7 = bitcast i8* %func_raw6 to %Bool* (%Int*, %Int*)* | |
%result8 = call %Bool* %func7(%Int* %"@bytesize", %Int* %result) | |
br label %"Invoke_Int#==_end" | |
"Invoke_Int#==_end": ; preds = %"Invoke_Int#==" | |
%llvm_bool = call i1 @unbox_bool(%Bool* %result8) | |
%b2 = xor i1 %llvm_bool, true | |
%sk_bool = call %Bool* @box_bool(i1 %b2) | |
%llvm_bool9 = call i1 @unbox_bool(%Bool* %sk_bool) | |
%istrue = icmp eq i1 %llvm_bool9, true | |
br i1 %istrue, label %IfThen, label %IfElse | |
WhileBegin: ; preds = %"Invoke_Int#+_end", %IfElse | |
%i12 = load %Int*, %Int** %i, align 8 | |
%"addr_@bytesize13" = getelementptr inbounds %String, %String* %self, i32 0, i32 3 | |
%"@bytesize14" = load %Int*, %Int** %"addr_@bytesize13", align 8 | |
br label %"Invoke_Int#<" | |
"Invoke_Int#<": ; preds = %WhileBegin | |
%addr_vtable15 = getelementptr inbounds %Int, %Int* %i12, i32 0, i32 0 | |
%vtable16 = load i8*, i8** %addr_vtable15, align 8 | |
%vtable_ptr17 = bitcast i8* %vtable16 to [35 x i8*]* | |
%vtable18 = load [35 x i8*], [35 x i8*]* %vtable_ptr17, align 8 | |
%func_raw19 = extractvalue [35 x i8*] %vtable18, 0 | |
%func20 = bitcast i8* %func_raw19 to %Bool* (%Int*, %Int*)* | |
%result21 = call %Bool* %func20(%Int* %i12, %Int* %"@bytesize14") | |
br label %"Invoke_Int#<_end" | |
"Invoke_Int#<_end": ; preds = %"Invoke_Int#<" | |
%llvm_bool22 = call i1 @unbox_bool(%Bool* %result21) | |
%istrue23 = icmp eq i1 %llvm_bool22, true | |
br i1 %istrue23, label %WhileBody, label %WhileEnd | |
WhileBody: ; preds = %"Invoke_Int#<_end" | |
br label %IfBegin24 | |
WhileEnd: ; preds = %"Invoke_Int#<_end" | |
%"::Void71" = load %Void*, %Void** @"::Void", align 8 | |
%ret72 = load %Bool*, %Bool** %ret, align 8 | |
br label %IfEnd | |
IfBegin24: ; preds = %WhileBody | |
%i28 = load %Int*, %Int** %i, align 8 | |
br label %"Invoke_String#nth_byte" | |
IfThen25: ; preds = %"Invoke_Int#==_end54" | |
%sk_bool60 = call %Bool* @box_bool(i1 false) | |
store %Bool* %sk_bool60, %Bool** %ret, align 8 | |
%"::Void" = load %Void*, %Void** @"::Void", align 8 | |
br label %IfEnd27 | |
IfElse26: ; preds = %"Invoke_Int#==_end54" | |
%"::Void61" = load %Void*, %Void** @"::Void", align 8 | |
br label %IfEnd27 | |
IfEnd27: ; preds = %IfElse26, %IfThen25 | |
%ifResult = phi %Void* [ %"::Void", %IfThen25 ], [ %"::Void61", %IfElse26 ] | |
%i62 = load %Int*, %Int** %i, align 8 | |
%sk_int63 = call %Int* @box_int(i64 1) | |
br label %"Invoke_Int#+" | |
"Invoke_String#nth_byte": ; preds = %IfBegin24 | |
%addr_vtable29 = getelementptr inbounds %String, %String* %self, i32 0, i32 0 | |
%vtable30 = load i8*, i8** %addr_vtable29, align 8 | |
%vtable_ptr31 = bitcast i8* %vtable30 to [35 x i8*]* | |
%vtable32 = load [35 x i8*], [35 x i8*]* %vtable_ptr31, align 8 | |
%func_raw33 = extractvalue [35 x i8*] %vtable32, 27 | |
%func34 = bitcast i8* %func_raw33 to %Int* (%String*, %Int*)* | |
%result35 = call %Int* %func34(%String* %self, %Int* %i28) | |
br label %"Invoke_String#nth_byte_end" | |
"Invoke_String#nth_byte_end": ; preds = %"Invoke_String#nth_byte" | |
%i36 = load %Int*, %Int** %i, align 8 | |
br label %"Invoke_String#nth_byte37" | |
"Invoke_String#nth_byte37": ; preds = %"Invoke_String#nth_byte_end" | |
%addr_vtable38 = getelementptr inbounds %String, %String* %other, i32 0, i32 0 | |
%vtable39 = load i8*, i8** %addr_vtable38, align 8 | |
%vtable_ptr40 = bitcast i8* %vtable39 to [35 x i8*]* | |
%vtable41 = load [35 x i8*], [35 x i8*]* %vtable_ptr40, align 8 | |
%func_raw42 = extractvalue [35 x i8*] %vtable41, 27 | |
%func43 = bitcast i8* %func_raw42 to %Int* (%String*, %Int*)* | |
%result44 = call %Int* %func43(%String* %other, %Int* %i36) | |
br label %"Invoke_String#nth_byte_end45" | |
"Invoke_String#nth_byte_end45": ; preds = %"Invoke_String#nth_byte37" | |
br label %"Invoke_Int#==46" | |
"Invoke_Int#==46": ; preds = %"Invoke_String#nth_byte_end45" | |
%addr_vtable47 = getelementptr inbounds %Int, %Int* %result35, i32 0, i32 0 | |
%vtable48 = load i8*, i8** %addr_vtable47, align 8 | |
%vtable_ptr49 = bitcast i8* %vtable48 to [35 x i8*]* | |
%vtable50 = load [35 x i8*], [35 x i8*]* %vtable_ptr49, align 8 | |
%func_raw51 = extractvalue [35 x i8*] %vtable50, 2 | |
%func52 = bitcast i8* %func_raw51 to %Bool* (%Int*, %Int*)* | |
%result53 = call %Bool* %func52(%Int* %result35, %Int* %result44) | |
br label %"Invoke_Int#==_end54" | |
"Invoke_Int#==_end54": ; preds = %"Invoke_Int#==46" | |
%llvm_bool55 = call i1 @unbox_bool(%Bool* %result53) | |
%b256 = xor i1 %llvm_bool55, true | |
%sk_bool57 = call %Bool* @box_bool(i1 %b256) | |
%llvm_bool58 = call i1 @unbox_bool(%Bool* %sk_bool57) | |
%istrue59 = icmp eq i1 %llvm_bool58, true | |
br i1 %istrue59, label %IfThen25, label %IfElse26 | |
"Invoke_Int#+": ; preds = %IfEnd27 | |
%addr_vtable64 = getelementptr inbounds %Int, %Int* %i62, i32 0, i32 0 | |
%vtable65 = load i8*, i8** %addr_vtable64, align 8 | |
%vtable_ptr66 = bitcast i8* %vtable65 to [35 x i8*]* | |
%vtable67 = load [35 x i8*], [35 x i8*]* %vtable_ptr66, align 8 | |
%func_raw68 = extractvalue [35 x i8*] %vtable67, 18 | |
%func69 = bitcast i8* %func_raw68 to %Int* (%Int*, %Int*)* | |
%result70 = call %Int* %func69(%Int* %i62, %Int* %sk_int63) | |
br label %"Invoke_Int#+_end" | |
"Invoke_Int#+_end": ; preds = %"Invoke_Int#+" | |
store %Int* %result70, %Int** %i, align 8 | |
br label %WhileBegin | |
Ret: ; preds = %IfEnd | |
br label %End | |
} | |
define %Array* @String_bytes(%String* %self) { | |
alloca: | |
%"ary@29_" = alloca %Array*, align 8 | |
%ret = alloca %Array*, align 8 | |
br label %alloca_End | |
alloca_End: ; preds = %alloca | |
%"::Array" = load %Array*, %Array** @"::Array", align 8 | |
%"::Array1" = load %Array*, %Array** @"::Array", align 8 | |
%"::Class" = load %Class.0*, %Class.0** @"::Class", align 8 | |
br label %"Invoke_Class#_specialize1" | |
End: ; preds = %Ret | |
%methodResult = phi %Array* [ %ret43, %Ret ] | |
ret %Array* %methodResult | |
"Invoke_Class#_specialize1": ; preds = %alloca_End | |
%addr_vtable = getelementptr inbounds %Array, %Array* %"::Array1", i32 0, i32 0 | |
%vtable = load i8*, i8** %addr_vtable, align 8 | |
%vtable_ptr = bitcast i8* %vtable to [25 x i8*]* | |
%vtable2 = load [25 x i8*], [25 x i8*]* %vtable_ptr, align 8 | |
%func_raw = extractvalue [25 x i8*] %vtable2, 18 | |
%func = bitcast i8* %func_raw to %Array* (%Array*, %Class.0*)* | |
%result = call %Array* %func(%Array* %"::Array1", %Class.0* %"::Class") | |
br label %"Invoke_Class#_specialize1_end" | |
"Invoke_Class#_specialize1_end": ; preds = %"Invoke_Class#_specialize1" | |
br label %"Invoke_Array#new" | |
"Invoke_Array#new": ; preds = %"Invoke_Class#_specialize1_end" | |
%addr_vtable3 = getelementptr inbounds %Array, %Array* %result, i32 0, i32 0 | |
%vtable4 = load i8*, i8** %addr_vtable3, align 8 | |
%vtable_ptr5 = bitcast i8* %vtable4 to [25 x i8*]* | |
%vtable6 = load [25 x i8*], [25 x i8*]* %vtable_ptr5, align 8 | |
%func_raw7 = extractvalue [25 x i8*] %vtable6, 23 | |
%func8 = bitcast i8* %func_raw7 to %Array* (%Array*)* | |
%result9 = call %Array* %func8(%Array* %result) | |
br label %"Invoke_Array#new_end" | |
"Invoke_Array#new_end": ; preds = %"Invoke_Array#new" | |
store %Array* %result9, %Array** %"ary@29_", align 8 | |
%"ary@29_10" = load %Array*, %Array** %"ary@29_", align 8 | |
%"::Int" = load %Int*, %Int** @"::Int", align 8 | |
%as = bitcast %Int* %"::Int" to %Object* | |
br label %"Invoke_Array#push" | |
"Invoke_Array#push": ; preds = %"Invoke_Array#new_end" | |
%addr_vtable11 = getelementptr inbounds %Array, %Array* %"ary@29_10", i32 0, i32 0 | |
%vtable12 = load i8*, i8** %addr_vtable11, align 8 | |
%vtable_ptr13 = bitcast i8* %vtable12 to [54 x i8*]* | |
%vtable14 = load [54 x i8*], [54 x i8*]* %vtable_ptr13, align 8 | |
%func_raw15 = extractvalue [54 x i8*] %vtable14, 45 | |
%func16 = bitcast i8* %func_raw15 to %Void* (%Array*, %Object*)* | |
%result17 = call %Void* %func16(%Array* %"ary@29_10", %Object* %as) | |
br label %"Invoke_Array#push_end" | |
"Invoke_Array#push_end": ; preds = %"Invoke_Array#push" | |
%"ary@29_18" = load %Array*, %Array** %"ary@29_", align 8 | |
br label %"Invoke_Class#<>" | |
"Invoke_Class#<>": ; preds = %"Invoke_Array#push_end" | |
%addr_vtable19 = getelementptr inbounds %Array, %Array* %"::Array", i32 0, i32 0 | |
%vtable20 = load i8*, i8** %addr_vtable19, align 8 | |
%vtable_ptr21 = bitcast i8* %vtable20 to [25 x i8*]* | |
%vtable22 = load [25 x i8*], [25 x i8*]* %vtable_ptr21, align 8 | |
%func_raw23 = extractvalue [25 x i8*] %vtable22, 16 | |
%func24 = bitcast i8* %func_raw23 to %Array* (%Array*, %Array*)* | |
%result25 = call %Array* %func24(%Array* %"::Array", %Array* %"ary@29_18") | |
br label %"Invoke_Class#<>_end" | |
"Invoke_Class#<>_end": ; preds = %"Invoke_Class#<>" | |
br label %"Invoke_Meta:Array#new" | |
"Invoke_Meta:Array#new": ; preds = %"Invoke_Class#<>_end" | |
%addr_vtable26 = getelementptr inbounds %Array, %Array* %result25, i32 0, i32 0 | |
%vtable27 = load i8*, i8** %addr_vtable26, align 8 | |
%vtable_ptr28 = bitcast i8* %vtable27 to [25 x i8*]* | |
%vtable29 = load [25 x i8*], [25 x i8*]* %vtable_ptr28, align 8 | |
%func_raw30 = extractvalue [25 x i8*] %vtable29, 23 | |
%func31 = bitcast i8* %func_raw30 to %Array* (%Array*)* | |
%result32 = call %Array* %func31(%Array* %result25) | |
br label %"Invoke_Meta:Array#new_end" | |
"Invoke_Meta:Array#new_end": ; preds = %"Invoke_Meta:Array#new" | |
store %Array* %result32, %Array** %ret, align 8 | |
%"::Fn1" = load %Fn1*, %Fn1** @"::Fn1", align 8 | |
%sk_ptr = call %"Shiika::Internal::Ptr"* @box_i8ptr(i8* bitcast (%Void* (%Fn1*, %Object*)* @"lambda_28_in_String#bytes" to i8*)) | |
%the_main = bitcast %String* %self to %Object* | |
%"::Array33" = load %Array*, %Array** @"::Array", align 8 | |
%result34 = call %Array* @Meta_Array_new(%Array* %"::Array33") | |
%capture_item = bitcast %Array** %ret to %Object* | |
%_ = call %Void* @Array_push(%Array* %result34, %Object* %capture_item) | |
%result35 = call %Fn1* @Meta_Fn1_new(%Fn1* %"::Fn1", %"Shiika::Internal::Ptr"* %sk_ptr, %Object* %the_main, %Array* %result34) | |
br label %"Invoke_String#each_byte" | |
"Invoke_String#each_byte": ; preds = %"Invoke_Meta:Array#new_end" | |
%addr_vtable36 = getelementptr inbounds %String, %String* %self, i32 0, i32 0 | |
%vtable37 = load i8*, i8** %addr_vtable36, align 8 | |
%vtable_ptr38 = bitcast i8* %vtable37 to [35 x i8*]* | |
%vtable39 = load [35 x i8*], [35 x i8*]* %vtable_ptr38, align 8 | |
%func_raw40 = extractvalue [35 x i8*] %vtable39, 21 | |
%func41 = bitcast i8* %func_raw40 to %Void* (%String*, %Fn1*)* | |
%result42 = call %Void* %func41(%String* %self, %Fn1* %result35) | |
br label %"Invoke_String#each_byte_end" | |
"Invoke_String#each_byte_end": ; preds = %"Invoke_String#each_byte" | |
%ret43 = load %Array*, %Array** %ret, align 8 | |
br label %Ret | |
Ret: ; preds = %"Invoke_String#each_byte_end" | |
br label %End | |
} | |
define %Void* @String_each__byte(%String* %self, %Fn1* %f) { | |
%"addr_@bytesize" = getelementptr inbounds %String, %String* %self, i32 0, i32 3 | |
%"@bytesize" = load %Int*, %Int** %"addr_@bytesize", align 8 | |
%"::Fn1" = load %Fn1*, %Fn1** @"::Fn1", align 8 | |
%sk_ptr = call %"Shiika::Internal::Ptr"* @box_i8ptr(i8* bitcast (%Void* (%Fn1*, %Object*)* @"lambda_29_in_String#each_byte" to i8*)) | |
%the_main = bitcast %String* %self to %Object* | |
%"::Array" = load %Array*, %Array** @"::Array", align 8 | |
%result = call %Array* @Meta_Array_new(%Array* %"::Array") | |
%capture_item = bitcast %Fn1* %f to %Object* | |
%_ = call %Void* @Array_push(%Array* %result, %Object* %capture_item) | |
%result1 = call %Fn1* @Meta_Fn1_new(%Fn1* %"::Fn1", %"Shiika::Internal::Ptr"* %sk_ptr, %Object* %the_main, %Array* %result) | |
br label %"Invoke_Int#times" | |
End: ; preds = %Ret | |
%"::Void4" = load %Void*, %Void** @"::Void", align 8 | |
ret %Void* %"::Void4" | |
"Invoke_Int#times": ; preds = %0 | |
%addr_vtable = getelementptr inbounds %Int, %Int* %"@bytesize", i32 0, i32 0 | |
%vtable = load i8*, i8** %addr_vtable, align 8 | |
%vtable_ptr = bitcast i8* %vtable to [35 x i8*]* | |
%vtable2 = load [35 x i8*], [35 x i8*]* %vtable_ptr, align 8 | |
%func_raw = extractvalue [35 x i8*] %vtable2, 30 | |
%func = bitcast i8* %func_raw to %Void* (%Int*, %Fn1*)* | |
%result3 = call %Void* %func(%Int* %"@bytesize", %Fn1* %result1) | |
br label %"Invoke_Int#times_end" | |
"Invoke_Int#times_end": ; preds = %"Invoke_Int#times" | |
%"::Void" = load %Void*, %Void** @"::Void", align 8 | |
br label %Ret | |
Ret: ; preds = %"Invoke_Int#times_end" | |
br label %End | |
} | |
define %Void* @String_each__char(%String* %self, %Fn1* %f) { | |
%"addr_@bytesize" = getelementptr inbounds %String, %String* %self, i32 0, i32 3 | |
%"@bytesize" = load %Int*, %Int** %"addr_@bytesize", align 8 | |
%"::Fn1" = load %Fn1*, %Fn1** @"::Fn1", align 8 | |
%sk_ptr = call %"Shiika::Internal::Ptr"* @box_i8ptr(i8* bitcast (%Void* (%Fn1*, %Object*)* @"lambda_30_in_String#each_char" to i8*)) | |
%the_main = bitcast %String* %self to %Object* | |
%"::Array" = load %Array*, %Array** @"::Array", align 8 | |
%result = call %Array* @Meta_Array_new(%Array* %"::Array") | |
%capture_item = bitcast %Fn1* %f to %Object* | |
%_ = call %Void* @Array_push(%Array* %result, %Object* %capture_item) | |
%result1 = call %Fn1* @Meta_Fn1_new(%Fn1* %"::Fn1", %"Shiika::Internal::Ptr"* %sk_ptr, %Object* %the_main, %Array* %result) | |
br label %"Invoke_Int#times" | |
End: ; preds = %Ret | |
%"::Void4" = load %Void*, %Void** @"::Void", align 8 | |
ret %Void* %"::Void4" | |
"Invoke_Int#times": ; preds = %0 | |
%addr_vtable = getelementptr inbounds %Int, %Int* %"@bytesize", i32 0, i32 0 | |
%vtable = load i8*, i8** %addr_vtable, align 8 | |
%vtable_ptr = bitcast i8* %vtable to [35 x i8*]* | |
%vtable2 = load [35 x i8*], [35 x i8*]* %vtable_ptr, align 8 | |
%func_raw = extractvalue [35 x i8*] %vtable2, 30 | |
%func = bitcast i8* %func_raw to %Void* (%Int*, %Fn1*)* | |
%result3 = call %Void* %func(%Int* %"@bytesize", %Fn1* %result1) | |
br label %"Invoke_Int#times_end" | |
"Invoke_Int#times_end": ; preds = %"Invoke_Int#times" | |
%"::Void" = load %Void*, %Void** @"::Void", align 8 | |
br label %Ret | |
Ret: ; preds = %"Invoke_Int#times_end" | |
br label %End | |
} | |
define %Void* @String_each__line(%String* %self, %Fn1* %f) { | |
br label %"Invoke_String#lines" | |
End: ; preds = %Ret | |
%"::Void9" = load %Void*, %Void** @"::Void", align 8 | |
ret %Void* %"::Void9" | |
"Invoke_String#lines": ; preds = %0 | |
%addr_vtable = getelementptr inbounds %String, %String* %self, i32 0, i32 0 | |
%vtable = load i8*, i8** %addr_vtable, align 8 | |
%vtable_ptr = bitcast i8* %vtable to [35 x i8*]* | |
%vtable1 = load [35 x i8*], [35 x i8*]* %vtable_ptr, align 8 | |
%func_raw = extractvalue [35 x i8*] %vtable1, 26 | |
%func = bitcast i8* %func_raw to %Array* (%String*)* | |
%result = call %Array* %func(%String* %self) | |
br label %"Invoke_String#lines_end" | |
"Invoke_String#lines_end": ; preds = %"Invoke_String#lines" | |
%as = bitcast %Fn1* %f to %Object* | |
br label %"Invoke_Array#each" | |
"Invoke_Array#each": ; preds = %"Invoke_String#lines_end" | |
%addr_vtable2 = getelementptr inbounds %Array, %Array* %result, i32 0, i32 0 | |
%vtable3 = load i8*, i8** %addr_vtable2, align 8 | |
%vtable_ptr4 = bitcast i8* %vtable3 to [54 x i8*]* | |
%vtable5 = load [54 x i8*], [54 x i8*]* %vtable_ptr4, align 8 | |
%func_raw6 = extractvalue [54 x i8*] %vtable5, 29 | |
%func7 = bitcast i8* %func_raw6 to %Void* (%Array*, %Object*)* | |
%result8 = call %Void* %func7(%Array* %result, %Object* %as) | |
br label %"Invoke_Array#each_end" | |
"Invoke_Array#each_end": ; preds = %"Invoke_Array#each" | |
%"::Void" = load %Void*, %Void** @"::Void", align 8 | |
br label %Ret | |
Ret: ; preds = %"Invoke_Array#each_end" | |
br label %End | |
} | |
define %Bool* @"String_ends__with?"(%String* %self, %String* %s) { | |
alloca: | |
%from = alloca %Int*, align 8 | |
br label %alloca_End | |
alloca_End: ; preds = %alloca | |
br label %IfBegin | |
End: ; preds = %Ret | |
%methodResult = phi %Bool* [ %ifResult, %Ret ] | |
ret %Bool* %methodResult | |
IfBegin: ; preds = %alloca_End | |
br label %"Invoke_String#bytesize" | |
IfThen: ; preds = %"Invoke_Int#>_end" | |
%sk_bool = call %Bool* @box_bool(i1 false) | |
br label %IfEnd | |
IfElse: ; preds = %"Invoke_Int#>_end" | |
%"addr_@bytesize9" = getelementptr inbounds %String, %String* %self, i32 0, i32 3 | |
%"@bytesize10" = load %Int*, %Int** %"addr_@bytesize9", align 8 | |
br label %"Invoke_String#bytesize11" | |
IfEnd: ; preds = %"Invoke_String#==_end", %IfThen | |
%ifResult = phi %Bool* [ %sk_bool, %IfThen ], [ %result50, %"Invoke_String#==_end" ] | |
br label %Ret | |
"Invoke_String#bytesize": ; preds = %IfBegin | |
%addr_vtable = getelementptr inbounds %String, %String* %s, i32 0, i32 0 | |
%vtable = load i8*, i8** %addr_vtable, align 8 | |
%vtable_ptr = bitcast i8* %vtable to [35 x i8*]* | |
%vtable1 = load [35 x i8*], [35 x i8*]* %vtable_ptr, align 8 | |
%func_raw = extractvalue [35 x i8*] %vtable1, 19 | |
%func = bitcast i8* %func_raw to %Int* (%String*)* | |
%result = call %Int* %func(%String* %s) | |
br label %"Invoke_String#bytesize_end" | |
"Invoke_String#bytesize_end": ; preds = %"Invoke_String#bytesize" | |
%"addr_@bytesize" = getelementptr inbounds %String, %String* %self, i32 0, i32 3 | |
%"@bytesize" = load %Int*, %Int** %"addr_@bytesize", align 8 | |
br label %"Invoke_Int#>" | |
"Invoke_Int#>": ; preds = %"Invoke_String#bytesize_end" | |
%addr_vtable2 = getelementptr inbounds %Int, %Int* %result, i32 0, i32 0 | |
%vtable3 = load i8*, i8** %addr_vtable2, align 8 | |
%vtable_ptr4 = bitcast i8* %vtable3 to [35 x i8*]* | |
%vtable5 = load [35 x i8*], [35 x i8*]* %vtable_ptr4, align 8 | |
%func_raw6 = extractvalue [35 x i8*] %vtable5, 3 | |
%func7 = bitcast i8* %func_raw6 to %Bool* (%Int*, %Int*)* | |
%result8 = call %Bool* %func7(%Int* %result, %Int* %"@bytesize") | |
br label %"Invoke_Int#>_end" | |
"Invoke_Int#>_end": ; preds = %"Invoke_Int#>" | |
%llvm_bool = call i1 @unbox_bool(%Bool* %result8) | |
%istrue = icmp eq i1 %llvm_bool, true | |
br i1 %istrue, label %IfThen, label %IfElse | |
"Invoke_String#bytesize11": ; preds = %IfElse | |
%addr_vtable12 = getelementptr inbounds %String, %String* %s, i32 0, i32 0 | |
%vtable13 = load i8*, i8** %addr_vtable12, align 8 | |
%vtable_ptr14 = bitcast i8* %vtable13 to [35 x i8*]* | |
%vtable15 = load [35 x i8*], [35 x i8*]* %vtable_ptr14, align 8 | |
%func_raw16 = extractvalue [35 x i8*] %vtable15, 19 | |
%func17 = bitcast i8* %func_raw16 to %Int* (%String*)* | |
%result18 = call %Int* %func17(%String* %s) | |
br label %"Invoke_String#bytesize_end19" | |
"Invoke_String#bytesize_end19": ; preds = %"Invoke_String#bytesize11" | |
br label %"Invoke_Int#-" | |
"Invoke_Int#-": ; preds = %"Invoke_String#bytesize_end19" | |
%addr_vtable20 = getelementptr inbounds %Int, %Int* %"@bytesize10", i32 0, i32 0 | |
%vtable21 = load i8*, i8** %addr_vtable20, align 8 | |
%vtable_ptr22 = bitcast i8* %vtable21 to [35 x i8*]* | |
%vtable23 = load [35 x i8*], [35 x i8*]* %vtable_ptr22, align 8 | |
%func_raw24 = extractvalue [35 x i8*] %vtable23, 19 | |
%func25 = bitcast i8* %func_raw24 to %Int* (%Int*, %Int*)* | |
%result26 = call %Int* %func25(%Int* %"@bytesize10", %Int* %result18) | |
br label %"Invoke_Int#-_end" | |
"Invoke_Int#-_end": ; preds = %"Invoke_Int#-" | |
store %Int* %result26, %Int** %from, align 8 | |
%from27 = load %Int*, %Int** %from, align 8 | |
br label %"Invoke_String#bytesize28" | |
"Invoke_String#bytesize28": ; preds = %"Invoke_Int#-_end" | |
%addr_vtable29 = getelementptr inbounds %String, %String* %s, i32 0, i32 0 | |
%vtable30 = load i8*, i8** %addr_vtable29, align 8 | |
%vtable_ptr31 = bitcast i8* %vtable30 to [35 x i8*]* | |
%vtable32 = load [35 x i8*], [35 x i8*]* %vtable_ptr31, align 8 | |
%func_raw33 = extractvalue [35 x i8*] %vtable32, 19 | |
%func34 = bitcast i8* %func_raw33 to %Int* (%String*)* | |
%result35 = call %Int* %func34(%String* %s) | |
br label %"Invoke_String#bytesize_end36" | |
"Invoke_String#bytesize_end36": ; preds = %"Invoke_String#bytesize28" | |
br label %"Invoke_String#slice_bytes" | |
"Invoke_String#slice_bytes": ; preds = %"Invoke_String#bytesize_end36" | |
%addr_vtable37 = getelementptr inbounds %String, %String* %self, i32 0, i32 0 | |
%vtable38 = load i8*, i8** %addr_vtable37, align 8 | |
%vtable_ptr39 = bitcast i8* %vtable38 to [35 x i8*]* | |
%vtable40 = load [35 x i8*], [35 x i8*]* %vtable_ptr39, align 8 | |
%func_raw41 = extractvalue [35 x i8*] %vtable40, 30 | |
%func42 = bitcast i8* %func_raw41 to %String* (%String*, %Int*, %Int*)* | |
%result43 = call %String* %func42(%String* %self, %Int* %from27, %Int* %result35) | |
br label %"Invoke_String#slice_bytes_end" | |
"Invoke_String#slice_bytes_end": ; preds = %"Invoke_String#slice_bytes" | |
br label %"Invoke_String#==" | |
"Invoke_String#==": ; preds = %"Invoke_String#slice_bytes_end" | |
%addr_vtable44 = getelementptr inbounds %String, %String* %result43, i32 0, i32 0 | |
%vtable45 = load i8*, i8** %addr_vtable44, align 8 | |
%vtable_ptr46 = bitcast i8* %vtable45 to [35 x i8*]* | |
%vtable47 = load [35 x i8*], [35 x i8*]* %vtable_ptr46, align 8 | |
%func_raw48 = extractvalue [35 x i8*] %vtable47, 2 | |
%func49 = bitcast i8* %func_raw48 to %Bool* (%String*, %String*)* | |
%result50 = call %Bool* %func49(%String* %result43, %String* %s) | |
br label %"Invoke_String#==_end" | |
"Invoke_String#==_end": ; preds = %"Invoke_String#==" | |
br label %IfEnd | |
Ret: ; preds = %IfEnd | |
br label %End | |
} | |
define %String* @String_inspect(%String* %self) { | |
%sk_str = call %String* @gen_literal_string(i8* getelementptr inbounds ([2 x i8], [2 x i8]* @str_70, i32 0, i32 0), i64 1) | |
br label %"Invoke_String#+" | |
End: ; preds = %Ret | |
%methodResult = phi %String* [ %result10, %Ret ] | |
ret %String* %methodResult | |
"Invoke_String#+": ; preds = %0 | |
%addr_vtable = getelementptr inbounds %String, %String* %sk_str, i32 0, i32 0 | |
%vtable = load i8*, i8** %addr_vtable, align 8 | |
%vtable_ptr = bitcast i8* %vtable to [35 x i8*]* | |
%vtable1 = load [35 x i8*], [35 x i8*]* %vtable_ptr, align 8 | |
%func_raw = extractvalue [35 x i8*] %vtable1, 17 | |
%func = bitcast i8* %func_raw to %String* (%String*, %String*)* | |
%result = call %String* %func(%String* %sk_str, %String* %self) | |
br label %"Invoke_String#+_end" | |
"Invoke_String#+_end": ; preds = %"Invoke_String#+" | |
%sk_str2 = call %String* @gen_literal_string(i8* getelementptr inbounds ([2 x i8], [2 x i8]* @str_69, i32 0, i32 0), i64 1) | |
br label %"Invoke_String#+3" | |
"Invoke_String#+3": ; preds = %"Invoke_String#+_end" | |
%addr_vtable4 = getelementptr inbounds %String, %String* %result, i32 0, i32 0 | |
%vtable5 = load i8*, i8** %addr_vtable4, align 8 | |
%vtable_ptr6 = bitcast i8* %vtable5 to [35 x i8*]* | |
%vtable7 = load [35 x i8*], [35 x i8*]* %vtable_ptr6, align 8 | |
%func_raw8 = extractvalue [35 x i8*] %vtable7, 17 | |
%func9 = bitcast i8* %func_raw8 to %String* (%String*, %String*)* | |
%result10 = call %String* %func9(%String* %result, %String* %sk_str2) | |
br label %"Invoke_String#+_end11" | |
"Invoke_String#+_end11": ; preds = %"Invoke_String#+3" | |
br label %Ret | |
Ret: ; preds = %"Invoke_String#+_end11" | |
br label %End | |
} | |
define %Bool* @"String_empty?"(%String* %self) { | |
%"addr_@bytesize" = getelementptr inbounds %String, %String* %self, i32 0, i32 3 | |
%"@bytesize" = load %Int*, %Int** %"addr_@bytesize", align 8 | |
%sk_int = call %Int* @box_int(i64 0) | |
br label %"Invoke_Int#==" | |
End: ; preds = %Ret | |
%methodResult = phi %Bool* [ %result, %Ret ] | |
ret %Bool* %methodResult | |
"Invoke_Int#==": ; preds = %0 | |
%addr_vtable = getelementptr inbounds %Int, %Int* %"@bytesize", i32 0, i32 0 | |
%vtable = load i8*, i8** %addr_vtable, align 8 | |
%vtable_ptr = bitcast i8* %vtable to [35 x i8*]* | |
%vtable1 = load [35 x i8*], [35 x i8*]* %vtable_ptr, align 8 | |
%func_raw = extractvalue [35 x i8*] %vtable1, 2 | |
%func = bitcast i8* %func_raw to %Bool* (%Int*, %Int*)* | |
%result = call %Bool* %func(%Int* %"@bytesize", %Int* %sk_int) | |
br label %"Invoke_Int#==_end" | |
"Invoke_Int#==_end": ; preds = %"Invoke_Int#==" | |
br label %Ret | |
Ret: ; preds = %"Invoke_Int#==_end" | |
br label %End | |
} | |
define %Array* @String_lines(%String* %self) { | |
%sk_str = call %String* @gen_literal_string(i8* getelementptr inbounds ([2 x i8], [2 x i8]* @str_71, i32 0, i32 0), i64 1) | |
br label %"Invoke_String#split" | |
End: ; preds = %Ret | |
%methodResult = phi %Array* [ %result, %Ret ] | |
ret %Array* %methodResult | |
"Invoke_String#split": ; preds = %0 | |
%addr_vtable = getelementptr inbounds %String, %String* %self, i32 0, i32 0 | |
%vtable = load i8*, i8** %addr_vtable, align 8 | |
%vtable_ptr = bitcast i8* %vtable to [35 x i8*]* | |
%vtable1 = load [35 x i8*], [35 x i8*]* %vtable_ptr, align 8 | |
%func_raw = extractvalue [35 x i8*] %vtable1, 31 | |
%func = bitcast i8* %func_raw to %Array* (%String*, %String*)* | |
%result = call %Array* %func(%String* %self, %String* %sk_str) | |
br label %"Invoke_String#split_end" | |
"Invoke_String#split_end": ; preds = %"Invoke_String#split" | |
br label %Ret | |
Ret: ; preds = %"Invoke_String#split_end" | |
br label %End | |
} | |
define %Int* @String_nth__byte(%String* %self, %Int* %n) { | |
br label %IfBegin | |
End: ; preds = %Ret | |
%methodResult = phi %Int* [ %result46, %Ret ] | |
ret %Int* %methodResult | |
IfBegin: ; preds = %0 | |
%sk_int = call %Int* @box_int(i64 0) | |
br label %"Invoke_Int#<" | |
IfThen: ; preds = %"Invoke_Int#<_end" | |
%as = bitcast %String* %self to %Object* | |
%sk_str = call %String* @gen_literal_string(i8* getelementptr inbounds ([40 x i8], [40 x i8]* @str_72, i32 0, i32 0), i64 39) | |
br label %"Invoke_Object#panic" | |
IfElse: ; preds = %"Invoke_Int#<_end" | |
%"::Void8" = load %Void*, %Void** @"::Void", align 8 | |
br label %IfEnd | |
IfEnd: ; preds = %IfElse | |
br label %IfBegin9 | |
"Invoke_Int#<": ; preds = %IfBegin | |
%addr_vtable = getelementptr inbounds %Int, %Int* %n, i32 0, i32 0 | |
%vtable = load i8*, i8** %addr_vtable, align 8 | |
%vtable_ptr = bitcast i8* %vtable to [35 x i8*]* | |
%vtable1 = load [35 x i8*], [35 x i8*]* %vtable_ptr, align 8 | |
%func_raw = extractvalue [35 x i8*] %vtable1, 0 | |
%func = bitcast i8* %func_raw to %Bool* (%Int*, %Int*)* | |
%result = call %Bool* %func(%Int* %n, %Int* %sk_int) | |
br label %"Invoke_Int#<_end" | |
"Invoke_Int#<_end": ; preds = %"Invoke_Int#<" | |
%llvm_bool = call i1 @unbox_bool(%Bool* %result) | |
%istrue = icmp eq i1 %llvm_bool, true | |
br i1 %istrue, label %IfThen, label %IfElse | |
"Invoke_Object#panic": ; preds = %IfThen | |
%addr_vtable2 = getelementptr inbounds %Object, %Object* %as, i32 0, i32 0 | |
%vtable3 = load i8*, i8** %addr_vtable2, align 8 | |
%vtable_ptr4 = bitcast i8* %vtable3 to [16 x i8*]* | |
%vtable5 = load [16 x i8*], [16 x i8*]* %vtable_ptr4, align 8 | |
%func_raw6 = extractvalue [16 x i8*] %vtable5, 12 | |
%func7 = bitcast i8* %func_raw6 to void (%Object*, %String*)* | |
call void %func7(%Object* %as, %String* %sk_str) | |
%"::Void" = load %Void*, %Void** @"::Void", align 8 | |
unreachable | |
IfBegin9: ; preds = %IfEnd | |
%"addr_@bytesize" = getelementptr inbounds %String, %String* %self, i32 0, i32 3 | |
%"@bytesize" = load %Int*, %Int** %"addr_@bytesize", align 8 | |
br label %"Invoke_Int#>=" | |
IfThen10: ; preds = %"Invoke_Int#>=_end" | |
%as22 = bitcast %String* %self to %Object* | |
%sk_str23 = call %String* @gen_literal_string(i8* getelementptr inbounds ([35 x i8], [35 x i8]* @str_73, i32 0, i32 0), i64 34) | |
br label %"Invoke_Object#panic24" | |
IfElse11: ; preds = %"Invoke_Int#>=_end" | |
%"::Void32" = load %Void*, %Void** @"::Void", align 8 | |
br label %IfEnd12 | |
IfEnd12: ; preds = %IfElse11 | |
%"addr_@ptr" = getelementptr inbounds %String, %String* %self, i32 0, i32 2 | |
%"@ptr" = load %"Shiika::Internal::Ptr"*, %"Shiika::Internal::Ptr"** %"addr_@ptr", align 8 | |
br label %"Invoke_Shiika::Internal::Ptr#+" | |
"Invoke_Int#>=": ; preds = %IfBegin9 | |
%addr_vtable13 = getelementptr inbounds %Int, %Int* %n, i32 0, i32 0 | |
%vtable14 = load i8*, i8** %addr_vtable13, align 8 | |
%vtable_ptr15 = bitcast i8* %vtable14 to [35 x i8*]* | |
%vtable16 = load [35 x i8*], [35 x i8*]* %vtable_ptr15, align 8 | |
%func_raw17 = extractvalue [35 x i8*] %vtable16, 4 | |
%func18 = bitcast i8* %func_raw17 to %Bool* (%Int*, %Int*)* | |
%result19 = call %Bool* %func18(%Int* %n, %Int* %"@bytesize") | |
br label %"Invoke_Int#>=_end" | |
"Invoke_Int#>=_end": ; preds = %"Invoke_Int#>=" | |
%llvm_bool20 = call i1 @unbox_bool(%Bool* %result19) | |
%istrue21 = icmp eq i1 %llvm_bool20, true | |
br i1 %istrue21, label %IfThen10, label %IfElse11 | |
"Invoke_Object#panic24": ; preds = %IfThen10 | |
%addr_vtable25 = getelementptr inbounds %Object, %Object* %as22, i32 0, i32 0 | |
%vtable26 = load i8*, i8** %addr_vtable25, align 8 | |
%vtable_ptr27 = bitcast i8* %vtable26 to [16 x i8*]* | |
%vtable28 = load [16 x i8*], [16 x i8*]* %vtable_ptr27, align 8 | |
%func_raw29 = extractvalue [16 x i8*] %vtable28, 12 | |
%func30 = bitcast i8* %func_raw29 to void (%Object*, %String*)* | |
call void %func30(%Object* %as22, %String* %sk_str23) | |
%"::Void31" = load %Void*, %Void** @"::Void", align 8 | |
unreachable | |
"Invoke_Shiika::Internal::Ptr#+": ; preds = %IfEnd12 | |
%addr_vtable33 = getelementptr inbounds %"Shiika::Internal::Ptr", %"Shiika::Internal::Ptr"* %"@ptr", i32 0, i32 0 | |
%vtable34 = load i8*, i8** %addr_vtable33, align 8 | |
%vtable_ptr35 = bitcast i8* %vtable34 to [21 x i8*]* | |
%vtable36 = load [21 x i8*], [21 x i8*]* %vtable_ptr35, align 8 | |
%func_raw37 = extractvalue [21 x i8*] %vtable36, 16 | |
%func38 = bitcast i8* %func_raw37 to %"Shiika::Internal::Ptr"* (%"Shiika::Internal::Ptr"*, %Int*)* | |
%result39 = call %"Shiika::Internal::Ptr"* %func38(%"Shiika::Internal::Ptr"* %"@ptr", %Int* %n) | |
br label %"Invoke_Shiika::Internal::Ptr#+_end" | |
"Invoke_Shiika::Internal::Ptr#+_end": ; preds = %"Invoke_Shiika::Internal::Ptr#+" | |
br label %"Invoke_Shiika::Internal::Ptr#read" | |
"Invoke_Shiika::Internal::Ptr#read": ; preds = %"Invoke_Shiika::Internal::Ptr#+_end" | |
%addr_vtable40 = getelementptr inbounds %"Shiika::Internal::Ptr", %"Shiika::Internal::Ptr"* %result39, i32 0, i32 0 | |
%vtable41 = load i8*, i8** %addr_vtable40, align 8 | |
%vtable_ptr42 = bitcast i8* %vtable41 to [21 x i8*]* | |
%vtable43 = load [21 x i8*], [21 x i8*]* %vtable_ptr42, align 8 | |
%func_raw44 = extractvalue [21 x i8*] %vtable43, 18 | |
%func45 = bitcast i8* %func_raw44 to %Int* (%"Shiika::Internal::Ptr"*)* | |
%result46 = call %Int* %func45(%"Shiika::Internal::Ptr"* %result39) | |
br label %"Invoke_Shiika::Internal::Ptr#read_end" | |
"Invoke_Shiika::Internal::Ptr#read_end": ; preds = %"Invoke_Shiika::Internal::Ptr#read" | |
br label %Ret | |
Ret: ; preds = %"Invoke_Shiika::Internal::Ptr#read_end" | |
br label %End | |
} | |
define %String* @String_slice__bytes(%String* %self, %Int* %from, %Int* %bytes) { | |
alloca: | |
%newptr = alloca %"Shiika::Internal::Ptr"*, align 8 | |
br label %alloca_End | |
alloca_End: ; preds = %alloca | |
br label %IfBegin | |
End: ; preds = %Ret | |
%methodResult = phi %String* [ %result223, %Ret ] | |
ret %String* %methodResult | |
IfBegin: ; preds = %alloca_End | |
%sk_int = call %Int* @box_int(i64 0) | |
br label %"Invoke_Int#<" | |
IfThen: ; preds = %"Invoke_Int#<_end" | |
%as = bitcast %String* %self to %Object* | |
%sk_str = call %String* @gen_literal_string(i8* getelementptr inbounds ([54 x i8], [54 x i8]* @str_76, i32 0, i32 0), i64 53) | |
%as2 = bitcast %Int* %from to %Object* | |
br label %"Invoke_Object#inspect" | |
IfElse: ; preds = %"Invoke_Int#<_end" | |
%"::Void62" = load %Void*, %Void** @"::Void", align 8 | |
br label %IfEnd | |
IfEnd: ; preds = %IfElse | |
br label %IfBegin63 | |
"Invoke_Int#<": ; preds = %IfBegin | |
%addr_vtable = getelementptr inbounds %Int, %Int* %from, i32 0, i32 0 | |
%vtable = load i8*, i8** %addr_vtable, align 8 | |
%vtable_ptr = bitcast i8* %vtable to [35 x i8*]* | |
%vtable1 = load [35 x i8*], [35 x i8*]* %vtable_ptr, align 8 | |
%func_raw = extractvalue [35 x i8*] %vtable1, 0 | |
%func = bitcast i8* %func_raw to %Bool* (%Int*, %Int*)* | |
%result = call %Bool* %func(%Int* %from, %Int* %sk_int) | |
br label %"Invoke_Int#<_end" | |
"Invoke_Int#<_end": ; preds = %"Invoke_Int#<" | |
%llvm_bool = call i1 @unbox_bool(%Bool* %result) | |
%istrue = icmp eq i1 %llvm_bool, true | |
br i1 %istrue, label %IfThen, label %IfElse | |
"Invoke_Object#inspect": ; preds = %IfThen | |
%addr_vtable3 = getelementptr inbounds %Object, %Object* %as2, i32 0, i32 0 | |
%vtable4 = load i8*, i8** %addr_vtable3, align 8 | |
%vtable_ptr5 = bitcast i8* %vtable4 to [16 x i8*]* | |
%vtable6 = load [16 x i8*], [16 x i8*]* %vtable_ptr5, align 8 | |
%func_raw7 = extractvalue [16 x i8*] %vtable6, 9 | |
%func8 = bitcast i8* %func_raw7 to %String* (%Object*)* | |
%result9 = call %String* %func8(%Object* %as2) | |
br label %"Invoke_Object#inspect_end" | |
"Invoke_Object#inspect_end": ; preds = %"Invoke_Object#inspect" | |
br label %"Invoke_String#+" | |
"Invoke_String#+": ; preds = %"Invoke_Object#inspect_end" | |
%addr_vtable10 = getelementptr inbounds %String, %String* %sk_str, i32 0, i32 0 | |
%vtable11 = load i8*, i8** %addr_vtable10, align 8 | |
%vtable_ptr12 = bitcast i8* %vtable11 to [35 x i8*]* | |
%vtable13 = load [35 x i8*], [35 x i8*]* %vtable_ptr12, align 8 | |
%func_raw14 = extractvalue [35 x i8*] %vtable13, 17 | |
%func15 = bitcast i8* %func_raw14 to %String* (%String*, %String*)* | |
%result16 = call %String* %func15(%String* %sk_str, %String* %result9) | |
br label %"Invoke_String#+_end" | |
"Invoke_String#+_end": ; preds = %"Invoke_String#+" | |
%sk_str17 = call %String* @gen_literal_string(i8* getelementptr inbounds ([10 x i8], [10 x i8]* @str_75, i32 0, i32 0), i64 9) | |
br label %"Invoke_String#+18" | |
"Invoke_String#+18": ; preds = %"Invoke_String#+_end" | |
%addr_vtable19 = getelementptr inbounds %String, %String* %result16, i32 0, i32 0 | |
%vtable20 = load i8*, i8** %addr_vtable19, align 8 | |
%vtable_ptr21 = bitcast i8* %vtable20 to [35 x i8*]* | |
%vtable22 = load [35 x i8*], [35 x i8*]* %vtable_ptr21, align 8 | |
%func_raw23 = extractvalue [35 x i8*] %vtable22, 17 | |
%func24 = bitcast i8* %func_raw23 to %String* (%String*, %String*)* | |
%result25 = call %String* %func24(%String* %result16, %String* %sk_str17) | |
br label %"Invoke_String#+_end26" | |
"Invoke_String#+_end26": ; preds = %"Invoke_String#+18" | |
%as27 = bitcast %Int* %bytes to %Object* | |
br label %"Invoke_Object#inspect28" | |
"Invoke_Object#inspect28": ; preds = %"Invoke_String#+_end26" | |
%addr_vtable29 = getelementptr inbounds %Object, %Object* %as27, i32 0, i32 0 | |
%vtable30 = load i8*, i8** %addr_vtable29, align 8 | |
%vtable_ptr31 = bitcast i8* %vtable30 to [16 x i8*]* | |
%vtable32 = load [16 x i8*], [16 x i8*]* %vtable_ptr31, align 8 | |
%func_raw33 = extractvalue [16 x i8*] %vtable32, 9 | |
%func34 = bitcast i8* %func_raw33 to %String* (%Object*)* | |
%result35 = call %String* %func34(%Object* %as27) | |
br label %"Invoke_Object#inspect_end36" | |
"Invoke_Object#inspect_end36": ; preds = %"Invoke_Object#inspect28" | |
br label %"Invoke_String#+37" | |
"Invoke_String#+37": ; preds = %"Invoke_Object#inspect_end36" | |
%addr_vtable38 = getelementptr inbounds %String, %String* %result25, i32 0, i32 0 | |
%vtable39 = load i8*, i8** %addr_vtable38, align 8 | |
%vtable_ptr40 = bitcast i8* %vtable39 to [35 x i8*]* | |
%vtable41 = load [35 x i8*], [35 x i8*]* %vtable_ptr40, align 8 | |
%func_raw42 = extractvalue [35 x i8*] %vtable41, 17 | |
%func43 = bitcast i8* %func_raw42 to %String* (%String*, %String*)* | |
%result44 = call %String* %func43(%String* %result25, %String* %result35) | |
br label %"Invoke_String#+_end45" | |
"Invoke_String#+_end45": ; preds = %"Invoke_String#+37" | |
%sk_str46 = call %String* @gen_literal_string(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @str_74, i32 0, i32 0), i64 2) | |
br label %"Invoke_String#+47" | |
"Invoke_String#+47": ; preds = %"Invoke_String#+_end45" | |
%addr_vtable48 = getelementptr inbounds %String, %String* %result44, i32 0, i32 0 | |
%vtable49 = load i8*, i8** %addr_vtable48, align 8 | |
%vtable_ptr50 = bitcast i8* %vtable49 to [35 x i8*]* | |
%vtable51 = load [35 x i8*], [35 x i8*]* %vtable_ptr50, align 8 | |
%func_raw52 = extractvalue [35 x i8*] %vtable51, 17 | |
%func53 = bitcast i8* %func_raw52 to %String* (%String*, %String*)* | |
%result54 = call %String* %func53(%String* %result44, %String* %sk_str46) | |
br label %"Invoke_String#+_end55" | |
"Invoke_String#+_end55": ; preds = %"Invoke_String#+47" | |
br label %"Invoke_Object#panic" | |
"Invoke_Object#panic": ; preds = %"Invoke_String#+_end55" | |
%addr_vtable56 = getelementptr inbounds %Object, %Object* %as, i32 0, i32 0 | |
%vtable57 = load i8*, i8** %addr_vtable56, align 8 | |
%vtable_ptr58 = bitcast i8* %vtable57 to [16 x i8*]* | |
%vtable59 = load [16 x i8*], [16 x i8*]* %vtable_ptr58, align 8 | |
%func_raw60 = extractvalue [16 x i8*] %vtable59, 12 | |
%func61 = bitcast i8* %func_raw60 to void (%Object*, %String*)* | |
call void %func61(%Object* %as, %String* %result54) | |
%"::Void" = load %Void*, %Void** @"::Void", align 8 | |
unreachable | |
IfBegin63: ; preds = %IfEnd | |
br label %"Invoke_Int#+" | |
IfThen64: ; preds = %"Invoke_Int#>_end" | |
%as83 = bitcast %String* %self to %Object* | |
%sk_str84 = call %String* @gen_literal_string(i8* getelementptr inbounds ([54 x i8], [54 x i8]* @str_80, i32 0, i32 0), i64 53) | |
%as85 = bitcast %Int* %from to %Object* | |
br label %"Invoke_Object#inspect86" | |
IfElse65: ; preds = %"Invoke_Int#>_end" | |
%"::Void182" = load %Void*, %Void** @"::Void", align 8 | |
br label %IfEnd66 | |
IfEnd66: ; preds = %IfElse65 | |
%"::Shiika::Internal::Memory" = load %"Shiika::Internal::Memory"*, %"Shiika::Internal::Memory"** @"::Shiika::Internal::Memory", align 8 | |
%sk_int183 = call %Int* @box_int(i64 1) | |
br label %"Invoke_Int#+184" | |
"Invoke_Int#+": ; preds = %IfBegin63 | |
%addr_vtable67 = getelementptr inbounds %Int, %Int* %from, i32 0, i32 0 | |
%vtable68 = load i8*, i8** %addr_vtable67, align 8 | |
%vtable_ptr69 = bitcast i8* %vtable68 to [35 x i8*]* | |
%vtable70 = load [35 x i8*], [35 x i8*]* %vtable_ptr69, align 8 | |
%func_raw71 = extractvalue [35 x i8*] %vtable70, 18 | |
%func72 = bitcast i8* %func_raw71 to %Int* (%Int*, %Int*)* | |
%result73 = call %Int* %func72(%Int* %from, %Int* %bytes) | |
br label %"Invoke_Int#+_end" | |
"Invoke_Int#+_end": ; preds = %"Invoke_Int#+" | |
%"addr_@bytesize" = getelementptr inbounds %String, %String* %self, i32 0, i32 3 | |
%"@bytesize" = load %Int*, %Int** %"addr_@bytesize", align 8 | |
br label %"Invoke_Int#>" | |
"Invoke_Int#>": ; preds = %"Invoke_Int#+_end" | |
%addr_vtable74 = getelementptr inbounds %Int, %Int* %result73, i32 0, i32 0 | |
%vtable75 = load i8*, i8** %addr_vtable74, align 8 | |
%vtable_ptr76 = bitcast i8* %vtable75 to [35 x i8*]* | |
%vtable77 = load [35 x i8*], [35 x i8*]* %vtable_ptr76, align 8 | |
%func_raw78 = extractvalue [35 x i8*] %vtable77, 3 | |
%func79 = bitcast i8* %func_raw78 to %Bool* (%Int*, %Int*)* | |
%result80 = call %Bool* %func79(%Int* %result73, %Int* %"@bytesize") | |
br label %"Invoke_Int#>_end" | |
"Invoke_Int#>_end": ; preds = %"Invoke_Int#>" | |
%llvm_bool81 = call i1 @unbox_bool(%Bool* %result80) | |
%istrue82 = icmp eq i1 %llvm_bool81, true | |
br i1 %istrue82, label %IfThen64, label %IfElse65 | |
"Invoke_Object#inspect86": ; preds = %IfThen64 | |
%addr_vtable87 = getelementptr inbounds %Object, %Object* %as85, i32 0, i32 0 | |
%vtable88 = load i8*, i8** %addr_vtable87, align 8 | |
%vtable_ptr89 = bitcast i8* %vtable88 to [16 x i8*]* | |
%vtable90 = load [16 x i8*], [16 x i8*]* %vtable_ptr89, align 8 | |
%func_raw91 = extractvalue [16 x i8*] %vtable90, 9 | |
%func92 = bitcast i8* %func_raw91 to %String* (%Object*)* | |
%result93 = call %String* %func92(%Object* %as85) | |
br label %"Invoke_Object#inspect_end94" | |
"Invoke_Object#inspect_end94": ; preds = %"Invoke_Object#inspect86" | |
br label %"Invoke_String#+95" | |
"Invoke_String#+95": ; preds = %"Invoke_Object#inspect_end94" | |
%addr_vtable96 = getelementptr inbounds %String, %String* %sk_str84, i32 0, i32 0 | |
%vtable97 = load i8*, i8** %addr_vtable96, align 8 | |
%vtable_ptr98 = bitcast i8* %vtable97 to [35 x i8*]* | |
%vtable99 = load [35 x i8*], [35 x i8*]* %vtable_ptr98, align 8 | |
%func_raw100 = extractvalue [35 x i8*] %vtable99, 17 | |
%func101 = bitcast i8* %func_raw100 to %String* (%String*, %String*)* | |
%result102 = call %String* %func101(%String* %sk_str84, %String* %result93) | |
br label %"Invoke_String#+_end103" | |
"Invoke_String#+_end103": ; preds = %"Invoke_String#+95" | |
%sk_str104 = call %String* @gen_literal_string(i8* getelementptr inbounds ([10 x i8], [10 x i8]* @str_79, i32 0, i32 0), i64 9) | |
br label %"Invoke_String#+105" | |
"Invoke_String#+105": ; preds = %"Invoke_String#+_end103" | |
%addr_vtable106 = getelementptr inbounds %String, %String* %result102, i32 0, i32 0 | |
%vtable107 = load i8*, i8** %addr_vtable106, align 8 | |
%vtable_ptr108 = bitcast i8* %vtable107 to [35 x i8*]* | |
%vtable109 = load [35 x i8*], [35 x i8*]* %vtable_ptr108, align 8 | |
%func_raw110 = extractvalue [35 x i8*] %vtable109, 17 | |
%func111 = bitcast i8* %func_raw110 to %String* (%String*, %String*)* | |
%result112 = call %String* %func111(%String* %result102, %String* %sk_str104) | |
br label %"Invoke_String#+_end113" | |
"Invoke_String#+_end113": ; preds = %"Invoke_String#+105" | |
%as114 = bitcast %Int* %bytes to %Object* | |
br label %"Invoke_Object#inspect115" | |
"Invoke_Object#inspect115": ; preds = %"Invoke_String#+_end113" | |
%addr_vtable116 = getelementptr inbounds %Object, %Object* %as114, i32 0, i32 0 | |
%vtable117 = load i8*, i8** %addr_vtable116, align 8 | |
%vtable_ptr118 = bitcast i8* %vtable117 to [16 x i8*]* | |
%vtable119 = load [16 x i8*], [16 x i8*]* %vtable_ptr118, align 8 | |
%func_raw120 = extractvalue [16 x i8*] %vtable119, 9 | |
%func121 = bitcast i8* %func_raw120 to %String* (%Object*)* | |
%result122 = call %String* %func121(%Object* %as114) | |
br label %"Invoke_Object#inspect_end123" | |
"Invoke_Object#inspect_end123": ; preds = %"Invoke_Object#inspect115" | |
br label %"Invoke_String#+124" | |
"Invoke_String#+124": ; preds = %"Invoke_Object#inspect_end123" | |
%addr_vtable125 = getelementptr inbounds %String, %String* %result112, i32 0, i32 0 | |
%vtable126 = load i8*, i8** %addr_vtable125, align 8 | |
%vtable_ptr127 = bitcast i8* %vtable126 to [35 x i8*]* | |
%vtable128 = load [35 x i8*], [35 x i8*]* %vtable_ptr127, align 8 | |
%func_raw129 = extractvalue [35 x i8*] %vtable128, 17 | |
%func130 = bitcast i8* %func_raw129 to %String* (%String*, %String*)* | |
%result131 = call %String* %func130(%String* %result112, %String* %result122) | |
br label %"Invoke_String#+_end132" | |
"Invoke_String#+_end132": ; preds = %"Invoke_String#+124" | |
%sk_str133 = call %String* @gen_literal_string(i8* getelementptr inbounds ([18 x i8], [18 x i8]* @str_78, i32 0, i32 0), i64 17) | |
br label %"Invoke_String#+134" | |
"Invoke_String#+134": ; preds = %"Invoke_String#+_end132" | |
%addr_vtable135 = getelementptr inbounds %String, %String* %result131, i32 0, i32 0 | |
%vtable136 = load i8*, i8** %addr_vtable135, align 8 | |
%vtable_ptr137 = bitcast i8* %vtable136 to [35 x i8*]* | |
%vtable138 = load [35 x i8*], [35 x i8*]* %vtable_ptr137, align 8 | |
%func_raw139 = extractvalue [35 x i8*] %vtable138, 17 | |
%func140 = bitcast i8* %func_raw139 to %String* (%String*, %String*)* | |
%result141 = call %String* %func140(%String* %result131, %String* %sk_str133) | |
br label %"Invoke_String#+_end142" | |
"Invoke_String#+_end142": ; preds = %"Invoke_String#+134" | |
%"addr_@bytesize143" = getelementptr inbounds %String, %String* %self, i32 0, i32 3 | |
%"@bytesize144" = load %Int*, %Int** %"addr_@bytesize143", align 8 | |
%as145 = bitcast %Int* %"@bytesize144" to %Object* | |
br label %"Invoke_Object#inspect146" | |
"Invoke_Object#inspect146": ; preds = %"Invoke_String#+_end142" | |
%addr_vtable147 = getelementptr inbounds %Object, %Object* %as145, i32 0, i32 0 | |
%vtable148 = load i8*, i8** %addr_vtable147, align 8 | |
%vtable_ptr149 = bitcast i8* %vtable148 to [16 x i8*]* | |
%vtable150 = load [16 x i8*], [16 x i8*]* %vtable_ptr149, align 8 | |
%func_raw151 = extractvalue [16 x i8*] %vtable150, 9 | |
%func152 = bitcast i8* %func_raw151 to %String* (%Object*)* | |
%result153 = call %String* %func152(%Object* %as145) | |
br label %"Invoke_Object#inspect_end154" | |
"Invoke_Object#inspect_end154": ; preds = %"Invoke_Object#inspect146" | |
br label %"Invoke_String#+155" | |
"Invoke_String#+155": ; preds = %"Invoke_Object#inspect_end154" | |
%addr_vtable156 = getelementptr inbounds %String, %String* %result141, i32 0, i32 0 | |
%vtable157 = load i8*, i8** %addr_vtable156, align 8 | |
%vtable_ptr158 = bitcast i8* %vtable157 to [35 x i8*]* | |
%vtable159 = load [35 x i8*], [35 x i8*]* %vtable_ptr158, align 8 | |
%func_raw160 = extractvalue [35 x i8*] %vtable159, 17 | |
%func161 = bitcast i8* %func_raw160 to %String* (%String*, %String*)* | |
%result162 = call %String* %func161(%String* %result141, %String* %result153) | |
br label %"Invoke_String#+_end163" | |
"Invoke_String#+_end163": ; preds = %"Invoke_String#+155" | |
%sk_str164 = call %String* @gen_literal_string(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @str_77, i32 0, i32 0), i64 2) | |
br label %"Invoke_String#+165" | |
"Invoke_String#+165": ; preds = %"Invoke_String#+_end163" | |
%addr_vtable166 = getelementptr inbounds %String, %String* %result162, i32 0, i32 0 | |
%vtable167 = load i8*, i8** %addr_vtable166, align 8 | |
%vtable_ptr168 = bitcast i8* %vtable167 to [35 x i8*]* | |
%vtable169 = load [35 x i8*], [35 x i8*]* %vtable_ptr168, align 8 | |
%func_raw170 = extractvalue [35 x i8*] %vtable169, 17 | |
%func171 = bitcast i8* %func_raw170 to %String* (%String*, %String*)* | |
%result172 = call %String* %func171(%String* %result162, %String* %sk_str164) | |
br label %"Invoke_String#+_end173" | |
"Invoke_String#+_end173": ; preds = %"Invoke_String#+165" | |
br label %"Invoke_Object#panic174" | |
"Invoke_Object#panic174": ; preds = %"Invoke_String#+_end173" | |
%addr_vtable175 = getelementptr inbounds %Object, %Object* %as83, i32 0, i32 0 | |
%vtable176 = load i8*, i8** %addr_vtable175, align 8 | |
%vtable_ptr177 = bitcast i8* %vtable176 to [16 x i8*]* | |
%vtable178 = load [16 x i8*], [16 x i8*]* %vtable_ptr177, align 8 | |
%func_raw179 = extractvalue [16 x i8*] %vtable178, 12 | |
%func180 = bitcast i8* %func_raw179 to void (%Object*, %String*)* | |
call void %func180(%Object* %as83, %String* %result172) | |
%"::Void181" = load %Void*, %Void** @"::Void", align 8 | |
unreachable | |
"Invoke_Int#+184": ; preds = %IfEnd66 | |
%addr_vtable185 = getelementptr inbounds %Int, %Int* %bytes, i32 0, i32 0 | |
%vtable186 = load i8*, i8** %addr_vtable185, align 8 | |
%vtable_ptr187 = bitcast i8* %vtable186 to [35 x i8*]* | |
%vtable188 = load [35 x i8*], [35 x i8*]* %vtable_ptr187, align 8 | |
%func_raw189 = extractvalue [35 x i8*] %vtable188, 18 | |
%func190 = bitcast i8* %func_raw189 to %Int* (%Int*, %Int*)* | |
%result191 = call %Int* %func190(%Int* %bytes, %Int* %sk_int183) | |
br label %"Invoke_Int#+_end192" | |
"Invoke_Int#+_end192": ; preds = %"Invoke_Int#+184" | |
br label %"Invoke_Meta:Shiika::Internal::Memory#gc_malloc" | |
"Invoke_Meta:Shiika::Internal::Memory#gc_malloc": ; preds = %"Invoke_Int#+_end192" | |
%addr_vtable193 = getelementptr inbounds %"Shiika::Internal::Memory", %"Shiika::Internal::Memory"* %"::Shiika::Internal::Memory", i32 0, i32 0 | |
%vtable194 = load i8*, i8** %addr_vtable193, align 8 | |
%vtable_ptr195 = bitcast i8* %vtable194 to [25 x i8*]* | |
%vtable196 = load [25 x i8*], [25 x i8*]* %vtable_ptr195, align 8 | |
%func_raw197 = extractvalue [25 x i8*] %vtable196, 22 | |
%func198 = bitcast i8* %func_raw197 to %"Shiika::Internal::Ptr"* (%"Shiika::Internal::Memory"*, %Int*)* | |
%result199 = call %"Shiika::Internal::Ptr"* %func198(%"Shiika::Internal::Memory"* %"::Shiika::Internal::Memory", %Int* %result191) | |
br label %"Invoke_Meta:Shiika::Internal::Memory#gc_malloc_end" | |
"Invoke_Meta:Shiika::Internal::Memory#gc_malloc_end": ; preds = %"Invoke_Meta:Shiika::Internal::Memory#gc_malloc" | |
store %"Shiika::Internal::Ptr"* %result199, %"Shiika::Internal::Ptr"** %newptr, align 8 | |
%"::Shiika::Internal::Memory200" = load %"Shiika::Internal::Memory"*, %"Shiika::Internal::Memory"** @"::Shiika::Internal::Memory", align 8 | |
%newptr201 = load %"Shiika::Internal::Ptr"*, %"Shiika::Internal::Ptr"** %newptr, align 8 | |
%"addr_@ptr" = getelementptr inbounds %String, %String* %self, i32 0, i32 2 | |
%"@ptr" = load %"Shiika::Internal::Ptr"*, %"Shiika::Internal::Ptr"** %"addr_@ptr", align 8 | |
br label %"Invoke_Shiika::Internal::Ptr#+" | |
"Invoke_Shiika::Internal::Ptr#+": ; preds = %"Invoke_Meta:Shiika::Internal::Memory#gc_malloc_end" | |
%addr_vtable202 = getelementptr inbounds %"Shiika::Internal::Ptr", %"Shiika::Internal::Ptr"* %"@ptr", i32 0, i32 0 | |
%vtable203 = load i8*, i8** %addr_vtable202, align 8 | |
%vtable_ptr204 = bitcast i8* %vtable203 to [21 x i8*]* | |
%vtable205 = load [21 x i8*], [21 x i8*]* %vtable_ptr204, align 8 | |
%func_raw206 = extractvalue [21 x i8*] %vtable205, 16 | |
%func207 = bitcast i8* %func_raw206 to %"Shiika::Internal::Ptr"* (%"Shiika::Internal::Ptr"*, %Int*)* | |
%result208 = call %"Shiika::Internal::Ptr"* %func207(%"Shiika::Internal::Ptr"* %"@ptr", %Int* %from) | |
br label %"Invoke_Shiika::Internal::Ptr#+_end" | |
"Invoke_Shiika::Internal::Ptr#+_end": ; preds = %"Invoke_Shiika::Internal::Ptr#+" | |
br label %"Invoke_Meta:Shiika::Internal::Memory#memcpy" | |
"Invoke_Meta:Shiika::Internal::Memory#memcpy": ; preds = %"Invoke_Shiika::Internal::Ptr#+_end" | |
%addr_vtable209 = getelementptr inbounds %"Shiika::Internal::Memory", %"Shiika::Internal::Memory"* %"::Shiika::Internal::Memory200", i32 0, i32 0 | |
%vtable210 = load i8*, i8** %addr_vtable209, align 8 | |
%vtable_ptr211 = bitcast i8* %vtable210 to [25 x i8*]* | |
%vtable212 = load [25 x i8*], [25 x i8*]* %vtable_ptr211, align 8 | |
%func_raw213 = extractvalue [25 x i8*] %vtable212, 24 | |
%func214 = bitcast i8* %func_raw213 to %Void* (%"Shiika::Internal::Memory"*, %"Shiika::Internal::Ptr"*, %"Shiika::Internal::Ptr"*, %Int*)* | |
%result215 = call %Void* %func214(%"Shiika::Internal::Memory"* %"::Shiika::Internal::Memory200", %"Shiika::Internal::Ptr"* %newptr201, %"Shiika::Internal::Ptr"* %result208, %Int* %bytes) | |
br label %"Invoke_Meta:Shiika::Internal::Memory#memcpy_end" | |
"Invoke_Meta:Shiika::Internal::Memory#memcpy_end": ; preds = %"Invoke_Meta:Shiika::Internal::Memory#memcpy" | |
%"::String" = load %String*, %String** @"::String", align 8 | |
%newptr216 = load %"Shiika::Internal::Ptr"*, %"Shiika::Internal::Ptr"** %newptr, align 8 | |
br label %"Invoke_Meta:String#new" | |
"Invoke_Meta:String#new": ; preds = %"Invoke_Meta:Shiika::Internal::Memory#memcpy_end" | |
%addr_vtable217 = getelementptr inbounds %String, %String* %"::String", i32 0, i32 0 | |
%vtable218 = load i8*, i8** %addr_vtable217, align 8 | |
%vtable_ptr219 = bitcast i8* %vtable218 to [23 x i8*]* | |
%vtable220 = load [23 x i8*], [23 x i8*]* %vtable_ptr219, align 8 | |
%func_raw221 = extractvalue [23 x i8*] %vtable220, 22 | |
%func222 = bitcast i8* %func_raw221 to %String* (%String*, %"Shiika::Internal::Ptr"*, %Int*)* | |
%result223 = call %String* %func222(%String* %"::String", %"Shiika::Internal::Ptr"* %newptr216, %Int* %bytes) | |
br label %"Invoke_Meta:String#new_end" | |
"Invoke_Meta:String#new_end": ; preds = %"Invoke_Meta:String#new" | |
br label %Ret | |
Ret: ; preds = %"Invoke_Meta:String#new_end" | |
br label %End | |
} | |
define %Array* @String_split(%String* %self, %String* %sep) { | |
alloca: | |
%"ary@30_" = alloca %Array*, align 8 | |
%"ary@31_" = alloca %Array*, align 8 | |
%sep_cur = alloca %Int*, align 8 | |
%ret = alloca %Array*, align 8 | |
%word_start = alloca %Int*, align 8 | |
%i = alloca %Int*, align 8 | |
br label %alloca_End | |
alloca_End: ; preds = %alloca | |
br label %IfBegin | |
End: ; preds = %Ret | |
%methodResult = phi %Array* [ %ifResult299, %Ret ] | |
ret %Array* %methodResult | |
IfBegin: ; preds = %alloca_End | |
br label %"Invoke_String#bytesize" | |
IfThen: ; preds = %"Invoke_Int#==_end" | |
%"::Array" = load %Array*, %Array** @"::Array", align 8 | |
%"::String" = load %String*, %String** @"::String", align 8 | |
%as = bitcast %String* %"::String" to %Class.0* | |
br label %"Invoke_Class#_specialize1" | |
IfElse: ; preds = %"Invoke_Int#==_end" | |
%"::Array33" = load %Array*, %Array** @"::Array", align 8 | |
%"::Array34" = load %Array*, %Array** @"::Array", align 8 | |
%"::Class" = load %Class.0*, %Class.0** @"::Class", align 8 | |
br label %"Invoke_Class#_specialize135" | |
IfEnd: ; preds = %IfEnd247, %"Invoke_Array#push_end" | |
%ifResult299 = phi %Array* [ %"ary@30_32", %"Invoke_Array#push_end" ], [ %ret298, %IfEnd247 ] | |
br label %Ret | |
"Invoke_String#bytesize": ; preds = %IfBegin | |
%addr_vtable = getelementptr inbounds %String, %String* %sep, i32 0, i32 0 | |
%vtable = load i8*, i8** %addr_vtable, align 8 | |
%vtable_ptr = bitcast i8* %vtable to [35 x i8*]* | |
%vtable1 = load [35 x i8*], [35 x i8*]* %vtable_ptr, align 8 | |
%func_raw = extractvalue [35 x i8*] %vtable1, 19 | |
%func = bitcast i8* %func_raw to %Int* (%String*)* | |
%result = call %Int* %func(%String* %sep) | |
br label %"Invoke_String#bytesize_end" | |
"Invoke_String#bytesize_end": ; preds = %"Invoke_String#bytesize" | |
%sk_int = call %Int* @box_int(i64 0) | |
br label %"Invoke_Int#==" | |
"Invoke_Int#==": ; preds = %"Invoke_String#bytesize_end" | |
%addr_vtable2 = getelementptr inbounds %Int, %Int* %result, i32 0, i32 0 | |
%vtable3 = load i8*, i8** %addr_vtable2, align 8 | |
%vtable_ptr4 = bitcast i8* %vtable3 to [35 x i8*]* | |
%vtable5 = load [35 x i8*], [35 x i8*]* %vtable_ptr4, align 8 | |
%func_raw6 = extractvalue [35 x i8*] %vtable5, 2 | |
%func7 = bitcast i8* %func_raw6 to %Bool* (%Int*, %Int*)* | |
%result8 = call %Bool* %func7(%Int* %result, %Int* %sk_int) | |
br label %"Invoke_Int#==_end" | |
"Invoke_Int#==_end": ; preds = %"Invoke_Int#==" | |
%llvm_bool = call i1 @unbox_bool(%Bool* %result8) | |
%istrue = icmp eq i1 %llvm_bool, true | |
br i1 %istrue, label %IfThen, label %IfElse | |
"Invoke_Class#_specialize1": ; preds = %IfThen | |
%addr_vtable9 = getelementptr inbounds %Array, %Array* %"::Array", i32 0, i32 0 | |
%vtable10 = load i8*, i8** %addr_vtable9, align 8 | |
%vtable_ptr11 = bitcast i8* %vtable10 to [25 x i8*]* | |
%vtable12 = load [25 x i8*], [25 x i8*]* %vtable_ptr11, align 8 | |
%func_raw13 = extractvalue [25 x i8*] %vtable12, 18 | |
%func14 = bitcast i8* %func_raw13 to %Array* (%Array*, %Class.0*)* | |
%result15 = call %Array* %func14(%Array* %"::Array", %Class.0* %as) | |
br label %"Invoke_Class#_specialize1_end" | |
"Invoke_Class#_specialize1_end": ; preds = %"Invoke_Class#_specialize1" | |
br label %"Invoke_Array#new" | |
"Invoke_Array#new": ; preds = %"Invoke_Class#_specialize1_end" | |
%addr_vtable16 = getelementptr inbounds %Array, %Array* %result15, i32 0, i32 0 | |
%vtable17 = load i8*, i8** %addr_vtable16, align 8 | |
%vtable_ptr18 = bitcast i8* %vtable17 to [25 x i8*]* | |
%vtable19 = load [25 x i8*], [25 x i8*]* %vtable_ptr18, align 8 | |
%func_raw20 = extractvalue [25 x i8*] %vtable19, 23 | |
%func21 = bitcast i8* %func_raw20 to %Array* (%Array*)* | |
%result22 = call %Array* %func21(%Array* %result15) | |
br label %"Invoke_Array#new_end" | |
"Invoke_Array#new_end": ; preds = %"Invoke_Array#new" | |
store %Array* %result22, %Array** %"ary@30_", align 8 | |
%"ary@30_23" = load %Array*, %Array** %"ary@30_", align 8 | |
%as24 = bitcast %String* %self to %Object* | |
br label %"Invoke_Array#push" | |
"Invoke_Array#push": ; preds = %"Invoke_Array#new_end" | |
%addr_vtable25 = getelementptr inbounds %Array, %Array* %"ary@30_23", i32 0, i32 0 | |
%vtable26 = load i8*, i8** %addr_vtable25, align 8 | |
%vtable_ptr27 = bitcast i8* %vtable26 to [54 x i8*]* | |
%vtable28 = load [54 x i8*], [54 x i8*]* %vtable_ptr27, align 8 | |
%func_raw29 = extractvalue [54 x i8*] %vtable28, 45 | |
%func30 = bitcast i8* %func_raw29 to %Void* (%Array*, %Object*)* | |
%result31 = call %Void* %func30(%Array* %"ary@30_23", %Object* %as24) | |
br label %"Invoke_Array#push_end" | |
"Invoke_Array#push_end": ; preds = %"Invoke_Array#push" | |
%"ary@30_32" = load %Array*, %Array** %"ary@30_", align 8 | |
br label %IfEnd | |
"Invoke_Class#_specialize135": ; preds = %IfElse | |
%addr_vtable36 = getelementptr inbounds %Array, %Array* %"::Array34", i32 0, i32 0 | |
%vtable37 = load i8*, i8** %addr_vtable36, align 8 | |
%vtable_ptr38 = bitcast i8* %vtable37 to [25 x i8*]* | |
%vtable39 = load [25 x i8*], [25 x i8*]* %vtable_ptr38, align 8 | |
%func_raw40 = extractvalue [25 x i8*] %vtable39, 18 | |
%func41 = bitcast i8* %func_raw40 to %Array* (%Array*, %Class.0*)* | |
%result42 = call %Array* %func41(%Array* %"::Array34", %Class.0* %"::Class") | |
br label %"Invoke_Class#_specialize1_end43" | |
"Invoke_Class#_specialize1_end43": ; preds = %"Invoke_Class#_specialize135" | |
br label %"Invoke_Array#new44" | |
"Invoke_Array#new44": ; preds = %"Invoke_Class#_specialize1_end43" | |
%addr_vtable45 = getelementptr inbounds %Array, %Array* %result42, i32 0, i32 0 | |
%vtable46 = load i8*, i8** %addr_vtable45, align 8 | |
%vtable_ptr47 = bitcast i8* %vtable46 to [25 x i8*]* | |
%vtable48 = load [25 x i8*], [25 x i8*]* %vtable_ptr47, align 8 | |
%func_raw49 = extractvalue [25 x i8*] %vtable48, 23 | |
%func50 = bitcast i8* %func_raw49 to %Array* (%Array*)* | |
%result51 = call %Array* %func50(%Array* %result42) | |
br label %"Invoke_Array#new_end52" | |
"Invoke_Array#new_end52": ; preds = %"Invoke_Array#new44" | |
store %Array* %result51, %Array** %"ary@31_", align 8 | |
%"ary@31_53" = load %Array*, %Array** %"ary@31_", align 8 | |
%"::String54" = load %String*, %String** @"::String", align 8 | |
%as55 = bitcast %String* %"::String54" to %Object* | |
br label %"Invoke_Array#push56" | |
"Invoke_Array#push56": ; preds = %"Invoke_Array#new_end52" | |
%addr_vtable57 = getelementptr inbounds %Array, %Array* %"ary@31_53", i32 0, i32 0 | |
%vtable58 = load i8*, i8** %addr_vtable57, align 8 | |
%vtable_ptr59 = bitcast i8* %vtable58 to [54 x i8*]* | |
%vtable60 = load [54 x i8*], [54 x i8*]* %vtable_ptr59, align 8 | |
%func_raw61 = extractvalue [54 x i8*] %vtable60, 45 | |
%func62 = bitcast i8* %func_raw61 to %Void* (%Array*, %Object*)* | |
%result63 = call %Void* %func62(%Array* %"ary@31_53", %Object* %as55) | |
br label %"Invoke_Array#push_end64" | |
"Invoke_Array#push_end64": ; preds = %"Invoke_Array#push56" | |
%"ary@31_65" = load %Array*, %Array** %"ary@31_", align 8 | |
br label %"Invoke_Class#<>" | |
"Invoke_Class#<>": ; preds = %"Invoke_Array#push_end64" | |
%addr_vtable66 = getelementptr inbounds %Array, %Array* %"::Array33", i32 0, i32 0 | |
%vtable67 = load i8*, i8** %addr_vtable66, align 8 | |
%vtable_ptr68 = bitcast i8* %vtable67 to [25 x i8*]* | |
%vtable69 = load [25 x i8*], [25 x i8*]* %vtable_ptr68, align 8 | |
%func_raw70 = extractvalue [25 x i8*] %vtable69, 16 | |
%func71 = bitcast i8* %func_raw70 to %Array* (%Array*, %Array*)* | |
%result72 = call %Array* %func71(%Array* %"::Array33", %Array* %"ary@31_65") | |
br label %"Invoke_Class#<>_end" | |
"Invoke_Class#<>_end": ; preds = %"Invoke_Class#<>" | |
br label %"Invoke_Meta:Array#new" | |
"Invoke_Meta:Array#new": ; preds = %"Invoke_Class#<>_end" | |
%addr_vtable73 = getelementptr inbounds %Array, %Array* %result72, i32 0, i32 0 | |
%vtable74 = load i8*, i8** %addr_vtable73, align 8 | |
%vtable_ptr75 = bitcast i8* %vtable74 to [25 x i8*]* | |
%vtable76 = load [25 x i8*], [25 x i8*]* %vtable_ptr75, align 8 | |
%func_raw77 = extractvalue [25 x i8*] %vtable76, 23 | |
%func78 = bitcast i8* %func_raw77 to %Array* (%Array*)* | |
%result79 = call %Array* %func78(%Array* %result72) | |
br label %"Invoke_Meta:Array#new_end" | |
"Invoke_Meta:Array#new_end": ; preds = %"Invoke_Meta:Array#new" | |
store %Array* %result79, %Array** %ret, align 8 | |
%sk_int80 = call %Int* @box_int(i64 0) | |
store %Int* %sk_int80, %Int** %word_start, align 8 | |
%sk_int81 = call %Int* @box_int(i64 0) | |
store %Int* %sk_int81, %Int** %sep_cur, align 8 | |
%sk_int82 = call %Int* @box_int(i64 0) | |
store %Int* %sk_int82, %Int** %i, align 8 | |
br label %WhileBegin | |
WhileBegin: ; preds = %"Invoke_Int#+_end242", %"Invoke_Meta:Array#new_end" | |
%i83 = load %Int*, %Int** %i, align 8 | |
%"addr_@bytesize" = getelementptr inbounds %String, %String* %self, i32 0, i32 3 | |
%"@bytesize" = load %Int*, %Int** %"addr_@bytesize", align 8 | |
br label %"Invoke_Int#<" | |
"Invoke_Int#<": ; preds = %WhileBegin | |
%addr_vtable84 = getelementptr inbounds %Int, %Int* %i83, i32 0, i32 0 | |
%vtable85 = load i8*, i8** %addr_vtable84, align 8 | |
%vtable_ptr86 = bitcast i8* %vtable85 to [35 x i8*]* | |
%vtable87 = load [35 x i8*], [35 x i8*]* %vtable_ptr86, align 8 | |
%func_raw88 = extractvalue [35 x i8*] %vtable87, 0 | |
%func89 = bitcast i8* %func_raw88 to %Bool* (%Int*, %Int*)* | |
%result90 = call %Bool* %func89(%Int* %i83, %Int* %"@bytesize") | |
br label %"Invoke_Int#<_end" | |
"Invoke_Int#<_end": ; preds = %"Invoke_Int#<" | |
%llvm_bool91 = call i1 @unbox_bool(%Bool* %result90) | |
%istrue92 = icmp eq i1 %llvm_bool91, true | |
br i1 %istrue92, label %WhileBody, label %WhileEnd | |
WhileBody: ; preds = %"Invoke_Int#<_end" | |
br label %IfBegin93 | |
WhileEnd: ; preds = %"Invoke_Int#<_end" | |
%"::Void243" = load %Void*, %Void** @"::Void", align 8 | |
br label %IfBegin244 | |
IfBegin93: ; preds = %WhileBody | |
%i97 = load %Int*, %Int** %i, align 8 | |
br label %"Invoke_String#nth_byte" | |
IfThen94: ; preds = %"Invoke_Int#==_end123" | |
%sep_cur126 = load %Int*, %Int** %sep_cur, align 8 | |
%sk_int127 = call %Int* @box_int(i64 1) | |
br label %"Invoke_Int#+" | |
IfElse95: ; preds = %"Invoke_Int#==_end123" | |
%sk_int229 = call %Int* @box_int(i64 0) | |
store %Int* %sk_int229, %Int** %sep_cur, align 8 | |
%"::Void230" = load %Void*, %Void** @"::Void", align 8 | |
br label %IfEnd96 | |
IfEnd96: ; preds = %IfElse95, %IfEnd138 | |
%ifResult231 = phi %Void* [ %ifResult, %IfEnd138 ], [ %"::Void230", %IfElse95 ] | |
%i232 = load %Int*, %Int** %i, align 8 | |
%sk_int233 = call %Int* @box_int(i64 1) | |
br label %"Invoke_Int#+234" | |
"Invoke_String#nth_byte": ; preds = %IfBegin93 | |
%addr_vtable98 = getelementptr inbounds %String, %String* %self, i32 0, i32 0 | |
%vtable99 = load i8*, i8** %addr_vtable98, align 8 | |
%vtable_ptr100 = bitcast i8* %vtable99 to [35 x i8*]* | |
%vtable101 = load [35 x i8*], [35 x i8*]* %vtable_ptr100, align 8 | |
%func_raw102 = extractvalue [35 x i8*] %vtable101, 27 | |
%func103 = bitcast i8* %func_raw102 to %Int* (%String*, %Int*)* | |
%result104 = call %Int* %func103(%String* %self, %Int* %i97) | |
br label %"Invoke_String#nth_byte_end" | |
"Invoke_String#nth_byte_end": ; preds = %"Invoke_String#nth_byte" | |
%sep_cur105 = load %Int*, %Int** %sep_cur, align 8 | |
br label %"Invoke_String#nth_byte106" | |
"Invoke_String#nth_byte106": ; preds = %"Invoke_String#nth_byte_end" | |
%addr_vtable107 = getelementptr inbounds %String, %String* %sep, i32 0, i32 0 | |
%vtable108 = load i8*, i8** %addr_vtable107, align 8 | |
%vtable_ptr109 = bitcast i8* %vtable108 to [35 x i8*]* | |
%vtable110 = load [35 x i8*], [35 x i8*]* %vtable_ptr109, align 8 | |
%func_raw111 = extractvalue [35 x i8*] %vtable110, 27 | |
%func112 = bitcast i8* %func_raw111 to %Int* (%String*, %Int*)* | |
%result113 = call %Int* %func112(%String* %sep, %Int* %sep_cur105) | |
br label %"Invoke_String#nth_byte_end114" | |
"Invoke_String#nth_byte_end114": ; preds = %"Invoke_String#nth_byte106" | |
br label %"Invoke_Int#==115" | |
"Invoke_Int#==115": ; preds = %"Invoke_String#nth_byte_end114" | |
%addr_vtable116 = getelementptr inbounds %Int, %Int* %result104, i32 0, i32 0 | |
%vtable117 = load i8*, i8** %addr_vtable116, align 8 | |
%vtable_ptr118 = bitcast i8* %vtable117 to [35 x i8*]* | |
%vtable119 = load [35 x i8*], [35 x i8*]* %vtable_ptr118, align 8 | |
%func_raw120 = extractvalue [35 x i8*] %vtable119, 2 | |
%func121 = bitcast i8* %func_raw120 to %Bool* (%Int*, %Int*)* | |
%result122 = call %Bool* %func121(%Int* %result104, %Int* %result113) | |
br label %"Invoke_Int#==_end123" | |
"Invoke_Int#==_end123": ; preds = %"Invoke_Int#==115" | |
%llvm_bool124 = call i1 @unbox_bool(%Bool* %result122) | |
%istrue125 = icmp eq i1 %llvm_bool124, true | |
br i1 %istrue125, label %IfThen94, label %IfElse95 | |
"Invoke_Int#+": ; preds = %IfThen94 | |
%addr_vtable128 = getelementptr inbounds %Int, %Int* %sep_cur126, i32 0, i32 0 | |
%vtable129 = load i8*, i8** %addr_vtable128, align 8 | |
%vtable_ptr130 = bitcast i8* %vtable129 to [35 x i8*]* | |
%vtable131 = load [35 x i8*], [35 x i8*]* %vtable_ptr130, align 8 | |
%func_raw132 = extractvalue [35 x i8*] %vtable131, 18 | |
%func133 = bitcast i8* %func_raw132 to %Int* (%Int*, %Int*)* | |
%result134 = call %Int* %func133(%Int* %sep_cur126, %Int* %sk_int127) | |
br label %"Invoke_Int#+_end" | |
"Invoke_Int#+_end": ; preds = %"Invoke_Int#+" | |
store %Int* %result134, %Int** %sep_cur, align 8 | |
br label %IfBegin135 | |
IfBegin135: ; preds = %"Invoke_Int#+_end" | |
%sep_cur139 = load %Int*, %Int** %sep_cur, align 8 | |
br label %"Invoke_String#bytesize140" | |
IfThen136: ; preds = %"Invoke_Int#==_end157" | |
%ret160 = load %Array*, %Array** %ret, align 8 | |
%word_start161 = load %Int*, %Int** %word_start, align 8 | |
%i162 = load %Int*, %Int** %i, align 8 | |
%word_start163 = load %Int*, %Int** %word_start, align 8 | |
br label %"Invoke_Int#-" | |
IfElse137: ; preds = %"Invoke_Int#==_end157" | |
%"::Void228" = load %Void*, %Void** @"::Void", align 8 | |
br label %IfEnd138 | |
IfEnd138: ; preds = %IfElse137, %"Invoke_Int#+_end226" | |
%ifResult = phi %Void* [ %"::Void", %"Invoke_Int#+_end226" ], [ %"::Void228", %IfElse137 ] | |
br label %IfEnd96 | |
"Invoke_String#bytesize140": ; preds = %IfBegin135 | |
%addr_vtable141 = getelementptr inbounds %String, %String* %sep, i32 0, i32 0 | |
%vtable142 = load i8*, i8** %addr_vtable141, align 8 | |
%vtable_ptr143 = bitcast i8* %vtable142 to [35 x i8*]* | |
%vtable144 = load [35 x i8*], [35 x i8*]* %vtable_ptr143, align 8 | |
%func_raw145 = extractvalue [35 x i8*] %vtable144, 19 | |
%func146 = bitcast i8* %func_raw145 to %Int* (%String*)* | |
%result147 = call %Int* %func146(%String* %sep) | |
br label %"Invoke_String#bytesize_end148" | |
"Invoke_String#bytesize_end148": ; preds = %"Invoke_String#bytesize140" | |
br label %"Invoke_Int#==149" | |
"Invoke_Int#==149": ; preds = %"Invoke_String#bytesize_end148" | |
%addr_vtable150 = getelementptr inbounds %Int, %Int* %sep_cur139, i32 0, i32 0 | |
%vtable151 = load i8*, i8** %addr_vtable150, align 8 | |
%vtable_ptr152 = bitcast i8* %vtable151 to [35 x i8*]* | |
%vtable153 = load [35 x i8*], [35 x i8*]* %vtable_ptr152, align 8 | |
%func_raw154 = extractvalue [35 x i8*] %vtable153, 2 | |
%func155 = bitcast i8* %func_raw154 to %Bool* (%Int*, %Int*)* | |
%result156 = call %Bool* %func155(%Int* %sep_cur139, %Int* %result147) | |
br label %"Invoke_Int#==_end157" | |
"Invoke_Int#==_end157": ; preds = %"Invoke_Int#==149" | |
%llvm_bool158 = call i1 @unbox_bool(%Bool* %result156) | |
%istrue159 = icmp eq i1 %llvm_bool158, true | |
br i1 %istrue159, label %IfThen136, label %IfElse137 | |
"Invoke_Int#-": ; preds = %IfThen136 | |
%addr_vtable164 = getelementptr inbounds %Int, %Int* %i162, i32 0, i32 0 | |
%vtable165 = load i8*, i8** %addr_vtable164, align 8 | |
%vtable_ptr166 = bitcast i8* %vtable165 to [35 x i8*]* | |
%vtable167 = load [35 x i8*], [35 x i8*]* %vtable_ptr166, align 8 | |
%func_raw168 = extractvalue [35 x i8*] %vtable167, 19 | |
%func169 = bitcast i8* %func_raw168 to %Int* (%Int*, %Int*)* | |
%result170 = call %Int* %func169(%Int* %i162, %Int* %word_start163) | |
br label %"Invoke_Int#-_end" | |
"Invoke_Int#-_end": ; preds = %"Invoke_Int#-" | |
br label %"Invoke_String#bytesize171" | |
"Invoke_String#bytesize171": ; preds = %"Invoke_Int#-_end" | |
%addr_vtable172 = getelementptr inbounds %String, %String* %sep, i32 0, i32 0 | |
%vtable173 = load i8*, i8** %addr_vtable172, align 8 | |
%vtable_ptr174 = bitcast i8* %vtable173 to [35 x i8*]* | |
%vtable175 = load [35 x i8*], [35 x i8*]* %vtable_ptr174, align 8 | |
%func_raw176 = extractvalue [35 x i8*] %vtable175, 19 | |
%func177 = bitcast i8* %func_raw176 to %Int* (%String*)* | |
%result178 = call %Int* %func177(%String* %sep) | |
br label %"Invoke_String#bytesize_end179" | |
"Invoke_String#bytesize_end179": ; preds = %"Invoke_String#bytesize171" | |
br label %"Invoke_Int#-180" | |
"Invoke_Int#-180": ; preds = %"Invoke_String#bytesize_end179" | |
%addr_vtable181 = getelementptr inbounds %Int, %Int* %result170, i32 0, i32 0 | |
%vtable182 = load i8*, i8** %addr_vtable181, align 8 | |
%vtable_ptr183 = bitcast i8* %vtable182 to [35 x i8*]* | |
%vtable184 = load [35 x i8*], [35 x i8*]* %vtable_ptr183, align 8 | |
%func_raw185 = extractvalue [35 x i8*] %vtable184, 19 | |
%func186 = bitcast i8* %func_raw185 to %Int* (%Int*, %Int*)* | |
%result187 = call %Int* %func186(%Int* %result170, %Int* %result178) | |
br label %"Invoke_Int#-_end188" | |
"Invoke_Int#-_end188": ; preds = %"Invoke_Int#-180" | |
%sk_int189 = call %Int* @box_int(i64 1) | |
br label %"Invoke_Int#+190" | |
"Invoke_Int#+190": ; preds = %"Invoke_Int#-_end188" | |
%addr_vtable191 = getelementptr inbounds %Int, %Int* %result187, i32 0, i32 0 | |
%vtable192 = load i8*, i8** %addr_vtable191, align 8 | |
%vtable_ptr193 = bitcast i8* %vtable192 to [35 x i8*]* | |
%vtable194 = load [35 x i8*], [35 x i8*]* %vtable_ptr193, align 8 | |
%func_raw195 = extractvalue [35 x i8*] %vtable194, 18 | |
%func196 = bitcast i8* %func_raw195 to %Int* (%Int*, %Int*)* | |
%result197 = call %Int* %func196(%Int* %result187, %Int* %sk_int189) | |
br label %"Invoke_Int#+_end198" | |
"Invoke_Int#+_end198": ; preds = %"Invoke_Int#+190" | |
br label %"Invoke_String#slice_bytes" | |
"Invoke_String#slice_bytes": ; preds = %"Invoke_Int#+_end198" | |
%addr_vtable199 = getelementptr inbounds %String, %String* %self, i32 0, i32 0 | |
%vtable200 = load i8*, i8** %addr_vtable199, align 8 | |
%vtable_ptr201 = bitcast i8* %vtable200 to [35 x i8*]* | |
%vtable202 = load [35 x i8*], [35 x i8*]* %vtable_ptr201, align 8 | |
%func_raw203 = extractvalue [35 x i8*] %vtable202, 30 | |
%func204 = bitcast i8* %func_raw203 to %String* (%String*, %Int*, %Int*)* | |
%result205 = call %String* %func204(%String* %self, %Int* %word_start161, %Int* %result197) | |
br label %"Invoke_String#slice_bytes_end" | |
"Invoke_String#slice_bytes_end": ; preds = %"Invoke_String#slice_bytes" | |
%as206 = bitcast %String* %result205 to %Object* | |
br label %"Invoke_Array#push207" | |
"Invoke_Array#push207": ; preds = %"Invoke_String#slice_bytes_end" | |
%addr_vtable208 = getelementptr inbounds %Array, %Array* %ret160, i32 0, i32 0 | |
%vtable209 = load i8*, i8** %addr_vtable208, align 8 | |
%vtable_ptr210 = bitcast i8* %vtable209 to [54 x i8*]* | |
%vtable211 = load [54 x i8*], [54 x i8*]* %vtable_ptr210, align 8 | |
%func_raw212 = extractvalue [54 x i8*] %vtable211, 45 | |
%func213 = bitcast i8* %func_raw212 to %Void* (%Array*, %Object*)* | |
%result214 = call %Void* %func213(%Array* %ret160, %Object* %as206) | |
br label %"Invoke_Array#push_end215" | |
"Invoke_Array#push_end215": ; preds = %"Invoke_Array#push207" | |
%i216 = load %Int*, %Int** %i, align 8 | |
%sk_int217 = call %Int* @box_int(i64 1) | |
br label %"Invoke_Int#+218" | |
"Invoke_Int#+218": ; preds = %"Invoke_Array#push_end215" | |
%addr_vtable219 = getelementptr inbounds %Int, %Int* %i216, i32 0, i32 0 | |
%vtable220 = load i8*, i8** %addr_vtable219, align 8 | |
%vtable_ptr221 = bitcast i8* %vtable220 to [35 x i8*]* | |
%vtable222 = load [35 x i8*], [35 x i8*]* %vtable_ptr221, align 8 | |
%func_raw223 = extractvalue [35 x i8*] %vtable222, 18 | |
%func224 = bitcast i8* %func_raw223 to %Int* (%Int*, %Int*)* | |
%result225 = call %Int* %func224(%Int* %i216, %Int* %sk_int217) | |
br label %"Invoke_Int#+_end226" | |
"Invoke_Int#+_end226": ; preds = %"Invoke_Int#+218" | |
store %Int* %result225, %Int** %word_start, align 8 | |
%sk_int227 = call %Int* @box_int(i64 0) | |
store %Int* %sk_int227, %Int** %sep_cur, align 8 | |
%"::Void" = load %Void*, %Void** @"::Void", align 8 | |
br label %IfEnd138 | |
"Invoke_Int#+234": ; preds = %IfEnd96 | |
%addr_vtable235 = getelementptr inbounds %Int, %Int* %i232, i32 0, i32 0 | |
%vtable236 = load i8*, i8** %addr_vtable235, align 8 | |
%vtable_ptr237 = bitcast i8* %vtable236 to [35 x i8*]* | |
%vtable238 = load [35 x i8*], [35 x i8*]* %vtable_ptr237, align 8 | |
%func_raw239 = extractvalue [35 x i8*] %vtable238, 18 | |
%func240 = bitcast i8* %func_raw239 to %Int* (%Int*, %Int*)* | |
%result241 = call %Int* %func240(%Int* %i232, %Int* %sk_int233) | |
br label %"Invoke_Int#+_end242" | |
"Invoke_Int#+_end242": ; preds = %"Invoke_Int#+234" | |
store %Int* %result241, %Int** %i, align 8 | |
br label %WhileBegin | |
IfBegin244: ; preds = %WhileEnd | |
%word_start248 = load %Int*, %Int** %word_start, align 8 | |
%"addr_@bytesize249" = getelementptr inbounds %String, %String* %self, i32 0, i32 3 | |
%"@bytesize250" = load %Int*, %Int** %"addr_@bytesize249", align 8 | |
br label %"Invoke_Int#<251" | |
IfThen245: ; preds = %"Invoke_Int#<_end259" | |
%ret262 = load %Array*, %Array** %ret, align 8 | |
%word_start263 = load %Int*, %Int** %word_start, align 8 | |
%"addr_@bytesize264" = getelementptr inbounds %String, %String* %self, i32 0, i32 3 | |
%"@bytesize265" = load %Int*, %Int** %"addr_@bytesize264", align 8 | |
%word_start266 = load %Int*, %Int** %word_start, align 8 | |
br label %"Invoke_Int#-267" | |
IfElse246: ; preds = %"Invoke_Int#<_end259" | |
%"::Void295" = load %Void*, %Void** @"::Void", align 8 | |
%"::Void296" = load %Void*, %Void** @"::Void", align 8 | |
br label %IfEnd247 | |
IfEnd247: ; preds = %IfElse246, %"Invoke_Array#push_end294" | |
%ifResult297 = phi %Void* [ %result293, %"Invoke_Array#push_end294" ], [ %"::Void296", %IfElse246 ] | |
%ret298 = load %Array*, %Array** %ret, align 8 | |
br label %IfEnd | |
"Invoke_Int#<251": ; preds = %IfBegin244 | |
%addr_vtable252 = getelementptr inbounds %Int, %Int* %word_start248, i32 0, i32 0 | |
%vtable253 = load i8*, i8** %addr_vtable252, align 8 | |
%vtable_ptr254 = bitcast i8* %vtable253 to [35 x i8*]* | |
%vtable255 = load [35 x i8*], [35 x i8*]* %vtable_ptr254, align 8 | |
%func_raw256 = extractvalue [35 x i8*] %vtable255, 0 | |
%func257 = bitcast i8* %func_raw256 to %Bool* (%Int*, %Int*)* | |
%result258 = call %Bool* %func257(%Int* %word_start248, %Int* %"@bytesize250") | |
br label %"Invoke_Int#<_end259" | |
"Invoke_Int#<_end259": ; preds = %"Invoke_Int#<251" | |
%llvm_bool260 = call i1 @unbox_bool(%Bool* %result258) | |
%istrue261 = icmp eq i1 %llvm_bool260, true | |
br i1 %istrue261, label %IfThen245, label %IfElse246 | |
"Invoke_Int#-267": ; preds = %IfThen245 | |
%addr_vtable268 = getelementptr inbounds %Int, %Int* %"@bytesize265", i32 0, i32 0 | |
%vtable269 = load i8*, i8** %addr_vtable268, align 8 | |
%vtable_ptr270 = bitcast i8* %vtable269 to [35 x i8*]* | |
%vtable271 = load [35 x i8*], [35 x i8*]* %vtable_ptr270, align 8 | |
%func_raw272 = extractvalue [35 x i8*] %vtable271, 19 | |
%func273 = bitcast i8* %func_raw272 to %Int* (%Int*, %Int*)* | |
%result274 = call %Int* %func273(%Int* %"@bytesize265", %Int* %word_start266) | |
br label %"Invoke_Int#-_end275" | |
"Invoke_Int#-_end275": ; preds = %"Invoke_Int#-267" | |
br label %"Invoke_String#slice_bytes276" | |
"Invoke_String#slice_bytes276": ; preds = %"Invoke_Int#-_end275" | |
%addr_vtable277 = getelementptr inbounds %String, %String* %self, i32 0, i32 0 | |
%vtable278 = load i8*, i8** %addr_vtable277, align 8 | |
%vtable_ptr279 = bitcast i8* %vtable278 to [35 x i8*]* | |
%vtable280 = load [35 x i8*], [35 x i8*]* %vtable_ptr279, align 8 | |
%func_raw281 = extractvalue [35 x i8*] %vtable280, 30 | |
%func282 = bitcast i8* %func_raw281 to %String* (%String*, %Int*, %Int*)* | |
%result283 = call %String* %func282(%String* %self, %Int* %word_start263, %Int* %result274) | |
br label %"Invoke_String#slice_bytes_end284" | |
"Invoke_String#slice_bytes_end284": ; preds = %"Invoke_String#slice_bytes276" | |
%as285 = bitcast %String* %result283 to %Object* | |
br label %"Invoke_Array#push286" | |
"Invoke_Array#push286": ; preds = %"Invoke_String#slice_bytes_end284" | |
%addr_vtable287 = getelementptr inbounds %Array, %Array* %ret262, i32 0, i32 0 | |
%vtable288 = load i8*, i8** %addr_vtable287, align 8 | |
%vtable_ptr289 = bitcast i8* %vtable288 to [54 x i8*]* | |
%vtable290 = load [54 x i8*], [54 x i8*]* %vtable_ptr289, align 8 | |
%func_raw291 = extractvalue [54 x i8*] %vtable290, 45 | |
%func292 = bitcast i8* %func_raw291 to %Void* (%Array*, %Object*)* | |
%result293 = call %Void* %func292(%Array* %ret262, %Object* %as285) | |
br label %"Invoke_Array#push_end294" | |
"Invoke_Array#push_end294": ; preds = %"Invoke_Array#push286" | |
br label %IfEnd247 | |
Ret: ; preds = %IfEnd | |
br label %End | |
} | |
define %Bool* @"String_starts__with?"(%String* %self, %String* %s) { | |
br label %IfBegin | |
End: ; preds = %Ret | |
%methodResult = phi %Bool* [ %ifResult, %Ret ] | |
ret %Bool* %methodResult | |
IfBegin: ; preds = %0 | |
br label %"Invoke_String#bytesize" | |
IfThen: ; preds = %"Invoke_Int#>_end" | |
%sk_bool = call %Bool* @box_bool(i1 false) | |
br label %IfEnd | |
IfElse: ; preds = %"Invoke_Int#>_end" | |
%sk_int = call %Int* @box_int(i64 0) | |
br label %"Invoke_String#bytesize9" | |
IfEnd: ; preds = %"Invoke_String#==_end", %IfThen | |
%ifResult = phi %Bool* [ %sk_bool, %IfThen ], [ %result31, %"Invoke_String#==_end" ] | |
br label %Ret | |
"Invoke_String#bytesize": ; preds = %IfBegin | |
%addr_vtable = getelementptr inbounds %String, %String* %s, i32 0, i32 0 | |
%vtable = load i8*, i8** %addr_vtable, align 8 | |
%vtable_ptr = bitcast i8* %vtable to [35 x i8*]* | |
%vtable1 = load [35 x i8*], [35 x i8*]* %vtable_ptr, align 8 | |
%func_raw = extractvalue [35 x i8*] %vtable1, 19 | |
%func = bitcast i8* %func_raw to %Int* (%String*)* | |
%result = call %Int* %func(%String* %s) | |
br label %"Invoke_String#bytesize_end" | |
"Invoke_String#bytesize_end": ; preds = %"Invoke_String#bytesize" | |
%"addr_@bytesize" = getelementptr inbounds %String, %String* %self, i32 0, i32 3 | |
%"@bytesize" = load %Int*, %Int** %"addr_@bytesize", align 8 | |
br label %"Invoke_Int#>" | |
"Invoke_Int#>": ; preds = %"Invoke_String#bytesize_end" | |
%addr_vtable2 = getelementptr inbounds %Int, %Int* %result, i32 0, i32 0 | |
%vtable3 = load i8*, i8** %addr_vtable2, align 8 | |
%vtable_ptr4 = bitcast i8* %vtable3 to [35 x i8*]* | |
%vtable5 = load [35 x i8*], [35 x i8*]* %vtable_ptr4, align 8 | |
%func_raw6 = extractvalue [35 x i8*] %vtable5, 3 | |
%func7 = bitcast i8* %func_raw6 to %Bool* (%Int*, %Int*)* | |
%result8 = call %Bool* %func7(%Int* %result, %Int* %"@bytesize") | |
br label %"Invoke_Int#>_end" | |
"Invoke_Int#>_end": ; preds = %"Invoke_Int#>" | |
%llvm_bool = call i1 @unbox_bool(%Bool* %result8) | |
%istrue = icmp eq i1 %llvm_bool, true | |
br i1 %istrue, label %IfThen, label %IfElse | |
"Invoke_String#bytesize9": ; preds = %IfElse | |
%addr_vtable10 = getelementptr inbounds %String, %String* %s, i32 0, i32 0 | |
%vtable11 = load i8*, i8** %addr_vtable10, align 8 | |
%vtable_ptr12 = bitcast i8* %vtable11 to [35 x i8*]* | |
%vtable13 = load [35 x i8*], [35 x i8*]* %vtable_ptr12, align 8 | |
%func_raw14 = extractvalue [35 x i8*] %vtable13, 19 | |
%func15 = bitcast i8* %func_raw14 to %Int* (%String*)* | |
%result16 = call %Int* %func15(%String* %s) | |
br label %"Invoke_String#bytesize_end17" | |
"Invoke_String#bytesize_end17": ; preds = %"Invoke_String#bytesize9" | |
br label %"Invoke_String#slice_bytes" | |
"Invoke_String#slice_bytes": ; preds = %"Invoke_String#bytesize_end17" | |
%addr_vtable18 = getelementptr inbounds %String, %String* %self, i32 0, i32 0 | |
%vtable19 = load i8*, i8** %addr_vtable18, align 8 | |
%vtable_ptr20 = bitcast i8* %vtable19 to [35 x i8*]* | |
%vtable21 = load [35 x i8*], [35 x i8*]* %vtable_ptr20, align 8 | |
%func_raw22 = extractvalue [35 x i8*] %vtable21, 30 | |
%func23 = bitcast i8* %func_raw22 to %String* (%String*, %Int*, %Int*)* | |
%result24 = call %String* %func23(%String* %self, %Int* %sk_int, %Int* %result16) | |
br label %"Invoke_String#slice_bytes_end" | |
"Invoke_String#slice_bytes_end": ; preds = %"Invoke_String#slice_bytes" | |
br label %"Invoke_String#==" | |
"Invoke_String#==": ; preds = %"Invoke_String#slice_bytes_end" | |
%addr_vtable25 = getelementptr inbounds %String, %String* %result24, i32 0, i32 0 | |
%vtable26 = load i8*, i8** %addr_vtable25, align 8 | |
%vtable_ptr27 = bitcast i8* %vtable26 to [35 x i8*]* | |
%vtable28 = load [35 x i8*], [35 x i8*]* %vtable_ptr27, align 8 | |
%func_raw29 = extractvalue [35 x i8*] %vtable28, 2 | |
%func30 = bitcast i8* %func_raw29 to %Bool* (%String*, %String*)* | |
%result31 = call %Bool* %func30(%String* %result24, %String* %s) | |
br label %"Invoke_String#==_end" | |
"Invoke_String#==_end": ; preds = %"Invoke_String#==" | |
br label %IfEnd | |
Ret: ; preds = %IfEnd | |
br label %End | |
} | |
define %Int* @String_to__i(%String* %self) { | |
alloca: | |
%n = alloca %Int*, align 8 | |
%i = alloca %Int*, align 8 | |
%start = alloca %Int*, align 8 | |
%minus = alloca %Bool*, align 8 | |
%b = alloca %Int*, align 8 | |
br label %alloca_End | |
alloca_End: ; preds = %alloca | |
%sk_bool = call %Bool* @box_bool(i1 false) | |
store %Bool* %sk_bool, %Bool** %minus, align 8 | |
%sk_int = call %Int* @box_int(i64 0) | |
store %Int* %sk_int, %Int** %start, align 8 | |
br label %IfBegin | |
End: ; preds = %Ret | |
%methodResult = phi %Int* [ %ifResult198, %Ret ] | |
ret %Int* %methodResult | |
IfBegin: ; preds = %alloca_End | |
%sk_int1 = call %Int* @box_int(i64 0) | |
br label %"Invoke_String#nth_byte" | |
IfThen: ; preds = %"Invoke_Int#==_end" | |
%sk_int20 = call %Int* @box_int(i64 1) | |
store %Int* %sk_int20, %Int** %start, align 8 | |
%"::Void" = load %Void*, %Void** @"::Void", align 8 | |
br label %IfEnd | |
IfElse: ; preds = %"Invoke_Int#==_end" | |
br label %IfBegin21 | |
IfEnd: ; preds = %IfEnd24, %IfThen | |
%ifResult61 = phi %Void* [ %"::Void", %IfThen ], [ %ifResult, %IfEnd24 ] | |
%sk_int62 = call %Int* @box_int(i64 0) | |
store %Int* %sk_int62, %Int** %n, align 8 | |
%start63 = load %Int*, %Int** %start, align 8 | |
store %Int* %start63, %Int** %i, align 8 | |
br label %WhileBegin | |
"Invoke_String#nth_byte": ; preds = %IfBegin | |
%addr_vtable = getelementptr inbounds %String, %String* %self, i32 0, i32 0 | |
%vtable = load i8*, i8** %addr_vtable, align 8 | |
%vtable_ptr = bitcast i8* %vtable to [35 x i8*]* | |
%vtable2 = load [35 x i8*], [35 x i8*]* %vtable_ptr, align 8 | |
%func_raw = extractvalue [35 x i8*] %vtable2, 27 | |
%func = bitcast i8* %func_raw to %Int* (%String*, %Int*)* | |
%result = call %Int* %func(%String* %self, %Int* %sk_int1) | |
br label %"Invoke_String#nth_byte_end" | |
"Invoke_String#nth_byte_end": ; preds = %"Invoke_String#nth_byte" | |
%sk_str = call %String* @gen_literal_string(i8* getelementptr inbounds ([2 x i8], [2 x i8]* @str_81, i32 0, i32 0), i64 1) | |
%sk_int3 = call %Int* @box_int(i64 0) | |
br label %"Invoke_String#nth_byte4" | |
"Invoke_String#nth_byte4": ; preds = %"Invoke_String#nth_byte_end" | |
%addr_vtable5 = getelementptr inbounds %String, %String* %sk_str, i32 0, i32 0 | |
%vtable6 = load i8*, i8** %addr_vtable5, align 8 | |
%vtable_ptr7 = bitcast i8* %vtable6 to [35 x i8*]* | |
%vtable8 = load [35 x i8*], [35 x i8*]* %vtable_ptr7, align 8 | |
%func_raw9 = extractvalue [35 x i8*] %vtable8, 27 | |
%func10 = bitcast i8* %func_raw9 to %Int* (%String*, %Int*)* | |
%result11 = call %Int* %func10(%String* %sk_str, %Int* %sk_int3) | |
br label %"Invoke_String#nth_byte_end12" | |
"Invoke_String#nth_byte_end12": ; preds = %"Invoke_String#nth_byte4" | |
br label %"Invoke_Int#==" | |
"Invoke_Int#==": ; preds = %"Invoke_String#nth_byte_end12" | |
%addr_vtable13 = getelementptr inbounds %Int, %Int* %result, i32 0, i32 0 | |
%vtable14 = load i8*, i8** %addr_vtable13, align 8 | |
%vtable_ptr15 = bitcast i8* %vtable14 to [35 x i8*]* | |
%vtable16 = load [35 x i8*], [35 x i8*]* %vtable_ptr15, align 8 | |
%func_raw17 = extractvalue [35 x i8*] %vtable16, 2 | |
%func18 = bitcast i8* %func_raw17 to %Bool* (%Int*, %Int*)* | |
%result19 = call %Bool* %func18(%Int* %result, %Int* %result11) | |
br label %"Invoke_Int#==_end" | |
"Invoke_Int#==_end": ; preds = %"Invoke_Int#==" | |
%llvm_bool = call i1 @unbox_bool(%Bool* %result19) | |
%istrue = icmp eq i1 %llvm_bool, true | |
br i1 %istrue, label %IfThen, label %IfElse | |
IfBegin21: ; preds = %IfElse | |
%sk_int25 = call %Int* @box_int(i64 0) | |
br label %"Invoke_String#nth_byte26" | |
IfThen22: ; preds = %"Invoke_Int#==_end54" | |
%sk_int57 = call %Int* @box_int(i64 1) | |
store %Int* %sk_int57, %Int** %start, align 8 | |
%sk_bool58 = call %Bool* @box_bool(i1 true) | |
store %Bool* %sk_bool58, %Bool** %minus, align 8 | |
%"::Void59" = load %Void*, %Void** @"::Void", align 8 | |
br label %IfEnd24 | |
IfElse23: ; preds = %"Invoke_Int#==_end54" | |
%"::Void60" = load %Void*, %Void** @"::Void", align 8 | |
br label %IfEnd24 | |
IfEnd24: ; preds = %IfElse23, %IfThen22 | |
%ifResult = phi %Void* [ %"::Void59", %IfThen22 ], [ %"::Void60", %IfElse23 ] | |
br label %IfEnd | |
"Invoke_String#nth_byte26": ; preds = %IfBegin21 | |
%addr_vtable27 = getelementptr inbounds %String, %String* %self, i32 0, i32 0 | |
%vtable28 = load i8*, i8** %addr_vtable27, align 8 | |
%vtable_ptr29 = bitcast i8* %vtable28 to [35 x i8*]* | |
%vtable30 = load [35 x i8*], [35 x i8*]* %vtable_ptr29, align 8 | |
%func_raw31 = extractvalue [35 x i8*] %vtable30, 27 | |
%func32 = bitcast i8* %func_raw31 to %Int* (%String*, %Int*)* | |
%result33 = call %Int* %func32(%String* %self, %Int* %sk_int25) | |
br label %"Invoke_String#nth_byte_end34" | |
"Invoke_String#nth_byte_end34": ; preds = %"Invoke_String#nth_byte26" | |
%sk_str35 = call %String* @gen_literal_string(i8* getelementptr inbounds ([2 x i8], [2 x i8]* @str_82, i32 0, i32 0), i64 1) | |
%sk_int36 = call %Int* @box_int(i64 0) | |
br label %"Invoke_String#nth_byte37" | |
"Invoke_String#nth_byte37": ; preds = %"Invoke_String#nth_byte_end34" | |
%addr_vtable38 = getelementptr inbounds %String, %String* %sk_str35, i32 0, i32 0 | |
%vtable39 = load i8*, i8** %addr_vtable38, align 8 | |
%vtable_ptr40 = bitcast i8* %vtable39 to [35 x i8*]* | |
%vtable41 = load [35 x i8*], [35 x i8*]* %vtable_ptr40, align 8 | |
%func_raw42 = extractvalue [35 x i8*] %vtable41, 27 | |
%func43 = bitcast i8* %func_raw42 to %Int* (%String*, %Int*)* | |
%result44 = call %Int* %func43(%String* %sk_str35, %Int* %sk_int36) | |
br label %"Invoke_String#nth_byte_end45" | |
"Invoke_String#nth_byte_end45": ; preds = %"Invoke_String#nth_byte37" | |
br label %"Invoke_Int#==46" | |
"Invoke_Int#==46": ; preds = %"Invoke_String#nth_byte_end45" | |
%addr_vtable47 = getelementptr inbounds %Int, %Int* %result33, i32 0, i32 0 | |
%vtable48 = load i8*, i8** %addr_vtable47, align 8 | |
%vtable_ptr49 = bitcast i8* %vtable48 to [35 x i8*]* | |
%vtable50 = load [35 x i8*], [35 x i8*]* %vtable_ptr49, align 8 | |
%func_raw51 = extractvalue [35 x i8*] %vtable50, 2 | |
%func52 = bitcast i8* %func_raw51 to %Bool* (%Int*, %Int*)* | |
%result53 = call %Bool* %func52(%Int* %result33, %Int* %result44) | |
br label %"Invoke_Int#==_end54" | |
"Invoke_Int#==_end54": ; preds = %"Invoke_Int#==46" | |
%llvm_bool55 = call i1 @unbox_bool(%Bool* %result53) | |
%istrue56 = icmp eq i1 %llvm_bool55, true | |
br i1 %istrue56, label %IfThen22, label %IfElse23 | |
WhileBegin: ; preds = %"Invoke_Int#+_end180", %IfEnd | |
%i64 = load %Int*, %Int** %i, align 8 | |
%"addr_@bytesize" = getelementptr inbounds %String, %String* %self, i32 0, i32 3 | |
%"@bytesize" = load %Int*, %Int** %"addr_@bytesize", align 8 | |
br label %"Invoke_Int#<" | |
"Invoke_Int#<": ; preds = %WhileBegin | |
%addr_vtable65 = getelementptr inbounds %Int, %Int* %i64, i32 0, i32 0 | |
%vtable66 = load i8*, i8** %addr_vtable65, align 8 | |
%vtable_ptr67 = bitcast i8* %vtable66 to [35 x i8*]* | |
%vtable68 = load [35 x i8*], [35 x i8*]* %vtable_ptr67, align 8 | |
%func_raw69 = extractvalue [35 x i8*] %vtable68, 0 | |
%func70 = bitcast i8* %func_raw69 to %Bool* (%Int*, %Int*)* | |
%result71 = call %Bool* %func70(%Int* %i64, %Int* %"@bytesize") | |
br label %"Invoke_Int#<_end" | |
"Invoke_Int#<_end": ; preds = %"Invoke_Int#<" | |
%llvm_bool72 = call i1 @unbox_bool(%Bool* %result71) | |
%istrue73 = icmp eq i1 %llvm_bool72, true | |
br i1 %istrue73, label %WhileBody, label %WhileEnd | |
WhileBody: ; preds = %"Invoke_Int#<_end" | |
%i74 = load %Int*, %Int** %i, align 8 | |
br label %"Invoke_String#nth_byte75" | |
WhileEnd: ; preds = %IfThen142, %"Invoke_Int#<_end" | |
%"::Void181" = load %Void*, %Void** @"::Void", align 8 | |
br label %IfBegin182 | |
"Invoke_String#nth_byte75": ; preds = %WhileBody | |
%addr_vtable76 = getelementptr inbounds %String, %String* %self, i32 0, i32 0 | |
%vtable77 = load i8*, i8** %addr_vtable76, align 8 | |
%vtable_ptr78 = bitcast i8* %vtable77 to [35 x i8*]* | |
%vtable79 = load [35 x i8*], [35 x i8*]* %vtable_ptr78, align 8 | |
%func_raw80 = extractvalue [35 x i8*] %vtable79, 27 | |
%func81 = bitcast i8* %func_raw80 to %Int* (%String*, %Int*)* | |
%result82 = call %Int* %func81(%String* %self, %Int* %i74) | |
br label %"Invoke_String#nth_byte_end83" | |
"Invoke_String#nth_byte_end83": ; preds = %"Invoke_String#nth_byte75" | |
store %Int* %result82, %Int** %b, align 8 | |
br label %IfBegin84 | |
IfBegin84: ; preds = %"Invoke_String#nth_byte_end83" | |
br label %AndBegin | |
IfThen85: ; preds = %AndEnd | |
%n112 = load %Int*, %Int** %n, align 8 | |
%sk_int113 = call %Int* @box_int(i64 10) | |
br label %"Invoke_Int#*" | |
IfElse86: ; preds = %AndEnd | |
%"::Void139" = load %Void*, %Void** @"::Void", align 8 | |
br label %IfEnd87 | |
IfEnd87: ; preds = %IfElse86, %"Invoke_Int#+_end" | |
%ifResult140 = phi %Void* [ %"::Void138", %"Invoke_Int#+_end" ], [ %"::Void139", %IfElse86 ] | |
br label %IfBegin141 | |
AndBegin: ; preds = %IfBegin84 | |
%sk_int88 = call %Int* @box_int(i64 48) | |
%b89 = load %Int*, %Int** %b, align 8 | |
br label %"Invoke_Int#<=" | |
AndMore: ; preds = %"Invoke_Int#<=_end" | |
%b99 = load %Int*, %Int** %b, align 8 | |
%sk_int100 = call %Int* @box_int(i64 57) | |
br label %"Invoke_Int#<=101" | |
AndEnd: ; preds = %"Invoke_Int#<=_end109", %"Invoke_Int#<=_end" | |
%AndResult = phi %Bool* [ %result96, %"Invoke_Int#<=_end" ], [ %result108, %"Invoke_Int#<=_end109" ] | |
%llvm_bool110 = call i1 @unbox_bool(%Bool* %AndResult) | |
%istrue111 = icmp eq i1 %llvm_bool110, true | |
br i1 %istrue111, label %IfThen85, label %IfElse86 | |
"Invoke_Int#<=": ; preds = %AndBegin | |
%addr_vtable90 = getelementptr inbounds %Int, %Int* %sk_int88, i32 0, i32 0 | |
%vtable91 = load i8*, i8** %addr_vtable90, align 8 | |
%vtable_ptr92 = bitcast i8* %vtable91 to [35 x i8*]* | |
%vtable93 = load [35 x i8*], [35 x i8*]* %vtable_ptr92, align 8 | |
%func_raw94 = extractvalue [35 x i8*] %vtable93, 1 | |
%func95 = bitcast i8* %func_raw94 to %Bool* (%Int*, %Int*)* | |
%result96 = call %Bool* %func95(%Int* %sk_int88, %Int* %b89) | |
br label %"Invoke_Int#<=_end" | |
"Invoke_Int#<=_end": ; preds = %"Invoke_Int#<=" | |
%llvm_bool97 = call i1 @unbox_bool(%Bool* %result96) | |
%istrue98 = icmp eq i1 %llvm_bool97, true | |
br i1 %istrue98, label %AndMore, label %AndEnd | |
"Invoke_Int#<=101": ; preds = %AndMore | |
%addr_vtable102 = getelementptr inbounds %Int, %Int* %b99, i32 0, i32 0 | |
%vtable103 = load i8*, i8** %addr_vtable102, align 8 | |
%vtable_ptr104 = bitcast i8* %vtable103 to [35 x i8*]* | |
%vtable105 = load [35 x i8*], [35 x i8*]* %vtable_ptr104, align 8 | |
%func_raw106 = extractvalue [35 x i8*] %vtable105, 1 | |
%func107 = bitcast i8* %func_raw106 to %Bool* (%Int*, %Int*)* | |
%result108 = call %Bool* %func107(%Int* %b99, %Int* %sk_int100) | |
br label %"Invoke_Int#<=_end109" | |
"Invoke_Int#<=_end109": ; preds = %"Invoke_Int#<=101" | |
br label %AndEnd | |
"Invoke_Int#*": ; preds = %IfThen85 | |
%addr_vtable114 = getelementptr inbounds %Int, %Int* %n112, i32 0, i32 0 | |
%vtable115 = load i8*, i8** %addr_vtable114, align 8 | |
%vtable_ptr116 = bitcast i8* %vtable115 to [35 x i8*]* | |
%vtable117 = load [35 x i8*], [35 x i8*]* %vtable_ptr116, align 8 | |
%func_raw118 = extractvalue [35 x i8*] %vtable117, 17 | |
%func119 = bitcast i8* %func_raw118 to %Int* (%Int*, %Int*)* | |
%result120 = call %Int* %func119(%Int* %n112, %Int* %sk_int113) | |
br label %"Invoke_Int#*_end" | |
"Invoke_Int#*_end": ; preds = %"Invoke_Int#*" | |
store %Int* %result120, %Int** %n, align 8 | |
%n121 = load %Int*, %Int** %n, align 8 | |
%b122 = load %Int*, %Int** %b, align 8 | |
%sk_int123 = call %Int* @box_int(i64 48) | |
br label %"Invoke_Int#-" | |
"Invoke_Int#-": ; preds = %"Invoke_Int#*_end" | |
%addr_vtable124 = getelementptr inbounds %Int, %Int* %b122, i32 0, i32 0 | |
%vtable125 = load i8*, i8** %addr_vtable124, align 8 | |
%vtable_ptr126 = bitcast i8* %vtable125 to [35 x i8*]* | |
%vtable127 = load [35 x i8*], [35 x i8*]* %vtable_ptr126, align 8 | |
%func_raw128 = extractvalue [35 x i8*] %vtable127, 19 | |
%func129 = bitcast i8* %func_raw128 to %Int* (%Int*, %Int*)* | |
%result130 = call %Int* %func129(%Int* %b122, %Int* %sk_int123) | |
br label %"Invoke_Int#-_end" | |
"Invoke_Int#-_end": ; preds = %"Invoke_Int#-" | |
br label %"Invoke_Int#+" | |
"Invoke_Int#+": ; preds = %"Invoke_Int#-_end" | |
%addr_vtable131 = getelementptr inbounds %Int, %Int* %n121, i32 0, i32 0 | |
%vtable132 = load i8*, i8** %addr_vtable131, align 8 | |
%vtable_ptr133 = bitcast i8* %vtable132 to [35 x i8*]* | |
%vtable134 = load [35 x i8*], [35 x i8*]* %vtable_ptr133, align 8 | |
%func_raw135 = extractvalue [35 x i8*] %vtable134, 18 | |
%func136 = bitcast i8* %func_raw135 to %Int* (%Int*, %Int*)* | |
%result137 = call %Int* %func136(%Int* %n121, %Int* %result130) | |
br label %"Invoke_Int#+_end" | |
"Invoke_Int#+_end": ; preds = %"Invoke_Int#+" | |
store %Int* %result137, %Int** %n, align 8 | |
%"::Void138" = load %Void*, %Void** @"::Void", align 8 | |
br label %IfEnd87 | |
IfBegin141: ; preds = %IfEnd87 | |
br label %OrBegin | |
IfThen142: ; preds = %OrEnd | |
br label %WhileEnd | |
IfElse143: ; preds = %OrEnd | |
%"::Void169" = load %Void*, %Void** @"::Void", align 8 | |
br label %IfEnd144 | |
IfEnd144: ; preds = %IfElse143 | |
%i170 = load %Int*, %Int** %i, align 8 | |
%sk_int171 = call %Int* @box_int(i64 1) | |
br label %"Invoke_Int#+172" | |
OrBegin: ; preds = %IfBegin141 | |
%b145 = load %Int*, %Int** %b, align 8 | |
%sk_int146 = call %Int* @box_int(i64 48) | |
br label %"Invoke_Int#<147" | |
OrElse: ; preds = %"Invoke_Int#<_end155" | |
%b158 = load %Int*, %Int** %b, align 8 | |
%sk_int159 = call %Int* @box_int(i64 57) | |
br label %"Invoke_Int#>" | |
OrEnd: ; preds = %"Invoke_Int#>_end", %"Invoke_Int#<_end155" | |
%OrResult = phi %Bool* [ %result154, %"Invoke_Int#<_end155" ], [ %result166, %"Invoke_Int#>_end" ] | |
%llvm_bool167 = call i1 @unbox_bool(%Bool* %OrResult) | |
%istrue168 = icmp eq i1 %llvm_bool167, true | |
br i1 %istrue168, label %IfThen142, label %IfElse143 | |
"Invoke_Int#<147": ; preds = %OrBegin | |
%addr_vtable148 = getelementptr inbounds %Int, %Int* %b145, i32 0, i32 0 | |
%vtable149 = load i8*, i8** %addr_vtable148, align 8 | |
%vtable_ptr150 = bitcast i8* %vtable149 to [35 x i8*]* | |
%vtable151 = load [35 x i8*], [35 x i8*]* %vtable_ptr150, align 8 | |
%func_raw152 = extractvalue [35 x i8*] %vtable151, 0 | |
%func153 = bitcast i8* %func_raw152 to %Bool* (%Int*, %Int*)* | |
%result154 = call %Bool* %func153(%Int* %b145, %Int* %sk_int146) | |
br label %"Invoke_Int#<_end155" | |
"Invoke_Int#<_end155": ; preds = %"Invoke_Int#<147" | |
%llvm_bool156 = call i1 @unbox_bool(%Bool* %result154) | |
%istrue157 = icmp eq i1 %llvm_bool156, true | |
br i1 %istrue157, label %OrEnd, label %OrElse | |
"Invoke_Int#>": ; preds = %OrElse | |
%addr_vtable160 = getelementptr inbounds %Int, %Int* %b158, i32 0, i32 0 | |
%vtable161 = load i8*, i8** %addr_vtable160, align 8 | |
%vtable_ptr162 = bitcast i8* %vtable161 to [35 x i8*]* | |
%vtable163 = load [35 x i8*], [35 x i8*]* %vtable_ptr162, align 8 | |
%func_raw164 = extractvalue [35 x i8*] %vtable163, 3 | |
%func165 = bitcast i8* %func_raw164 to %Bool* (%Int*, %Int*)* | |
%result166 = call %Bool* %func165(%Int* %b158, %Int* %sk_int159) | |
br label %"Invoke_Int#>_end" | |
"Invoke_Int#>_end": ; preds = %"Invoke_Int#>" | |
br label %OrEnd | |
"Invoke_Int#+172": ; preds = %IfEnd144 | |
%addr_vtable173 = getelementptr inbounds %Int, %Int* %i170, i32 0, i32 0 | |
%vtable174 = load i8*, i8** %addr_vtable173, align 8 | |
%vtable_ptr175 = bitcast i8* %vtable174 to [35 x i8*]* | |
%vtable176 = load [35 x i8*], [35 x i8*]* %vtable_ptr175, align 8 | |
%func_raw177 = extractvalue [35 x i8*] %vtable176, 18 | |
%func178 = bitcast i8* %func_raw177 to %Int* (%Int*, %Int*)* | |
%result179 = call %Int* %func178(%Int* %i170, %Int* %sk_int171) | |
br label %"Invoke_Int#+_end180" | |
"Invoke_Int#+_end180": ; preds = %"Invoke_Int#+172" | |
store %Int* %result179, %Int** %i, align 8 | |
br label %WhileBegin | |
IfBegin182: ; preds = %WhileEnd | |
%minus186 = load %Bool*, %Bool** %minus, align 8 | |
%llvm_bool187 = call i1 @unbox_bool(%Bool* %minus186) | |
%istrue188 = icmp eq i1 %llvm_bool187, true | |
br i1 %istrue188, label %IfThen183, label %IfElse184 | |
IfThen183: ; preds = %IfBegin182 | |
%n189 = load %Int*, %Int** %n, align 8 | |
br label %"Invoke_Int#-@" | |
IfElse184: ; preds = %IfBegin182 | |
%n197 = load %Int*, %Int** %n, align 8 | |
br label %IfEnd185 | |
IfEnd185: ; preds = %IfElse184, %"Invoke_Int#-@_end" | |
%ifResult198 = phi %Int* [ %result196, %"Invoke_Int#-@_end" ], [ %n197, %IfElse184 ] | |
br label %Ret | |
"Invoke_Int#-@": ; preds = %IfThen183 | |
%addr_vtable190 = getelementptr inbounds %Int, %Int* %n189, i32 0, i32 0 | |
%vtable191 = load i8*, i8** %addr_vtable190, align 8 | |
%vtable_ptr192 = bitcast i8* %vtable191 to [35 x i8*]* | |
%vtable193 = load [35 x i8*], [35 x i8*]* %vtable_ptr192, align 8 | |
%func_raw194 = extractvalue [35 x i8*] %vtable193, 20 | |
%func195 = bitcast i8* %func_raw194 to %Int* (%Int*)* | |
%result196 = call %Int* %func195(%Int* %n189) | |
br label %"Invoke_Int#-@_end" | |
"Invoke_Int#-@_end": ; preds = %"Invoke_Int#-@" | |
br label %IfEnd185 | |
Ret: ; preds = %IfEnd185 | |
br label %End | |
} | |
define %MutableString* @String_to__mutable(%String* %self) { | |
alloca: | |
%ret = alloca %MutableString*, align 8 | |
br label %alloca_End | |
alloca_End: ; preds = %alloca | |
%"::MutableString" = load %MutableString*, %MutableString** @"::MutableString", align 8 | |
br label %"Invoke_Meta:MutableString#new" | |
End: ; preds = %Ret | |
%methodResult = phi %MutableString* [ %ret10, %Ret ] | |
ret %MutableString* %methodResult | |
"Invoke_Meta:MutableString#new": ; preds = %alloca_End | |
%addr_vtable = getelementptr inbounds %MutableString, %MutableString* %"::MutableString", i32 0, i32 0 | |
%vtable = load i8*, i8** %addr_vtable, align 8 | |
%vtable_ptr = bitcast i8* %vtable to [23 x i8*]* | |
%vtable1 = load [23 x i8*], [23 x i8*]* %vtable_ptr, align 8 | |
%func_raw = extractvalue [23 x i8*] %vtable1, 22 | |
%func = bitcast i8* %func_raw to %MutableString* (%MutableString*)* | |
%result = call %MutableString* %func(%MutableString* %"::MutableString") | |
br label %"Invoke_Meta:MutableString#new_end" | |
"Invoke_Meta:MutableString#new_end": ; preds = %"Invoke_Meta:MutableString#new" | |
store %MutableString* %result, %MutableString** %ret, align 8 | |
%ret2 = load %MutableString*, %MutableString** %ret, align 8 | |
br label %"Invoke_MutableString#append" | |
"Invoke_MutableString#append": ; preds = %"Invoke_Meta:MutableString#new_end" | |
%addr_vtable3 = getelementptr inbounds %MutableString, %MutableString* %ret2, i32 0, i32 0 | |
%vtable4 = load i8*, i8** %addr_vtable3, align 8 | |
%vtable_ptr5 = bitcast i8* %vtable4 to [28 x i8*]* | |
%vtable6 = load [28 x i8*], [28 x i8*]* %vtable_ptr5, align 8 | |
%func_raw7 = extractvalue [28 x i8*] %vtable6, 18 | |
%func8 = bitcast i8* %func_raw7 to %Void* (%MutableString*, %String*)* | |
%result9 = call %Void* %func8(%MutableString* %ret2, %String* %self) | |
br label %"Invoke_MutableString#append_end" | |
"Invoke_MutableString#append_end": ; preds = %"Invoke_MutableString#append" | |
%ret10 = load %MutableString*, %MutableString** %ret, align 8 | |
br label %Ret | |
Ret: ; preds = %"Invoke_MutableString#append_end" | |
br label %End | |
} | |
define %String* @String_to__s(%String* %self) { | |
br label %Ret | |
End: ; preds = %Ret | |
%methodResult = phi %String* [ %self, %Ret ] | |
ret %String* %methodResult | |
Ret: ; preds = %0 | |
br label %End | |
} | |
declare %Void* @Meta_Shiika_Internal_Memory_memcpy(%"Shiika::Internal::Memory"*, %"Shiika::Internal::Ptr"*, %"Shiika::Internal::Ptr"*, %Int*) | |
declare %"Shiika::Internal::Ptr"* @Meta_Shiika_Internal_Memory_gc__malloc(%"Shiika::Internal::Memory"*, %Int*) | |
declare %"Shiika::Internal::Ptr"* @Meta_Shiika_Internal_Memory_gc__realloc(%"Shiika::Internal::Memory"*, %"Shiika::Internal::Ptr"*, %Int*) | |
define %Fn8* @Meta_Fn8_new(%Fn8* %self, %"Shiika::Internal::Ptr"* %"@func", %Object* %"@the_self", %Array* %"@captures") { | |
%mem = call i8* @shiika_malloc(i64 mul nuw (i64 ptrtoint (i1** getelementptr (i1*, i1** null, i32 1) to i64), i64 6)) | |
%addr = bitcast i8* %mem to %Fn8* | |
%addr_vtable = getelementptr inbounds %Fn8, %Fn8* %addr, i32 0, i32 0 | |
store i8* bitcast ([24 x i8*]* @shiika_vtable_Fn8 to i8*), i8** %addr_vtable, align 8 | |
%class = bitcast %Fn8* %self to %Class.0* | |
%addr_my_class = getelementptr inbounds %Fn8, %Fn8* %addr, i32 0, i32 1 | |
store %Class.0* %class, %Class.0** %addr_my_class, align 8 | |
%obj_as_super = bitcast %Fn8* %addr to %Fn* | |
%1 = call %Void* @Fn_initialize(%Fn* %obj_as_super, %"Shiika::Internal::Ptr"* %"@func", %Object* %"@the_self", %Array* %"@captures") | |
ret %Fn8* %addr | |
} | |
define %Maybe* @Maybe_map(%Maybe* %self, %Fn1* %f) { | |
alloca: | |
%"ary@1_" = alloca %Array*, align 8 | |
%v = alloca %Object*, align 8 | |
%"expr@0_" = alloca %Maybe*, align 8 | |
br label %alloca_End | |
alloca_End: ; preds = %alloca | |
br label %MatchBegin | |
End: ; preds = %Ret | |
%methodResult = phi %Maybe* [ %matchResult, %Ret ] | |
ret %Maybe* %methodResult | |
MatchBegin: ; preds = %alloca_End | |
store %Maybe* %self, %Maybe** %"expr@0_", align 8 | |
br label %MatchClause1_ | |
MatchClause1_: ; preds = %MatchBegin | |
%"expr@0_1" = load %Maybe*, %Maybe** %"expr@0_", align 8 | |
br label %"Invoke_Object#class" | |
MatchClause2_: ; preds = %"Invoke_Class#==_end" | |
%"::Maybe::None" = load %"Maybe::None"*, %"Maybe::None"** @"::Maybe::None", align 8 | |
%as69 = bitcast %"Maybe::None"* %"::Maybe::None" to %Maybe* | |
br label %MatchEnd | |
MatchClause3_: ; No predecessors! | |
%sk_int70 = call %Int* @box_int(i64 0) | |
%sk_str = call %String* @gen_literal_string(i8* getelementptr inbounds ([25 x i8], [25 x i8]* @str_38, i32 0, i32 0), i64 24) | |
br label %"Invoke_Object#panic" | |
MatchEnd: ; preds = %MatchClause2_, %"Invoke_Meta:Maybe::Some#new_end" | |
%matchResult = phi %Maybe* [ %as68, %"Invoke_Meta:Maybe::Some#new_end" ], [ %as69, %MatchClause2_ ] | |
br label %Ret | |
"Invoke_Object#class": ; preds = %MatchClause1_ | |
%addr_vtable = getelementptr inbounds %Maybe, %Maybe* %"expr@0_1", i32 0, i32 0 | |
%vtable = load i8*, i8** %addr_vtable, align 8 | |
%vtable_ptr = bitcast i8* %vtable to [18 x i8*]* | |
%vtable2 = load [18 x i8*], [18 x i8*]* %vtable_ptr, align 8 | |
%func_raw = extractvalue [18 x i8*] %vtable2, 5 | |
%func = bitcast i8* %func_raw to %Class.0* (%Maybe*)* | |
%result = call %Class.0* %func(%Maybe* %"expr@0_1") | |
br label %"Invoke_Object#class_end" | |
"Invoke_Object#class_end": ; preds = %"Invoke_Object#class" | |
%"::Maybe::Some" = load %"Maybe::Some"*, %"Maybe::Some"** @"::Maybe::Some", align 8 | |
%addr_class = getelementptr inbounds %Maybe, %Maybe* %self, i32 0, i32 1 | |
%class = load %Class.0*, %Class.0** %addr_class, align 8 | |
%sk_int = call %Int* @box_int(i64 0) | |
%result3 = call %Class.0* @Class___type__argument(%Class.0* %class, %Int* %sk_int) | |
br label %"Invoke_Class#_specialize1" | |
"Invoke_Class#_specialize1": ; preds = %"Invoke_Object#class_end" | |
%addr_vtable4 = getelementptr inbounds %"Maybe::Some", %"Maybe::Some"* %"::Maybe::Some", i32 0, i32 0 | |
%vtable5 = load i8*, i8** %addr_vtable4, align 8 | |
%vtable_ptr6 = bitcast i8* %vtable5 to [23 x i8*]* | |
%vtable7 = load [23 x i8*], [23 x i8*]* %vtable_ptr6, align 8 | |
%func_raw8 = extractvalue [23 x i8*] %vtable7, 18 | |
%func9 = bitcast i8* %func_raw8 to %"Maybe::Some"* (%"Maybe::Some"*, %Class.0*)* | |
%result10 = call %"Maybe::Some"* %func9(%"Maybe::Some"* %"::Maybe::Some", %Class.0* %result3) | |
br label %"Invoke_Class#_specialize1_end" | |
"Invoke_Class#_specialize1_end": ; preds = %"Invoke_Class#_specialize1" | |
br label %"Invoke_Class#==" | |
"Invoke_Class#==": ; preds = %"Invoke_Class#_specialize1_end" | |
%addr_vtable11 = getelementptr inbounds %Class.0, %Class.0* %result, i32 0, i32 0 | |
%vtable12 = load i8*, i8** %addr_vtable11, align 8 | |
%vtable_ptr13 = bitcast i8* %vtable12 to [22 x i8*]* | |
%vtable14 = load [22 x i8*], [22 x i8*]* %vtable_ptr13, align 8 | |
%func_raw15 = extractvalue [22 x i8*] %vtable14, 2 | |
%func16 = bitcast i8* %func_raw15 to %Bool* (%Class.0*, %"Maybe::Some"*)* | |
%result17 = call %Bool* %func16(%Class.0* %result, %"Maybe::Some"* %result10) | |
br label %"Invoke_Class#==_end" | |
"Invoke_Class#==_end": ; preds = %"Invoke_Class#==" | |
%llvm_bool = call i1 @unbox_bool(%Bool* %result17) | |
%istrue = icmp eq i1 %llvm_bool, true | |
br i1 %istrue, label %Matching, label %MatchClause2_ | |
Matching: ; preds = %"Invoke_Class#==_end" | |
%"expr@0_18" = load %Maybe*, %Maybe** %"expr@0_", align 8 | |
%as = bitcast %Maybe* %"expr@0_18" to %"Maybe::Some"* | |
br label %"Invoke_Maybe::Some#value" | |
"Invoke_Maybe::Some#value": ; preds = %Matching | |
%addr_vtable19 = getelementptr inbounds %"Maybe::Some", %"Maybe::Some"* %as, i32 0, i32 0 | |
%vtable20 = load i8*, i8** %addr_vtable19, align 8 | |
%vtable_ptr21 = bitcast i8* %vtable20 to [20 x i8*]* | |
%vtable22 = load [20 x i8*], [20 x i8*]* %vtable_ptr21, align 8 | |
%func_raw23 = extractvalue [20 x i8*] %vtable22, 18 | |
%func24 = bitcast i8* %func_raw23 to %Object* (%"Maybe::Some"*)* | |
%result25 = call %Object* %func24(%"Maybe::Some"* %as) | |
br label %"Invoke_Maybe::Some#value_end" | |
"Invoke_Maybe::Some#value_end": ; preds = %"Invoke_Maybe::Some#value" | |
store %Object* %result25, %Object** %v, align 8 | |
%"::Maybe::Some26" = load %"Maybe::Some"*, %"Maybe::Some"** @"::Maybe::Some", align 8 | |
%"::Array" = load %Array*, %Array** @"::Array", align 8 | |
%"::Class" = load %Class.0*, %Class.0** @"::Class", align 8 | |
br label %"Invoke_Class#_specialize127" | |
"Invoke_Class#_specialize127": ; preds = %"Invoke_Maybe::Some#value_end" | |
%addr_vtable28 = getelementptr inbounds %Array, %Array* %"::Array", i32 0, i32 0 | |
%vtable29 = load i8*, i8** %addr_vtable28, align 8 | |
%vtable_ptr30 = bitcast i8* %vtable29 to [25 x i8*]* | |
%vtable31 = load [25 x i8*], [25 x i8*]* %vtable_ptr30, align 8 | |
%func_raw32 = extractvalue [25 x i8*] %vtable31, 18 | |
%func33 = bitcast i8* %func_raw32 to %Array* (%Array*, %Class.0*)* | |
%result34 = call %Array* %func33(%Array* %"::Array", %Class.0* %"::Class") | |
br label %"Invoke_Class#_specialize1_end35" | |
"Invoke_Class#_specialize1_end35": ; preds = %"Invoke_Class#_specialize127" | |
br label %"Invoke_Array#new" | |
"Invoke_Array#new": ; preds = %"Invoke_Class#_specialize1_end35" | |
%addr_vtable36 = getelementptr inbounds %Array, %Array* %result34, i32 0, i32 0 | |
%vtable37 = load i8*, i8** %addr_vtable36, align 8 | |
%vtable_ptr38 = bitcast i8* %vtable37 to [25 x i8*]* | |
%vtable39 = load [25 x i8*], [25 x i8*]* %vtable_ptr38, align 8 | |
%func_raw40 = extractvalue [25 x i8*] %vtable39, 23 | |
%func41 = bitcast i8* %func_raw40 to %Array* (%Array*)* | |
%result42 = call %Array* %func41(%Array* %result34) | |
br label %"Invoke_Array#new_end" | |
"Invoke_Array#new_end": ; preds = %"Invoke_Array#new" | |
store %Array* %result42, %Array** %"ary@1_", align 8 | |
%"ary@1_43" = load %Array*, %Array** %"ary@1_", align 8 | |
%"::Object" = load %Object*, %Object** @"::Object", align 8 | |
br label %"Invoke_Array#push" | |
"Invoke_Array#push": ; preds = %"Invoke_Array#new_end" | |
%addr_vtable44 = getelementptr inbounds %Array, %Array* %"ary@1_43", i32 0, i32 0 | |
%vtable45 = load i8*, i8** %addr_vtable44, align 8 | |
%vtable_ptr46 = bitcast i8* %vtable45 to [54 x i8*]* | |
%vtable47 = load [54 x i8*], [54 x i8*]* %vtable_ptr46, align 8 | |
%func_raw48 = extractvalue [54 x i8*] %vtable47, 45 | |
%func49 = bitcast i8* %func_raw48 to %Void* (%Array*, %Object*)* | |
%result50 = call %Void* %func49(%Array* %"ary@1_43", %Object* %"::Object") | |
br label %"Invoke_Array#push_end" | |
"Invoke_Array#push_end": ; preds = %"Invoke_Array#push" | |
%"ary@1_51" = load %Array*, %Array** %"ary@1_", align 8 | |
br label %"Invoke_Class#<>" | |
"Invoke_Class#<>": ; preds = %"Invoke_Array#push_end" | |
%addr_vtable52 = getelementptr inbounds %"Maybe::Some", %"Maybe::Some"* %"::Maybe::Some26", i32 0, i32 0 | |
%vtable53 = load i8*, i8** %addr_vtable52, align 8 | |
%vtable_ptr54 = bitcast i8* %vtable53 to [23 x i8*]* | |
%vtable55 = load [23 x i8*], [23 x i8*]* %vtable_ptr54, align 8 | |
%func_raw56 = extractvalue [23 x i8*] %vtable55, 16 | |
%func57 = bitcast i8* %func_raw56 to %"Maybe::Some"* (%"Maybe::Some"*, %Array*)* | |
%result58 = call %"Maybe::Some"* %func57(%"Maybe::Some"* %"::Maybe::Some26", %Array* %"ary@1_51") | |
br label %"Invoke_Class#<>_end" | |
"Invoke_Class#<>_end": ; preds = %"Invoke_Class#<>" | |
%v59 = load %Object*, %Object** %v, align 8 | |
br label %Invoke_lambda | |
Invoke_lambda: ; preds = %"Invoke_Class#<>_end" | |
%"addr_@func" = getelementptr inbounds %Fn1, %Fn1* %f, i32 0, i32 2 | |
%"@func" = load %"Shiika::Internal::Ptr"*, %"Shiika::Internal::Ptr"** %"addr_@func", align 8 | |
%llvm_ptr = call i8* @unbox_i8ptr(%"Shiika::Internal::Ptr"* %"@func") | |
%0 = bitcast i8* %llvm_ptr to %Object* (%Fn1*, %Object*)* | |
%result60 = call %Object* %0(%Fn1* %f, %Object* %v59) | |
br label %Invoke_lambda_end | |
Invoke_lambda_end: ; preds = %Invoke_lambda | |
br label %"Invoke_Meta:Maybe::Some#new" | |
"Invoke_Meta:Maybe::Some#new": ; preds = %Invoke_lambda_end | |
%addr_vtable61 = getelementptr inbounds %"Maybe::Some", %"Maybe::Some"* %result58, i32 0, i32 0 | |
%vtable62 = load i8*, i8** %addr_vtable61, align 8 | |
%vtable_ptr63 = bitcast i8* %vtable62 to [23 x i8*]* | |
%vtable64 = load [23 x i8*], [23 x i8*]* %vtable_ptr63, align 8 | |
%func_raw65 = extractvalue [23 x i8*] %vtable64, 22 | |
%func66 = bitcast i8* %func_raw65 to %"Maybe::Some"* (%"Maybe::Some"*, %Object*)* | |
%result67 = call %"Maybe::Some"* %func66(%"Maybe::Some"* %result58, %Object* %result60) | |
br label %"Invoke_Meta:Maybe::Some#new_end" | |
"Invoke_Meta:Maybe::Some#new_end": ; preds = %"Invoke_Meta:Maybe::Some#new" | |
%as68 = bitcast %"Maybe::Some"* %result67 to %Maybe* | |
br label %MatchEnd | |
"Invoke_Object#panic": ; preds = %MatchClause3_ | |
%addr_vtable71 = getelementptr inbounds %Int, %Int* %sk_int70, i32 0, i32 0 | |
%vtable72 = load i8*, i8** %addr_vtable71, align 8 | |
%vtable_ptr73 = bitcast i8* %vtable72 to [35 x i8*]* | |
%vtable74 = load [35 x i8*], [35 x i8*]* %vtable_ptr73, align 8 | |
%func_raw75 = extractvalue [35 x i8*] %vtable74, 12 | |
%func76 = bitcast i8* %func_raw75 to void (%Int*, %String*)* | |
call void %func76(%Int* %sk_int70, %String* %sk_str) | |
%"::Void" = load %Void*, %Void** @"::Void", align 8 | |
unreachable | |
Ret: ; preds = %MatchEnd | |
br label %End | |
} | |
define %Object* @Maybe_expect(%Maybe* %self, %String* %msg) { | |
alloca: | |
%v = alloca %Object*, align 8 | |
%"expr@2_" = alloca %Maybe*, align 8 | |
br label %alloca_End | |
alloca_End: ; preds = %alloca | |
br label %MatchBegin | |
End: ; preds = %Ret | |
%methodResult = phi %Object* [ %matchResult, %Ret ] | |
ret %Object* %methodResult | |
MatchBegin: ; preds = %alloca_End | |
store %Maybe* %self, %Maybe** %"expr@2_", align 8 | |
br label %MatchClause1_ | |
MatchClause1_: ; preds = %MatchBegin | |
%"expr@2_1" = load %Maybe*, %Maybe** %"expr@2_", align 8 | |
br label %"Invoke_Object#class" | |
MatchClause2_: ; preds = %"Invoke_Class#==_end" | |
%as27 = bitcast %Maybe* %self to %Object* | |
%as28 = bitcast %String* %msg to %Object* | |
br label %"Invoke_Object#panic" | |
MatchClause3_: ; No predecessors! | |
%sk_int35 = call %Int* @box_int(i64 0) | |
%sk_str = call %String* @gen_literal_string(i8* getelementptr inbounds ([25 x i8], [25 x i8]* @str_39, i32 0, i32 0), i64 24) | |
br label %"Invoke_Object#panic36" | |
MatchEnd: ; preds = %"Invoke_Maybe::Some#value_end" | |
%matchResult = phi %Object* [ %v26, %"Invoke_Maybe::Some#value_end" ] | |
br label %Ret | |
"Invoke_Object#class": ; preds = %MatchClause1_ | |
%addr_vtable = getelementptr inbounds %Maybe, %Maybe* %"expr@2_1", i32 0, i32 0 | |
%vtable = load i8*, i8** %addr_vtable, align 8 | |
%vtable_ptr = bitcast i8* %vtable to [18 x i8*]* | |
%vtable2 = load [18 x i8*], [18 x i8*]* %vtable_ptr, align 8 | |
%func_raw = extractvalue [18 x i8*] %vtable2, 5 | |
%func = bitcast i8* %func_raw to %Class.0* (%Maybe*)* | |
%result = call %Class.0* %func(%Maybe* %"expr@2_1") | |
br label %"Invoke_Object#class_end" | |
"Invoke_Object#class_end": ; preds = %"Invoke_Object#class" | |
%"::Maybe::Some" = load %"Maybe::Some"*, %"Maybe::Some"** @"::Maybe::Some", align 8 | |
%addr_class = getelementptr inbounds %Maybe, %Maybe* %self, i32 0, i32 1 | |
%class = load %Class.0*, %Class.0** %addr_class, align 8 | |
%sk_int = call %Int* @box_int(i64 0) | |
%result3 = call %Class.0* @Class___type__argument(%Class.0* %class, %Int* %sk_int) | |
br label %"Invoke_Class#_specialize1" | |
"Invoke_Class#_specialize1": ; preds = %"Invoke_Object#class_end" | |
%addr_vtable4 = getelementptr inbounds %"Maybe::Some", %"Maybe::Some"* %"::Maybe::Some", i32 0, i32 0 | |
%vtable5 = load i8*, i8** %addr_vtable4, align 8 | |
%vtable_ptr6 = bitcast i8* %vtable5 to [23 x i8*]* | |
%vtable7 = load [23 x i8*], [23 x i8*]* %vtable_ptr6, align 8 | |
%func_raw8 = extractvalue [23 x i8*] %vtable7, 18 | |
%func9 = bitcast i8* %func_raw8 to %"Maybe::Some"* (%"Maybe::Some"*, %Class.0*)* | |
%result10 = call %"Maybe::Some"* %func9(%"Maybe::Some"* %"::Maybe::Some", %Class.0* %result3) | |
br label %"Invoke_Class#_specialize1_end" | |
"Invoke_Class#_specialize1_end": ; preds = %"Invoke_Class#_specialize1" | |
br label %"Invoke_Class#==" | |
"Invoke_Class#==": ; preds = %"Invoke_Class#_specialize1_end" | |
%addr_vtable11 = getelementptr inbounds %Class.0, %Class.0* %result, i32 0, i32 0 | |
%vtable12 = load i8*, i8** %addr_vtable11, align 8 | |
%vtable_ptr13 = bitcast i8* %vtable12 to [22 x i8*]* | |
%vtable14 = load [22 x i8*], [22 x i8*]* %vtable_ptr13, align 8 | |
%func_raw15 = extractvalue [22 x i8*] %vtable14, 2 | |
%func16 = bitcast i8* %func_raw15 to %Bool* (%Class.0*, %"Maybe::Some"*)* | |
%result17 = call %Bool* %func16(%Class.0* %result, %"Maybe::Some"* %result10) | |
br label %"Invoke_Class#==_end" | |
"Invoke_Class#==_end": ; preds = %"Invoke_Class#==" | |
%llvm_bool = call i1 @unbox_bool(%Bool* %result17) | |
%istrue = icmp eq i1 %llvm_bool, true | |
br i1 %istrue, label %Matching, label %MatchClause2_ | |
Matching: ; preds = %"Invoke_Class#==_end" | |
%"expr@2_18" = load %Maybe*, %Maybe** %"expr@2_", align 8 | |
%as = bitcast %Maybe* %"expr@2_18" to %"Maybe::Some"* | |
br label %"Invoke_Maybe::Some#value" | |
"Invoke_Maybe::Some#value": ; preds = %Matching | |
%addr_vtable19 = getelementptr inbounds %"Maybe::Some", %"Maybe::Some"* %as, i32 0, i32 0 | |
%vtable20 = load i8*, i8** %addr_vtable19, align 8 | |
%vtable_ptr21 = bitcast i8* %vtable20 to [20 x i8*]* | |
%vtable22 = load [20 x i8*], [20 x i8*]* %vtable_ptr21, align 8 | |
%func_raw23 = extractvalue [20 x i8*] %vtable22, 18 | |
%func24 = bitcast i8* %func_raw23 to %Object* (%"Maybe::Some"*)* | |
%result25 = call %Object* %func24(%"Maybe::Some"* %as) | |
br label %"Invoke_Maybe::Some#value_end" | |
"Invoke_Maybe::Some#value_end": ; preds = %"Invoke_Maybe::Some#value" | |
store %Object* %result25, %Object** %v, align 8 | |
%v26 = load %Object*, %Object** %v, align 8 | |
br label %MatchEnd | |
"Invoke_Object#panic": ; preds = %MatchClause2_ | |
%addr_vtable29 = getelementptr inbounds %Object, %Object* %as27, i32 0, i32 0 | |
%vtable30 = load i8*, i8** %addr_vtable29, align 8 | |
%vtable_ptr31 = bitcast i8* %vtable30 to [16 x i8*]* | |
%vtable32 = load [16 x i8*], [16 x i8*]* %vtable_ptr31, align 8 | |
%func_raw33 = extractvalue [16 x i8*] %vtable32, 12 | |
%func34 = bitcast i8* %func_raw33 to void (%Object*, %Object*)* | |
call void %func34(%Object* %as27, %Object* %as28) | |
%"::Void" = load %Void*, %Void** @"::Void", align 8 | |
unreachable | |
"Invoke_Object#panic36": ; preds = %MatchClause3_ | |
%addr_vtable37 = getelementptr inbounds %Int, %Int* %sk_int35, i32 0, i32 0 | |
%vtable38 = load i8*, i8** %addr_vtable37, align 8 | |
%vtable_ptr39 = bitcast i8* %vtable38 to [35 x i8*]* | |
%vtable40 = load [35 x i8*], [35 x i8*]* %vtable_ptr39, align 8 | |
%func_raw41 = extractvalue [35 x i8*] %vtable40, 12 | |
%func42 = bitcast i8* %func_raw41 to void (%Int*, %String*)* | |
call void %func42(%Int* %sk_int35, %String* %sk_str) | |
%"::Void43" = load %Void*, %Void** @"::Void", align 8 | |
unreachable | |
Ret: ; preds = %MatchEnd | |
br label %End | |
} | |
define %String* @Maybe_inspect(%Maybe* %self) { | |
alloca: | |
%v = alloca %Object*, align 8 | |
%"expr@3_" = alloca %Maybe*, align 8 | |
br label %alloca_End | |
alloca_End: ; preds = %alloca | |
br label %MatchBegin | |
End: ; preds = %Ret | |
%methodResult = phi %String* [ %matchResult, %Ret ] | |
ret %String* %methodResult | |
MatchBegin: ; preds = %alloca_End | |
store %Maybe* %self, %Maybe** %"expr@3_", align 8 | |
br label %MatchClause1_ | |
MatchClause1_: ; preds = %MatchBegin | |
%"expr@3_1" = load %Maybe*, %Maybe** %"expr@3_", align 8 | |
br label %"Invoke_Object#class" | |
MatchClause2_: ; preds = %"Invoke_Class#==_end" | |
%sk_str51 = call %String* @gen_literal_string(i8* getelementptr inbounds ([8 x i8], [8 x i8]* @str_42, i32 0, i32 0), i64 7) | |
br label %MatchEnd | |
MatchClause3_: ; No predecessors! | |
%sk_int52 = call %Int* @box_int(i64 0) | |
%sk_str53 = call %String* @gen_literal_string(i8* getelementptr inbounds ([25 x i8], [25 x i8]* @str_43, i32 0, i32 0), i64 24) | |
br label %"Invoke_Object#panic" | |
MatchEnd: ; preds = %MatchClause2_, %"Invoke_String#+_end50" | |
%matchResult = phi %String* [ %result49, %"Invoke_String#+_end50" ], [ %sk_str51, %MatchClause2_ ] | |
br label %Ret | |
"Invoke_Object#class": ; preds = %MatchClause1_ | |
%addr_vtable = getelementptr inbounds %Maybe, %Maybe* %"expr@3_1", i32 0, i32 0 | |
%vtable = load i8*, i8** %addr_vtable, align 8 | |
%vtable_ptr = bitcast i8* %vtable to [18 x i8*]* | |
%vtable2 = load [18 x i8*], [18 x i8*]* %vtable_ptr, align 8 | |
%func_raw = extractvalue [18 x i8*] %vtable2, 5 | |
%func = bitcast i8* %func_raw to %Class.0* (%Maybe*)* | |
%result = call %Class.0* %func(%Maybe* %"expr@3_1") | |
br label %"Invoke_Object#class_end" | |
"Invoke_Object#class_end": ; preds = %"Invoke_Object#class" | |
%"::Maybe::Some" = load %"Maybe::Some"*, %"Maybe::Some"** @"::Maybe::Some", align 8 | |
%addr_class = getelementptr inbounds %Maybe, %Maybe* %self, i32 0, i32 1 | |
%class = load %Class.0*, %Class.0** %addr_class, align 8 | |
%sk_int = call %Int* @box_int(i64 0) | |
%result3 = call %Class.0* @Class___type__argument(%Class.0* %class, %Int* %sk_int) | |
br label %"Invoke_Class#_specialize1" | |
"Invoke_Class#_specialize1": ; preds = %"Invoke_Object#class_end" | |
%addr_vtable4 = getelementptr inbounds %"Maybe::Some", %"Maybe::Some"* %"::Maybe::Some", i32 0, i32 0 | |
%vtable5 = load i8*, i8** %addr_vtable4, align 8 | |
%vtable_ptr6 = bitcast i8* %vtable5 to [23 x i8*]* | |
%vtable7 = load [23 x i8*], [23 x i8*]* %vtable_ptr6, align 8 | |
%func_raw8 = extractvalue [23 x i8*] %vtable7, 18 | |
%func9 = bitcast i8* %func_raw8 to %"Maybe::Some"* (%"Maybe::Some"*, %Class.0*)* | |
%result10 = call %"Maybe::Some"* %func9(%"Maybe::Some"* %"::Maybe::Some", %Class.0* %result3) | |
br label %"Invoke_Class#_specialize1_end" | |
"Invoke_Class#_specialize1_end": ; preds = %"Invoke_Class#_specialize1" | |
br label %"Invoke_Class#==" | |
"Invoke_Class#==": ; preds = %"Invoke_Class#_specialize1_end" | |
%addr_vtable11 = getelementptr inbounds %Class.0, %Class.0* %result, i32 0, i32 0 | |
%vtable12 = load i8*, i8** %addr_vtable11, align 8 | |
%vtable_ptr13 = bitcast i8* %vtable12 to [22 x i8*]* | |
%vtable14 = load [22 x i8*], [22 x i8*]* %vtable_ptr13, align 8 | |
%func_raw15 = extractvalue [22 x i8*] %vtable14, 2 | |
%func16 = bitcast i8* %func_raw15 to %Bool* (%Class.0*, %"Maybe::Some"*)* | |
%result17 = call %Bool* %func16(%Class.0* %result, %"Maybe::Some"* %result10) | |
br label %"Invoke_Class#==_end" | |
"Invoke_Class#==_end": ; preds = %"Invoke_Class#==" | |
%llvm_bool = call i1 @unbox_bool(%Bool* %result17) | |
%istrue = icmp eq i1 %llvm_bool, true | |
br i1 %istrue, label %Matching, label %MatchClause2_ | |
Matching: ; preds = %"Invoke_Class#==_end" | |
%"expr@3_18" = load %Maybe*, %Maybe** %"expr@3_", align 8 | |
%as = bitcast %Maybe* %"expr@3_18" to %"Maybe::Some"* | |
br label %"Invoke_Maybe::Some#value" | |
"Invoke_Maybe::Some#value": ; preds = %Matching | |
%addr_vtable19 = getelementptr inbounds %"Maybe::Some", %"Maybe::Some"* %as, i32 0, i32 0 | |
%vtable20 = load i8*, i8** %addr_vtable19, align 8 | |
%vtable_ptr21 = bitcast i8* %vtable20 to [20 x i8*]* | |
%vtable22 = load [20 x i8*], [20 x i8*]* %vtable_ptr21, align 8 | |
%func_raw23 = extractvalue [20 x i8*] %vtable22, 18 | |
%func24 = bitcast i8* %func_raw23 to %Object* (%"Maybe::Some"*)* | |
%result25 = call %Object* %func24(%"Maybe::Some"* %as) | |
br label %"Invoke_Maybe::Some#value_end" | |
"Invoke_Maybe::Some#value_end": ; preds = %"Invoke_Maybe::Some#value" | |
store %Object* %result25, %Object** %v, align 8 | |
%sk_str = call %String* @gen_literal_string(i8* getelementptr inbounds ([8 x i8], [8 x i8]* @str_41, i32 0, i32 0), i64 7) | |
%v26 = load %Object*, %Object** %v, align 8 | |
br label %"Invoke_Object#inspect" | |
"Invoke_Object#inspect": ; preds = %"Invoke_Maybe::Some#value_end" | |
%addr_vtable27 = getelementptr inbounds %Object, %Object* %v26, i32 0, i32 0 | |
%vtable28 = load i8*, i8** %addr_vtable27, align 8 | |
%vtable_ptr29 = bitcast i8* %vtable28 to [16 x i8*]* | |
%vtable30 = load [16 x i8*], [16 x i8*]* %vtable_ptr29, align 8 | |
%func_raw31 = extractvalue [16 x i8*] %vtable30, 9 | |
%func32 = bitcast i8* %func_raw31 to %String* (%Object*)* | |
%result33 = call %String* %func32(%Object* %v26) | |
br label %"Invoke_Object#inspect_end" | |
"Invoke_Object#inspect_end": ; preds = %"Invoke_Object#inspect" | |
br label %"Invoke_String#+" | |
"Invoke_String#+": ; preds = %"Invoke_Object#inspect_end" | |
%addr_vtable34 = getelementptr inbounds %String, %String* %sk_str, i32 0, i32 0 | |
%vtable35 = load i8*, i8** %addr_vtable34, align 8 | |
%vtable_ptr36 = bitcast i8* %vtable35 to [35 x i8*]* | |
%vtable37 = load [35 x i8*], [35 x i8*]* %vtable_ptr36, align 8 | |
%func_raw38 = extractvalue [35 x i8*] %vtable37, 17 | |
%func39 = bitcast i8* %func_raw38 to %String* (%String*, %String*)* | |
%result40 = call %String* %func39(%String* %sk_str, %String* %result33) | |
br label %"Invoke_String#+_end" | |
"Invoke_String#+_end": ; preds = %"Invoke_String#+" | |
%sk_str41 = call %String* @gen_literal_string(i8* getelementptr inbounds ([2 x i8], [2 x i8]* @str_40, i32 0, i32 0), i64 1) | |
br label %"Invoke_String#+42" | |
"Invoke_String#+42": ; preds = %"Invoke_String#+_end" | |
%addr_vtable43 = getelementptr inbounds %String, %String* %result40, i32 0, i32 0 | |
%vtable44 = load i8*, i8** %addr_vtable43, align 8 | |
%vtable_ptr45 = bitcast i8* %vtable44 to [35 x i8*]* | |
%vtable46 = load [35 x i8*], [35 x i8*]* %vtable_ptr45, align 8 | |
%func_raw47 = extractvalue [35 x i8*] %vtable46, 17 | |
%func48 = bitcast i8* %func_raw47 to %String* (%String*, %String*)* | |
%result49 = call %String* %func48(%String* %result40, %String* %sk_str41) | |
br label %"Invoke_String#+_end50" | |
"Invoke_String#+_end50": ; preds = %"Invoke_String#+42" | |
br label %MatchEnd | |
"Invoke_Object#panic": ; preds = %MatchClause3_ | |
%addr_vtable54 = getelementptr inbounds %Int, %Int* %sk_int52, i32 0, i32 0 | |
%vtable55 = load i8*, i8** %addr_vtable54, align 8 | |
%vtable_ptr56 = bitcast i8* %vtable55 to [35 x i8*]* | |
%vtable57 = load [35 x i8*], [35 x i8*]* %vtable_ptr56, align 8 | |
%func_raw58 = extractvalue [35 x i8*] %vtable57, 12 | |
%func59 = bitcast i8* %func_raw58 to void (%Int*, %String*)* | |
call void %func59(%Int* %sk_int52, %String* %sk_str53) | |
%"::Void" = load %Void*, %Void** @"::Void", align 8 | |
unreachable | |
Ret: ; preds = %MatchEnd | |
br label %End | |
} | |
define %String* @Void_to__s(%Void* %self) { | |
%sk_str = call %String* @gen_literal_string(i8* getelementptr inbounds ([5 x i8], [5 x i8]* @str_83, i32 0, i32 0), i64 4) | |
br label %Ret | |
End: ; preds = %Ret | |
%methodResult = phi %String* [ %sk_str, %Ret ] | |
ret %String* %methodResult | |
Ret: ; preds = %0 | |
br label %End | |
} | |
declare %Float* @Meta_Math_sin(%Math*, %Float*) | |
declare %Float* @Meta_Math_cos(%Math*, %Float*) | |
declare %Float* @Meta_Math_sqrt(%Math*, %Float*) | |
define %Dict* @Meta_Dict_new(%Dict* %self) { | |
%mem = call i8* @shiika_malloc(i64 mul nuw (i64 ptrtoint (i1** getelementptr (i1*, i1** null, i32 1) to i64), i64 3)) | |
%addr = bitcast i8* %mem to %Dict* | |
%addr_vtable = getelementptr inbounds %Dict, %Dict* %addr, i32 0, i32 0 | |
store i8* bitcast ([24 x i8*]* @shiika_vtable_Dict to i8*), i8** %addr_vtable, align 8 | |
%class = bitcast %Dict* %self to %Class.0* | |
%addr_my_class = getelementptr inbounds %Dict, %Dict* %addr, i32 0, i32 1 | |
store %Class.0* %class, %Class.0** %addr_my_class, align 8 | |
%1 = call %Void* @Dict_initialize(%Dict* %addr) | |
ret %Dict* %addr | |
} | |
define %"Maybe::Some"* @Meta_Maybe_Some_new(%"Maybe::Some"* %self, %Object* %value) { | |
%mem = call i8* @shiika_malloc(i64 mul nuw (i64 ptrtoint (i1** getelementptr (i1*, i1** null, i32 1) to i64), i64 3)) | |
%addr = bitcast i8* %mem to %"Maybe::Some"* | |
%addr_vtable = getelementptr inbounds %"Maybe::Some", %"Maybe::Some"* %addr, i32 0, i32 0 | |
store i8* bitcast ([20 x i8*]* @"shiika_vtable_Maybe::Some" to i8*), i8** %addr_vtable, align 8 | |
%class = bitcast %"Maybe::Some"* %self to %Class.0* | |
%addr_my_class = getelementptr inbounds %"Maybe::Some", %"Maybe::Some"* %addr, i32 0, i32 1 | |
store %Class.0* %class, %Class.0** %addr_my_class, align 8 | |
%1 = call %Void* @Maybe_Some_initialize(%"Maybe::Some"* %addr, %Object* %value) | |
ret %"Maybe::Some"* %addr | |
} | |
define %Fn3* @Meta_Fn3_new(%Fn3* %self, %"Shiika::Internal::Ptr"* %"@func", %Object* %"@the_self", %Array* %"@captures") { | |
%mem = call i8* @shiika_malloc(i64 mul nuw (i64 ptrtoint (i1** getelementptr (i1*, i1** null, i32 1) to i64), i64 6)) | |
%addr = bitcast i8* %mem to %Fn3* | |
%addr_vtable = getelementptr inbounds %Fn3, %Fn3* %addr, i32 0, i32 0 | |
store i8* bitcast ([24 x i8*]* @shiika_vtable_Fn3 to i8*), i8** %addr_vtable, align 8 | |
%class = bitcast %Fn3* %self to %Class.0* | |
%addr_my_class = getelementptr inbounds %Fn3, %Fn3* %addr, i32 0, i32 1 | |
store %Class.0* %class, %Class.0** %addr_my_class, align 8 | |
%obj_as_super = bitcast %Fn3* %addr to %Fn* | |
%1 = call %Void* @Fn_initialize(%Fn* %obj_as_super, %"Shiika::Internal::Ptr"* %"@func", %Object* %"@the_self", %Array* %"@captures") | |
ret %Fn3* %addr | |
} | |
define %Class.0* @Meta_Class_new(%Class.0* %self, %String* %"@name", %Object* %vtable, %Metaclass* %metacls_obj) { | |
%mem = call i8* @shiika_malloc(i64 mul nuw (i64 ptrtoint (i1** getelementptr (i1*, i1** null, i32 1) to i64), i64 5)) | |
%addr = bitcast i8* %mem to %Class.0* | |
%addr_vtable = getelementptr inbounds %Class.0, %Class.0* %addr, i32 0, i32 0 | |
store i8* bitcast ([22 x i8*]* @shiika_vtable_Class to i8*), i8** %addr_vtable, align 8 | |
%addr_my_class = getelementptr inbounds %Class.0, %Class.0* %addr, i32 0, i32 1 | |
store %Class.0* %self, %Class.0** %addr_my_class, align 8 | |
%1 = call %Void* @Class_initialize(%Class.0* %addr, %String* %"@name", %Object* %vtable, %Metaclass* %metacls_obj) | |
ret %Class.0* %addr | |
} | |
define %Fn0* @Meta_Fn0_new(%Fn0* %self, %"Shiika::Internal::Ptr"* %"@func", %Object* %"@the_self", %Array* %"@captures") { | |
%mem = call i8* @shiika_malloc(i64 mul nuw (i64 ptrtoint (i1** getelementptr (i1*, i1** null, i32 1) to i64), i64 6)) | |
%addr = bitcast i8* %mem to %Fn0* | |
%addr_vtable = getelementptr inbounds %Fn0, %Fn0* %addr, i32 0, i32 0 | |
store i8* bitcast ([24 x i8*]* @shiika_vtable_Fn0 to i8*), i8** %addr_vtable, align 8 | |
%class = bitcast %Fn0* %self to %Class.0* | |
%addr_my_class = getelementptr inbounds %Fn0, %Fn0* %addr, i32 0, i32 1 | |
store %Class.0* %class, %Class.0** %addr_my_class, align 8 | |
%obj_as_super = bitcast %Fn0* %addr to %Fn* | |
%1 = call %Void* @Fn_initialize(%Fn* %obj_as_super, %"Shiika::Internal::Ptr"* %"@func", %Object* %"@the_self", %Array* %"@captures") | |
ret %Fn0* %addr | |
} | |
define %Bool* @"Enumerable_all?"(%Enumerable* %self, %Fn1* %f) { | |
alloca: | |
%ret = alloca %Bool*, align 8 | |
br label %alloca_End | |
alloca_End: ; preds = %alloca | |
%sk_bool = call %Bool* @box_bool(i1 true) | |
store %Bool* %sk_bool, %Bool** %ret, align 8 | |
%"::Fn1" = load %Fn1*, %Fn1** @"::Fn1", align 8 | |
%sk_ptr = call %"Shiika::Internal::Ptr"* @box_i8ptr(i8* bitcast (%Void* (%Fn1*, %Object*)* @"lambda_25_in_Enumerable#all?" to i8*)) | |
%the_main = bitcast %Enumerable* %self to %Object* | |
%"::Array" = load %Array*, %Array** @"::Array", align 8 | |
%result = call %Array* @Meta_Array_new(%Array* %"::Array") | |
%capture_item = bitcast %Fn1* %f to %Object* | |
%_ = call %Void* @Array_push(%Array* %result, %Object* %capture_item) | |
%capture_item1 = bitcast %Bool** %ret to %Object* | |
%_2 = call %Void* @Array_push(%Array* %result, %Object* %capture_item1) | |
%result3 = call %Fn1* @Meta_Fn1_new(%Fn1* %"::Fn1", %"Shiika::Internal::Ptr"* %sk_ptr, %Object* %the_main, %Array* %result) | |
br label %Invoke_each | |
End: ; preds = %Ret | |
%methodResult = phi %Bool* [ %ret5, %Ret ] | |
ret %Bool* %methodResult | |
Invoke_each: ; preds = %alloca_End | |
%method = call i8* @shiika_lookup_wtable(%Enumerable* %self, i64 ptrtoint (%Enumerable** @"::Enumerable" to i64), i64 0) | |
%as = bitcast i8* %method to %Void* (%Enumerable*, %Fn1*)* | |
%result4 = call %Void* %as(%Enumerable* %self, %Fn1* %result3) | |
br label %Invoke_each_end | |
Invoke_each_end: ; preds = %Invoke_each | |
%ret5 = load %Bool*, %Bool** %ret, align 8 | |
br label %Ret | |
Ret: ; preds = %Invoke_each_end | |
br label %End | |
} | |
define %Void* @File_initialize(%File* %self, %String* %"@path", %Object* %"@file") { | |
%"addr_@path" = getelementptr inbounds %File, %File* %self, i32 0, i32 2 | |
store %String* %"@path", %String** %"addr_@path", align 8 | |
%"addr_@file" = getelementptr inbounds %File, %File* %self, i32 0, i32 3 | |
store %Object* %"@file", %Object** %"addr_@file", align 8 | |
%"::Void" = load %Void*, %Void** @"::Void", align 8 | |
br label %Ret | |
End: ; preds = %Ret | |
%"::Void1" = load %Void*, %Void** @"::Void", align 8 | |
ret %Void* %"::Void1" | |
Ret: ; preds = %0 | |
br label %End | |
} | |
define %String* @File_path(%File* %self) { | |
%"addr_@path" = getelementptr inbounds %File, %File* %self, i32 0, i32 2 | |
%"@path" = load %String*, %String** %"addr_@path", align 8 | |
ret %String* %"@path" | |
} | |
define %String* @_set_File_path(%File* %self, %String* %path) { | |
%"addr_@path" = getelementptr inbounds %File, %File* %self, i32 0, i32 2 | |
store %String* %path, %String** %"addr_@path", align 8 | |
ret %String* %path | |
} | |
define %Object* @File_file(%File* %self) { | |
%"addr_@file" = getelementptr inbounds %File, %File* %self, i32 0, i32 3 | |
%"@file" = load %Object*, %Object** %"addr_@file", align 8 | |
ret %Object* %"@file" | |
} | |
define %Object* @_set_File_file(%File* %self, %Object* %file) { | |
%"addr_@file" = getelementptr inbounds %File, %File* %self, i32 0, i32 3 | |
store %Object* %file, %Object** %"addr_@file", align 8 | |
ret %Object* %file | |
} | |
define %Pair* @Meta_Pair_new(%Pair* %self, %Object* %"@fst", %Object* %"@snd") { | |
%mem = call i8* @shiika_malloc(i64 mul nuw (i64 ptrtoint (i1** getelementptr (i1*, i1** null, i32 1) to i64), i64 4)) | |
%addr = bitcast i8* %mem to %Pair* | |
%addr_vtable = getelementptr inbounds %Pair, %Pair* %addr, i32 0, i32 0 | |
store i8* bitcast ([20 x i8*]* @shiika_vtable_Pair to i8*), i8** %addr_vtable, align 8 | |
%class = bitcast %Pair* %self to %Class.0* | |
%addr_my_class = getelementptr inbounds %Pair, %Pair* %addr, i32 0, i32 1 | |
store %Class.0* %class, %Class.0** %addr_my_class, align 8 | |
%1 = call %Void* @Pair_initialize(%Pair* %addr, %Object* %"@fst", %Object* %"@snd") | |
ret %Pair* %addr | |
} | |
define %Fn7* @Meta_Fn7_new(%Fn7* %self, %"Shiika::Internal::Ptr"* %"@func", %Object* %"@the_self", %Array* %"@captures") { | |
%mem = call i8* @shiika_malloc(i64 mul nuw (i64 ptrtoint (i1** getelementptr (i1*, i1** null, i32 1) to i64), i64 6)) | |
%addr = bitcast i8* %mem to %Fn7* | |
%addr_vtable = getelementptr inbounds %Fn7, %Fn7* %addr, i32 0, i32 0 | |
store i8* bitcast ([24 x i8*]* @shiika_vtable_Fn7 to i8*), i8** %addr_vtable, align 8 | |
%class = bitcast %Fn7* %self to %Class.0* | |
%addr_my_class = getelementptr inbounds %Fn7, %Fn7* %addr, i32 0, i32 1 | |
store %Class.0* %class, %Class.0** %addr_my_class, align 8 | |
%obj_as_super = bitcast %Fn7* %addr to %Fn* | |
%1 = call %Void* @Fn_initialize(%Fn* %obj_as_super, %"Shiika::Internal::Ptr"* %"@func", %Object* %"@the_self", %Array* %"@captures") | |
ret %Fn7* %addr | |
} | |
declare %"Shiika::Internal::Ptr"* @Shiika_Internal_Ptr_add_(%"Shiika::Internal::Ptr"*, %Int*) | |
declare %Object* @Shiika_Internal_Ptr_load(%"Shiika::Internal::Ptr"*) | |
declare %Int* @Shiika_Internal_Ptr_read(%"Shiika::Internal::Ptr"*) | |
declare %Void* @Shiika_Internal_Ptr_store(%"Shiika::Internal::Ptr"*, %Object*) | |
declare %Void* @Shiika_Internal_Ptr_write(%"Shiika::Internal::Ptr"*, %Int*) | |
define %Fn6* @Meta_Fn6_new(%Fn6* %self, %"Shiika::Internal::Ptr"* %"@func", %Object* %"@the_self", %Array* %"@captures") { | |
%mem = call i8* @shiika_malloc(i64 mul nuw (i64 ptrtoint (i1** getelementptr (i1*, i1** null, i32 1) to i64), i64 6)) | |
%addr = bitcast i8* %mem to %Fn6* | |
%addr_vtable = getelementptr inbounds %Fn6, %Fn6* %addr, i32 0, i32 0 | |
store i8* bitcast ([24 x i8*]* @shiika_vtable_Fn6 to i8*), i8** %addr_vtable, align 8 | |
%class = bitcast %Fn6* %self to %Class.0* | |
%addr_my_class = getelementptr inbounds %Fn6, %Fn6* %addr, i32 0, i32 1 | |
store %Class.0* %class, %Class.0** %addr_my_class, align 8 | |
%obj_as_super = bitcast %Fn6* %addr to %Fn* | |
%1 = call %Void* @Fn_initialize(%Fn* %obj_as_super, %"Shiika::Internal::Ptr"* %"@func", %Object* %"@the_self", %Array* %"@captures") | |
ret %Fn6* %addr | |
} | |
define %Void* @Fn_initialize(%Fn* %self, %"Shiika::Internal::Ptr"* %"@func", %Object* %"@the_self", %Array* %"@captures") { | |
%"addr_@func" = getelementptr inbounds %Fn, %Fn* %self, i32 0, i32 2 | |
store %"Shiika::Internal::Ptr"* %"@func", %"Shiika::Internal::Ptr"** %"addr_@func", align 8 | |
%"addr_@the_self" = getelementptr inbounds %Fn, %Fn* %self, i32 0, i32 3 | |
store %Object* %"@the_self", %Object** %"addr_@the_self", align 8 | |
%"addr_@captures" = getelementptr inbounds %Fn, %Fn* %self, i32 0, i32 4 | |
store %Array* %"@captures", %Array** %"addr_@captures", align 8 | |
%"::Fn::EXIT_NORMAL" = load %Int*, %Int** @"::Fn::EXIT_NORMAL", align 8 | |
%"addr_@exit_status" = getelementptr inbounds %Fn, %Fn* %self, i32 0, i32 5 | |
store %Int* %"::Fn::EXIT_NORMAL", %Int** %"addr_@exit_status", align 8 | |
%"::Void" = load %Void*, %Void** @"::Void", align 8 | |
br label %Ret | |
End: ; preds = %Ret | |
%"::Void1" = load %Void*, %Void** @"::Void", align 8 | |
ret %Void* %"::Void1" | |
Ret: ; preds = %0 | |
br label %End | |
} | |
define %Array* @Fn_captures(%Fn* %self) { | |
%"addr_@captures" = getelementptr inbounds %Fn, %Fn* %self, i32 0, i32 4 | |
%"@captures" = load %Array*, %Array** %"addr_@captures", align 8 | |
ret %Array* %"@captures" | |
} | |
define %Array* @_set_Fn_captures(%Fn* %self, %Array* %captures) { | |
%"addr_@captures" = getelementptr inbounds %Fn, %Fn* %self, i32 0, i32 4 | |
store %Array* %captures, %Array** %"addr_@captures", align 8 | |
ret %Array* %captures | |
} | |
define %"Shiika::Internal::Ptr"* @Fn_func(%Fn* %self) { | |
%"addr_@func" = getelementptr inbounds %Fn, %Fn* %self, i32 0, i32 2 | |
%"@func" = load %"Shiika::Internal::Ptr"*, %"Shiika::Internal::Ptr"** %"addr_@func", align 8 | |
ret %"Shiika::Internal::Ptr"* %"@func" | |
} | |
define %"Shiika::Internal::Ptr"* @_set_Fn_func(%Fn* %self, %"Shiika::Internal::Ptr"* %func) { | |
%"addr_@func" = getelementptr inbounds %Fn, %Fn* %self, i32 0, i32 2 | |
store %"Shiika::Internal::Ptr"* %func, %"Shiika::Internal::Ptr"** %"addr_@func", align 8 | |
ret %"Shiika::Internal::Ptr"* %func | |
} | |
define %Int* @Fn_exit__status(%Fn* %self) { | |
%"addr_@exit_status" = getelementptr inbounds %Fn, %Fn* %self, i32 0, i32 5 | |
%"@exit_status" = load %Int*, %Int** %"addr_@exit_status", align 8 | |
ret %Int* %"@exit_status" | |
} | |
define %Int* @_set_Fn_exit__status(%Fn* %self, %Int* %exit_status) { | |
%"addr_@exit_status" = getelementptr inbounds %Fn, %Fn* %self, i32 0, i32 5 | |
store %Int* %exit_status, %Int** %"addr_@exit_status", align 8 | |
ret %Int* %exit_status | |
} | |
define %Object* @Fn_the__self(%Fn* %self) { | |
%"addr_@the_self" = getelementptr inbounds %Fn, %Fn* %self, i32 0, i32 3 | |
%"@the_self" = load %Object*, %Object** %"addr_@the_self", align 8 | |
ret %Object* %"@the_self" | |
} | |
define %Object* @_set_Fn_the__self(%Fn* %self, %Object* %the_self) { | |
%"addr_@the_self" = getelementptr inbounds %Fn, %Fn* %self, i32 0, i32 3 | |
store %Object* %the_self, %Object** %"addr_@the_self", align 8 | |
ret %Object* %the_self | |
} | |
define %Void* @Error_initialize(%Error* %self, %String* %"@msg") { | |
%"addr_@msg" = getelementptr inbounds %Error, %Error* %self, i32 0, i32 2 | |
store %String* %"@msg", %String** %"addr_@msg", align 8 | |
%"::Void" = load %Void*, %Void** @"::Void", align 8 | |
br label %Ret | |
End: ; preds = %Ret | |
%"::Void1" = load %Void*, %Void** @"::Void", align 8 | |
ret %Void* %"::Void1" | |
Ret: ; preds = %0 | |
br label %End | |
} | |
define %String* @Error_msg(%Error* %self) { | |
%"addr_@msg" = getelementptr inbounds %Error, %Error* %self, i32 0, i32 2 | |
%"@msg" = load %String*, %String** %"addr_@msg", align 8 | |
ret %String* %"@msg" | |
} | |
define %String* @_set_Error_msg(%Error* %self, %String* %msg) { | |
%"addr_@msg" = getelementptr inbounds %Error, %Error* %self, i32 0, i32 2 | |
store %String* %msg, %String** %"addr_@msg", align 8 | |
ret %String* %msg | |
} | |
define %Void* @Dict_initialize(%Dict* %self) { | |
alloca: | |
%"ary@19_" = alloca %Array*, align 8 | |
%"ary@18_" = alloca %Array*, align 8 | |
br label %alloca_End | |
alloca_End: ; preds = %alloca | |
%"::Array" = load %Array*, %Array** @"::Array", align 8 | |
%"::Array1" = load %Array*, %Array** @"::Array", align 8 | |
%"::Class" = load %Class.0*, %Class.0** @"::Class", align 8 | |
br label %"Invoke_Class#_specialize1" | |
End: ; preds = %Ret | |
%"::Void100" = load %Void*, %Void** @"::Void", align 8 | |
ret %Void* %"::Void100" | |
"Invoke_Class#_specialize1": ; preds = %alloca_End | |
%addr_vtable = getelementptr inbounds %Array, %Array* %"::Array1", i32 0, i32 0 | |
%vtable = load i8*, i8** %addr_vtable, align 8 | |
%vtable_ptr = bitcast i8* %vtable to [25 x i8*]* | |
%vtable2 = load [25 x i8*], [25 x i8*]* %vtable_ptr, align 8 | |
%func_raw = extractvalue [25 x i8*] %vtable2, 18 | |
%func = bitcast i8* %func_raw to %Array* (%Array*, %Class.0*)* | |
%result = call %Array* %func(%Array* %"::Array1", %Class.0* %"::Class") | |
br label %"Invoke_Class#_specialize1_end" | |
"Invoke_Class#_specialize1_end": ; preds = %"Invoke_Class#_specialize1" | |
br label %"Invoke_Array#new" | |
"Invoke_Array#new": ; preds = %"Invoke_Class#_specialize1_end" | |
%addr_vtable3 = getelementptr inbounds %Array, %Array* %result, i32 0, i32 0 | |
%vtable4 = load i8*, i8** %addr_vtable3, align 8 | |
%vtable_ptr5 = bitcast i8* %vtable4 to [25 x i8*]* | |
%vtable6 = load [25 x i8*], [25 x i8*]* %vtable_ptr5, align 8 | |
%func_raw7 = extractvalue [25 x i8*] %vtable6, 23 | |
%func8 = bitcast i8* %func_raw7 to %Array* (%Array*)* | |
%result9 = call %Array* %func8(%Array* %result) | |
br label %"Invoke_Array#new_end" | |
"Invoke_Array#new_end": ; preds = %"Invoke_Array#new" | |
store %Array* %result9, %Array** %"ary@19_", align 8 | |
%"ary@19_10" = load %Array*, %Array** %"ary@19_", align 8 | |
%"::Dict::Table" = load %"Dict::Table"*, %"Dict::Table"** @"::Dict::Table", align 8 | |
%"::Array11" = load %Array*, %Array** @"::Array", align 8 | |
%"::Class12" = load %Class.0*, %Class.0** @"::Class", align 8 | |
br label %"Invoke_Class#_specialize113" | |
"Invoke_Class#_specialize113": ; preds = %"Invoke_Array#new_end" | |
%addr_vtable14 = getelementptr inbounds %Array, %Array* %"::Array11", i32 0, i32 0 | |
%vtable15 = load i8*, i8** %addr_vtable14, align 8 | |
%vtable_ptr16 = bitcast i8* %vtable15 to [25 x i8*]* | |
%vtable17 = load [25 x i8*], [25 x i8*]* %vtable_ptr16, align 8 | |
%func_raw18 = extractvalue [25 x i8*] %vtable17, 18 | |
%func19 = bitcast i8* %func_raw18 to %Array* (%Array*, %Class.0*)* | |
%result20 = call %Array* %func19(%Array* %"::Array11", %Class.0* %"::Class12") | |
br label %"Invoke_Class#_specialize1_end21" | |
"Invoke_Class#_specialize1_end21": ; preds = %"Invoke_Class#_specialize113" | |
br label %"Invoke_Array#new22" | |
"Invoke_Array#new22": ; preds = %"Invoke_Class#_specialize1_end21" | |
%addr_vtable23 = getelementptr inbounds %Array, %Array* %result20, i32 0, i32 0 | |
%vtable24 = load i8*, i8** %addr_vtable23, align 8 | |
%vtable_ptr25 = bitcast i8* %vtable24 to [25 x i8*]* | |
%vtable26 = load [25 x i8*], [25 x i8*]* %vtable_ptr25, align 8 | |
%func_raw27 = extractvalue [25 x i8*] %vtable26, 23 | |
%func28 = bitcast i8* %func_raw27 to %Array* (%Array*)* | |
%result29 = call %Array* %func28(%Array* %result20) | |
br label %"Invoke_Array#new_end30" | |
"Invoke_Array#new_end30": ; preds = %"Invoke_Array#new22" | |
store %Array* %result29, %Array** %"ary@18_", align 8 | |
%"ary@18_31" = load %Array*, %Array** %"ary@18_", align 8 | |
%addr_class = getelementptr inbounds %Dict, %Dict* %self, i32 0, i32 1 | |
%class = load %Class.0*, %Class.0** %addr_class, align 8 | |
%sk_int = call %Int* @box_int(i64 0) | |
%result32 = call %Class.0* @Class___type__argument(%Class.0* %class, %Int* %sk_int) | |
%as = bitcast %Class.0* %result32 to %Object* | |
br label %"Invoke_Array#push" | |
"Invoke_Array#push": ; preds = %"Invoke_Array#new_end30" | |
%addr_vtable33 = getelementptr inbounds %Array, %Array* %"ary@18_31", i32 0, i32 0 | |
%vtable34 = load i8*, i8** %addr_vtable33, align 8 | |
%vtable_ptr35 = bitcast i8* %vtable34 to [54 x i8*]* | |
%vtable36 = load [54 x i8*], [54 x i8*]* %vtable_ptr35, align 8 | |
%func_raw37 = extractvalue [54 x i8*] %vtable36, 45 | |
%func38 = bitcast i8* %func_raw37 to %Void* (%Array*, %Object*)* | |
%result39 = call %Void* %func38(%Array* %"ary@18_31", %Object* %as) | |
br label %"Invoke_Array#push_end" | |
"Invoke_Array#push_end": ; preds = %"Invoke_Array#push" | |
%"ary@18_40" = load %Array*, %Array** %"ary@18_", align 8 | |
%addr_class41 = getelementptr inbounds %Dict, %Dict* %self, i32 0, i32 1 | |
%class42 = load %Class.0*, %Class.0** %addr_class41, align 8 | |
%sk_int43 = call %Int* @box_int(i64 1) | |
%result44 = call %Class.0* @Class___type__argument(%Class.0* %class42, %Int* %sk_int43) | |
%as45 = bitcast %Class.0* %result44 to %Object* | |
br label %"Invoke_Array#push46" | |
"Invoke_Array#push46": ; preds = %"Invoke_Array#push_end" | |
%addr_vtable47 = getelementptr inbounds %Array, %Array* %"ary@18_40", i32 0, i32 0 | |
%vtable48 = load i8*, i8** %addr_vtable47, align 8 | |
%vtable_ptr49 = bitcast i8* %vtable48 to [54 x i8*]* | |
%vtable50 = load [54 x i8*], [54 x i8*]* %vtable_ptr49, align 8 | |
%func_raw51 = extractvalue [54 x i8*] %vtable50, 45 | |
%func52 = bitcast i8* %func_raw51 to %Void* (%Array*, %Object*)* | |
%result53 = call %Void* %func52(%Array* %"ary@18_40", %Object* %as45) | |
br label %"Invoke_Array#push_end54" | |
"Invoke_Array#push_end54": ; preds = %"Invoke_Array#push46" | |
%"ary@18_55" = load %Array*, %Array** %"ary@18_", align 8 | |
br label %"Invoke_Class#<>" | |
"Invoke_Class#<>": ; preds = %"Invoke_Array#push_end54" | |
%addr_vtable56 = getelementptr inbounds %"Dict::Table", %"Dict::Table"* %"::Dict::Table", i32 0, i32 0 | |
%vtable57 = load i8*, i8** %addr_vtable56, align 8 | |
%vtable_ptr58 = bitcast i8* %vtable57 to [23 x i8*]* | |
%vtable59 = load [23 x i8*], [23 x i8*]* %vtable_ptr58, align 8 | |
%func_raw60 = extractvalue [23 x i8*] %vtable59, 16 | |
%func61 = bitcast i8* %func_raw60 to %"Dict::Table"* (%"Dict::Table"*, %Array*)* | |
%result62 = call %"Dict::Table"* %func61(%"Dict::Table"* %"::Dict::Table", %Array* %"ary@18_55") | |
br label %"Invoke_Class#<>_end" | |
"Invoke_Class#<>_end": ; preds = %"Invoke_Class#<>" | |
%as63 = bitcast %"Dict::Table"* %result62 to %Object* | |
br label %"Invoke_Array#push64" | |
"Invoke_Array#push64": ; preds = %"Invoke_Class#<>_end" | |
%addr_vtable65 = getelementptr inbounds %Array, %Array* %"ary@19_10", i32 0, i32 0 | |
%vtable66 = load i8*, i8** %addr_vtable65, align 8 | |
%vtable_ptr67 = bitcast i8* %vtable66 to [54 x i8*]* | |
%vtable68 = load [54 x i8*], [54 x i8*]* %vtable_ptr67, align 8 | |
%func_raw69 = extractvalue [54 x i8*] %vtable68, 45 | |
%func70 = bitcast i8* %func_raw69 to %Void* (%Array*, %Object*)* | |
%result71 = call %Void* %func70(%Array* %"ary@19_10", %Object* %as63) | |
br label %"Invoke_Array#push_end72" | |
"Invoke_Array#push_end72": ; preds = %"Invoke_Array#push64" | |
%"ary@19_73" = load %Array*, %Array** %"ary@19_", align 8 | |
br label %"Invoke_Class#<>74" | |
"Invoke_Class#<>74": ; preds = %"Invoke_Array#push_end72" | |
%addr_vtable75 = getelementptr inbounds %Array, %Array* %"::Array", i32 0, i32 0 | |
%vtable76 = load i8*, i8** %addr_vtable75, align 8 | |
%vtable_ptr77 = bitcast i8* %vtable76 to [25 x i8*]* | |
%vtable78 = load [25 x i8*], [25 x i8*]* %vtable_ptr77, align 8 | |
%func_raw79 = extractvalue [25 x i8*] %vtable78, 16 | |
%func80 = bitcast i8* %func_raw79 to %Array* (%Array*, %Array*)* | |
%result81 = call %Array* %func80(%Array* %"::Array", %Array* %"ary@19_73") | |
br label %"Invoke_Class#<>_end82" | |
"Invoke_Class#<>_end82": ; preds = %"Invoke_Class#<>74" | |
br label %"Invoke_Meta:Array#new" | |
"Invoke_Meta:Array#new": ; preds = %"Invoke_Class#<>_end82" | |
%addr_vtable83 = getelementptr inbounds %Array, %Array* %result81, i32 0, i32 0 | |
%vtable84 = load i8*, i8** %addr_vtable83, align 8 | |
%vtable_ptr85 = bitcast i8* %vtable84 to [25 x i8*]* | |
%vtable86 = load [25 x i8*], [25 x i8*]* %vtable_ptr85, align 8 | |
%func_raw87 = extractvalue [25 x i8*] %vtable86, 23 | |
%func88 = bitcast i8* %func_raw87 to %Array* (%Array*)* | |
%result89 = call %Array* %func88(%Array* %result81) | |
br label %"Invoke_Meta:Array#new_end" | |
"Invoke_Meta:Array#new_end": ; preds = %"Invoke_Meta:Array#new" | |
%"addr_@tables" = getelementptr inbounds %Dict, %Dict* %self, i32 0, i32 2 | |
store %Array* %result89, %Array** %"addr_@tables", align 8 | |
%"::Dict::N_TABLES" = load %Int*, %Int** @"::Dict::N_TABLES", align 8 | |
%"::Fn1" = load %Fn1*, %Fn1** @"::Fn1", align 8 | |
%sk_ptr = call %"Shiika::Internal::Ptr"* @box_i8ptr(i8* bitcast (%Void* (%Fn1*, %Object*)* @"lambda_17_in_Dict#initialize" to i8*)) | |
%the_main = bitcast %Dict* %self to %Object* | |
%"::Array90" = load %Array*, %Array** @"::Array", align 8 | |
%result91 = call %Array* @Meta_Array_new(%Array* %"::Array90") | |
%result92 = call %Fn1* @Meta_Fn1_new(%Fn1* %"::Fn1", %"Shiika::Internal::Ptr"* %sk_ptr, %Object* %the_main, %Array* %result91) | |
br label %"Invoke_Int#times" | |
"Invoke_Int#times": ; preds = %"Invoke_Meta:Array#new_end" | |
%addr_vtable93 = getelementptr inbounds %Int, %Int* %"::Dict::N_TABLES", i32 0, i32 0 | |
%vtable94 = load i8*, i8** %addr_vtable93, align 8 | |
%vtable_ptr95 = bitcast i8* %vtable94 to [35 x i8*]* | |
%vtable96 = load [35 x i8*], [35 x i8*]* %vtable_ptr95, align 8 | |
%func_raw97 = extractvalue [35 x i8*] %vtable96, 30 | |
%func98 = bitcast i8* %func_raw97 to %Void* (%Int*, %Fn1*)* | |
%result99 = call %Void* %func98(%Int* %"::Dict::N_TABLES", %Fn1* %result92) | |
br label %"Invoke_Int#times_end" | |
"Invoke_Int#times_end": ; preds = %"Invoke_Int#times" | |
%"::Void" = load %Void*, %Void** @"::Void", align 8 | |
br label %Ret | |
Ret: ; preds = %"Invoke_Int#times_end" | |
br label %End | |
} | |
define %Array* @Dict_tables(%Dict* %self) { | |
%"addr_@tables" = getelementptr inbounds %Dict, %Dict* %self, i32 0, i32 2 | |
%"@tables" = load %Array*, %Array** %"addr_@tables", align 8 | |
ret %Array* %"@tables" | |
} | |
define %Array* @_set_Dict_tables(%Dict* %self, %Array* %tables) { | |
%"addr_@tables" = getelementptr inbounds %Dict, %Dict* %self, i32 0, i32 2 | |
store %Array* %tables, %Array** %"addr_@tables", align 8 | |
ret %Array* %tables | |
} | |
define %"Dict::Table"* @Dict___table(%Dict* %self, %Object* %key) { | |
%"addr_@tables" = getelementptr inbounds %Dict, %Dict* %self, i32 0, i32 2 | |
%"@tables" = load %Array*, %Array** %"addr_@tables", align 8 | |
br label %"Invoke_Object#hash" | |
End: ; preds = %Ret | |
%methodResult = phi %"Dict::Table"* [ %result24, %Ret ] | |
ret %"Dict::Table"* %methodResult | |
"Invoke_Object#hash": ; preds = %0 | |
%addr_vtable = getelementptr inbounds %Object, %Object* %key, i32 0, i32 0 | |
%vtable = load i8*, i8** %addr_vtable, align 8 | |
%vtable_ptr = bitcast i8* %vtable to [16 x i8*]* | |
%vtable1 = load [16 x i8*], [16 x i8*]* %vtable_ptr, align 8 | |
%func_raw = extractvalue [16 x i8*] %vtable1, 7 | |
%func = bitcast i8* %func_raw to %Int* (%Object*)* | |
%result = call %Int* %func(%Object* %key) | |
br label %"Invoke_Object#hash_end" | |
"Invoke_Object#hash_end": ; preds = %"Invoke_Object#hash" | |
%"addr_@tables2" = getelementptr inbounds %Dict, %Dict* %self, i32 0, i32 2 | |
%"@tables3" = load %Array*, %Array** %"addr_@tables2", align 8 | |
br label %"Invoke_Array#length" | |
"Invoke_Array#length": ; preds = %"Invoke_Object#hash_end" | |
%addr_vtable4 = getelementptr inbounds %Array, %Array* %"@tables3", i32 0, i32 0 | |
%vtable5 = load i8*, i8** %addr_vtable4, align 8 | |
%vtable_ptr6 = bitcast i8* %vtable5 to [54 x i8*]* | |
%vtable7 = load [54 x i8*], [54 x i8*]* %vtable_ptr6, align 8 | |
%func_raw8 = extractvalue [54 x i8*] %vtable7, 39 | |
%func9 = bitcast i8* %func_raw8 to %Int* (%Array*)* | |
%result10 = call %Int* %func9(%Array* %"@tables3") | |
br label %"Invoke_Array#length_end" | |
"Invoke_Array#length_end": ; preds = %"Invoke_Array#length" | |
br label %"Invoke_Int#%" | |
"Invoke_Int#%": ; preds = %"Invoke_Array#length_end" | |
%addr_vtable11 = getelementptr inbounds %Int, %Int* %result, i32 0, i32 0 | |
%vtable12 = load i8*, i8** %addr_vtable11, align 8 | |
%vtable_ptr13 = bitcast i8* %vtable12 to [35 x i8*]* | |
%vtable14 = load [35 x i8*], [35 x i8*]* %vtable_ptr13, align 8 | |
%func_raw15 = extractvalue [35 x i8*] %vtable14, 16 | |
%func16 = bitcast i8* %func_raw15 to %Int* (%Int*, %Int*)* | |
%result17 = call %Int* %func16(%Int* %result, %Int* %result10) | |
br label %"Invoke_Int#%_end" | |
"Invoke_Int#%_end": ; preds = %"Invoke_Int#%" | |
%as = bitcast %Int* %result17 to %Object* | |
br label %"Invoke_Array#[]" | |
"Invoke_Array#[]": ; preds = %"Invoke_Int#%_end" | |
%addr_vtable18 = getelementptr inbounds %Array, %Array* %"@tables", i32 0, i32 0 | |
%vtable19 = load i8*, i8** %addr_vtable18, align 8 | |
%vtable_ptr20 = bitcast i8* %vtable19 to [54 x i8*]* | |
%vtable21 = load [54 x i8*], [54 x i8*]* %vtable_ptr20, align 8 | |
%func_raw22 = extractvalue [54 x i8*] %vtable21, 16 | |
%func23 = bitcast i8* %func_raw22 to %"Dict::Table"* (%Array*, %Object*)* | |
%result24 = call %"Dict::Table"* %func23(%Array* %"@tables", %Object* %as) | |
br label %"Invoke_Array#[]_end" | |
"Invoke_Array#[]_end": ; preds = %"Invoke_Array#[]" | |
br label %Ret | |
Ret: ; preds = %"Invoke_Array#[]_end" | |
br label %End | |
} | |
define %Void* @Dict_aset_(%Dict* %self, %Object* %key, %Object* %value) { | |
br label %"Invoke_Dict#_table" | |
End: ; preds = %Ret | |
%"::Void9" = load %Void*, %Void** @"::Void", align 8 | |
ret %Void* %"::Void9" | |
"Invoke_Dict#_table": ; preds = %0 | |
%addr_vtable = getelementptr inbounds %Dict, %Dict* %self, i32 0, i32 0 | |
%vtable = load i8*, i8** %addr_vtable, align 8 | |
%vtable_ptr = bitcast i8* %vtable to [24 x i8*]* | |
%vtable1 = load [24 x i8*], [24 x i8*]* %vtable_ptr, align 8 | |
%func_raw = extractvalue [24 x i8*] %vtable1, 18 | |
%func = bitcast i8* %func_raw to %"Dict::Table"* (%Dict*, %Object*)* | |
%result = call %"Dict::Table"* %func(%Dict* %self, %Object* %key) | |
br label %"Invoke_Dict#_table_end" | |
"Invoke_Dict#_table_end": ; preds = %"Invoke_Dict#_table" | |
br label %"Invoke_Dict::Table#[]=" | |
"Invoke_Dict::Table#[]=": ; preds = %"Invoke_Dict#_table_end" | |
%addr_vtable2 = getelementptr inbounds %"Dict::Table", %"Dict::Table"* %result, i32 0, i32 0 | |
%vtable3 = load i8*, i8** %addr_vtable2, align 8 | |
%vtable_ptr4 = bitcast i8* %vtable3 to [23 x i8*]* | |
%vtable5 = load [23 x i8*], [23 x i8*]* %vtable_ptr4, align 8 | |
%func_raw6 = extractvalue [23 x i8*] %vtable5, 17 | |
%func7 = bitcast i8* %func_raw6 to %Void* (%"Dict::Table"*, %Object*, %Object*)* | |
%result8 = call %Void* %func7(%"Dict::Table"* %result, %Object* %key, %Object* %value) | |
br label %"Invoke_Dict::Table#[]=_end" | |
"Invoke_Dict::Table#[]=_end": ; preds = %"Invoke_Dict::Table#[]=" | |
%"::Void" = load %Void*, %Void** @"::Void", align 8 | |
br label %Ret | |
Ret: ; preds = %"Invoke_Dict::Table#[]=_end" | |
br label %End | |
} | |
define %Maybe* @Dict_aref_(%Dict* %self, %Object* %key) { | |
br label %"Invoke_Dict#_table" | |
End: ; preds = %Ret | |
%methodResult = phi %Maybe* [ %result8, %Ret ] | |
ret %Maybe* %methodResult | |
"Invoke_Dict#_table": ; preds = %0 | |
%addr_vtable = getelementptr inbounds %Dict, %Dict* %self, i32 0, i32 0 | |
%vtable = load i8*, i8** %addr_vtable, align 8 | |
%vtable_ptr = bitcast i8* %vtable to [24 x i8*]* | |
%vtable1 = load [24 x i8*], [24 x i8*]* %vtable_ptr, align 8 | |
%func_raw = extractvalue [24 x i8*] %vtable1, 18 | |
%func = bitcast i8* %func_raw to %"Dict::Table"* (%Dict*, %Object*)* | |
%result = call %"Dict::Table"* %func(%Dict* %self, %Object* %key) | |
br label %"Invoke_Dict#_table_end" | |
"Invoke_Dict#_table_end": ; preds = %"Invoke_Dict#_table" | |
br label %"Invoke_Dict::Table#[]" | |
"Invoke_Dict::Table#[]": ; preds = %"Invoke_Dict#_table_end" | |
%addr_vtable2 = getelementptr inbounds %"Dict::Table", %"Dict::Table"* %result, i32 0, i32 0 | |
%vtable3 = load i8*, i8** %addr_vtable2, align 8 | |
%vtable_ptr4 = bitcast i8* %vtable3 to [23 x i8*]* | |
%vtable5 = load [23 x i8*], [23 x i8*]* %vtable_ptr4, align 8 | |
%func_raw6 = extractvalue [23 x i8*] %vtable5, 16 | |
%func7 = bitcast i8* %func_raw6 to %Maybe* (%"Dict::Table"*, %Object*)* | |
%result8 = call %Maybe* %func7(%"Dict::Table"* %result, %Object* %key) | |
br label %"Invoke_Dict::Table#[]_end" | |
"Invoke_Dict::Table#[]_end": ; preds = %"Invoke_Dict::Table#[]" | |
br label %Ret | |
Ret: ; preds = %"Invoke_Dict::Table#[]_end" | |
br label %End | |
} | |
define %Bool* @"Dict_has__key?"(%Dict* %self, %Object* %key) { | |
br label %"Invoke_Dict#_table" | |
End: ; preds = %Ret | |
%methodResult = phi %Bool* [ %result8, %Ret ] | |
ret %Bool* %methodResult | |
"Invoke_Dict#_table": ; preds = %0 | |
%addr_vtable = getelementptr inbounds %Dict, %Dict* %self, i32 0, i32 0 | |
%vtable = load i8*, i8** %addr_vtable, align 8 | |
%vtable_ptr = bitcast i8* %vtable to [24 x i8*]* | |
%vtable1 = load [24 x i8*], [24 x i8*]* %vtable_ptr, align 8 | |
%func_raw = extractvalue [24 x i8*] %vtable1, 18 | |
%func = bitcast i8* %func_raw to %"Dict::Table"* (%Dict*, %Object*)* | |
%result = call %"Dict::Table"* %func(%Dict* %self, %Object* %key) | |
br label %"Invoke_Dict#_table_end" | |
"Invoke_Dict#_table_end": ; preds = %"Invoke_Dict#_table" | |
br label %"Invoke_Dict::Table#has_key?" | |
"Invoke_Dict::Table#has_key?": ; preds = %"Invoke_Dict#_table_end" | |
%addr_vtable2 = getelementptr inbounds %"Dict::Table", %"Dict::Table"* %result, i32 0, i32 0 | |
%vtable3 = load i8*, i8** %addr_vtable2, align 8 | |
%vtable_ptr4 = bitcast i8* %vtable3 to [23 x i8*]* | |
%vtable5 = load [23 x i8*], [23 x i8*]* %vtable_ptr4, align 8 | |
%func_raw6 = extractvalue [23 x i8*] %vtable5, 18 | |
%func7 = bitcast i8* %func_raw6 to %Bool* (%"Dict::Table"*, %Object*)* | |
%result8 = call %Bool* %func7(%"Dict::Table"* %result, %Object* %key) | |
br label %"Invoke_Dict::Table#has_key?_end" | |
"Invoke_Dict::Table#has_key?_end": ; preds = %"Invoke_Dict::Table#has_key?" | |
br label %Ret | |
Ret: ; preds = %"Invoke_Dict::Table#has_key?_end" | |
br label %End | |
} | |
define %Array* @Dict_keys(%Dict* %self) { | |
alloca: | |
%"ary@26_" = alloca %Array*, align 8 | |
%ret = alloca %Array*, align 8 | |
br label %alloca_End | |
alloca_End: ; preds = %alloca | |
%"::Array" = load %Array*, %Array** @"::Array", align 8 | |
%"::Array1" = load %Array*, %Array** @"::Array", align 8 | |
%"::Class" = load %Class.0*, %Class.0** @"::Class", align 8 | |
br label %"Invoke_Class#_specialize1" | |
End: ; preds = %Ret | |
%methodResult = phi %Array* [ %ret45, %Ret ] | |
ret %Array* %methodResult | |
"Invoke_Class#_specialize1": ; preds = %alloca_End | |
%addr_vtable = getelementptr inbounds %Array, %Array* %"::Array1", i32 0, i32 0 | |
%vtable = load i8*, i8** %addr_vtable, align 8 | |
%vtable_ptr = bitcast i8* %vtable to [25 x i8*]* | |
%vtable2 = load [25 x i8*], [25 x i8*]* %vtable_ptr, align 8 | |
%func_raw = extractvalue [25 x i8*] %vtable2, 18 | |
%func = bitcast i8* %func_raw to %Array* (%Array*, %Class.0*)* | |
%result = call %Array* %func(%Array* %"::Array1", %Class.0* %"::Class") | |
br label %"Invoke_Class#_specialize1_end" | |
"Invoke_Class#_specialize1_end": ; preds = %"Invoke_Class#_specialize1" | |
br label %"Invoke_Array#new" | |
"Invoke_Array#new": ; preds = %"Invoke_Class#_specialize1_end" | |
%addr_vtable3 = getelementptr inbounds %Array, %Array* %result, i32 0, i32 0 | |
%vtable4 = load i8*, i8** %addr_vtable3, align 8 | |
%vtable_ptr5 = bitcast i8* %vtable4 to [25 x i8*]* | |
%vtable6 = load [25 x i8*], [25 x i8*]* %vtable_ptr5, align 8 | |
%func_raw7 = extractvalue [25 x i8*] %vtable6, 23 | |
%func8 = bitcast i8* %func_raw7 to %Array* (%Array*)* | |
%result9 = call %Array* %func8(%Array* %result) | |
br label %"Invoke_Array#new_end" | |
"Invoke_Array#new_end": ; preds = %"Invoke_Array#new" | |
store %Array* %result9, %Array** %"ary@26_", align 8 | |
%"ary@26_10" = load %Array*, %Array** %"ary@26_", align 8 | |
%addr_class = getelementptr inbounds %Dict, %Dict* %self, i32 0, i32 1 | |
%class = load %Class.0*, %Class.0** %addr_class, align 8 | |
%sk_int = call %Int* @box_int(i64 0) | |
%result11 = call %Class.0* @Class___type__argument(%Class.0* %class, %Int* %sk_int) | |
%as = bitcast %Class.0* %result11 to %Object* | |
br label %"Invoke_Array#push" | |
"Invoke_Array#push": ; preds = %"Invoke_Array#new_end" | |
%addr_vtable12 = getelementptr inbounds %Array, %Array* %"ary@26_10", i32 0, i32 0 | |
%vtable13 = load i8*, i8** %addr_vtable12, align 8 | |
%vtable_ptr14 = bitcast i8* %vtable13 to [54 x i8*]* | |
%vtable15 = load [54 x i8*], [54 x i8*]* %vtable_ptr14, align 8 | |
%func_raw16 = extractvalue [54 x i8*] %vtable15, 45 | |
%func17 = bitcast i8* %func_raw16 to %Void* (%Array*, %Object*)* | |
%result18 = call %Void* %func17(%Array* %"ary@26_10", %Object* %as) | |
br label %"Invoke_Array#push_end" | |
"Invoke_Array#push_end": ; preds = %"Invoke_Array#push" | |
%"ary@26_19" = load %Array*, %Array** %"ary@26_", align 8 | |
br label %"Invoke_Class#<>" | |
"Invoke_Class#<>": ; preds = %"Invoke_Array#push_end" | |
%addr_vtable20 = getelementptr inbounds %Array, %Array* %"::Array", i32 0, i32 0 | |
%vtable21 = load i8*, i8** %addr_vtable20, align 8 | |
%vtable_ptr22 = bitcast i8* %vtable21 to [25 x i8*]* | |
%vtable23 = load [25 x i8*], [25 x i8*]* %vtable_ptr22, align 8 | |
%func_raw24 = extractvalue [25 x i8*] %vtable23, 16 | |
%func25 = bitcast i8* %func_raw24 to %Array* (%Array*, %Array*)* | |
%result26 = call %Array* %func25(%Array* %"::Array", %Array* %"ary@26_19") | |
br label %"Invoke_Class#<>_end" | |
"Invoke_Class#<>_end": ; preds = %"Invoke_Class#<>" | |
br label %"Invoke_Meta:Array#new" | |
"Invoke_Meta:Array#new": ; preds = %"Invoke_Class#<>_end" | |
%addr_vtable27 = getelementptr inbounds %Array, %Array* %result26, i32 0, i32 0 | |
%vtable28 = load i8*, i8** %addr_vtable27, align 8 | |
%vtable_ptr29 = bitcast i8* %vtable28 to [25 x i8*]* | |
%vtable30 = load [25 x i8*], [25 x i8*]* %vtable_ptr29, align 8 | |
%func_raw31 = extractvalue [25 x i8*] %vtable30, 23 | |
%func32 = bitcast i8* %func_raw31 to %Array* (%Array*)* | |
%result33 = call %Array* %func32(%Array* %result26) | |
br label %"Invoke_Meta:Array#new_end" | |
"Invoke_Meta:Array#new_end": ; preds = %"Invoke_Meta:Array#new" | |
store %Array* %result33, %Array** %ret, align 8 | |
%"addr_@tables" = getelementptr inbounds %Dict, %Dict* %self, i32 0, i32 2 | |
%"@tables" = load %Array*, %Array** %"addr_@tables", align 8 | |
%"::Fn1" = load %Fn1*, %Fn1** @"::Fn1", align 8 | |
%sk_ptr = call %"Shiika::Internal::Ptr"* @box_i8ptr(i8* bitcast (%Void* (%Fn1*, %Object*)* @"lambda_23_in_Dict#keys" to i8*)) | |
%the_main = bitcast %Dict* %self to %Object* | |
%"::Array34" = load %Array*, %Array** @"::Array", align 8 | |
%result35 = call %Array* @Meta_Array_new(%Array* %"::Array34") | |
%capture_item = bitcast %Array** %ret to %Object* | |
%_ = call %Void* @Array_push(%Array* %result35, %Object* %capture_item) | |
%result36 = call %Fn1* @Meta_Fn1_new(%Fn1* %"::Fn1", %"Shiika::Internal::Ptr"* %sk_ptr, %Object* %the_main, %Array* %result35) | |
%as37 = bitcast %Fn1* %result36 to %Object* | |
br label %"Invoke_Array#each" | |
"Invoke_Array#each": ; preds = %"Invoke_Meta:Array#new_end" | |
%addr_vtable38 = getelementptr inbounds %Array, %Array* %"@tables", i32 0, i32 0 | |
%vtable39 = load i8*, i8** %addr_vtable38, align 8 | |
%vtable_ptr40 = bitcast i8* %vtable39 to [54 x i8*]* | |
%vtable41 = load [54 x i8*], [54 x i8*]* %vtable_ptr40, align 8 | |
%func_raw42 = extractvalue [54 x i8*] %vtable41, 29 | |
%func43 = bitcast i8* %func_raw42 to %Void* (%Array*, %Object*)* | |
%result44 = call %Void* %func43(%Array* %"@tables", %Object* %as37) | |
br label %"Invoke_Array#each_end" | |
"Invoke_Array#each_end": ; preds = %"Invoke_Array#each" | |
%ret45 = load %Array*, %Array** %ret, align 8 | |
br label %Ret | |
Ret: ; preds = %"Invoke_Array#each_end" | |
br label %End | |
} | |
define %Array* @Dict_values(%Dict* %self) { | |
alloca: | |
%"ary@27_" = alloca %Array*, align 8 | |
%ret = alloca %Array*, align 8 | |
br label %alloca_End | |
alloca_End: ; preds = %alloca | |
%"::Array" = load %Array*, %Array** @"::Array", align 8 | |
%"::Array1" = load %Array*, %Array** @"::Array", align 8 | |
%"::Class" = load %Class.0*, %Class.0** @"::Class", align 8 | |
br label %"Invoke_Class#_specialize1" | |
End: ; preds = %Ret | |
%methodResult = phi %Array* [ %ret45, %Ret ] | |
ret %Array* %methodResult | |
"Invoke_Class#_specialize1": ; preds = %alloca_End | |
%addr_vtable = getelementptr inbounds %Array, %Array* %"::Array1", i32 0, i32 0 | |
%vtable = load i8*, i8** %addr_vtable, align 8 | |
%vtable_ptr = bitcast i8* %vtable to [25 x i8*]* | |
%vtable2 = load [25 x i8*], [25 x i8*]* %vtable_ptr, align 8 | |
%func_raw = extractvalue [25 x i8*] %vtable2, 18 | |
%func = bitcast i8* %func_raw to %Array* (%Array*, %Class.0*)* | |
%result = call %Array* %func(%Array* %"::Array1", %Class.0* %"::Class") | |
br label %"Invoke_Class#_specialize1_end" | |
"Invoke_Class#_specialize1_end": ; preds = %"Invoke_Class#_specialize1" | |
br label %"Invoke_Array#new" | |
"Invoke_Array#new": ; preds = %"Invoke_Class#_specialize1_end" | |
%addr_vtable3 = getelementptr inbounds %Array, %Array* %result, i32 0, i32 0 | |
%vtable4 = load i8*, i8** %addr_vtable3, align 8 | |
%vtable_ptr5 = bitcast i8* %vtable4 to [25 x i8*]* | |
%vtable6 = load [25 x i8*], [25 x i8*]* %vtable_ptr5, align 8 | |
%func_raw7 = extractvalue [25 x i8*] %vtable6, 23 | |
%func8 = bitcast i8* %func_raw7 to %Array* (%Array*)* | |
%result9 = call %Array* %func8(%Array* %result) | |
br label %"Invoke_Array#new_end" | |
"Invoke_Array#new_end": ; preds = %"Invoke_Array#new" | |
store %Array* %result9, %Array** %"ary@27_", align 8 | |
%"ary@27_10" = load %Array*, %Array** %"ary@27_", align 8 | |
%addr_class = getelementptr inbounds %Dict, %Dict* %self, i32 0, i32 1 | |
%class = load %Class.0*, %Class.0** %addr_class, align 8 | |
%sk_int = call %Int* @box_int(i64 1) | |
%result11 = call %Class.0* @Class___type__argument(%Class.0* %class, %Int* %sk_int) | |
%as = bitcast %Class.0* %result11 to %Object* | |
br label %"Invoke_Array#push" | |
"Invoke_Array#push": ; preds = %"Invoke_Array#new_end" | |
%addr_vtable12 = getelementptr inbounds %Array, %Array* %"ary@27_10", i32 0, i32 0 | |
%vtable13 = load i8*, i8** %addr_vtable12, align 8 | |
%vtable_ptr14 = bitcast i8* %vtable13 to [54 x i8*]* | |
%vtable15 = load [54 x i8*], [54 x i8*]* %vtable_ptr14, align 8 | |
%func_raw16 = extractvalue [54 x i8*] %vtable15, 45 | |
%func17 = bitcast i8* %func_raw16 to %Void* (%Array*, %Object*)* | |
%result18 = call %Void* %func17(%Array* %"ary@27_10", %Object* %as) | |
br label %"Invoke_Array#push_end" | |
"Invoke_Array#push_end": ; preds = %"Invoke_Array#push" | |
%"ary@27_19" = load %Array*, %Array** %"ary@27_", align 8 | |
br label %"Invoke_Class#<>" | |
"Invoke_Class#<>": ; preds = %"Invoke_Array#push_end" | |
%addr_vtable20 = getelementptr inbounds %Array, %Array* %"::Array", i32 0, i32 0 | |
%vtable21 = load i8*, i8** %addr_vtable20, align 8 | |
%vtable_ptr22 = bitcast i8* %vtable21 to [25 x i8*]* | |
%vtable23 = load [25 x i8*], [25 x i8*]* %vtable_ptr22, align 8 | |
%func_raw24 = extractvalue [25 x i8*] %vtable23, 16 | |
%func25 = bitcast i8* %func_raw24 to %Array* (%Array*, %Array*)* | |
%result26 = call %Array* %func25(%Array* %"::Array", %Array* %"ary@27_19") | |
br label %"Invoke_Class#<>_end" | |
"Invoke_Class#<>_end": ; preds = %"Invoke_Class#<>" | |
br label %"Invoke_Meta:Array#new" | |
"Invoke_Meta:Array#new": ; preds = %"Invoke_Class#<>_end" | |
%addr_vtable27 = getelementptr inbounds %Array, %Array* %result26, i32 0, i32 0 | |
%vtable28 = load i8*, i8** %addr_vtable27, align 8 | |
%vtable_ptr29 = bitcast i8* %vtable28 to [25 x i8*]* | |
%vtable30 = load [25 x i8*], [25 x i8*]* %vtable_ptr29, align 8 | |
%func_raw31 = extractvalue [25 x i8*] %vtable30, 23 | |
%func32 = bitcast i8* %func_raw31 to %Array* (%Array*)* | |
%result33 = call %Array* %func32(%Array* %result26) | |
br label %"Invoke_Meta:Array#new_end" | |
"Invoke_Meta:Array#new_end": ; preds = %"Invoke_Meta:Array#new" | |
store %Array* %result33, %Array** %ret, align 8 | |
%"addr_@tables" = getelementptr inbounds %Dict, %Dict* %self, i32 0, i32 2 | |
%"@tables" = load %Array*, %Array** %"addr_@tables", align 8 | |
%"::Fn1" = load %Fn1*, %Fn1** @"::Fn1", align 8 | |
%sk_ptr = call %"Shiika::Internal::Ptr"* @box_i8ptr(i8* bitcast (%Void* (%Fn1*, %Object*)* @"lambda_24_in_Dict#values" to i8*)) | |
%the_main = bitcast %Dict* %self to %Object* | |
%"::Array34" = load %Array*, %Array** @"::Array", align 8 | |
%result35 = call %Array* @Meta_Array_new(%Array* %"::Array34") | |
%capture_item = bitcast %Array** %ret to %Object* | |
%_ = call %Void* @Array_push(%Array* %result35, %Object* %capture_item) | |
%result36 = call %Fn1* @Meta_Fn1_new(%Fn1* %"::Fn1", %"Shiika::Internal::Ptr"* %sk_ptr, %Object* %the_main, %Array* %result35) | |
%as37 = bitcast %Fn1* %result36 to %Object* | |
br label %"Invoke_Array#each" | |
"Invoke_Array#each": ; preds = %"Invoke_Meta:Array#new_end" | |
%addr_vtable38 = getelementptr inbounds %Array, %Array* %"@tables", i32 0, i32 0 | |
%vtable39 = load i8*, i8** %addr_vtable38, align 8 | |
%vtable_ptr40 = bitcast i8* %vtable39 to [54 x i8*]* | |
%vtable41 = load [54 x i8*], [54 x i8*]* %vtable_ptr40, align 8 | |
%func_raw42 = extractvalue [54 x i8*] %vtable41, 29 | |
%func43 = bitcast i8* %func_raw42 to %Void* (%Array*, %Object*)* | |
%result44 = call %Void* %func43(%Array* %"@tables", %Object* %as37) | |
br label %"Invoke_Array#each_end" | |
"Invoke_Array#each_end": ; preds = %"Invoke_Array#each" | |
%ret45 = load %Array*, %Array** %ret, align 8 | |
br label %Ret | |
Ret: ; preds = %"Invoke_Array#each_end" | |
br label %End | |
} | |
define %Void* @"lambda_1_in_Array#=="(%Fn1* %fn_x, %Object* %i) { | |
br label %IfBegin | |
End: ; preds = %Ret, %CaptureWrite_1th_end | |
%"::Void28" = load %Void*, %Void** @"::Void", align 8 | |
ret %Void* %"::Void28" | |
IfBegin: ; preds = %0 | |
%"addr_@obj" = getelementptr inbounds %Fn1, %Fn1* %fn_x, i32 0, i32 3 | |
%"@obj" = load %Object*, %Object** %"addr_@obj", align 8 | |
%the_main = bitcast %Object* %"@obj" to %Array* | |
%value = bitcast %Object* %i to %Int* | |
%as = bitcast %Int* %value to %Object* | |
br label %"Invoke_Array#[]" | |
IfThen: ; preds = %"Invoke_Object#==_end" | |
br label %CaptureWrite_1th | |
IfElse: ; preds = %"Invoke_Object#==_end" | |
%"::Void" = load %Void*, %Void** @"::Void", align 8 | |
br label %IfEnd | |
IfEnd: ; preds = %IfElse | |
br label %Ret | |
"Invoke_Array#[]": ; preds = %IfBegin | |
%addr_vtable = getelementptr inbounds %Array, %Array* %the_main, i32 0, i32 0 | |
%vtable = load i8*, i8** %addr_vtable, align 8 | |
%vtable_ptr = bitcast i8* %vtable to [54 x i8*]* | |
%vtable1 = load [54 x i8*], [54 x i8*]* %vtable_ptr, align 8 | |
%func_raw = extractvalue [54 x i8*] %vtable1, 16 | |
%func = bitcast i8* %func_raw to %Object* (%Array*, %Object*)* | |
%result = call %Object* %func(%Array* %the_main, %Object* %as) | |
br label %"Invoke_Array#[]_end" | |
"Invoke_Array#[]_end": ; preds = %"Invoke_Array#[]" | |
br label %CaptureRef_0th | |
CaptureRef_0th: ; preds = %"Invoke_Array#[]_end" | |
%"addr_@captures" = getelementptr inbounds %Fn1, %Fn1* %fn_x, i32 0, i32 4 | |
%"@captures" = load %Array*, %Array** %"addr_@captures", align 8 | |
%sk_int = call %Int* @box_int(i64 0) | |
%result2 = call %Object* @Array_aref_(%Array* %"@captures", %Int* %sk_int) | |
%ret = bitcast %Object* %result2 to %Array* | |
br label %CaptureRef_0th_end | |
CaptureRef_0th_end: ; preds = %CaptureRef_0th | |
%value3 = bitcast %Object* %i to %Int* | |
%as4 = bitcast %Int* %value3 to %Object* | |
br label %"Invoke_Array#[]5" | |
"Invoke_Array#[]5": ; preds = %CaptureRef_0th_end | |
%addr_vtable6 = getelementptr inbounds %Array, %Array* %ret, i32 0, i32 0 | |
%vtable7 = load i8*, i8** %addr_vtable6, align 8 | |
%vtable_ptr8 = bitcast i8* %vtable7 to [54 x i8*]* | |
%vtable9 = load [54 x i8*], [54 x i8*]* %vtable_ptr8, align 8 | |
%func_raw10 = extractvalue [54 x i8*] %vtable9, 16 | |
%func11 = bitcast i8* %func_raw10 to %Object* (%Array*, %Object*)* | |
%result12 = call %Object* %func11(%Array* %ret, %Object* %as4) | |
br label %"Invoke_Array#[]_end13" | |
"Invoke_Array#[]_end13": ; preds = %"Invoke_Array#[]5" | |
br label %"Invoke_Object#==" | |
"Invoke_Object#==": ; preds = %"Invoke_Array#[]_end13" | |
%addr_vtable14 = getelementptr inbounds %Object, %Object* %result, i32 0, i32 0 | |
%vtable15 = load i8*, i8** %addr_vtable14, align 8 | |
%vtable_ptr16 = bitcast i8* %vtable15 to [16 x i8*]* | |
%vtable17 = load [16 x i8*], [16 x i8*]* %vtable_ptr16, align 8 | |
%func_raw18 = extractvalue [16 x i8*] %vtable17, 2 | |
%func19 = bitcast i8* %func_raw18 to %Bool* (%Object*, %Object*)* | |
%result20 = call %Bool* %func19(%Object* %result, %Object* %result12) | |
br label %"Invoke_Object#==_end" | |
"Invoke_Object#==_end": ; preds = %"Invoke_Object#==" | |
%llvm_bool = call i1 @unbox_bool(%Bool* %result20) | |
%b2 = xor i1 %llvm_bool, true | |
%sk_bool = call %Bool* @box_bool(i1 %b2) | |
%llvm_bool21 = call i1 @unbox_bool(%Bool* %sk_bool) | |
%istrue = icmp eq i1 %llvm_bool21, true | |
br i1 %istrue, label %IfThen, label %IfElse | |
CaptureWrite_1th: ; preds = %IfThen | |
%"addr_@captures22" = getelementptr inbounds %Fn1, %Fn1* %fn_x, i32 0, i32 4 | |
%"@captures23" = load %Array*, %Array** %"addr_@captures22", align 8 | |
%sk_int24 = call %Int* @box_int(i64 1) | |
%result25 = call %Object* @Array_aref_(%Array* %"@captures23", %Int* %sk_int24) | |
%ptr = bitcast %Object* %result25 to %Bool** | |
%sk_bool26 = call %Bool* @box_bool(i1 false) | |
store %Bool* %sk_bool26, %Bool** %ptr, align 8 | |
br label %CaptureWrite_1th_end | |
CaptureWrite_1th_end: ; preds = %CaptureWrite_1th | |
%sk_int27 = call %Int* @box_int(i64 1) | |
%"addr_@exit_status" = getelementptr inbounds %Fn1, %Fn1* %fn_x, i32 0, i32 5 | |
store %Int* %sk_int27, %Int** %"addr_@exit_status", align 8 | |
br label %End | |
Ret: ; preds = %IfEnd | |
br label %End | |
} | |
define %Void* @"lambda_2_in_Array#all?"(%Fn1* %fn_x, %Object* %item) { | |
br label %IfBegin | |
End: ; preds = %Ret | |
%"::Void9" = load %Void*, %Void** @"::Void", align 8 | |
ret %Void* %"::Void9" | |
IfBegin: ; preds = %0 | |
br label %CaptureRef_0th | |
IfThen: ; preds = %Invoke_lambda_end | |
br label %CaptureWrite_1th | |
IfElse: ; preds = %Invoke_lambda_end | |
%"::Void8" = load %Void*, %Void** @"::Void", align 8 | |
br label %IfEnd | |
IfEnd: ; preds = %IfElse, %CaptureWrite_1th_end | |
%ifResult = phi %Void* [ %"::Void", %CaptureWrite_1th_end ], [ %"::Void8", %IfElse ] | |
br label %Ret | |
CaptureRef_0th: ; preds = %IfBegin | |
%"addr_@captures" = getelementptr inbounds %Fn1, %Fn1* %fn_x, i32 0, i32 4 | |
%"@captures" = load %Array*, %Array** %"addr_@captures", align 8 | |
%sk_int = call %Int* @box_int(i64 0) | |
%result = call %Object* @Array_aref_(%Array* %"@captures", %Int* %sk_int) | |
%ret = bitcast %Object* %result to %Fn1* | |
br label %CaptureRef_0th_end | |
CaptureRef_0th_end: ; preds = %CaptureRef_0th | |
br label %Invoke_lambda | |
Invoke_lambda: ; preds = %CaptureRef_0th_end | |
%"addr_@func" = getelementptr inbounds %Fn1, %Fn1* %ret, i32 0, i32 2 | |
%"@func" = load %"Shiika::Internal::Ptr"*, %"Shiika::Internal::Ptr"** %"addr_@func", align 8 | |
%llvm_ptr = call i8* @unbox_i8ptr(%"Shiika::Internal::Ptr"* %"@func") | |
%1 = bitcast i8* %llvm_ptr to %Bool* (%Fn1*, %Object*)* | |
%result1 = call %Bool* %1(%Fn1* %ret, %Object* %item) | |
br label %Invoke_lambda_end | |
Invoke_lambda_end: ; preds = %Invoke_lambda | |
%llvm_bool = call i1 @unbox_bool(%Bool* %result1) | |
%b2 = xor i1 %llvm_bool, true | |
%sk_bool = call %Bool* @box_bool(i1 %b2) | |
%llvm_bool2 = call i1 @unbox_bool(%Bool* %sk_bool) | |
%istrue = icmp eq i1 %llvm_bool2, true | |
br i1 %istrue, label %IfThen, label %IfElse | |
CaptureWrite_1th: ; preds = %IfThen | |
%"addr_@captures3" = getelementptr inbounds %Fn1, %Fn1* %fn_x, i32 0, i32 4 | |
%"@captures4" = load %Array*, %Array** %"addr_@captures3", align 8 | |
%sk_int5 = call %Int* @box_int(i64 1) | |
%result6 = call %Object* @Array_aref_(%Array* %"@captures4", %Int* %sk_int5) | |
%ptr = bitcast %Object* %result6 to %Bool** | |
%sk_bool7 = call %Bool* @box_bool(i1 false) | |
store %Bool* %sk_bool7, %Bool** %ptr, align 8 | |
br label %CaptureWrite_1th_end | |
CaptureWrite_1th_end: ; preds = %CaptureWrite_1th | |
%"::Void" = load %Void*, %Void** @"::Void", align 8 | |
br label %IfEnd | |
Ret: ; preds = %IfEnd | |
br label %End | |
} | |
define %Void* @"lambda_3_in_Array#any?"(%Fn1* %fn_x, %Object* %item) { | |
br label %IfBegin | |
End: ; preds = %Ret | |
%"::Void7" = load %Void*, %Void** @"::Void", align 8 | |
ret %Void* %"::Void7" | |
IfBegin: ; preds = %0 | |
br label %CaptureRef_0th | |
IfThen: ; preds = %Invoke_lambda_end | |
br label %CaptureWrite_1th | |
IfElse: ; preds = %Invoke_lambda_end | |
%"::Void6" = load %Void*, %Void** @"::Void", align 8 | |
br label %IfEnd | |
IfEnd: ; preds = %IfElse, %CaptureWrite_1th_end | |
%ifResult = phi %Void* [ %"::Void", %CaptureWrite_1th_end ], [ %"::Void6", %IfElse ] | |
br label %Ret | |
CaptureRef_0th: ; preds = %IfBegin | |
%"addr_@captures" = getelementptr inbounds %Fn1, %Fn1* %fn_x, i32 0, i32 4 | |
%"@captures" = load %Array*, %Array** %"addr_@captures", align 8 | |
%sk_int = call %Int* @box_int(i64 0) | |
%result = call %Object* @Array_aref_(%Array* %"@captures", %Int* %sk_int) | |
%ret = bitcast %Object* %result to %Fn1* | |
br label %CaptureRef_0th_end | |
CaptureRef_0th_end: ; preds = %CaptureRef_0th | |
br label %Invoke_lambda | |
Invoke_lambda: ; preds = %CaptureRef_0th_end | |
%"addr_@func" = getelementptr inbounds %Fn1, %Fn1* %ret, i32 0, i32 2 | |
%"@func" = load %"Shiika::Internal::Ptr"*, %"Shiika::Internal::Ptr"** %"addr_@func", align 8 | |
%llvm_ptr = call i8* @unbox_i8ptr(%"Shiika::Internal::Ptr"* %"@func") | |
%1 = bitcast i8* %llvm_ptr to %Bool* (%Fn1*, %Object*)* | |
%result1 = call %Bool* %1(%Fn1* %ret, %Object* %item) | |
br label %Invoke_lambda_end | |
Invoke_lambda_end: ; preds = %Invoke_lambda | |
%llvm_bool = call i1 @unbox_bool(%Bool* %result1) | |
%istrue = icmp eq i1 %llvm_bool, true | |
br i1 %istrue, label %IfThen, label %IfElse | |
CaptureWrite_1th: ; preds = %IfThen | |
%"addr_@captures2" = getelementptr inbounds %Fn1, %Fn1* %fn_x, i32 0, i32 4 | |
%"@captures3" = load %Array*, %Array** %"addr_@captures2", align 8 | |
%sk_int4 = call %Int* @box_int(i64 1) | |
%result5 = call %Object* @Array_aref_(%Array* %"@captures3", %Int* %sk_int4) | |
%ptr = bitcast %Object* %result5 to %Bool** | |
%sk_bool = call %Bool* @box_bool(i1 true) | |
store %Bool* %sk_bool, %Bool** %ptr, align 8 | |
br label %CaptureWrite_1th_end | |
CaptureWrite_1th_end: ; preds = %CaptureWrite_1th | |
%"::Void" = load %Void*, %Void** @"::Void", align 8 | |
br label %IfEnd | |
Ret: ; preds = %IfEnd | |
br label %End | |
} | |
define %Void* @"lambda_4_in_Array#append"(%Fn1* %fn_x, %Object* %item) { | |
%"addr_@obj" = getelementptr inbounds %Fn1, %Fn1* %fn_x, i32 0, i32 3 | |
%"@obj" = load %Object*, %Object** %"addr_@obj", align 8 | |
%the_main = bitcast %Object* %"@obj" to %Array* | |
br label %"Invoke_Array#push" | |
End: ; preds = %Ret | |
%"::Void" = load %Void*, %Void** @"::Void", align 8 | |
ret %Void* %"::Void" | |
"Invoke_Array#push": ; preds = %0 | |
%addr_vtable = getelementptr inbounds %Array, %Array* %the_main, i32 0, i32 0 | |
%vtable = load i8*, i8** %addr_vtable, align 8 | |
%vtable_ptr = bitcast i8* %vtable to [54 x i8*]* | |
%vtable1 = load [54 x i8*], [54 x i8*]* %vtable_ptr, align 8 | |
%func_raw = extractvalue [54 x i8*] %vtable1, 45 | |
%func = bitcast i8* %func_raw to %Void* (%Array*, %Object*)* | |
%result = call %Void* %func(%Array* %the_main, %Object* %item) | |
br label %"Invoke_Array#push_end" | |
"Invoke_Array#push_end": ; preds = %"Invoke_Array#push" | |
br label %Ret | |
Ret: ; preds = %"Invoke_Array#push_end" | |
br label %End | |
} | |
define %Void* @"lambda_5_in_Array#clone"(%Fn1* %fn_x, %Object* %item) { | |
br label %CaptureRef_0th | |
End: ; preds = %Ret | |
%"::Void" = load %Void*, %Void** @"::Void", align 8 | |
ret %Void* %"::Void" | |
CaptureRef_0th: ; preds = %0 | |
%"addr_@captures" = getelementptr inbounds %Fn1, %Fn1* %fn_x, i32 0, i32 4 | |
%"@captures" = load %Array*, %Array** %"addr_@captures", align 8 | |
%sk_int = call %Int* @box_int(i64 0) | |
%result = call %Object* @Array_aref_(%Array* %"@captures", %Int* %sk_int) | |
%ptr = bitcast %Object* %result to %Array** | |
%ret = load %Array*, %Array** %ptr, align 8 | |
br label %CaptureRef_0th_end | |
CaptureRef_0th_end: ; preds = %CaptureRef_0th | |
br label %"Invoke_Array#push" | |
"Invoke_Array#push": ; preds = %CaptureRef_0th_end | |
%addr_vtable = getelementptr inbounds %Array, %Array* %ret, i32 0, i32 0 | |
%vtable = load i8*, i8** %addr_vtable, align 8 | |
%vtable_ptr = bitcast i8* %vtable to [54 x i8*]* | |
%vtable1 = load [54 x i8*], [54 x i8*]* %vtable_ptr, align 8 | |
%func_raw = extractvalue [54 x i8*] %vtable1, 45 | |
%func = bitcast i8* %func_raw to %Void* (%Array*, %Object*)* | |
%result2 = call %Void* %func(%Array* %ret, %Object* %item) | |
br label %"Invoke_Array#push_end" | |
"Invoke_Array#push_end": ; preds = %"Invoke_Array#push" | |
br label %Ret | |
Ret: ; preds = %"Invoke_Array#push_end" | |
br label %End | |
} | |
define %Void* @"lambda_6_in_Array#drop"(%Fn1* %fn_x, %Object* %i) { | |
br label %CaptureRef_0th | |
End: ; preds = %Ret | |
%"::Void" = load %Void*, %Void** @"::Void", align 8 | |
ret %Void* %"::Void" | |
CaptureRef_0th: ; preds = %0 | |
%"addr_@captures" = getelementptr inbounds %Fn1, %Fn1* %fn_x, i32 0, i32 4 | |
%"@captures" = load %Array*, %Array** %"addr_@captures", align 8 | |
%sk_int = call %Int* @box_int(i64 0) | |
%result = call %Object* @Array_aref_(%Array* %"@captures", %Int* %sk_int) | |
%ptr = bitcast %Object* %result to %Array** | |
%ret = load %Array*, %Array** %ptr, align 8 | |
br label %CaptureRef_0th_end | |
CaptureRef_0th_end: ; preds = %CaptureRef_0th | |
%"addr_@obj" = getelementptr inbounds %Fn1, %Fn1* %fn_x, i32 0, i32 3 | |
%"@obj" = load %Object*, %Object** %"addr_@obj", align 8 | |
%the_main = bitcast %Object* %"@obj" to %Array* | |
%value = bitcast %Object* %i to %Int* | |
%as = bitcast %Int* %value to %Object* | |
br label %"Invoke_Array#[]" | |
"Invoke_Array#[]": ; preds = %CaptureRef_0th_end | |
%addr_vtable = getelementptr inbounds %Array, %Array* %the_main, i32 0, i32 0 | |
%vtable = load i8*, i8** %addr_vtable, align 8 | |
%vtable_ptr = bitcast i8* %vtable to [54 x i8*]* | |
%vtable1 = load [54 x i8*], [54 x i8*]* %vtable_ptr, align 8 | |
%func_raw = extractvalue [54 x i8*] %vtable1, 16 | |
%func = bitcast i8* %func_raw to %Object* (%Array*, %Object*)* | |
%result2 = call %Object* %func(%Array* %the_main, %Object* %as) | |
br label %"Invoke_Array#[]_end" | |
"Invoke_Array#[]_end": ; preds = %"Invoke_Array#[]" | |
br label %"Invoke_Array#push" | |
"Invoke_Array#push": ; preds = %"Invoke_Array#[]_end" | |
%addr_vtable3 = getelementptr inbounds %Array, %Array* %ret, i32 0, i32 0 | |
%vtable4 = load i8*, i8** %addr_vtable3, align 8 | |
%vtable_ptr5 = bitcast i8* %vtable4 to [54 x i8*]* | |
%vtable6 = load [54 x i8*], [54 x i8*]* %vtable_ptr5, align 8 | |
%func_raw7 = extractvalue [54 x i8*] %vtable6, 45 | |
%func8 = bitcast i8* %func_raw7 to %Void* (%Array*, %Object*)* | |
%result9 = call %Void* %func8(%Array* %ret, %Object* %result2) | |
br label %"Invoke_Array#push_end" | |
"Invoke_Array#push_end": ; preds = %"Invoke_Array#push" | |
br label %Ret | |
Ret: ; preds = %"Invoke_Array#push_end" | |
br label %End | |
} | |
define %Array* @"lambda_7_in_Array#flat_map"(%Fn2* %fn_x, %Object* %sum, %Object* %item) { | |
%value = bitcast %Object* %sum to %Array* | |
%value1 = bitcast %Object* %item to %Array* | |
%as = bitcast %Array* %value1 to %Object* | |
br label %"Invoke_Array#append" | |
End: ; preds = %Ret | |
%methodResult = phi %Array* [ %value3, %Ret ] | |
ret %Array* %methodResult | |
"Invoke_Array#append": ; preds = %0 | |
%addr_vtable = getelementptr inbounds %Array, %Array* %value, i32 0, i32 0 | |
%vtable = load i8*, i8** %addr_vtable, align 8 | |
%vtable_ptr = bitcast i8* %vtable to [54 x i8*]* | |
%vtable2 = load [54 x i8*], [54 x i8*]* %vtable_ptr, align 8 | |
%func_raw = extractvalue [54 x i8*] %vtable2, 23 | |
%func = bitcast i8* %func_raw to %Void* (%Array*, %Object*)* | |
%result = call %Void* %func(%Array* %value, %Object* %as) | |
br label %"Invoke_Array#append_end" | |
"Invoke_Array#append_end": ; preds = %"Invoke_Array#append" | |
%value3 = bitcast %Object* %sum to %Array* | |
br label %Ret | |
Ret: ; preds = %"Invoke_Array#append_end" | |
br label %End | |
} | |
define %Object* @"lambda_8_in_Array#fold"(%Fn1* %fn_x, %Object* %item) { | |
br label %CaptureWrite_2th | |
End: ; preds = %Ret | |
%methodResult = phi %Object* [ %result11, %Ret ] | |
ret %Object* %methodResult | |
CaptureWrite_2th: ; preds = %0 | |
%"addr_@captures" = getelementptr inbounds %Fn1, %Fn1* %fn_x, i32 0, i32 4 | |
%"@captures" = load %Array*, %Array** %"addr_@captures", align 8 | |
%sk_int = call %Int* @box_int(i64 2) | |
%result = call %Object* @Array_aref_(%Array* %"@captures", %Int* %sk_int) | |
%ptr = bitcast %Object* %result to %Object** | |
br label %CaptureRef_1th | |
CaptureRef_1th: ; preds = %CaptureWrite_2th | |
%"addr_@captures1" = getelementptr inbounds %Fn1, %Fn1* %fn_x, i32 0, i32 4 | |
%"@captures2" = load %Array*, %Array** %"addr_@captures1", align 8 | |
%sk_int3 = call %Int* @box_int(i64 1) | |
%result4 = call %Object* @Array_aref_(%Array* %"@captures2", %Int* %sk_int3) | |
%ret = bitcast %Object* %result4 to %Fn2* | |
br label %CaptureRef_1th_end | |
CaptureRef_1th_end: ; preds = %CaptureRef_1th | |
br label %CaptureRef_0th | |
CaptureRef_0th: ; preds = %CaptureRef_1th_end | |
%"addr_@captures5" = getelementptr inbounds %Fn1, %Fn1* %fn_x, i32 0, i32 4 | |
%"@captures6" = load %Array*, %Array** %"addr_@captures5", align 8 | |
%sk_int7 = call %Int* @box_int(i64 0) | |
%result8 = call %Object* @Array_aref_(%Array* %"@captures6", %Int* %sk_int7) | |
%ptr9 = bitcast %Object* %result8 to %Object** | |
%ret10 = load %Object*, %Object** %ptr9, align 8 | |
br label %CaptureRef_0th_end | |
CaptureRef_0th_end: ; preds = %CaptureRef_0th | |
br label %Invoke_lambda | |
Invoke_lambda: ; preds = %CaptureRef_0th_end | |
%"addr_@func" = getelementptr inbounds %Fn2, %Fn2* %ret, i32 0, i32 2 | |
%"@func" = load %"Shiika::Internal::Ptr"*, %"Shiika::Internal::Ptr"** %"addr_@func", align 8 | |
%llvm_ptr = call i8* @unbox_i8ptr(%"Shiika::Internal::Ptr"* %"@func") | |
%1 = bitcast i8* %llvm_ptr to %Object* (%Fn2*, %Object*, %Object*)* | |
%result11 = call %Object* %1(%Fn2* %ret, %Object* %ret10, %Object* %item) | |
br label %Invoke_lambda_end | |
Invoke_lambda_end: ; preds = %Invoke_lambda | |
store %Object* %result11, %Object** %ptr, align 8 | |
br label %CaptureWrite_2th_end | |
CaptureWrite_2th_end: ; preds = %Invoke_lambda_end | |
br label %Ret | |
Ret: ; preds = %CaptureWrite_2th_end | |
br label %End | |
} | |
define %Void* @"lambda_9_in_Array#includes?"(%Fn1* %fn_x, %Object* %x) { | |
br label %IfBegin | |
End: ; preds = %Ret | |
%"::Void8" = load %Void*, %Void** @"::Void", align 8 | |
ret %Void* %"::Void8" | |
IfBegin: ; preds = %0 | |
br label %CaptureRef_0th | |
IfThen: ; preds = %"Invoke_Object#==_end" | |
br label %CaptureWrite_1th | |
IfElse: ; preds = %"Invoke_Object#==_end" | |
%"::Void7" = load %Void*, %Void** @"::Void", align 8 | |
br label %IfEnd | |
IfEnd: ; preds = %IfElse, %CaptureWrite_1th_end | |
%ifResult = phi %Void* [ %"::Void", %CaptureWrite_1th_end ], [ %"::Void7", %IfElse ] | |
br label %Ret | |
CaptureRef_0th: ; preds = %IfBegin | |
%"addr_@captures" = getelementptr inbounds %Fn1, %Fn1* %fn_x, i32 0, i32 4 | |
%"@captures" = load %Array*, %Array** %"addr_@captures", align 8 | |
%sk_int = call %Int* @box_int(i64 0) | |
%result = call %Object* @Array_aref_(%Array* %"@captures", %Int* %sk_int) | |
br label %CaptureRef_0th_end | |
CaptureRef_0th_end: ; preds = %CaptureRef_0th | |
br label %"Invoke_Object#==" | |
"Invoke_Object#==": ; preds = %CaptureRef_0th_end | |
%addr_vtable = getelementptr inbounds %Object, %Object* %x, i32 0, i32 0 | |
%vtable = load i8*, i8** %addr_vtable, align 8 | |
%vtable_ptr = bitcast i8* %vtable to [16 x i8*]* | |
%vtable1 = load [16 x i8*], [16 x i8*]* %vtable_ptr, align 8 | |
%func_raw = extractvalue [16 x i8*] %vtable1, 2 | |
%func = bitcast i8* %func_raw to %Bool* (%Object*, %Object*)* | |
%result2 = call %Bool* %func(%Object* %x, %Object* %result) | |
br label %"Invoke_Object#==_end" | |
"Invoke_Object#==_end": ; preds = %"Invoke_Object#==" | |
%llvm_bool = call i1 @unbox_bool(%Bool* %result2) | |
%istrue = icmp eq i1 %llvm_bool, true | |
br i1 %istrue, label %IfThen, label %IfElse | |
CaptureWrite_1th: ; preds = %IfThen | |
%"addr_@captures3" = getelementptr inbounds %Fn1, %Fn1* %fn_x, i32 0, i32 4 | |
%"@captures4" = load %Array*, %Array** %"addr_@captures3", align 8 | |
%sk_int5 = call %Int* @box_int(i64 1) | |
%result6 = call %Object* @Array_aref_(%Array* %"@captures4", %Int* %sk_int5) | |
%ptr = bitcast %Object* %result6 to %Bool** | |
%sk_bool = call %Bool* @box_bool(i1 true) | |
store %Bool* %sk_bool, %Bool** %ptr, align 8 | |
br label %CaptureWrite_1th_end | |
CaptureWrite_1th_end: ; preds = %CaptureWrite_1th | |
%"::Void" = load %Void*, %Void** @"::Void", align 8 | |
br label %IfEnd | |
Ret: ; preds = %IfEnd | |
br label %End | |
} | |
define %Void* @"lambda_10_in_Array#inspect"(%Fn1* %fn_x, %Object* %item) { | |
br label %IfBegin | |
End: ; preds = %Ret | |
%"::Void36" = load %Void*, %Void** @"::Void", align 8 | |
ret %Void* %"::Void36" | |
IfBegin: ; preds = %0 | |
br label %CaptureRef_0th | |
IfThen: ; preds = %CaptureRef_0th_end | |
br label %CaptureWrite_1th | |
IfElse: ; preds = %CaptureRef_0th_end | |
br label %CaptureRef_2th | |
IfEnd: ; preds = %"Invoke_MutableString#append_end", %CaptureWrite_1th_end | |
%ifResult = phi %Void* [ %"::Void", %CaptureWrite_1th_end ], [ %result13, %"Invoke_MutableString#append_end" ] | |
br label %CaptureRef_3th | |
CaptureRef_0th: ; preds = %IfBegin | |
%"addr_@captures" = getelementptr inbounds %Fn1, %Fn1* %fn_x, i32 0, i32 4 | |
%"@captures" = load %Array*, %Array** %"addr_@captures", align 8 | |
%sk_int = call %Int* @box_int(i64 0) | |
%result = call %Object* @Array_aref_(%Array* %"@captures", %Int* %sk_int) | |
%ptr = bitcast %Object* %result to %Bool** | |
%ret = load %Bool*, %Bool** %ptr, align 8 | |
br label %CaptureRef_0th_end | |
CaptureRef_0th_end: ; preds = %CaptureRef_0th | |
%llvm_bool = call i1 @unbox_bool(%Bool* %ret) | |
%istrue = icmp eq i1 %llvm_bool, true | |
br i1 %istrue, label %IfThen, label %IfElse | |
CaptureWrite_1th: ; preds = %IfThen | |
%"addr_@captures1" = getelementptr inbounds %Fn1, %Fn1* %fn_x, i32 0, i32 4 | |
%"@captures2" = load %Array*, %Array** %"addr_@captures1", align 8 | |
%sk_int3 = call %Int* @box_int(i64 1) | |
%result4 = call %Object* @Array_aref_(%Array* %"@captures2", %Int* %sk_int3) | |
%ptr5 = bitcast %Object* %result4 to %Bool** | |
%sk_bool = call %Bool* @box_bool(i1 false) | |
store %Bool* %sk_bool, %Bool** %ptr5, align 8 | |
br label %CaptureWrite_1th_end | |
CaptureWrite_1th_end: ; preds = %CaptureWrite_1th | |
%"::Void" = load %Void*, %Void** @"::Void", align 8 | |
br label %IfEnd | |
CaptureRef_2th: ; preds = %IfElse | |
%"addr_@captures6" = getelementptr inbounds %Fn1, %Fn1* %fn_x, i32 0, i32 4 | |
%"@captures7" = load %Array*, %Array** %"addr_@captures6", align 8 | |
%sk_int8 = call %Int* @box_int(i64 2) | |
%result9 = call %Object* @Array_aref_(%Array* %"@captures7", %Int* %sk_int8) | |
%ptr10 = bitcast %Object* %result9 to %MutableString** | |
%ret11 = load %MutableString*, %MutableString** %ptr10, align 8 | |
br label %CaptureRef_2th_end | |
CaptureRef_2th_end: ; preds = %CaptureRef_2th | |
%sk_str = call %String* @gen_literal_string(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @str_47, i32 0, i32 0), i64 2) | |
br label %"Invoke_MutableString#append" | |
"Invoke_MutableString#append": ; preds = %CaptureRef_2th_end | |
%addr_vtable = getelementptr inbounds %MutableString, %MutableString* %ret11, i32 0, i32 0 | |
%vtable = load i8*, i8** %addr_vtable, align 8 | |
%vtable_ptr = bitcast i8* %vtable to [28 x i8*]* | |
%vtable12 = load [28 x i8*], [28 x i8*]* %vtable_ptr, align 8 | |
%func_raw = extractvalue [28 x i8*] %vtable12, 18 | |
%func = bitcast i8* %func_raw to %Void* (%MutableString*, %String*)* | |
%result13 = call %Void* %func(%MutableString* %ret11, %String* %sk_str) | |
br label %"Invoke_MutableString#append_end" | |
"Invoke_MutableString#append_end": ; preds = %"Invoke_MutableString#append" | |
br label %IfEnd | |
CaptureRef_3th: ; preds = %IfEnd | |
%"addr_@captures14" = getelementptr inbounds %Fn1, %Fn1* %fn_x, i32 0, i32 4 | |
%"@captures15" = load %Array*, %Array** %"addr_@captures14", align 8 | |
%sk_int16 = call %Int* @box_int(i64 3) | |
%result17 = call %Object* @Array_aref_(%Array* %"@captures15", %Int* %sk_int16) | |
%ptr18 = bitcast %Object* %result17 to %MutableString** | |
%ret19 = load %MutableString*, %MutableString** %ptr18, align 8 | |
br label %CaptureRef_3th_end | |
CaptureRef_3th_end: ; preds = %CaptureRef_3th | |
br label %"Invoke_Object#inspect" | |
"Invoke_Object#inspect": ; preds = %CaptureRef_3th_end | |
%addr_vtable20 = getelementptr inbounds %Object, %Object* %item, i32 0, i32 0 | |
%vtable21 = load i8*, i8** %addr_vtable20, align 8 | |
%vtable_ptr22 = bitcast i8* %vtable21 to [16 x i8*]* | |
%vtable23 = load [16 x i8*], [16 x i8*]* %vtable_ptr22, align 8 | |
%func_raw24 = extractvalue [16 x i8*] %vtable23, 9 | |
%func25 = bitcast i8* %func_raw24 to %String* (%Object*)* | |
%result26 = call %String* %func25(%Object* %item) | |
br label %"Invoke_Object#inspect_end" | |
"Invoke_Object#inspect_end": ; preds = %"Invoke_Object#inspect" | |
br label %"Invoke_MutableString#append27" | |
"Invoke_MutableString#append27": ; preds = %"Invoke_Object#inspect_end" | |
%addr_vtable28 = getelementptr inbounds %MutableString, %MutableString* %ret19, i32 0, i32 0 | |
%vtable29 = load i8*, i8** %addr_vtable28, align 8 | |
%vtable_ptr30 = bitcast i8* %vtable29 to [28 x i8*]* | |
%vtable31 = load [28 x i8*], [28 x i8*]* %vtable_ptr30, align 8 | |
%func_raw32 = extractvalue [28 x i8*] %vtable31, 18 | |
%func33 = bitcast i8* %func_raw32 to %Void* (%MutableString*, %String*)* | |
%result34 = call %Void* %func33(%MutableString* %ret19, %String* %result26) | |
br label %"Invoke_MutableString#append_end35" | |
"Invoke_MutableString#append_end35": ; preds = %"Invoke_MutableString#append27" | |
br label %Ret | |
Ret: ; preds = %"Invoke_MutableString#append_end35" | |
br label %End | |
} | |
define %Void* @"lambda_11_in_Array#join"(%Fn1* %fn_x, %Object* %item) { | |
br label %IfBegin | |
End: ; preds = %Ret | |
%"::Void41" = load %Void*, %Void** @"::Void", align 8 | |
ret %Void* %"::Void41" | |
IfBegin: ; preds = %0 | |
br label %CaptureRef_0th | |
IfThen: ; preds = %CaptureRef_0th_end | |
br label %CaptureWrite_1th | |
IfElse: ; preds = %CaptureRef_0th_end | |
br label %CaptureRef_3th | |
IfEnd: ; preds = %"Invoke_MutableString#append_end", %CaptureWrite_1th_end | |
%ifResult = phi %Void* [ %"::Void", %CaptureWrite_1th_end ], [ %result18, %"Invoke_MutableString#append_end" ] | |
br label %CaptureRef_4th | |
CaptureRef_0th: ; preds = %IfBegin | |
%"addr_@captures" = getelementptr inbounds %Fn1, %Fn1* %fn_x, i32 0, i32 4 | |
%"@captures" = load %Array*, %Array** %"addr_@captures", align 8 | |
%sk_int = call %Int* @box_int(i64 0) | |
%result = call %Object* @Array_aref_(%Array* %"@captures", %Int* %sk_int) | |
%ptr = bitcast %Object* %result to %Bool** | |
%ret = load %Bool*, %Bool** %ptr, align 8 | |
br label %CaptureRef_0th_end | |
CaptureRef_0th_end: ; preds = %CaptureRef_0th | |
%llvm_bool = call i1 @unbox_bool(%Bool* %ret) | |
%istrue = icmp eq i1 %llvm_bool, true | |
br i1 %istrue, label %IfThen, label %IfElse | |
CaptureWrite_1th: ; preds = %IfThen | |
%"addr_@captures1" = getelementptr inbounds %Fn1, %Fn1* %fn_x, i32 0, i32 4 | |
%"@captures2" = load %Array*, %Array** %"addr_@captures1", align 8 | |
%sk_int3 = call %Int* @box_int(i64 1) | |
%result4 = call %Object* @Array_aref_(%Array* %"@captures2", %Int* %sk_int3) | |
%ptr5 = bitcast %Object* %result4 to %Bool** | |
%sk_bool = call %Bool* @box_bool(i1 false) | |
store %Bool* %sk_bool, %Bool** %ptr5, align 8 | |
br label %CaptureWrite_1th_end | |
CaptureWrite_1th_end: ; preds = %CaptureWrite_1th | |
%"::Void" = load %Void*, %Void** @"::Void", align 8 | |
br label %IfEnd | |
CaptureRef_3th: ; preds = %IfElse | |
%"addr_@captures6" = getelementptr inbounds %Fn1, %Fn1* %fn_x, i32 0, i32 4 | |
%"@captures7" = load %Array*, %Array** %"addr_@captures6", align 8 | |
%sk_int8 = call %Int* @box_int(i64 3) | |
%result9 = call %Object* @Array_aref_(%Array* %"@captures7", %Int* %sk_int8) | |
%ptr10 = bitcast %Object* %result9 to %MutableString** | |
%ret11 = load %MutableString*, %MutableString** %ptr10, align 8 | |
br label %CaptureRef_3th_end | |
CaptureRef_3th_end: ; preds = %CaptureRef_3th | |
br label %CaptureRef_2th | |
CaptureRef_2th: ; preds = %CaptureRef_3th_end | |
%"addr_@captures12" = getelementptr inbounds %Fn1, %Fn1* %fn_x, i32 0, i32 4 | |
%"@captures13" = load %Array*, %Array** %"addr_@captures12", align 8 | |
%sk_int14 = call %Int* @box_int(i64 2) | |
%result15 = call %Object* @Array_aref_(%Array* %"@captures13", %Int* %sk_int14) | |
%ret16 = bitcast %Object* %result15 to %String* | |
br label %CaptureRef_2th_end | |
CaptureRef_2th_end: ; preds = %CaptureRef_2th | |
br label %"Invoke_MutableString#append" | |
"Invoke_MutableString#append": ; preds = %CaptureRef_2th_end | |
%addr_vtable = getelementptr inbounds %MutableString, %MutableString* %ret11, i32 0, i32 0 | |
%vtable = load i8*, i8** %addr_vtable, align 8 | |
%vtable_ptr = bitcast i8* %vtable to [28 x i8*]* | |
%vtable17 = load [28 x i8*], [28 x i8*]* %vtable_ptr, align 8 | |
%func_raw = extractvalue [28 x i8*] %vtable17, 18 | |
%func = bitcast i8* %func_raw to %Void* (%MutableString*, %String*)* | |
%result18 = call %Void* %func(%MutableString* %ret11, %String* %ret16) | |
br label %"Invoke_MutableString#append_end" | |
"Invoke_MutableString#append_end": ; preds = %"Invoke_MutableString#append" | |
br label %IfEnd | |
CaptureRef_4th: ; preds = %IfEnd | |
%"addr_@captures19" = getelementptr inbounds %Fn1, %Fn1* %fn_x, i32 0, i32 4 | |
%"@captures20" = load %Array*, %Array** %"addr_@captures19", align 8 | |
%sk_int21 = call %Int* @box_int(i64 4) | |
%result22 = call %Object* @Array_aref_(%Array* %"@captures20", %Int* %sk_int21) | |
%ptr23 = bitcast %Object* %result22 to %MutableString** | |
%ret24 = load %MutableString*, %MutableString** %ptr23, align 8 | |
br label %CaptureRef_4th_end | |
CaptureRef_4th_end: ; preds = %CaptureRef_4th | |
br label %"Invoke_Object#to_s" | |
"Invoke_Object#to_s": ; preds = %CaptureRef_4th_end | |
%addr_vtable25 = getelementptr inbounds %Object, %Object* %item, i32 0, i32 0 | |
%vtable26 = load i8*, i8** %addr_vtable25, align 8 | |
%vtable_ptr27 = bitcast i8* %vtable26 to [16 x i8*]* | |
%vtable28 = load [16 x i8*], [16 x i8*]* %vtable_ptr27, align 8 | |
%func_raw29 = extractvalue [16 x i8*] %vtable28, 15 | |
%func30 = bitcast i8* %func_raw29 to %String* (%Object*)* | |
%result31 = call %String* %func30(%Object* %item) | |
br label %"Invoke_Object#to_s_end" | |
"Invoke_Object#to_s_end": ; preds = %"Invoke_Object#to_s" | |
br label %"Invoke_MutableString#append32" | |
"Invoke_MutableString#append32": ; preds = %"Invoke_Object#to_s_end" | |
%addr_vtable33 = getelementptr inbounds %MutableString, %MutableString* %ret24, i32 0, i32 0 | |
%vtable34 = load i8*, i8** %addr_vtable33, align 8 | |
%vtable_ptr35 = bitcast i8* %vtable34 to [28 x i8*]* | |
%vtable36 = load [28 x i8*], [28 x i8*]* %vtable_ptr35, align 8 | |
%func_raw37 = extractvalue [28 x i8*] %vtable36, 18 | |
%func38 = bitcast i8* %func_raw37 to %Void* (%MutableString*, %String*)* | |
%result39 = call %Void* %func38(%MutableString* %ret24, %String* %result31) | |
br label %"Invoke_MutableString#append_end40" | |
"Invoke_MutableString#append_end40": ; preds = %"Invoke_MutableString#append32" | |
br label %Ret | |
Ret: ; preds = %"Invoke_MutableString#append_end40" | |
br label %End | |
} | |
define %Void* @"lambda_12_in_Array#map"(%Fn1* %fn_x, %Object* %item) { | |
br label %CaptureRef_1th | |
End: ; preds = %Ret | |
%"::Void" = load %Void*, %Void** @"::Void", align 8 | |
ret %Void* %"::Void" | |
CaptureRef_1th: ; preds = %0 | |
%"addr_@captures" = getelementptr inbounds %Fn1, %Fn1* %fn_x, i32 0, i32 4 | |
%"@captures" = load %Array*, %Array** %"addr_@captures", align 8 | |
%sk_int = call %Int* @box_int(i64 1) | |
%result = call %Object* @Array_aref_(%Array* %"@captures", %Int* %sk_int) | |
%ptr = bitcast %Object* %result to %Array** | |
%ret = load %Array*, %Array** %ptr, align 8 | |
br label %CaptureRef_1th_end | |
CaptureRef_1th_end: ; preds = %CaptureRef_1th | |
br label %CaptureRef_0th | |
CaptureRef_0th: ; preds = %CaptureRef_1th_end | |
%"addr_@captures1" = getelementptr inbounds %Fn1, %Fn1* %fn_x, i32 0, i32 4 | |
%"@captures2" = load %Array*, %Array** %"addr_@captures1", align 8 | |
%sk_int3 = call %Int* @box_int(i64 0) | |
%result4 = call %Object* @Array_aref_(%Array* %"@captures2", %Int* %sk_int3) | |
%ret5 = bitcast %Object* %result4 to %Fn1* | |
br label %CaptureRef_0th_end | |
CaptureRef_0th_end: ; preds = %CaptureRef_0th | |
br label %Invoke_lambda | |
Invoke_lambda: ; preds = %CaptureRef_0th_end | |
%"addr_@func" = getelementptr inbounds %Fn1, %Fn1* %ret5, i32 0, i32 2 | |
%"@func" = load %"Shiika::Internal::Ptr"*, %"Shiika::Internal::Ptr"** %"addr_@func", align 8 | |
%llvm_ptr = call i8* @unbox_i8ptr(%"Shiika::Internal::Ptr"* %"@func") | |
%1 = bitcast i8* %llvm_ptr to %Object* (%Fn1*, %Object*)* | |
%result6 = call %Object* %1(%Fn1* %ret5, %Object* %item) | |
br label %Invoke_lambda_end | |
Invoke_lambda_end: ; preds = %Invoke_lambda | |
br label %"Invoke_Array#push" | |
"Invoke_Array#push": ; preds = %Invoke_lambda_end | |
%addr_vtable = getelementptr inbounds %Array, %Array* %ret, i32 0, i32 0 | |
%vtable = load i8*, i8** %addr_vtable, align 8 | |
%vtable_ptr = bitcast i8* %vtable to [54 x i8*]* | |
%vtable7 = load [54 x i8*], [54 x i8*]* %vtable_ptr, align 8 | |
%func_raw = extractvalue [54 x i8*] %vtable7, 45 | |
%func = bitcast i8* %func_raw to %Void* (%Array*, %Object*)* | |
%result8 = call %Void* %func(%Array* %ret, %Object* %result6) | |
br label %"Invoke_Array#push_end" | |
"Invoke_Array#push_end": ; preds = %"Invoke_Array#push" | |
br label %Ret | |
Ret: ; preds = %"Invoke_Array#push_end" | |
br label %End | |
} | |
define %Void* @"lambda_13_in_Array#none?"(%Fn1* %fn_x, %Object* %item) { | |
br label %IfBegin | |
End: ; preds = %Ret | |
%"::Void7" = load %Void*, %Void** @"::Void", align 8 | |
ret %Void* %"::Void7" | |
IfBegin: ; preds = %0 | |
br label %CaptureRef_0th | |
IfThen: ; preds = %Invoke_lambda_end | |
br label %CaptureWrite_1th | |
IfElse: ; preds = %Invoke_lambda_end | |
%"::Void6" = load %Void*, %Void** @"::Void", align 8 | |
br label %IfEnd | |
IfEnd: ; preds = %IfElse, %CaptureWrite_1th_end | |
%ifResult = phi %Void* [ %"::Void", %CaptureWrite_1th_end ], [ %"::Void6", %IfElse ] | |
br label %Ret | |
CaptureRef_0th: ; preds = %IfBegin | |
%"addr_@captures" = getelementptr inbounds %Fn1, %Fn1* %fn_x, i32 0, i32 4 | |
%"@captures" = load %Array*, %Array** %"addr_@captures", align 8 | |
%sk_int = call %Int* @box_int(i64 0) | |
%result = call %Object* @Array_aref_(%Array* %"@captures", %Int* %sk_int) | |
%ret = bitcast %Object* %result to %Fn1* | |
br label %CaptureRef_0th_end | |
CaptureRef_0th_end: ; preds = %CaptureRef_0th | |
br label %Invoke_lambda | |
Invoke_lambda: ; preds = %CaptureRef_0th_end | |
%"addr_@func" = getelementptr inbounds %Fn1, %Fn1* %ret, i32 0, i32 2 | |
%"@func" = load %"Shiika::Internal::Ptr"*, %"Shiika::Internal::Ptr"** %"addr_@func", align 8 | |
%llvm_ptr = call i8* @unbox_i8ptr(%"Shiika::Internal::Ptr"* %"@func") | |
%1 = bitcast i8* %llvm_ptr to %Bool* (%Fn1*, %Object*)* | |
%result1 = call %Bool* %1(%Fn1* %ret, %Object* %item) | |
br label %Invoke_lambda_end | |
Invoke_lambda_end: ; preds = %Invoke_lambda | |
%llvm_bool = call i1 @unbox_bool(%Bool* %result1) | |
%istrue = icmp eq i1 %llvm_bool, true | |
br i1 %istrue, label %IfThen, label %IfElse | |
CaptureWrite_1th: ; preds = %IfThen | |
%"addr_@captures2" = getelementptr inbounds %Fn1, %Fn1* %fn_x, i32 0, i32 4 | |
%"@captures3" = load %Array*, %Array** %"addr_@captures2", align 8 | |
%sk_int4 = call %Int* @box_int(i64 1) | |
%result5 = call %Object* @Array_aref_(%Array* %"@captures3", %Int* %sk_int4) | |
%ptr = bitcast %Object* %result5 to %Bool** | |
%sk_bool = call %Bool* @box_bool(i1 false) | |
store %Bool* %sk_bool, %Bool** %ptr, align 8 | |
br label %CaptureWrite_1th_end | |
CaptureWrite_1th_end: ; preds = %CaptureWrite_1th | |
%"::Void" = load %Void*, %Void** @"::Void", align 8 | |
br label %IfEnd | |
Ret: ; preds = %IfEnd | |
br label %End | |
} | |
define %Void* @"lambda_14_in_Array#reject"(%Fn1* %fn_x, %Object* %item) { | |
br label %IfBegin | |
End: ; preds = %Ret | |
%"::Void11" = load %Void*, %Void** @"::Void", align 8 | |
ret %Void* %"::Void11" | |
IfBegin: ; preds = %0 | |
br label %CaptureRef_0th | |
IfThen: ; preds = %Invoke_lambda_end | |
br label %CaptureRef_1th | |
IfElse: ; preds = %Invoke_lambda_end | |
%"::Void" = load %Void*, %Void** @"::Void", align 8 | |
%"::Void10" = load %Void*, %Void** @"::Void", align 8 | |
br label %IfEnd | |
IfEnd: ; preds = %IfElse, %"Invoke_Array#push_end" | |
%ifResult = phi %Void* [ %result9, %"Invoke_Array#push_end" ], [ %"::Void10", %IfElse ] | |
br label %Ret | |
CaptureRef_0th: ; preds = %IfBegin | |
%"addr_@captures" = getelementptr inbounds %Fn1, %Fn1* %fn_x, i32 0, i32 4 | |
%"@captures" = load %Array*, %Array** %"addr_@captures", align 8 | |
%sk_int = call %Int* @box_int(i64 0) | |
%result = call %Object* @Array_aref_(%Array* %"@captures", %Int* %sk_int) | |
%ret = bitcast %Object* %result to %Fn1* | |
br label %CaptureRef_0th_end | |
CaptureRef_0th_end: ; preds = %CaptureRef_0th | |
br label %Invoke_lambda | |
Invoke_lambda: ; preds = %CaptureRef_0th_end | |
%"addr_@func" = getelementptr inbounds %Fn1, %Fn1* %ret, i32 0, i32 2 | |
%"@func" = load %"Shiika::Internal::Ptr"*, %"Shiika::Internal::Ptr"** %"addr_@func", align 8 | |
%llvm_ptr = call i8* @unbox_i8ptr(%"Shiika::Internal::Ptr"* %"@func") | |
%1 = bitcast i8* %llvm_ptr to %Bool* (%Fn1*, %Object*)* | |
%result1 = call %Bool* %1(%Fn1* %ret, %Object* %item) | |
br label %Invoke_lambda_end | |
Invoke_lambda_end: ; preds = %Invoke_lambda | |
%llvm_bool = call i1 @unbox_bool(%Bool* %result1) | |
%b2 = xor i1 %llvm_bool, true | |
%sk_bool = call %Bool* @box_bool(i1 %b2) | |
%llvm_bool2 = call i1 @unbox_bool(%Bool* %sk_bool) | |
%istrue = icmp eq i1 %llvm_bool2, true | |
br i1 %istrue, label %IfThen, label %IfElse | |
CaptureRef_1th: ; preds = %IfThen | |
%"addr_@captures3" = getelementptr inbounds %Fn1, %Fn1* %fn_x, i32 0, i32 4 | |
%"@captures4" = load %Array*, %Array** %"addr_@captures3", align 8 | |
%sk_int5 = call %Int* @box_int(i64 1) | |
%result6 = call %Object* @Array_aref_(%Array* %"@captures4", %Int* %sk_int5) | |
%ptr = bitcast %Object* %result6 to %Array** | |
%ret7 = load %Array*, %Array** %ptr, align 8 | |
br label %CaptureRef_1th_end | |
CaptureRef_1th_end: ; preds = %CaptureRef_1th | |
br label %"Invoke_Array#push" | |
"Invoke_Array#push": ; preds = %CaptureRef_1th_end | |
%addr_vtable = getelementptr inbounds %Array, %Array* %ret7, i32 0, i32 0 | |
%vtable = load i8*, i8** %addr_vtable, align 8 | |
%vtable_ptr = bitcast i8* %vtable to [54 x i8*]* | |
%vtable8 = load [54 x i8*], [54 x i8*]* %vtable_ptr, align 8 | |
%func_raw = extractvalue [54 x i8*] %vtable8, 45 | |
%func = bitcast i8* %func_raw to %Void* (%Array*, %Object*)* | |
%result9 = call %Void* %func(%Array* %ret7, %Object* %item) | |
br label %"Invoke_Array#push_end" | |
"Invoke_Array#push_end": ; preds = %"Invoke_Array#push" | |
br label %IfEnd | |
Ret: ; preds = %IfEnd | |
br label %End | |
} | |
define %Void* @"lambda_15_in_Array#reverse"(%Fn1* %fn_x, %Object* %item) { | |
br label %CaptureRef_0th | |
End: ; preds = %Ret | |
%"::Void" = load %Void*, %Void** @"::Void", align 8 | |
ret %Void* %"::Void" | |
CaptureRef_0th: ; preds = %0 | |
%"addr_@captures" = getelementptr inbounds %Fn1, %Fn1* %fn_x, i32 0, i32 4 | |
%"@captures" = load %Array*, %Array** %"addr_@captures", align 8 | |
%sk_int = call %Int* @box_int(i64 0) | |
%result = call %Object* @Array_aref_(%Array* %"@captures", %Int* %sk_int) | |
%ptr = bitcast %Object* %result to %Array** | |
%ret = load %Array*, %Array** %ptr, align 8 | |
br label %CaptureRef_0th_end | |
CaptureRef_0th_end: ; preds = %CaptureRef_0th | |
br label %"Invoke_Array#push" | |
"Invoke_Array#push": ; preds = %CaptureRef_0th_end | |
%addr_vtable = getelementptr inbounds %Array, %Array* %ret, i32 0, i32 0 | |
%vtable = load i8*, i8** %addr_vtable, align 8 | |
%vtable_ptr = bitcast i8* %vtable to [54 x i8*]* | |
%vtable1 = load [54 x i8*], [54 x i8*]* %vtable_ptr, align 8 | |
%func_raw = extractvalue [54 x i8*] %vtable1, 45 | |
%func = bitcast i8* %func_raw to %Void* (%Array*, %Object*)* | |
%result2 = call %Void* %func(%Array* %ret, %Object* %item) | |
br label %"Invoke_Array#push_end" | |
"Invoke_Array#push_end": ; preds = %"Invoke_Array#push" | |
br label %Ret | |
Ret: ; preds = %"Invoke_Array#push_end" | |
br label %End | |
} | |
define %Void* @"lambda_16_in_Array#select"(%Fn1* %fn_x, %Object* %item) { | |
br label %IfBegin | |
End: ; preds = %Ret | |
%"::Void10" = load %Void*, %Void** @"::Void", align 8 | |
ret %Void* %"::Void10" | |
IfBegin: ; preds = %0 | |
br label %CaptureRef_0th | |
IfThen: ; preds = %Invoke_lambda_end | |
br label %CaptureRef_1th | |
IfElse: ; preds = %Invoke_lambda_end | |
%"::Void" = load %Void*, %Void** @"::Void", align 8 | |
%"::Void9" = load %Void*, %Void** @"::Void", align 8 | |
br label %IfEnd | |
IfEnd: ; preds = %IfElse, %"Invoke_Array#push_end" | |
%ifResult = phi %Void* [ %result8, %"Invoke_Array#push_end" ], [ %"::Void9", %IfElse ] | |
br label %Ret | |
CaptureRef_0th: ; preds = %IfBegin | |
%"addr_@captures" = getelementptr inbounds %Fn1, %Fn1* %fn_x, i32 0, i32 4 | |
%"@captures" = load %Array*, %Array** %"addr_@captures", align 8 | |
%sk_int = call %Int* @box_int(i64 0) | |
%result = call %Object* @Array_aref_(%Array* %"@captures", %Int* %sk_int) | |
%ret = bitcast %Object* %result to %Fn1* | |
br label %CaptureRef_0th_end | |
CaptureRef_0th_end: ; preds = %CaptureRef_0th | |
br label %Invoke_lambda | |
Invoke_lambda: ; preds = %CaptureRef_0th_end | |
%"addr_@func" = getelementptr inbounds %Fn1, %Fn1* %ret, i32 0, i32 2 | |
%"@func" = load %"Shiika::Internal::Ptr"*, %"Shiika::Internal::Ptr"** %"addr_@func", align 8 | |
%llvm_ptr = call i8* @unbox_i8ptr(%"Shiika::Internal::Ptr"* %"@func") | |
%1 = bitcast i8* %llvm_ptr to %Bool* (%Fn1*, %Object*)* | |
%result1 = call %Bool* %1(%Fn1* %ret, %Object* %item) | |
br label %Invoke_lambda_end | |
Invoke_lambda_end: ; preds = %Invoke_lambda | |
%llvm_bool = call i1 @unbox_bool(%Bool* %result1) | |
%istrue = icmp eq i1 %llvm_bool, true | |
br i1 %istrue, label %IfThen, label %IfElse | |
CaptureRef_1th: ; preds = %IfThen | |
%"addr_@captures2" = getelementptr inbounds %Fn1, %Fn1* %fn_x, i32 0, i32 4 | |
%"@captures3" = load %Array*, %Array** %"addr_@captures2", align 8 | |
%sk_int4 = call %Int* @box_int(i64 1) | |
%result5 = call %Object* @Array_aref_(%Array* %"@captures3", %Int* %sk_int4) | |
%ptr = bitcast %Object* %result5 to %Array** | |
%ret6 = load %Array*, %Array** %ptr, align 8 | |
br label %CaptureRef_1th_end | |
CaptureRef_1th_end: ; preds = %CaptureRef_1th | |
br label %"Invoke_Array#push" | |
"Invoke_Array#push": ; preds = %CaptureRef_1th_end | |
%addr_vtable = getelementptr inbounds %Array, %Array* %ret6, i32 0, i32 0 | |
%vtable = load i8*, i8** %addr_vtable, align 8 | |
%vtable_ptr = bitcast i8* %vtable to [54 x i8*]* | |
%vtable7 = load [54 x i8*], [54 x i8*]* %vtable_ptr, align 8 | |
%func_raw = extractvalue [54 x i8*] %vtable7, 45 | |
%func = bitcast i8* %func_raw to %Void* (%Array*, %Object*)* | |
%result8 = call %Void* %func(%Array* %ret6, %Object* %item) | |
br label %"Invoke_Array#push_end" | |
"Invoke_Array#push_end": ; preds = %"Invoke_Array#push" | |
br label %IfEnd | |
Ret: ; preds = %IfEnd | |
br label %End | |
} | |
define %Void* @"lambda_18_in_Dict::Table#[]="(%Fn1* %fn_x, %Object* %pair) { | |
br label %IfBegin | |
End: ; preds = %Ret | |
%"::Void27" = load %Void*, %Void** @"::Void", align 8 | |
ret %Void* %"::Void27" | |
IfBegin: ; preds = %0 | |
%value = bitcast %Object* %pair to %Pair* | |
br label %"Invoke_Pair#fst" | |
IfThen: ; preds = %"Invoke_Object#==_end" | |
%value10 = bitcast %Object* %pair to %Pair* | |
br label %CaptureRef_1th | |
IfElse: ; preds = %"Invoke_Object#==_end" | |
%"::Void26" = load %Void*, %Void** @"::Void", align 8 | |
br label %IfEnd | |
IfEnd: ; preds = %IfElse, %CaptureWrite_2th_end | |
%ifResult = phi %Void* [ %"::Void", %CaptureWrite_2th_end ], [ %"::Void26", %IfElse ] | |
br label %Ret | |
"Invoke_Pair#fst": ; preds = %IfBegin | |
%addr_vtable = getelementptr inbounds %Pair, %Pair* %value, i32 0, i32 0 | |
%vtable = load i8*, i8** %addr_vtable, align 8 | |
%vtable_ptr = bitcast i8* %vtable to [20 x i8*]* | |
%vtable1 = load [20 x i8*], [20 x i8*]* %vtable_ptr, align 8 | |
%func_raw = extractvalue [20 x i8*] %vtable1, 16 | |
%func = bitcast i8* %func_raw to %Object* (%Pair*)* | |
%result = call %Object* %func(%Pair* %value) | |
br label %"Invoke_Pair#fst_end" | |
"Invoke_Pair#fst_end": ; preds = %"Invoke_Pair#fst" | |
br label %CaptureRef_0th | |
CaptureRef_0th: ; preds = %"Invoke_Pair#fst_end" | |
%"addr_@captures" = getelementptr inbounds %Fn1, %Fn1* %fn_x, i32 0, i32 4 | |
%"@captures" = load %Array*, %Array** %"addr_@captures", align 8 | |
%sk_int = call %Int* @box_int(i64 0) | |
%result2 = call %Object* @Array_aref_(%Array* %"@captures", %Int* %sk_int) | |
br label %CaptureRef_0th_end | |
CaptureRef_0th_end: ; preds = %CaptureRef_0th | |
br label %"Invoke_Object#==" | |
"Invoke_Object#==": ; preds = %CaptureRef_0th_end | |
%addr_vtable3 = getelementptr inbounds %Object, %Object* %result, i32 0, i32 0 | |
%vtable4 = load i8*, i8** %addr_vtable3, align 8 | |
%vtable_ptr5 = bitcast i8* %vtable4 to [16 x i8*]* | |
%vtable6 = load [16 x i8*], [16 x i8*]* %vtable_ptr5, align 8 | |
%func_raw7 = extractvalue [16 x i8*] %vtable6, 2 | |
%func8 = bitcast i8* %func_raw7 to %Bool* (%Object*, %Object*)* | |
%result9 = call %Bool* %func8(%Object* %result, %Object* %result2) | |
br label %"Invoke_Object#==_end" | |
"Invoke_Object#==_end": ; preds = %"Invoke_Object#==" | |
%llvm_bool = call i1 @unbox_bool(%Bool* %result9) | |
%istrue = icmp eq i1 %llvm_bool, true | |
br i1 %istrue, label %IfThen, label %IfElse | |
CaptureRef_1th: ; preds = %IfThen | |
%"addr_@captures11" = getelementptr inbounds %Fn1, %Fn1* %fn_x, i32 0, i32 4 | |
%"@captures12" = load %Array*, %Array** %"addr_@captures11", align 8 | |
%sk_int13 = call %Int* @box_int(i64 1) | |
%result14 = call %Object* @Array_aref_(%Array* %"@captures12", %Int* %sk_int13) | |
br label %CaptureRef_1th_end | |
CaptureRef_1th_end: ; preds = %CaptureRef_1th | |
br label %"Invoke_Pair#snd=" | |
"Invoke_Pair#snd=": ; preds = %CaptureRef_1th_end | |
%addr_vtable15 = getelementptr inbounds %Pair, %Pair* %value10, i32 0, i32 0 | |
%vtable16 = load i8*, i8** %addr_vtable15, align 8 | |
%vtable_ptr17 = bitcast i8* %vtable16 to [20 x i8*]* | |
%vtable18 = load [20 x i8*], [20 x i8*]* %vtable_ptr17, align 8 | |
%func_raw19 = extractvalue [20 x i8*] %vtable18, 19 | |
%func20 = bitcast i8* %func_raw19 to %Object* (%Pair*, %Object*)* | |
%result21 = call %Object* %func20(%Pair* %value10, %Object* %result14) | |
br label %"Invoke_Pair#snd=_end" | |
"Invoke_Pair#snd=_end": ; preds = %"Invoke_Pair#snd=" | |
br label %CaptureWrite_2th | |
CaptureWrite_2th: ; preds = %"Invoke_Pair#snd=_end" | |
%"addr_@captures22" = getelementptr inbounds %Fn1, %Fn1* %fn_x, i32 0, i32 4 | |
%"@captures23" = load %Array*, %Array** %"addr_@captures22", align 8 | |
%sk_int24 = call %Int* @box_int(i64 2) | |
%result25 = call %Object* @Array_aref_(%Array* %"@captures23", %Int* %sk_int24) | |
%ptr = bitcast %Object* %result25 to %Bool** | |
%sk_bool = call %Bool* @box_bool(i1 true) | |
store %Bool* %sk_bool, %Bool** %ptr, align 8 | |
br label %CaptureWrite_2th_end | |
CaptureWrite_2th_end: ; preds = %CaptureWrite_2th | |
%"::Void" = load %Void*, %Void** @"::Void", align 8 | |
br label %IfEnd | |
Ret: ; preds = %IfEnd | |
br label %End | |
} | |
define %Void* @"lambda_19_in_Dict::Table#[]"(%Fn1* %fn_x, %Object* %pair) { | |
br label %IfBegin | |
End: ; preds = %Ret | |
%"::Void30" = load %Void*, %Void** @"::Void", align 8 | |
ret %Void* %"::Void30" | |
IfBegin: ; preds = %0 | |
%value = bitcast %Object* %pair to %Pair* | |
br label %"Invoke_Pair#fst" | |
IfThen: ; preds = %"Invoke_Object#==_end" | |
br label %CaptureWrite_1th | |
IfElse: ; preds = %"Invoke_Object#==_end" | |
%"::Void29" = load %Void*, %Void** @"::Void", align 8 | |
br label %IfEnd | |
IfEnd: ; preds = %IfElse, %CaptureWrite_1th_end | |
%ifResult = phi %Void* [ %"::Void", %CaptureWrite_1th_end ], [ %"::Void29", %IfElse ] | |
br label %Ret | |
"Invoke_Pair#fst": ; preds = %IfBegin | |
%addr_vtable = getelementptr inbounds %Pair, %Pair* %value, i32 0, i32 0 | |
%vtable = load i8*, i8** %addr_vtable, align 8 | |
%vtable_ptr = bitcast i8* %vtable to [20 x i8*]* | |
%vtable1 = load [20 x i8*], [20 x i8*]* %vtable_ptr, align 8 | |
%func_raw = extractvalue [20 x i8*] %vtable1, 16 | |
%func = bitcast i8* %func_raw to %Object* (%Pair*)* | |
%result = call %Object* %func(%Pair* %value) | |
br label %"Invoke_Pair#fst_end" | |
"Invoke_Pair#fst_end": ; preds = %"Invoke_Pair#fst" | |
br label %CaptureRef_0th | |
CaptureRef_0th: ; preds = %"Invoke_Pair#fst_end" | |
%"addr_@captures" = getelementptr inbounds %Fn1, %Fn1* %fn_x, i32 0, i32 4 | |
%"@captures" = load %Array*, %Array** %"addr_@captures", align 8 | |
%sk_int = call %Int* @box_int(i64 0) | |
%result2 = call %Object* @Array_aref_(%Array* %"@captures", %Int* %sk_int) | |
br label %CaptureRef_0th_end | |
CaptureRef_0th_end: ; preds = %CaptureRef_0th | |
br label %"Invoke_Object#==" | |
"Invoke_Object#==": ; preds = %CaptureRef_0th_end | |
%addr_vtable3 = getelementptr inbounds %Object, %Object* %result, i32 0, i32 0 | |
%vtable4 = load i8*, i8** %addr_vtable3, align 8 | |
%vtable_ptr5 = bitcast i8* %vtable4 to [16 x i8*]* | |
%vtable6 = load [16 x i8*], [16 x i8*]* %vtable_ptr5, align 8 | |
%func_raw7 = extractvalue [16 x i8*] %vtable6, 2 | |
%func8 = bitcast i8* %func_raw7 to %Bool* (%Object*, %Object*)* | |
%result9 = call %Bool* %func8(%Object* %result, %Object* %result2) | |
br label %"Invoke_Object#==_end" | |
"Invoke_Object#==_end": ; preds = %"Invoke_Object#==" | |
%llvm_bool = call i1 @unbox_bool(%Bool* %result9) | |
%istrue = icmp eq i1 %llvm_bool, true | |
br i1 %istrue, label %IfThen, label %IfElse | |
CaptureWrite_1th: ; preds = %IfThen | |
%"addr_@captures10" = getelementptr inbounds %Fn1, %Fn1* %fn_x, i32 0, i32 4 | |
%"@captures11" = load %Array*, %Array** %"addr_@captures10", align 8 | |
%sk_int12 = call %Int* @box_int(i64 1) | |
%result13 = call %Object* @Array_aref_(%Array* %"@captures11", %Int* %sk_int12) | |
%ptr = bitcast %Object* %result13 to %"Maybe::Some"** | |
%"::Some" = load %"Maybe::Some"*, %"Maybe::Some"** @"::Some", align 8 | |
%value14 = bitcast %Object* %pair to %Pair* | |
br label %"Invoke_Pair#snd" | |
"Invoke_Pair#snd": ; preds = %CaptureWrite_1th | |
%addr_vtable15 = getelementptr inbounds %Pair, %Pair* %value14, i32 0, i32 0 | |
%vtable16 = load i8*, i8** %addr_vtable15, align 8 | |
%vtable_ptr17 = bitcast i8* %vtable16 to [20 x i8*]* | |
%vtable18 = load [20 x i8*], [20 x i8*]* %vtable_ptr17, align 8 | |
%func_raw19 = extractvalue [20 x i8*] %vtable18, 18 | |
%func20 = bitcast i8* %func_raw19 to %Object* (%Pair*)* | |
%result21 = call %Object* %func20(%Pair* %value14) | |
br label %"Invoke_Pair#snd_end" | |
"Invoke_Pair#snd_end": ; preds = %"Invoke_Pair#snd" | |
br label %"Invoke_Meta:Maybe::Some#new" | |
"Invoke_Meta:Maybe::Some#new": ; preds = %"Invoke_Pair#snd_end" | |
%addr_vtable22 = getelementptr inbounds %"Maybe::Some", %"Maybe::Some"* %"::Some", i32 0, i32 0 | |
%vtable23 = load i8*, i8** %addr_vtable22, align 8 | |
%vtable_ptr24 = bitcast i8* %vtable23 to [23 x i8*]* | |
%vtable25 = load [23 x i8*], [23 x i8*]* %vtable_ptr24, align 8 | |
%func_raw26 = extractvalue [23 x i8*] %vtable25, 22 | |
%func27 = bitcast i8* %func_raw26 to %"Maybe::Some"* (%"Maybe::Some"*, %Object*)* | |
%result28 = call %"Maybe::Some"* %func27(%"Maybe::Some"* %"::Some", %Object* %result21) | |
br label %"Invoke_Meta:Maybe::Some#new_end" | |
"Invoke_Meta:Maybe::Some#new_end": ; preds = %"Invoke_Meta:Maybe::Some#new" | |
store %"Maybe::Some"* %result28, %"Maybe::Some"** %ptr, align 8 | |
br label %CaptureWrite_1th_end | |
CaptureWrite_1th_end: ; preds = %"Invoke_Meta:Maybe::Some#new_end" | |
%"::Void" = load %Void*, %Void** @"::Void", align 8 | |
br label %IfEnd | |
Ret: ; preds = %IfEnd | |
br label %End | |
} | |
define %Void* @"lambda_20_in_Dict::Table#has_key?"(%Fn1* %fn_x, %Object* %pair) { | |
br label %IfBegin | |
End: ; preds = %Ret | |
%"::Void15" = load %Void*, %Void** @"::Void", align 8 | |
ret %Void* %"::Void15" | |
IfBegin: ; preds = %0 | |
%value = bitcast %Object* %pair to %Pair* | |
br label %"Invoke_Pair#fst" | |
IfThen: ; preds = %"Invoke_Object#==_end" | |
br label %CaptureWrite_1th | |
IfElse: ; preds = %"Invoke_Object#==_end" | |
%"::Void14" = load %Void*, %Void** @"::Void", align 8 | |
br label %IfEnd | |
IfEnd: ; preds = %IfElse, %CaptureWrite_1th_end | |
%ifResult = phi %Void* [ %"::Void", %CaptureWrite_1th_end ], [ %"::Void14", %IfElse ] | |
br label %Ret | |
"Invoke_Pair#fst": ; preds = %IfBegin | |
%addr_vtable = getelementptr inbounds %Pair, %Pair* %value, i32 0, i32 0 | |
%vtable = load i8*, i8** %addr_vtable, align 8 | |
%vtable_ptr = bitcast i8* %vtable to [20 x i8*]* | |
%vtable1 = load [20 x i8*], [20 x i8*]* %vtable_ptr, align 8 | |
%func_raw = extractvalue [20 x i8*] %vtable1, 16 | |
%func = bitcast i8* %func_raw to %Object* (%Pair*)* | |
%result = call %Object* %func(%Pair* %value) | |
br label %"Invoke_Pair#fst_end" | |
"Invoke_Pair#fst_end": ; preds = %"Invoke_Pair#fst" | |
br label %CaptureRef_0th | |
CaptureRef_0th: ; preds = %"Invoke_Pair#fst_end" | |
%"addr_@captures" = getelementptr inbounds %Fn1, %Fn1* %fn_x, i32 0, i32 4 | |
%"@captures" = load %Array*, %Array** %"addr_@captures", align 8 | |
%sk_int = call %Int* @box_int(i64 0) | |
%result2 = call %Object* @Array_aref_(%Array* %"@captures", %Int* %sk_int) | |
br label %CaptureRef_0th_end | |
CaptureRef_0th_end: ; preds = %CaptureRef_0th | |
br label %"Invoke_Object#==" | |
"Invoke_Object#==": ; preds = %CaptureRef_0th_end | |
%addr_vtable3 = getelementptr inbounds %Object, %Object* %result, i32 0, i32 0 | |
%vtable4 = load i8*, i8** %addr_vtable3, align 8 | |
%vtable_ptr5 = bitcast i8* %vtable4 to [16 x i8*]* | |
%vtable6 = load [16 x i8*], [16 x i8*]* %vtable_ptr5, align 8 | |
%func_raw7 = extractvalue [16 x i8*] %vtable6, 2 | |
%func8 = bitcast i8* %func_raw7 to %Bool* (%Object*, %Object*)* | |
%result9 = call %Bool* %func8(%Object* %result, %Object* %result2) | |
br label %"Invoke_Object#==_end" | |
"Invoke_Object#==_end": ; preds = %"Invoke_Object#==" | |
%llvm_bool = call i1 @unbox_bool(%Bool* %result9) | |
%istrue = icmp eq i1 %llvm_bool, true | |
br i1 %istrue, label %IfThen, label %IfElse | |
CaptureWrite_1th: ; preds = %IfThen | |
%"addr_@captures10" = getelementptr inbounds %Fn1, %Fn1* %fn_x, i32 0, i32 4 | |
%"@captures11" = load %Array*, %Array** %"addr_@captures10", align 8 | |
%sk_int12 = call %Int* @box_int(i64 1) | |
%result13 = call %Object* @Array_aref_(%Array* %"@captures11", %Int* %sk_int12) | |
%ptr = bitcast %Object* %result13 to %Bool** | |
%sk_bool = call %Bool* @box_bool(i1 true) | |
store %Bool* %sk_bool, %Bool** %ptr, align 8 | |
br label %CaptureWrite_1th_end | |
CaptureWrite_1th_end: ; preds = %CaptureWrite_1th | |
%"::Void" = load %Void*, %Void** @"::Void", align 8 | |
br label %IfEnd | |
Ret: ; preds = %IfEnd | |
br label %End | |
} | |
define %Void* @"lambda_21_in_Dict::Table#keys"(%Fn1* %fn_x, %Object* %pair) { | |
br label %CaptureRef_0th | |
End: ; preds = %Ret | |
%"::Void" = load %Void*, %Void** @"::Void", align 8 | |
ret %Void* %"::Void" | |
CaptureRef_0th: ; preds = %0 | |
%"addr_@captures" = getelementptr inbounds %Fn1, %Fn1* %fn_x, i32 0, i32 4 | |
%"@captures" = load %Array*, %Array** %"addr_@captures", align 8 | |
%sk_int = call %Int* @box_int(i64 0) | |
%result = call %Object* @Array_aref_(%Array* %"@captures", %Int* %sk_int) | |
%ptr = bitcast %Object* %result to %Array** | |
%ret = load %Array*, %Array** %ptr, align 8 | |
br label %CaptureRef_0th_end | |
CaptureRef_0th_end: ; preds = %CaptureRef_0th | |
%value = bitcast %Object* %pair to %Pair* | |
br label %"Invoke_Pair#fst" | |
"Invoke_Pair#fst": ; preds = %CaptureRef_0th_end | |
%addr_vtable = getelementptr inbounds %Pair, %Pair* %value, i32 0, i32 0 | |
%vtable = load i8*, i8** %addr_vtable, align 8 | |
%vtable_ptr = bitcast i8* %vtable to [20 x i8*]* | |
%vtable1 = load [20 x i8*], [20 x i8*]* %vtable_ptr, align 8 | |
%func_raw = extractvalue [20 x i8*] %vtable1, 16 | |
%func = bitcast i8* %func_raw to %Object* (%Pair*)* | |
%result2 = call %Object* %func(%Pair* %value) | |
br label %"Invoke_Pair#fst_end" | |
"Invoke_Pair#fst_end": ; preds = %"Invoke_Pair#fst" | |
br label %"Invoke_Array#push" | |
"Invoke_Array#push": ; preds = %"Invoke_Pair#fst_end" | |
%addr_vtable3 = getelementptr inbounds %Array, %Array* %ret, i32 0, i32 0 | |
%vtable4 = load i8*, i8** %addr_vtable3, align 8 | |
%vtable_ptr5 = bitcast i8* %vtable4 to [54 x i8*]* | |
%vtable6 = load [54 x i8*], [54 x i8*]* %vtable_ptr5, align 8 | |
%func_raw7 = extractvalue [54 x i8*] %vtable6, 45 | |
%func8 = bitcast i8* %func_raw7 to %Void* (%Array*, %Object*)* | |
%result9 = call %Void* %func8(%Array* %ret, %Object* %result2) | |
br label %"Invoke_Array#push_end" | |
"Invoke_Array#push_end": ; preds = %"Invoke_Array#push" | |
br label %Ret | |
Ret: ; preds = %"Invoke_Array#push_end" | |
br label %End | |
} | |
define %Void* @"lambda_22_in_Dict::Table#values"(%Fn1* %fn_x, %Object* %pair) { | |
br label %CaptureRef_0th | |
End: ; preds = %Ret | |
%"::Void" = load %Void*, %Void** @"::Void", align 8 | |
ret %Void* %"::Void" | |
CaptureRef_0th: ; preds = %0 | |
%"addr_@captures" = getelementptr inbounds %Fn1, %Fn1* %fn_x, i32 0, i32 4 | |
%"@captures" = load %Array*, %Array** %"addr_@captures", align 8 | |
%sk_int = call %Int* @box_int(i64 0) | |
%result = call %Object* @Array_aref_(%Array* %"@captures", %Int* %sk_int) | |
%ptr = bitcast %Object* %result to %Array** | |
%ret = load %Array*, %Array** %ptr, align 8 | |
br label %CaptureRef_0th_end | |
CaptureRef_0th_end: ; preds = %CaptureRef_0th | |
%value = bitcast %Object* %pair to %Pair* | |
br label %"Invoke_Pair#snd" | |
"Invoke_Pair#snd": ; preds = %CaptureRef_0th_end | |
%addr_vtable = getelementptr inbounds %Pair, %Pair* %value, i32 0, i32 0 | |
%vtable = load i8*, i8** %addr_vtable, align 8 | |
%vtable_ptr = bitcast i8* %vtable to [20 x i8*]* | |
%vtable1 = load [20 x i8*], [20 x i8*]* %vtable_ptr, align 8 | |
%func_raw = extractvalue [20 x i8*] %vtable1, 18 | |
%func = bitcast i8* %func_raw to %Object* (%Pair*)* | |
%result2 = call %Object* %func(%Pair* %value) | |
br label %"Invoke_Pair#snd_end" | |
"Invoke_Pair#snd_end": ; preds = %"Invoke_Pair#snd" | |
br label %"Invoke_Array#push" | |
"Invoke_Array#push": ; preds = %"Invoke_Pair#snd_end" | |
%addr_vtable3 = getelementptr inbounds %Array, %Array* %ret, i32 0, i32 0 | |
%vtable4 = load i8*, i8** %addr_vtable3, align 8 | |
%vtable_ptr5 = bitcast i8* %vtable4 to [54 x i8*]* | |
%vtable6 = load [54 x i8*], [54 x i8*]* %vtable_ptr5, align 8 | |
%func_raw7 = extractvalue [54 x i8*] %vtable6, 45 | |
%func8 = bitcast i8* %func_raw7 to %Void* (%Array*, %Object*)* | |
%result9 = call %Void* %func8(%Array* %ret, %Object* %result2) | |
br label %"Invoke_Array#push_end" | |
"Invoke_Array#push_end": ; preds = %"Invoke_Array#push" | |
br label %Ret | |
Ret: ; preds = %"Invoke_Array#push_end" | |
br label %End | |
} | |
define %Int* @"lambda_26_in_Int#to_s"(%Fn1* %fn_x, %Object* %b) { | |
br label %CaptureRef_1th | |
End: ; preds = %Ret | |
%methodResult = phi %Int* [ %result27, %Ret ] | |
ret %Int* %methodResult | |
CaptureRef_1th: ; preds = %0 | |
%"addr_@captures" = getelementptr inbounds %Fn1, %Fn1* %fn_x, i32 0, i32 4 | |
%"@captures" = load %Array*, %Array** %"addr_@captures", align 8 | |
%sk_int = call %Int* @box_int(i64 1) | |
%result = call %Object* @Array_aref_(%Array* %"@captures", %Int* %sk_int) | |
%ptr = bitcast %Object* %result to %MutableString** | |
%ret = load %MutableString*, %MutableString** %ptr, align 8 | |
br label %CaptureRef_1th_end | |
CaptureRef_1th_end: ; preds = %CaptureRef_1th | |
br label %CaptureRef_0th | |
CaptureRef_0th: ; preds = %CaptureRef_1th_end | |
%"addr_@captures1" = getelementptr inbounds %Fn1, %Fn1* %fn_x, i32 0, i32 4 | |
%"@captures2" = load %Array*, %Array** %"addr_@captures1", align 8 | |
%sk_int3 = call %Int* @box_int(i64 0) | |
%result4 = call %Object* @Array_aref_(%Array* %"@captures2", %Int* %sk_int3) | |
%ptr5 = bitcast %Object* %result4 to %Int** | |
%ret6 = load %Int*, %Int** %ptr5, align 8 | |
br label %CaptureRef_0th_end | |
CaptureRef_0th_end: ; preds = %CaptureRef_0th | |
%value = bitcast %Object* %b to %Int* | |
br label %"Invoke_MutableString#write_byte" | |
"Invoke_MutableString#write_byte": ; preds = %CaptureRef_0th_end | |
%addr_vtable = getelementptr inbounds %MutableString, %MutableString* %ret, i32 0, i32 0 | |
%vtable = load i8*, i8** %addr_vtable, align 8 | |
%vtable_ptr = bitcast i8* %vtable to [28 x i8*]* | |
%vtable7 = load [28 x i8*], [28 x i8*]* %vtable_ptr, align 8 | |
%func_raw = extractvalue [28 x i8*] %vtable7, 27 | |
%func = bitcast i8* %func_raw to %Void* (%MutableString*, %Int*, %Int*)* | |
%result8 = call %Void* %func(%MutableString* %ret, %Int* %ret6, %Int* %value) | |
br label %"Invoke_MutableString#write_byte_end" | |
"Invoke_MutableString#write_byte_end": ; preds = %"Invoke_MutableString#write_byte" | |
br label %CaptureWrite_3th | |
CaptureWrite_3th: ; preds = %"Invoke_MutableString#write_byte_end" | |
%"addr_@captures9" = getelementptr inbounds %Fn1, %Fn1* %fn_x, i32 0, i32 4 | |
%"@captures10" = load %Array*, %Array** %"addr_@captures9", align 8 | |
%sk_int11 = call %Int* @box_int(i64 3) | |
%result12 = call %Object* @Array_aref_(%Array* %"@captures10", %Int* %sk_int11) | |
%ptr13 = bitcast %Object* %result12 to %Int** | |
br label %CaptureRef_2th | |
CaptureRef_2th: ; preds = %CaptureWrite_3th | |
%"addr_@captures14" = getelementptr inbounds %Fn1, %Fn1* %fn_x, i32 0, i32 4 | |
%"@captures15" = load %Array*, %Array** %"addr_@captures14", align 8 | |
%sk_int16 = call %Int* @box_int(i64 2) | |
%result17 = call %Object* @Array_aref_(%Array* %"@captures15", %Int* %sk_int16) | |
%ptr18 = bitcast %Object* %result17 to %Int** | |
%ret19 = load %Int*, %Int** %ptr18, align 8 | |
br label %CaptureRef_2th_end | |
CaptureRef_2th_end: ; preds = %CaptureRef_2th | |
%sk_int20 = call %Int* @box_int(i64 1) | |
br label %"Invoke_Int#+" | |
"Invoke_Int#+": ; preds = %CaptureRef_2th_end | |
%addr_vtable21 = getelementptr inbounds %Int, %Int* %ret19, i32 0, i32 0 | |
%vtable22 = load i8*, i8** %addr_vtable21, align 8 | |
%vtable_ptr23 = bitcast i8* %vtable22 to [35 x i8*]* | |
%vtable24 = load [35 x i8*], [35 x i8*]* %vtable_ptr23, align 8 | |
%func_raw25 = extractvalue [35 x i8*] %vtable24, 18 | |
%func26 = bitcast i8* %func_raw25 to %Int* (%Int*, %Int*)* | |
%result27 = call %Int* %func26(%Int* %ret19, %Int* %sk_int20) | |
br label %"Invoke_Int#+_end" | |
"Invoke_Int#+_end": ; preds = %"Invoke_Int#+" | |
store %Int* %result27, %Int** %ptr13, align 8 | |
br label %CaptureWrite_3th_end | |
CaptureWrite_3th_end: ; preds = %"Invoke_Int#+_end" | |
br label %Ret | |
Ret: ; preds = %CaptureWrite_3th_end | |
br label %End | |
} | |
define %Void* @"lambda_27_in_String#*"(%Fn1* %fn_x, %Object* %_) { | |
br label %CaptureRef_0th | |
End: ; preds = %Ret | |
%"::Void" = load %Void*, %Void** @"::Void", align 8 | |
ret %Void* %"::Void" | |
CaptureRef_0th: ; preds = %0 | |
%"addr_@captures" = getelementptr inbounds %Fn1, %Fn1* %fn_x, i32 0, i32 4 | |
%"@captures" = load %Array*, %Array** %"addr_@captures", align 8 | |
%sk_int = call %Int* @box_int(i64 0) | |
%result = call %Object* @Array_aref_(%Array* %"@captures", %Int* %sk_int) | |
%ptr = bitcast %Object* %result to %MutableString** | |
%ret = load %MutableString*, %MutableString** %ptr, align 8 | |
br label %CaptureRef_0th_end | |
CaptureRef_0th_end: ; preds = %CaptureRef_0th | |
%"addr_@obj" = getelementptr inbounds %Fn1, %Fn1* %fn_x, i32 0, i32 3 | |
%"@obj" = load %Object*, %Object** %"addr_@obj", align 8 | |
%the_main = bitcast %Object* %"@obj" to %String* | |
br label %"Invoke_MutableString#append" | |
"Invoke_MutableString#append": ; preds = %CaptureRef_0th_end | |
%addr_vtable = getelementptr inbounds %MutableString, %MutableString* %ret, i32 0, i32 0 | |
%vtable = load i8*, i8** %addr_vtable, align 8 | |
%vtable_ptr = bitcast i8* %vtable to [28 x i8*]* | |
%vtable1 = load [28 x i8*], [28 x i8*]* %vtable_ptr, align 8 | |
%func_raw = extractvalue [28 x i8*] %vtable1, 18 | |
%func = bitcast i8* %func_raw to %Void* (%MutableString*, %String*)* | |
%result2 = call %Void* %func(%MutableString* %ret, %String* %the_main) | |
br label %"Invoke_MutableString#append_end" | |
"Invoke_MutableString#append_end": ; preds = %"Invoke_MutableString#append" | |
br label %Ret | |
Ret: ; preds = %"Invoke_MutableString#append_end" | |
br label %End | |
} | |
define %Void* @"lambda_28_in_String#bytes"(%Fn1* %fn_x, %Object* %b) { | |
br label %CaptureRef_0th | |
End: ; preds = %Ret | |
%"::Void" = load %Void*, %Void** @"::Void", align 8 | |
ret %Void* %"::Void" | |
CaptureRef_0th: ; preds = %0 | |
%"addr_@captures" = getelementptr inbounds %Fn1, %Fn1* %fn_x, i32 0, i32 4 | |
%"@captures" = load %Array*, %Array** %"addr_@captures", align 8 | |
%sk_int = call %Int* @box_int(i64 0) | |
%result = call %Object* @Array_aref_(%Array* %"@captures", %Int* %sk_int) | |
%ptr = bitcast %Object* %result to %Array** | |
%ret = load %Array*, %Array** %ptr, align 8 | |
br label %CaptureRef_0th_end | |
CaptureRef_0th_end: ; preds = %CaptureRef_0th | |
%value = bitcast %Object* %b to %Int* | |
%as = bitcast %Int* %value to %Object* | |
br label %"Invoke_Array#push" | |
"Invoke_Array#push": ; preds = %CaptureRef_0th_end | |
%addr_vtable = getelementptr inbounds %Array, %Array* %ret, i32 0, i32 0 | |
%vtable = load i8*, i8** %addr_vtable, align 8 | |
%vtable_ptr = bitcast i8* %vtable to [54 x i8*]* | |
%vtable1 = load [54 x i8*], [54 x i8*]* %vtable_ptr, align 8 | |
%func_raw = extractvalue [54 x i8*] %vtable1, 45 | |
%func = bitcast i8* %func_raw to %Void* (%Array*, %Object*)* | |
%result2 = call %Void* %func(%Array* %ret, %Object* %as) | |
br label %"Invoke_Array#push_end" | |
"Invoke_Array#push_end": ; preds = %"Invoke_Array#push" | |
br label %Ret | |
Ret: ; preds = %"Invoke_Array#push_end" | |
br label %End | |
} | |
define %Void* @"lambda_29_in_String#each_byte"(%Fn1* %fn_x, %Object* %i) { | |
br label %CaptureRef_0th | |
End: ; preds = %Ret, %Invoke_lambda | |
%"::Void" = load %Void*, %Void** @"::Void", align 8 | |
ret %Void* %"::Void" | |
CaptureRef_0th: ; preds = %0 | |
%"addr_@captures" = getelementptr inbounds %Fn1, %Fn1* %fn_x, i32 0, i32 4 | |
%"@captures" = load %Array*, %Array** %"addr_@captures", align 8 | |
%sk_int = call %Int* @box_int(i64 0) | |
%result = call %Object* @Array_aref_(%Array* %"@captures", %Int* %sk_int) | |
%ret = bitcast %Object* %result to %Fn1* | |
br label %CaptureRef_0th_end | |
CaptureRef_0th_end: ; preds = %CaptureRef_0th | |
%"addr_@obj" = getelementptr inbounds %Fn1, %Fn1* %fn_x, i32 0, i32 3 | |
%"@obj" = load %Object*, %Object** %"addr_@obj", align 8 | |
%the_main = bitcast %Object* %"@obj" to %String* | |
%value = bitcast %Object* %i to %Int* | |
br label %"Invoke_String#nth_byte" | |
"Invoke_String#nth_byte": ; preds = %CaptureRef_0th_end | |
%addr_vtable = getelementptr inbounds %String, %String* %the_main, i32 0, i32 0 | |
%vtable = load i8*, i8** %addr_vtable, align 8 | |
%vtable_ptr = bitcast i8* %vtable to [35 x i8*]* | |
%vtable1 = load [35 x i8*], [35 x i8*]* %vtable_ptr, align 8 | |
%func_raw = extractvalue [35 x i8*] %vtable1, 27 | |
%func = bitcast i8* %func_raw to %Int* (%String*, %Int*)* | |
%result2 = call %Int* %func(%String* %the_main, %Int* %value) | |
br label %"Invoke_String#nth_byte_end" | |
"Invoke_String#nth_byte_end": ; preds = %"Invoke_String#nth_byte" | |
br label %Invoke_lambda | |
Invoke_lambda: ; preds = %"Invoke_String#nth_byte_end" | |
%"addr_@func" = getelementptr inbounds %Fn1, %Fn1* %ret, i32 0, i32 2 | |
%"@func" = load %"Shiika::Internal::Ptr"*, %"Shiika::Internal::Ptr"** %"addr_@func", align 8 | |
%llvm_ptr = call i8* @unbox_i8ptr(%"Shiika::Internal::Ptr"* %"@func") | |
%1 = bitcast i8* %llvm_ptr to %Void* (%Fn1*, %Int*)* | |
%result3 = call %Void* %1(%Fn1* %ret, %Int* %result2) | |
%"addr_@exit_status" = getelementptr inbounds %Fn1, %Fn1* %ret, i32 0, i32 5 | |
%"@exit_status" = load %Int*, %Int** %"addr_@exit_status", align 8 | |
%sk_int4 = call %Int* @box_int(i64 1) | |
%result5 = call %Bool* @Int_eq_(%Int* %"@exit_status", %Int* %sk_int4) | |
%llvm_bool = call i1 @unbox_bool(%Bool* %result5) | |
%istrue = icmp eq i1 %llvm_bool, true | |
br i1 %istrue, label %End, label %Invoke_lambda_end | |
Invoke_lambda_end: ; preds = %Invoke_lambda | |
br label %Ret | |
Ret: ; preds = %Invoke_lambda_end | |
br label %End | |
} | |
define %Void* @"lambda_30_in_String#each_char"(%Fn1* %fn_x, %Object* %i) { | |
br label %CaptureRef_0th | |
End: ; preds = %Ret, %Invoke_lambda | |
%"::Void" = load %Void*, %Void** @"::Void", align 8 | |
ret %Void* %"::Void" | |
CaptureRef_0th: ; preds = %0 | |
%"addr_@captures" = getelementptr inbounds %Fn1, %Fn1* %fn_x, i32 0, i32 4 | |
%"@captures" = load %Array*, %Array** %"addr_@captures", align 8 | |
%sk_int = call %Int* @box_int(i64 0) | |
%result = call %Object* @Array_aref_(%Array* %"@captures", %Int* %sk_int) | |
%ret = bitcast %Object* %result to %Fn1* | |
br label %CaptureRef_0th_end | |
CaptureRef_0th_end: ; preds = %CaptureRef_0th | |
%"addr_@obj" = getelementptr inbounds %Fn1, %Fn1* %fn_x, i32 0, i32 3 | |
%"@obj" = load %Object*, %Object** %"addr_@obj", align 8 | |
%the_main = bitcast %Object* %"@obj" to %String* | |
%value = bitcast %Object* %i to %Int* | |
%sk_int1 = call %Int* @box_int(i64 1) | |
br label %"Invoke_String#slice_bytes" | |
"Invoke_String#slice_bytes": ; preds = %CaptureRef_0th_end | |
%addr_vtable = getelementptr inbounds %String, %String* %the_main, i32 0, i32 0 | |
%vtable = load i8*, i8** %addr_vtable, align 8 | |
%vtable_ptr = bitcast i8* %vtable to [35 x i8*]* | |
%vtable2 = load [35 x i8*], [35 x i8*]* %vtable_ptr, align 8 | |
%func_raw = extractvalue [35 x i8*] %vtable2, 30 | |
%func = bitcast i8* %func_raw to %String* (%String*, %Int*, %Int*)* | |
%result3 = call %String* %func(%String* %the_main, %Int* %value, %Int* %sk_int1) | |
br label %"Invoke_String#slice_bytes_end" | |
"Invoke_String#slice_bytes_end": ; preds = %"Invoke_String#slice_bytes" | |
br label %Invoke_lambda | |
Invoke_lambda: ; preds = %"Invoke_String#slice_bytes_end" | |
%"addr_@func" = getelementptr inbounds %Fn1, %Fn1* %ret, i32 0, i32 2 | |
%"@func" = load %"Shiika::Internal::Ptr"*, %"Shiika::Internal::Ptr"** %"addr_@func", align 8 | |
%llvm_ptr = call i8* @unbox_i8ptr(%"Shiika::Internal::Ptr"* %"@func") | |
%1 = bitcast i8* %llvm_ptr to %Void* (%Fn1*, %String*)* | |
%result4 = call %Void* %1(%Fn1* %ret, %String* %result3) | |
%"addr_@exit_status" = getelementptr inbounds %Fn1, %Fn1* %ret, i32 0, i32 5 | |
%"@exit_status" = load %Int*, %Int** %"addr_@exit_status", align 8 | |
%sk_int5 = call %Int* @box_int(i64 1) | |
%result6 = call %Bool* @Int_eq_(%Int* %"@exit_status", %Int* %sk_int5) | |
%llvm_bool = call i1 @unbox_bool(%Bool* %result6) | |
%istrue = icmp eq i1 %llvm_bool, true | |
br i1 %istrue, label %End, label %Invoke_lambda_end | |
Invoke_lambda_end: ; preds = %Invoke_lambda | |
br label %Ret | |
Ret: ; preds = %Invoke_lambda_end | |
br label %End | |
} | |
define %Void* @"lambda_25_in_Enumerable#all?"(%Fn1* %fn_x, %Object* %elem) { | |
br label %IfBegin | |
End: ; preds = %Ret, %CaptureWrite_1th_end | |
%"::Void9" = load %Void*, %Void** @"::Void", align 8 | |
ret %Void* %"::Void9" | |
IfBegin: ; preds = %0 | |
br label %CaptureRef_0th | |
IfThen: ; preds = %Invoke_lambda_end | |
br label %CaptureWrite_1th | |
IfElse: ; preds = %Invoke_lambda_end | |
%"::Void" = load %Void*, %Void** @"::Void", align 8 | |
br label %IfEnd | |
IfEnd: ; preds = %IfElse | |
br label %Ret | |
CaptureRef_0th: ; preds = %IfBegin | |
%"addr_@captures" = getelementptr inbounds %Fn1, %Fn1* %fn_x, i32 0, i32 4 | |
%"@captures" = load %Array*, %Array** %"addr_@captures", align 8 | |
%sk_int = call %Int* @box_int(i64 0) | |
%result = call %Object* @Array_aref_(%Array* %"@captures", %Int* %sk_int) | |
%ret = bitcast %Object* %result to %Fn1* | |
br label %CaptureRef_0th_end | |
CaptureRef_0th_end: ; preds = %CaptureRef_0th | |
br label %Invoke_lambda | |
Invoke_lambda: ; preds = %CaptureRef_0th_end | |
%"addr_@func" = getelementptr inbounds %Fn1, %Fn1* %ret, i32 0, i32 2 | |
%"@func" = load %"Shiika::Internal::Ptr"*, %"Shiika::Internal::Ptr"** %"addr_@func", align 8 | |
%llvm_ptr = call i8* @unbox_i8ptr(%"Shiika::Internal::Ptr"* %"@func") | |
%1 = bitcast i8* %llvm_ptr to %Bool* (%Fn1*, %Object*)* | |
%result1 = call %Bool* %1(%Fn1* %ret, %Object* %elem) | |
br label %Invoke_lambda_end | |
Invoke_lambda_end: ; preds = %Invoke_lambda | |
%llvm_bool = call i1 @unbox_bool(%Bool* %result1) | |
%b2 = xor i1 %llvm_bool, true | |
%sk_bool = call %Bool* @box_bool(i1 %b2) | |
%llvm_bool2 = call i1 @unbox_bool(%Bool* %sk_bool) | |
%istrue = icmp eq i1 %llvm_bool2, true | |
br i1 %istrue, label %IfThen, label %IfElse | |
CaptureWrite_1th: ; preds = %IfThen | |
%"addr_@captures3" = getelementptr inbounds %Fn1, %Fn1* %fn_x, i32 0, i32 4 | |
%"@captures4" = load %Array*, %Array** %"addr_@captures3", align 8 | |
%sk_int5 = call %Int* @box_int(i64 1) | |
%result6 = call %Object* @Array_aref_(%Array* %"@captures4", %Int* %sk_int5) | |
%ptr = bitcast %Object* %result6 to %Bool** | |
%sk_bool7 = call %Bool* @box_bool(i1 false) | |
store %Bool* %sk_bool7, %Bool** %ptr, align 8 | |
br label %CaptureWrite_1th_end | |
CaptureWrite_1th_end: ; preds = %CaptureWrite_1th | |
%sk_int8 = call %Int* @box_int(i64 1) | |
%"addr_@exit_status" = getelementptr inbounds %Fn1, %Fn1* %fn_x, i32 0, i32 5 | |
store %Int* %sk_int8, %Int** %"addr_@exit_status", align 8 | |
br label %End | |
Ret: ; preds = %IfEnd | |
br label %End | |
} | |
define %Void* @"lambda_17_in_Dict#initialize"(%Fn1* %fn_x, %Object* %_) { | |
alloca: | |
%"ary@20_" = alloca %Array*, align 8 | |
br label %alloca_End | |
alloca_End: ; preds = %alloca | |
%"addr_@obj" = getelementptr inbounds %Fn1, %Fn1* %fn_x, i32 0, i32 3 | |
%"@obj" = load %Object*, %Object** %"addr_@obj", align 8 | |
%the_main = bitcast %Object* %"@obj" to %Dict* | |
%"addr_@tables" = getelementptr inbounds %Dict, %Dict* %the_main, i32 0, i32 2 | |
%"@tables" = load %Array*, %Array** %"addr_@tables", align 8 | |
%"::Dict::Table" = load %"Dict::Table"*, %"Dict::Table"** @"::Dict::Table", align 8 | |
%"::Array" = load %Array*, %Array** @"::Array", align 8 | |
%"::Class" = load %Class.0*, %Class.0** @"::Class", align 8 | |
br label %"Invoke_Class#_specialize1" | |
End: ; preds = %Ret | |
%"::Void" = load %Void*, %Void** @"::Void", align 8 | |
ret %Void* %"::Void" | |
"Invoke_Class#_specialize1": ; preds = %alloca_End | |
%addr_vtable = getelementptr inbounds %Array, %Array* %"::Array", i32 0, i32 0 | |
%vtable = load i8*, i8** %addr_vtable, align 8 | |
%vtable_ptr = bitcast i8* %vtable to [25 x i8*]* | |
%vtable1 = load [25 x i8*], [25 x i8*]* %vtable_ptr, align 8 | |
%func_raw = extractvalue [25 x i8*] %vtable1, 18 | |
%func = bitcast i8* %func_raw to %Array* (%Array*, %Class.0*)* | |
%result = call %Array* %func(%Array* %"::Array", %Class.0* %"::Class") | |
br label %"Invoke_Class#_specialize1_end" | |
"Invoke_Class#_specialize1_end": ; preds = %"Invoke_Class#_specialize1" | |
br label %"Invoke_Array#new" | |
"Invoke_Array#new": ; preds = %"Invoke_Class#_specialize1_end" | |
%addr_vtable2 = getelementptr inbounds %Array, %Array* %result, i32 0, i32 0 | |
%vtable3 = load i8*, i8** %addr_vtable2, align 8 | |
%vtable_ptr4 = bitcast i8* %vtable3 to [25 x i8*]* | |
%vtable5 = load [25 x i8*], [25 x i8*]* %vtable_ptr4, align 8 | |
%func_raw6 = extractvalue [25 x i8*] %vtable5, 23 | |
%func7 = bitcast i8* %func_raw6 to %Array* (%Array*)* | |
%result8 = call %Array* %func7(%Array* %result) | |
br label %"Invoke_Array#new_end" | |
"Invoke_Array#new_end": ; preds = %"Invoke_Array#new" | |
store %Array* %result8, %Array** %"ary@20_", align 8 | |
%"ary@20_9" = load %Array*, %Array** %"ary@20_", align 8 | |
%"addr_@obj10" = getelementptr inbounds %Fn1, %Fn1* %fn_x, i32 0, i32 3 | |
%"@obj11" = load %Object*, %Object** %"addr_@obj10", align 8 | |
%the_main12 = bitcast %Object* %"@obj11" to %Dict* | |
%addr_class = getelementptr inbounds %Dict, %Dict* %the_main12, i32 0, i32 1 | |
%class = load %Class.0*, %Class.0** %addr_class, align 8 | |
%sk_int = call %Int* @box_int(i64 0) | |
%result13 = call %Class.0* @Class___type__argument(%Class.0* %class, %Int* %sk_int) | |
%as = bitcast %Class.0* %result13 to %Object* | |
br label %"Invoke_Array#push" | |
"Invoke_Array#push": ; preds = %"Invoke_Array#new_end" | |
%addr_vtable14 = getelementptr inbounds %Array, %Array* %"ary@20_9", i32 0, i32 0 | |
%vtable15 = load i8*, i8** %addr_vtable14, align 8 | |
%vtable_ptr16 = bitcast i8* %vtable15 to [54 x i8*]* | |
%vtable17 = load [54 x i8*], [54 x i8*]* %vtable_ptr16, align 8 | |
%func_raw18 = extractvalue [54 x i8*] %vtable17, 45 | |
%func19 = bitcast i8* %func_raw18 to %Void* (%Array*, %Object*)* | |
%result20 = call %Void* %func19(%Array* %"ary@20_9", %Object* %as) | |
br label %"Invoke_Array#push_end" | |
"Invoke_Array#push_end": ; preds = %"Invoke_Array#push" | |
%"ary@20_21" = load %Array*, %Array** %"ary@20_", align 8 | |
%"addr_@obj22" = getelementptr inbounds %Fn1, %Fn1* %fn_x, i32 0, i32 3 | |
%"@obj23" = load %Object*, %Object** %"addr_@obj22", align 8 | |
%the_main24 = bitcast %Object* %"@obj23" to %Dict* | |
%addr_class25 = getelementptr inbounds %Dict, %Dict* %the_main24, i32 0, i32 1 | |
%class26 = load %Class.0*, %Class.0** %addr_class25, align 8 | |
%sk_int27 = call %Int* @box_int(i64 1) | |
%result28 = call %Class.0* @Class___type__argument(%Class.0* %class26, %Int* %sk_int27) | |
%as29 = bitcast %Class.0* %result28 to %Object* | |
br label %"Invoke_Array#push30" | |
"Invoke_Array#push30": ; preds = %"Invoke_Array#push_end" | |
%addr_vtable31 = getelementptr inbounds %Array, %Array* %"ary@20_21", i32 0, i32 0 | |
%vtable32 = load i8*, i8** %addr_vtable31, align 8 | |
%vtable_ptr33 = bitcast i8* %vtable32 to [54 x i8*]* | |
%vtable34 = load [54 x i8*], [54 x i8*]* %vtable_ptr33, align 8 | |
%func_raw35 = extractvalue [54 x i8*] %vtable34, 45 | |
%func36 = bitcast i8* %func_raw35 to %Void* (%Array*, %Object*)* | |
%result37 = call %Void* %func36(%Array* %"ary@20_21", %Object* %as29) | |
br label %"Invoke_Array#push_end38" | |
"Invoke_Array#push_end38": ; preds = %"Invoke_Array#push30" | |
%"ary@20_39" = load %Array*, %Array** %"ary@20_", align 8 | |
br label %"Invoke_Class#<>" | |
"Invoke_Class#<>": ; preds = %"Invoke_Array#push_end38" | |
%addr_vtable40 = getelementptr inbounds %"Dict::Table", %"Dict::Table"* %"::Dict::Table", i32 0, i32 0 | |
%vtable41 = load i8*, i8** %addr_vtable40, align 8 | |
%vtable_ptr42 = bitcast i8* %vtable41 to [23 x i8*]* | |
%vtable43 = load [23 x i8*], [23 x i8*]* %vtable_ptr42, align 8 | |
%func_raw44 = extractvalue [23 x i8*] %vtable43, 16 | |
%func45 = bitcast i8* %func_raw44 to %"Dict::Table"* (%"Dict::Table"*, %Array*)* | |
%result46 = call %"Dict::Table"* %func45(%"Dict::Table"* %"::Dict::Table", %Array* %"ary@20_39") | |
br label %"Invoke_Class#<>_end" | |
"Invoke_Class#<>_end": ; preds = %"Invoke_Class#<>" | |
br label %"Invoke_Meta:Dict::Table#new" | |
"Invoke_Meta:Dict::Table#new": ; preds = %"Invoke_Class#<>_end" | |
%addr_vtable47 = getelementptr inbounds %"Dict::Table", %"Dict::Table"* %result46, i32 0, i32 0 | |
%vtable48 = load i8*, i8** %addr_vtable47, align 8 | |
%vtable_ptr49 = bitcast i8* %vtable48 to [23 x i8*]* | |
%vtable50 = load [23 x i8*], [23 x i8*]* %vtable_ptr49, align 8 | |
%func_raw51 = extractvalue [23 x i8*] %vtable50, 22 | |
%func52 = bitcast i8* %func_raw51 to %"Dict::Table"* (%"Dict::Table"*)* | |
%result53 = call %"Dict::Table"* %func52(%"Dict::Table"* %result46) | |
br label %"Invoke_Meta:Dict::Table#new_end" | |
"Invoke_Meta:Dict::Table#new_end": ; preds = %"Invoke_Meta:Dict::Table#new" | |
%as54 = bitcast %"Dict::Table"* %result53 to %Object* | |
br label %"Invoke_Array#push55" | |
"Invoke_Array#push55": ; preds = %"Invoke_Meta:Dict::Table#new_end" | |
%addr_vtable56 = getelementptr inbounds %Array, %Array* %"@tables", i32 0, i32 0 | |
%vtable57 = load i8*, i8** %addr_vtable56, align 8 | |
%vtable_ptr58 = bitcast i8* %vtable57 to [54 x i8*]* | |
%vtable59 = load [54 x i8*], [54 x i8*]* %vtable_ptr58, align 8 | |
%func_raw60 = extractvalue [54 x i8*] %vtable59, 45 | |
%func61 = bitcast i8* %func_raw60 to %Void* (%Array*, %Object*)* | |
%result62 = call %Void* %func61(%Array* %"@tables", %Object* %as54) | |
br label %"Invoke_Array#push_end63" | |
"Invoke_Array#push_end63": ; preds = %"Invoke_Array#push55" | |
br label %Ret | |
Ret: ; preds = %"Invoke_Array#push_end63" | |
br label %End | |
} | |
define %Void* @"lambda_23_in_Dict#keys"(%Fn1* %fn_x, %Object* %table) { | |
br label %CaptureRef_0th | |
End: ; preds = %Ret | |
%"::Void" = load %Void*, %Void** @"::Void", align 8 | |
ret %Void* %"::Void" | |
CaptureRef_0th: ; preds = %0 | |
%"addr_@captures" = getelementptr inbounds %Fn1, %Fn1* %fn_x, i32 0, i32 4 | |
%"@captures" = load %Array*, %Array** %"addr_@captures", align 8 | |
%sk_int = call %Int* @box_int(i64 0) | |
%result = call %Object* @Array_aref_(%Array* %"@captures", %Int* %sk_int) | |
%ptr = bitcast %Object* %result to %Array** | |
%ret = load %Array*, %Array** %ptr, align 8 | |
br label %CaptureRef_0th_end | |
CaptureRef_0th_end: ; preds = %CaptureRef_0th | |
%value = bitcast %Object* %table to %"Dict::Table"* | |
br label %"Invoke_Dict::Table#keys" | |
"Invoke_Dict::Table#keys": ; preds = %CaptureRef_0th_end | |
%addr_vtable = getelementptr inbounds %"Dict::Table", %"Dict::Table"* %value, i32 0, i32 0 | |
%vtable = load i8*, i8** %addr_vtable, align 8 | |
%vtable_ptr = bitcast i8* %vtable to [23 x i8*]* | |
%vtable1 = load [23 x i8*], [23 x i8*]* %vtable_ptr, align 8 | |
%func_raw = extractvalue [23 x i8*] %vtable1, 19 | |
%func = bitcast i8* %func_raw to %Array* (%"Dict::Table"*)* | |
%result2 = call %Array* %func(%"Dict::Table"* %value) | |
br label %"Invoke_Dict::Table#keys_end" | |
"Invoke_Dict::Table#keys_end": ; preds = %"Invoke_Dict::Table#keys" | |
%as = bitcast %Array* %result2 to %Object* | |
br label %"Invoke_Array#append" | |
"Invoke_Array#append": ; preds = %"Invoke_Dict::Table#keys_end" | |
%addr_vtable3 = getelementptr inbounds %Array, %Array* %ret, i32 0, i32 0 | |
%vtable4 = load i8*, i8** %addr_vtable3, align 8 | |
%vtable_ptr5 = bitcast i8* %vtable4 to [54 x i8*]* | |
%vtable6 = load [54 x i8*], [54 x i8*]* %vtable_ptr5, align 8 | |
%func_raw7 = extractvalue [54 x i8*] %vtable6, 23 | |
%func8 = bitcast i8* %func_raw7 to %Void* (%Array*, %Object*)* | |
%result9 = call %Void* %func8(%Array* %ret, %Object* %as) | |
br label %"Invoke_Array#append_end" | |
"Invoke_Array#append_end": ; preds = %"Invoke_Array#append" | |
br label %Ret | |
Ret: ; preds = %"Invoke_Array#append_end" | |
br label %End | |
} | |
define %Void* @"lambda_24_in_Dict#values"(%Fn1* %fn_x, %Object* %table) { | |
br label %CaptureRef_0th | |
End: ; preds = %Ret | |
%"::Void" = load %Void*, %Void** @"::Void", align 8 | |
ret %Void* %"::Void" | |
CaptureRef_0th: ; preds = %0 | |
%"addr_@captures" = getelementptr inbounds %Fn1, %Fn1* %fn_x, i32 0, i32 4 | |
%"@captures" = load %Array*, %Array** %"addr_@captures", align 8 | |
%sk_int = call %Int* @box_int(i64 0) | |
%result = call %Object* @Array_aref_(%Array* %"@captures", %Int* %sk_int) | |
%ptr = bitcast %Object* %result to %Array** | |
%ret = load %Array*, %Array** %ptr, align 8 | |
br label %CaptureRef_0th_end | |
CaptureRef_0th_end: ; preds = %CaptureRef_0th | |
%value = bitcast %Object* %table to %"Dict::Table"* | |
br label %"Invoke_Dict::Table#values" | |
"Invoke_Dict::Table#values": ; preds = %CaptureRef_0th_end | |
%addr_vtable = getelementptr inbounds %"Dict::Table", %"Dict::Table"* %value, i32 0, i32 0 | |
%vtable = load i8*, i8** %addr_vtable, align 8 | |
%vtable_ptr = bitcast i8* %vtable to [23 x i8*]* | |
%vtable1 = load [23 x i8*], [23 x i8*]* %vtable_ptr, align 8 | |
%func_raw = extractvalue [23 x i8*] %vtable1, 22 | |
%func = bitcast i8* %func_raw to %Array* (%"Dict::Table"*)* | |
%result2 = call %Array* %func(%"Dict::Table"* %value) | |
br label %"Invoke_Dict::Table#values_end" | |
"Invoke_Dict::Table#values_end": ; preds = %"Invoke_Dict::Table#values" | |
%as = bitcast %Array* %result2 to %Object* | |
br label %"Invoke_Array#append" | |
"Invoke_Array#append": ; preds = %"Invoke_Dict::Table#values_end" | |
%addr_vtable3 = getelementptr inbounds %Array, %Array* %ret, i32 0, i32 0 | |
%vtable4 = load i8*, i8** %addr_vtable3, align 8 | |
%vtable_ptr5 = bitcast i8* %vtable4 to [54 x i8*]* | |
%vtable6 = load [54 x i8*], [54 x i8*]* %vtable_ptr5, align 8 | |
%func_raw7 = extractvalue [54 x i8*] %vtable6, 23 | |
%func8 = bitcast i8* %func_raw7 to %Void* (%Array*, %Object*)* | |
%result9 = call %Void* %func8(%Array* %ret, %Object* %as) | |
br label %"Invoke_Array#append_end" | |
"Invoke_Array#append_end": ; preds = %"Invoke_Array#append" | |
br label %Ret | |
Ret: ; preds = %"Invoke_Array#append_end" | |
br label %End | |
} | |
define void @init_Fn2() { | |
%"::Metaclass" = load %Metaclass*, %Metaclass** @"::Metaclass", align 8 | |
%sk_str = call %String* @gen_literal_string(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @str_0, i32 0, i32 0), i64 3) | |
%result = call %Metaclass* @Metaclass_new(%Metaclass* null, %String* %sk_str, %Object* bitcast ([23 x i8*]* @shiika_vtable_Metaclass to %Object*), %Metaclass* %"::Metaclass") | |
%sk_str1 = call %String* @gen_literal_string(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @str_0, i32 0, i32 0), i64 3) | |
%result2 = call %Class.0* @Meta_Class_new(%Class.0* null, %String* %sk_str1, %Object* bitcast ([23 x i8*]* @"shiika_vtable_Meta:Fn2" to %Object*), %Metaclass* %result) | |
%as = bitcast %Class.0* %result2 to %Fn2* | |
store %Fn2* %as, %Fn2** @"::Fn2", align 8 | |
br label %End | |
End: ; preds = %0 | |
ret void | |
} | |
define void @"init_Maybe::None"() { | |
%"::Metaclass" = load %Metaclass*, %Metaclass** @"::Metaclass", align 8 | |
%sk_str = call %String* @gen_literal_string(i8* getelementptr inbounds ([12 x i8], [12 x i8]* @str_1, i32 0, i32 0), i64 11) | |
%result = call %Metaclass* @Metaclass_new(%Metaclass* null, %String* %sk_str, %Object* bitcast ([23 x i8*]* @shiika_vtable_Metaclass to %Object*), %Metaclass* %"::Metaclass") | |
%sk_str1 = call %String* @gen_literal_string(i8* getelementptr inbounds ([12 x i8], [12 x i8]* @str_1, i32 0, i32 0), i64 11) | |
%result2 = call %Class.0* @Meta_Class_new(%Class.0* null, %String* %sk_str1, %Object* bitcast ([23 x i8*]* @"shiika_vtable_Meta:Maybe::None" to %Object*), %Metaclass* %result) | |
%as = bitcast %Class.0* %result2 to %"Maybe::None"* | |
br label %"Invoke_Meta:Maybe::None#new" | |
End: ; preds = %"Invoke_Meta:Maybe::None#new_end" | |
ret void | |
"Invoke_Meta:Maybe::None#new": ; preds = %0 | |
%addr_vtable = getelementptr inbounds %"Maybe::None", %"Maybe::None"* %as, i32 0, i32 0 | |
%vtable = load i8*, i8** %addr_vtable, align 8 | |
%vtable_ptr = bitcast i8* %vtable to [23 x i8*]* | |
%vtable3 = load [23 x i8*], [23 x i8*]* %vtable_ptr, align 8 | |
%func_raw = extractvalue [23 x i8*] %vtable3, 22 | |
%func = bitcast i8* %func_raw to %"Maybe::None"* (%"Maybe::None"*)* | |
%result4 = call %"Maybe::None"* %func(%"Maybe::None"* %as) | |
br label %"Invoke_Meta:Maybe::None#new_end" | |
"Invoke_Meta:Maybe::None#new_end": ; preds = %"Invoke_Meta:Maybe::None#new" | |
store %"Maybe::None"* %result4, %"Maybe::None"** @"::Maybe::None", align 8 | |
br label %End | |
} | |
define void @init_Pair() { | |
%"::Metaclass" = load %Metaclass*, %Metaclass** @"::Metaclass", align 8 | |
%sk_str = call %String* @gen_literal_string(i8* getelementptr inbounds ([5 x i8], [5 x i8]* @str_2, i32 0, i32 0), i64 4) | |
%result = call %Metaclass* @Metaclass_new(%Metaclass* null, %String* %sk_str, %Object* bitcast ([23 x i8*]* @shiika_vtable_Metaclass to %Object*), %Metaclass* %"::Metaclass") | |
%sk_str1 = call %String* @gen_literal_string(i8* getelementptr inbounds ([5 x i8], [5 x i8]* @str_2, i32 0, i32 0), i64 4) | |
%result2 = call %Class.0* @Meta_Class_new(%Class.0* null, %String* %sk_str1, %Object* bitcast ([23 x i8*]* @"shiika_vtable_Meta:Pair" to %Object*), %Metaclass* %result) | |
%as = bitcast %Class.0* %result2 to %Pair* | |
store %Pair* %as, %Pair** @"::Pair", align 8 | |
br label %End | |
End: ; preds = %0 | |
ret void | |
} | |
define void @init_Int() { | |
%"::Metaclass" = load %Metaclass*, %Metaclass** @"::Metaclass", align 8 | |
%sk_str = call %String* @gen_literal_string(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @str_3, i32 0, i32 0), i64 3) | |
%result = call %Metaclass* @Metaclass_new(%Metaclass* null, %String* %sk_str, %Object* bitcast ([23 x i8*]* @shiika_vtable_Metaclass to %Object*), %Metaclass* %"::Metaclass") | |
%sk_str1 = call %String* @gen_literal_string(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @str_3, i32 0, i32 0), i64 3) | |
%result2 = call %Class.0* @Meta_Class_new(%Class.0* null, %String* %sk_str1, %Object* bitcast ([23 x i8*]* @"shiika_vtable_Meta:Int" to %Object*), %Metaclass* %result) | |
%as = bitcast %Class.0* %result2 to %Int* | |
store %Int* %as, %Int** @"::Int", align 8 | |
br label %End | |
End: ; preds = %0 | |
ret void | |
} | |
define void @"init_Shiika::Internal::Memory"() { | |
%"::Metaclass" = load %Metaclass*, %Metaclass** @"::Metaclass", align 8 | |
%sk_str = call %String* @gen_literal_string(i8* getelementptr inbounds ([25 x i8], [25 x i8]* @str_4, i32 0, i32 0), i64 24) | |
%result = call %Metaclass* @Metaclass_new(%Metaclass* null, %String* %sk_str, %Object* bitcast ([23 x i8*]* @shiika_vtable_Metaclass to %Object*), %Metaclass* %"::Metaclass") | |
%sk_str1 = call %String* @gen_literal_string(i8* getelementptr inbounds ([25 x i8], [25 x i8]* @str_4, i32 0, i32 0), i64 24) | |
%result2 = call %Class.0* @Meta_Class_new(%Class.0* null, %String* %sk_str1, %Object* bitcast ([25 x i8*]* @"shiika_vtable_Meta:Shiika::Internal::Memory" to %Object*), %Metaclass* %result) | |
%as = bitcast %Class.0* %result2 to %"Shiika::Internal::Memory"* | |
store %"Shiika::Internal::Memory"* %as, %"Shiika::Internal::Memory"** @"::Shiika::Internal::Memory", align 8 | |
br label %End | |
End: ; preds = %0 | |
ret void | |
} | |
define void @init_Math() { | |
%"::Metaclass" = load %Metaclass*, %Metaclass** @"::Metaclass", align 8 | |
%sk_str = call %String* @gen_literal_string(i8* getelementptr inbounds ([5 x i8], [5 x i8]* @str_5, i32 0, i32 0), i64 4) | |
%result = call %Metaclass* @Metaclass_new(%Metaclass* null, %String* %sk_str, %Object* bitcast ([23 x i8*]* @shiika_vtable_Metaclass to %Object*), %Metaclass* %"::Metaclass") | |
%sk_str1 = call %String* @gen_literal_string(i8* getelementptr inbounds ([5 x i8], [5 x i8]* @str_5, i32 0, i32 0), i64 4) | |
%result2 = call %Class.0* @Meta_Class_new(%Class.0* null, %String* %sk_str1, %Object* bitcast ([25 x i8*]* @"shiika_vtable_Meta:Math" to %Object*), %Metaclass* %result) | |
%as = bitcast %Class.0* %result2 to %Math* | |
store %Math* %as, %Math** @"::Math", align 8 | |
br label %End | |
End: ; preds = %0 | |
ret void | |
} | |
define void @init_Fn() { | |
%"::Metaclass" = load %Metaclass*, %Metaclass** @"::Metaclass", align 8 | |
%sk_str = call %String* @gen_literal_string(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @str_6, i32 0, i32 0), i64 2) | |
%result = call %Metaclass* @Metaclass_new(%Metaclass* null, %String* %sk_str, %Object* bitcast ([23 x i8*]* @shiika_vtable_Metaclass to %Object*), %Metaclass* %"::Metaclass") | |
%sk_str1 = call %String* @gen_literal_string(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @str_6, i32 0, i32 0), i64 2) | |
%result2 = call %Class.0* @Meta_Class_new(%Class.0* null, %String* %sk_str1, %Object* bitcast ([23 x i8*]* @"shiika_vtable_Meta:Fn" to %Object*), %Metaclass* %result) | |
%as = bitcast %Class.0* %result2 to %Fn* | |
store %Fn* %as, %Fn** @"::Fn", align 8 | |
br label %End | |
End: ; preds = %0 | |
ret void | |
} | |
define void @init_Maybe() { | |
%"::Metaclass" = load %Metaclass*, %Metaclass** @"::Metaclass", align 8 | |
%sk_str = call %String* @gen_literal_string(i8* getelementptr inbounds ([6 x i8], [6 x i8]* @str_7, i32 0, i32 0), i64 5) | |
%result = call %Metaclass* @Metaclass_new(%Metaclass* null, %String* %sk_str, %Object* bitcast ([23 x i8*]* @shiika_vtable_Metaclass to %Object*), %Metaclass* %"::Metaclass") | |
%sk_str1 = call %String* @gen_literal_string(i8* getelementptr inbounds ([6 x i8], [6 x i8]* @str_7, i32 0, i32 0), i64 5) | |
%result2 = call %Class.0* @Meta_Class_new(%Class.0* null, %String* %sk_str1, %Object* bitcast ([22 x i8*]* @"shiika_vtable_Meta:Maybe" to %Object*), %Metaclass* %result) | |
%as = bitcast %Class.0* %result2 to %Maybe* | |
store %Maybe* %as, %Maybe** @"::Maybe", align 8 | |
br label %End | |
End: ; preds = %0 | |
ret void | |
} | |
define void @init_Dict() { | |
%"::Metaclass" = load %Metaclass*, %Metaclass** @"::Metaclass", align 8 | |
%sk_str = call %String* @gen_literal_string(i8* getelementptr inbounds ([5 x i8], [5 x i8]* @str_8, i32 0, i32 0), i64 4) | |
%result = call %Metaclass* @Metaclass_new(%Metaclass* null, %String* %sk_str, %Object* bitcast ([23 x i8*]* @shiika_vtable_Metaclass to %Object*), %Metaclass* %"::Metaclass") | |
%sk_str1 = call %String* @gen_literal_string(i8* getelementptr inbounds ([5 x i8], [5 x i8]* @str_8, i32 0, i32 0), i64 4) | |
%result2 = call %Class.0* @Meta_Class_new(%Class.0* null, %String* %sk_str1, %Object* bitcast ([23 x i8*]* @"shiika_vtable_Meta:Dict" to %Object*), %Metaclass* %result) | |
%as = bitcast %Class.0* %result2 to %Dict* | |
store %Dict* %as, %Dict** @"::Dict", align 8 | |
br label %End | |
End: ; preds = %0 | |
ret void | |
} | |
define void @init_Fn7() { | |
%"::Metaclass" = load %Metaclass*, %Metaclass** @"::Metaclass", align 8 | |
%sk_str = call %String* @gen_literal_string(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @str_9, i32 0, i32 0), i64 3) | |
%result = call %Metaclass* @Metaclass_new(%Metaclass* null, %String* %sk_str, %Object* bitcast ([23 x i8*]* @shiika_vtable_Metaclass to %Object*), %Metaclass* %"::Metaclass") | |
%sk_str1 = call %String* @gen_literal_string(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @str_9, i32 0, i32 0), i64 3) | |
%result2 = call %Class.0* @Meta_Class_new(%Class.0* null, %String* %sk_str1, %Object* bitcast ([23 x i8*]* @"shiika_vtable_Meta:Fn7" to %Object*), %Metaclass* %result) | |
%as = bitcast %Class.0* %result2 to %Fn7* | |
store %Fn7* %as, %Fn7** @"::Fn7", align 8 | |
br label %End | |
End: ; preds = %0 | |
ret void | |
} | |
define void @init_Fn1() { | |
%"::Metaclass" = load %Metaclass*, %Metaclass** @"::Metaclass", align 8 | |
%sk_str = call %String* @gen_literal_string(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @str_10, i32 0, i32 0), i64 3) | |
%result = call %Metaclass* @Metaclass_new(%Metaclass* null, %String* %sk_str, %Object* bitcast ([23 x i8*]* @shiika_vtable_Metaclass to %Object*), %Metaclass* %"::Metaclass") | |
%sk_str1 = call %String* @gen_literal_string(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @str_10, i32 0, i32 0), i64 3) | |
%result2 = call %Class.0* @Meta_Class_new(%Class.0* null, %String* %sk_str1, %Object* bitcast ([23 x i8*]* @"shiika_vtable_Meta:Fn1" to %Object*), %Metaclass* %result) | |
%as = bitcast %Class.0* %result2 to %Fn1* | |
store %Fn1* %as, %Fn1** @"::Fn1", align 8 | |
br label %End | |
End: ; preds = %0 | |
ret void | |
} | |
define void @init_Fn0() { | |
%"::Metaclass" = load %Metaclass*, %Metaclass** @"::Metaclass", align 8 | |
%sk_str = call %String* @gen_literal_string(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @str_11, i32 0, i32 0), i64 3) | |
%result = call %Metaclass* @Metaclass_new(%Metaclass* null, %String* %sk_str, %Object* bitcast ([23 x i8*]* @shiika_vtable_Metaclass to %Object*), %Metaclass* %"::Metaclass") | |
%sk_str1 = call %String* @gen_literal_string(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @str_11, i32 0, i32 0), i64 3) | |
%result2 = call %Class.0* @Meta_Class_new(%Class.0* null, %String* %sk_str1, %Object* bitcast ([23 x i8*]* @"shiika_vtable_Meta:Fn0" to %Object*), %Metaclass* %result) | |
%as = bitcast %Class.0* %result2 to %Fn0* | |
store %Fn0* %as, %Fn0** @"::Fn0", align 8 | |
br label %End | |
End: ; preds = %0 | |
ret void | |
} | |
define void @init_Class() { | |
%"::Metaclass" = load %Metaclass*, %Metaclass** @"::Metaclass", align 8 | |
%sk_str = call %String* @gen_literal_string(i8* getelementptr inbounds ([6 x i8], [6 x i8]* @str_12, i32 0, i32 0), i64 5) | |
%result = call %Metaclass* @Metaclass_new(%Metaclass* null, %String* %sk_str, %Object* bitcast ([23 x i8*]* @shiika_vtable_Metaclass to %Object*), %Metaclass* %"::Metaclass") | |
%sk_str1 = call %String* @gen_literal_string(i8* getelementptr inbounds ([6 x i8], [6 x i8]* @str_12, i32 0, i32 0), i64 5) | |
%result2 = call %Class.0* @Meta_Class_new(%Class.0* null, %String* %sk_str1, %Object* bitcast ([23 x i8*]* @"shiika_vtable_Meta:Class" to %Object*), %Metaclass* %result) | |
store %Class.0* %result2, %Class.0** @"::Class", align 8 | |
br label %End | |
End: ; preds = %0 | |
ret void | |
} | |
define void @init_Fn8() { | |
%"::Metaclass" = load %Metaclass*, %Metaclass** @"::Metaclass", align 8 | |
%sk_str = call %String* @gen_literal_string(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @str_13, i32 0, i32 0), i64 3) | |
%result = call %Metaclass* @Metaclass_new(%Metaclass* null, %String* %sk_str, %Object* bitcast ([23 x i8*]* @shiika_vtable_Metaclass to %Object*), %Metaclass* %"::Metaclass") | |
%sk_str1 = call %String* @gen_literal_string(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @str_13, i32 0, i32 0), i64 3) | |
%result2 = call %Class.0* @Meta_Class_new(%Class.0* null, %String* %sk_str1, %Object* bitcast ([23 x i8*]* @"shiika_vtable_Meta:Fn8" to %Object*), %Metaclass* %result) | |
%as = bitcast %Class.0* %result2 to %Fn8* | |
store %Fn8* %as, %Fn8** @"::Fn8", align 8 | |
br label %End | |
End: ; preds = %0 | |
ret void | |
} | |
define void @init_Fn9() { | |
%"::Metaclass" = load %Metaclass*, %Metaclass** @"::Metaclass", align 8 | |
%sk_str = call %String* @gen_literal_string(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @str_14, i32 0, i32 0), i64 3) | |
%result = call %Metaclass* @Metaclass_new(%Metaclass* null, %String* %sk_str, %Object* bitcast ([23 x i8*]* @shiika_vtable_Metaclass to %Object*), %Metaclass* %"::Metaclass") | |
%sk_str1 = call %String* @gen_literal_string(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @str_14, i32 0, i32 0), i64 3) | |
%result2 = call %Class.0* @Meta_Class_new(%Class.0* null, %String* %sk_str1, %Object* bitcast ([23 x i8*]* @"shiika_vtable_Meta:Fn9" to %Object*), %Metaclass* %result) | |
%as = bitcast %Class.0* %result2 to %Fn9* | |
store %Fn9* %as, %Fn9** @"::Fn9", align 8 | |
br label %End | |
End: ; preds = %0 | |
ret void | |
} | |
define void @init_Fn4() { | |
%"::Metaclass" = load %Metaclass*, %Metaclass** @"::Metaclass", align 8 | |
%sk_str = call %String* @gen_literal_string(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @str_15, i32 0, i32 0), i64 3) | |
%result = call %Metaclass* @Metaclass_new(%Metaclass* null, %String* %sk_str, %Object* bitcast ([23 x i8*]* @shiika_vtable_Metaclass to %Object*), %Metaclass* %"::Metaclass") | |
%sk_str1 = call %String* @gen_literal_string(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @str_15, i32 0, i32 0), i64 3) | |
%result2 = call %Class.0* @Meta_Class_new(%Class.0* null, %String* %sk_str1, %Object* bitcast ([23 x i8*]* @"shiika_vtable_Meta:Fn4" to %Object*), %Metaclass* %result) | |
%as = bitcast %Class.0* %result2 to %Fn4* | |
store %Fn4* %as, %Fn4** @"::Fn4", align 8 | |
br label %End | |
End: ; preds = %0 | |
ret void | |
} | |
define void @init_File() { | |
%"::Metaclass" = load %Metaclass*, %Metaclass** @"::Metaclass", align 8 | |
%sk_str = call %String* @gen_literal_string(i8* getelementptr inbounds ([5 x i8], [5 x i8]* @str_16, i32 0, i32 0), i64 4) | |
%result = call %Metaclass* @Metaclass_new(%Metaclass* null, %String* %sk_str, %Object* bitcast ([23 x i8*]* @shiika_vtable_Metaclass to %Object*), %Metaclass* %"::Metaclass") | |
%sk_str1 = call %String* @gen_literal_string(i8* getelementptr inbounds ([5 x i8], [5 x i8]* @str_16, i32 0, i32 0), i64 4) | |
%result2 = call %Class.0* @Meta_Class_new(%Class.0* null, %String* %sk_str1, %Object* bitcast ([23 x i8*]* @"shiika_vtable_Meta:File" to %Object*), %Metaclass* %result) | |
%as = bitcast %Class.0* %result2 to %File* | |
store %File* %as, %File** @"::File", align 8 | |
br label %End | |
End: ; preds = %0 | |
ret void | |
} | |
define void @init_Float() { | |
%"::Metaclass" = load %Metaclass*, %Metaclass** @"::Metaclass", align 8 | |
%sk_str = call %String* @gen_literal_string(i8* getelementptr inbounds ([6 x i8], [6 x i8]* @str_17, i32 0, i32 0), i64 5) | |
%result = call %Metaclass* @Metaclass_new(%Metaclass* null, %String* %sk_str, %Object* bitcast ([23 x i8*]* @shiika_vtable_Metaclass to %Object*), %Metaclass* %"::Metaclass") | |
%sk_str1 = call %String* @gen_literal_string(i8* getelementptr inbounds ([6 x i8], [6 x i8]* @str_17, i32 0, i32 0), i64 5) | |
%result2 = call %Class.0* @Meta_Class_new(%Class.0* null, %String* %sk_str1, %Object* bitcast ([23 x i8*]* @"shiika_vtable_Meta:Float" to %Object*), %Metaclass* %result) | |
%as = bitcast %Class.0* %result2 to %Float* | |
store %Float* %as, %Float** @"::Float", align 8 | |
br label %End | |
End: ; preds = %0 | |
ret void | |
} | |
define void @init_String() { | |
%"::Metaclass" = load %Metaclass*, %Metaclass** @"::Metaclass", align 8 | |
%sk_str = call %String* @gen_literal_string(i8* getelementptr inbounds ([7 x i8], [7 x i8]* @str_18, i32 0, i32 0), i64 6) | |
%result = call %Metaclass* @Metaclass_new(%Metaclass* null, %String* %sk_str, %Object* bitcast ([23 x i8*]* @shiika_vtable_Metaclass to %Object*), %Metaclass* %"::Metaclass") | |
%sk_str1 = call %String* @gen_literal_string(i8* getelementptr inbounds ([7 x i8], [7 x i8]* @str_18, i32 0, i32 0), i64 6) | |
%result2 = call %Class.0* @Meta_Class_new(%Class.0* null, %String* %sk_str1, %Object* bitcast ([23 x i8*]* @"shiika_vtable_Meta:String" to %Object*), %Metaclass* %result) | |
%as = bitcast %Class.0* %result2 to %String* | |
store %String* %as, %String** @"::String", align 8 | |
br label %End | |
End: ; preds = %0 | |
ret void | |
} | |
define void @init_Fn3() { | |
%"::Metaclass" = load %Metaclass*, %Metaclass** @"::Metaclass", align 8 | |
%sk_str = call %String* @gen_literal_string(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @str_19, i32 0, i32 0), i64 3) | |
%result = call %Metaclass* @Metaclass_new(%Metaclass* null, %String* %sk_str, %Object* bitcast ([23 x i8*]* @shiika_vtable_Metaclass to %Object*), %Metaclass* %"::Metaclass") | |
%sk_str1 = call %String* @gen_literal_string(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @str_19, i32 0, i32 0), i64 3) | |
%result2 = call %Class.0* @Meta_Class_new(%Class.0* null, %String* %sk_str1, %Object* bitcast ([23 x i8*]* @"shiika_vtable_Meta:Fn3" to %Object*), %Metaclass* %result) | |
%as = bitcast %Class.0* %result2 to %Fn3* | |
store %Fn3* %as, %Fn3** @"::Fn3", align 8 | |
br label %End | |
End: ; preds = %0 | |
ret void | |
} | |
define void @"init_Result::Fail"() { | |
%"::Metaclass" = load %Metaclass*, %Metaclass** @"::Metaclass", align 8 | |
%sk_str = call %String* @gen_literal_string(i8* getelementptr inbounds ([13 x i8], [13 x i8]* @str_20, i32 0, i32 0), i64 12) | |
%result = call %Metaclass* @Metaclass_new(%Metaclass* null, %String* %sk_str, %Object* bitcast ([23 x i8*]* @shiika_vtable_Metaclass to %Object*), %Metaclass* %"::Metaclass") | |
%sk_str1 = call %String* @gen_literal_string(i8* getelementptr inbounds ([13 x i8], [13 x i8]* @str_20, i32 0, i32 0), i64 12) | |
%result2 = call %Class.0* @Meta_Class_new(%Class.0* null, %String* %sk_str1, %Object* bitcast ([23 x i8*]* @"shiika_vtable_Meta:Result::Fail" to %Object*), %Metaclass* %result) | |
%as = bitcast %Class.0* %result2 to %"Result::Fail"* | |
store %"Result::Fail"* %as, %"Result::Fail"** @"::Result::Fail", align 8 | |
br label %End | |
End: ; preds = %0 | |
ret void | |
} | |
define void @"init_Dict::Table"() { | |
%"::Metaclass" = load %Metaclass*, %Metaclass** @"::Metaclass", align 8 | |
%sk_str = call %String* @gen_literal_string(i8* getelementptr inbounds ([12 x i8], [12 x i8]* @str_21, i32 0, i32 0), i64 11) | |
%result = call %Metaclass* @Metaclass_new(%Metaclass* null, %String* %sk_str, %Object* bitcast ([23 x i8*]* @shiika_vtable_Metaclass to %Object*), %Metaclass* %"::Metaclass") | |
%sk_str1 = call %String* @gen_literal_string(i8* getelementptr inbounds ([12 x i8], [12 x i8]* @str_21, i32 0, i32 0), i64 11) | |
%result2 = call %Class.0* @Meta_Class_new(%Class.0* null, %String* %sk_str1, %Object* bitcast ([23 x i8*]* @"shiika_vtable_Meta:Dict::Table" to %Object*), %Metaclass* %result) | |
%as = bitcast %Class.0* %result2 to %"Dict::Table"* | |
store %"Dict::Table"* %as, %"Dict::Table"** @"::Dict::Table", align 8 | |
br label %End | |
End: ; preds = %0 | |
ret void | |
} | |
define void @init_Result() { | |
%"::Metaclass" = load %Metaclass*, %Metaclass** @"::Metaclass", align 8 | |
%sk_str = call %String* @gen_literal_string(i8* getelementptr inbounds ([7 x i8], [7 x i8]* @str_22, i32 0, i32 0), i64 6) | |
%result = call %Metaclass* @Metaclass_new(%Metaclass* null, %String* %sk_str, %Object* bitcast ([23 x i8*]* @shiika_vtable_Metaclass to %Object*), %Metaclass* %"::Metaclass") | |
%sk_str1 = call %String* @gen_literal_string(i8* getelementptr inbounds ([7 x i8], [7 x i8]* @str_22, i32 0, i32 0), i64 6) | |
%result2 = call %Class.0* @Meta_Class_new(%Class.0* null, %String* %sk_str1, %Object* bitcast ([22 x i8*]* @"shiika_vtable_Meta:Result" to %Object*), %Metaclass* %result) | |
%as = bitcast %Class.0* %result2 to %Result* | |
store %Result* %as, %Result** @"::Result", align 8 | |
br label %End | |
End: ; preds = %0 | |
ret void | |
} | |
define void @"init_Shiika::Internal::Ptr"() { | |
%"::Metaclass" = load %Metaclass*, %Metaclass** @"::Metaclass", align 8 | |
%sk_str = call %String* @gen_literal_string(i8* getelementptr inbounds ([22 x i8], [22 x i8]* @str_23, i32 0, i32 0), i64 21) | |
%result = call %Metaclass* @Metaclass_new(%Metaclass* null, %String* %sk_str, %Object* bitcast ([23 x i8*]* @shiika_vtable_Metaclass to %Object*), %Metaclass* %"::Metaclass") | |
%sk_str1 = call %String* @gen_literal_string(i8* getelementptr inbounds ([22 x i8], [22 x i8]* @str_23, i32 0, i32 0), i64 21) | |
%result2 = call %Class.0* @Meta_Class_new(%Class.0* null, %String* %sk_str1, %Object* bitcast ([22 x i8*]* @"shiika_vtable_Meta:Shiika::Internal::Ptr" to %Object*), %Metaclass* %result) | |
%as = bitcast %Class.0* %result2 to %"Shiika::Internal::Ptr"* | |
store %"Shiika::Internal::Ptr"* %as, %"Shiika::Internal::Ptr"** @"::Shiika::Internal::Ptr", align 8 | |
br label %End | |
End: ; preds = %0 | |
ret void | |
} | |
define void @init_Array() { | |
%"::Metaclass" = load %Metaclass*, %Metaclass** @"::Metaclass", align 8 | |
%sk_str = call %String* @gen_literal_string(i8* getelementptr inbounds ([6 x i8], [6 x i8]* @str_24, i32 0, i32 0), i64 5) | |
%result = call %Metaclass* @Metaclass_new(%Metaclass* null, %String* %sk_str, %Object* bitcast ([23 x i8*]* @shiika_vtable_Metaclass to %Object*), %Metaclass* %"::Metaclass") | |
%sk_str1 = call %String* @gen_literal_string(i8* getelementptr inbounds ([6 x i8], [6 x i8]* @str_24, i32 0, i32 0), i64 5) | |
%result2 = call %Class.0* @Meta_Class_new(%Class.0* null, %String* %sk_str1, %Object* bitcast ([25 x i8*]* @"shiika_vtable_Meta:Array" to %Object*), %Metaclass* %result) | |
%as = bitcast %Class.0* %result2 to %Array* | |
store %Array* %as, %Array** @"::Array", align 8 | |
br label %End | |
End: ; preds = %0 | |
ret void | |
} | |
define void @init_Object() { | |
%"::Metaclass" = load %Metaclass*, %Metaclass** @"::Metaclass", align 8 | |
%sk_str = call %String* @gen_literal_string(i8* getelementptr inbounds ([7 x i8], [7 x i8]* @str_25, i32 0, i32 0), i64 6) | |
%result = call %Metaclass* @Metaclass_new(%Metaclass* null, %String* %sk_str, %Object* bitcast ([23 x i8*]* @shiika_vtable_Metaclass to %Object*), %Metaclass* %"::Metaclass") | |
%sk_str1 = call %String* @gen_literal_string(i8* getelementptr inbounds ([7 x i8], [7 x i8]* @str_25, i32 0, i32 0), i64 6) | |
%result2 = call %Class.0* @Meta_Class_new(%Class.0* null, %String* %sk_str1, %Object* bitcast ([23 x i8*]* @"shiika_vtable_Meta:Object" to %Object*), %Metaclass* %result) | |
%as = bitcast %Class.0* %result2 to %Object* | |
store %Object* %as, %Object** @"::Object", align 8 | |
br label %End | |
End: ; preds = %0 | |
ret void | |
} | |
define void @init_Void() { | |
%"::Metaclass" = load %Metaclass*, %Metaclass** @"::Metaclass", align 8 | |
%sk_str = call %String* @gen_literal_string(i8* getelementptr inbounds ([5 x i8], [5 x i8]* @str_26, i32 0, i32 0), i64 4) | |
%result = call %Metaclass* @Metaclass_new(%Metaclass* null, %String* %sk_str, %Object* bitcast ([23 x i8*]* @shiika_vtable_Metaclass to %Object*), %Metaclass* %"::Metaclass") | |
%sk_str1 = call %String* @gen_literal_string(i8* getelementptr inbounds ([5 x i8], [5 x i8]* @str_26, i32 0, i32 0), i64 4) | |
%result2 = call %Class.0* @Meta_Class_new(%Class.0* null, %String* %sk_str1, %Object* bitcast ([23 x i8*]* @"shiika_vtable_Meta:Void" to %Object*), %Metaclass* %result) | |
%as = bitcast %Class.0* %result2 to %Void* | |
br label %"Invoke_Meta:Void#new" | |
End: ; preds = %"Invoke_Meta:Void#new_end" | |
ret void | |
"Invoke_Meta:Void#new": ; preds = %0 | |
%addr_vtable = getelementptr inbounds %Void, %Void* %as, i32 0, i32 0 | |
%vtable = load i8*, i8** %addr_vtable, align 8 | |
%vtable_ptr = bitcast i8* %vtable to [23 x i8*]* | |
%vtable3 = load [23 x i8*], [23 x i8*]* %vtable_ptr, align 8 | |
%func_raw = extractvalue [23 x i8*] %vtable3, 22 | |
%func = bitcast i8* %func_raw to %Void* (%Void*)* | |
%result4 = call %Void* %func(%Void* %as) | |
br label %"Invoke_Meta:Void#new_end" | |
"Invoke_Meta:Void#new_end": ; preds = %"Invoke_Meta:Void#new" | |
store %Void* %result4, %Void** @"::Void", align 8 | |
br label %End | |
} | |
define void @init_Enumerable() { | |
%"::Metaclass" = load %Metaclass*, %Metaclass** @"::Metaclass", align 8 | |
%sk_str = call %String* @gen_literal_string(i8* getelementptr inbounds ([11 x i8], [11 x i8]* @str_27, i32 0, i32 0), i64 10) | |
%result = call %Metaclass* @Metaclass_new(%Metaclass* null, %String* %sk_str, %Object* bitcast ([23 x i8*]* @shiika_vtable_Metaclass to %Object*), %Metaclass* %"::Metaclass") | |
%sk_str1 = call %String* @gen_literal_string(i8* getelementptr inbounds ([11 x i8], [11 x i8]* @str_27, i32 0, i32 0), i64 10) | |
%result2 = call %Class.0* @Meta_Class_new(%Class.0* null, %String* %sk_str1, %Object* bitcast ([22 x i8*]* @"shiika_vtable_Meta:Enumerable" to %Object*), %Metaclass* %result) | |
%as = bitcast %Class.0* %result2 to %Enumerable* | |
store %Enumerable* %as, %Enumerable** @"::Enumerable", align 8 | |
br label %End | |
End: ; preds = %0 | |
ret void | |
} | |
define void @init_Fn5() { | |
%"::Metaclass" = load %Metaclass*, %Metaclass** @"::Metaclass", align 8 | |
%sk_str = call %String* @gen_literal_string(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @str_28, i32 0, i32 0), i64 3) | |
%result = call %Metaclass* @Metaclass_new(%Metaclass* null, %String* %sk_str, %Object* bitcast ([23 x i8*]* @shiika_vtable_Metaclass to %Object*), %Metaclass* %"::Metaclass") | |
%sk_str1 = call %String* @gen_literal_string(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @str_28, i32 0, i32 0), i64 3) | |
%result2 = call %Class.0* @Meta_Class_new(%Class.0* null, %String* %sk_str1, %Object* bitcast ([23 x i8*]* @"shiika_vtable_Meta:Fn5" to %Object*), %Metaclass* %result) | |
%as = bitcast %Class.0* %result2 to %Fn5* | |
store %Fn5* %as, %Fn5** @"::Fn5", align 8 | |
br label %End | |
End: ; preds = %0 | |
ret void | |
} | |
define void @"init_Maybe::Some"() { | |
%"::Metaclass" = load %Metaclass*, %Metaclass** @"::Metaclass", align 8 | |
%sk_str = call %String* @gen_literal_string(i8* getelementptr inbounds ([12 x i8], [12 x i8]* @str_29, i32 0, i32 0), i64 11) | |
%result = call %Metaclass* @Metaclass_new(%Metaclass* null, %String* %sk_str, %Object* bitcast ([23 x i8*]* @shiika_vtable_Metaclass to %Object*), %Metaclass* %"::Metaclass") | |
%sk_str1 = call %String* @gen_literal_string(i8* getelementptr inbounds ([12 x i8], [12 x i8]* @str_29, i32 0, i32 0), i64 11) | |
%result2 = call %Class.0* @Meta_Class_new(%Class.0* null, %String* %sk_str1, %Object* bitcast ([23 x i8*]* @"shiika_vtable_Meta:Maybe::Some" to %Object*), %Metaclass* %result) | |
%as = bitcast %Class.0* %result2 to %"Maybe::Some"* | |
store %"Maybe::Some"* %as, %"Maybe::Some"** @"::Maybe::Some", align 8 | |
br label %End | |
End: ; preds = %0 | |
ret void | |
} | |
define void @init_Triple() { | |
%"::Metaclass" = load %Metaclass*, %Metaclass** @"::Metaclass", align 8 | |
%sk_str = call %String* @gen_literal_string(i8* getelementptr inbounds ([7 x i8], [7 x i8]* @str_30, i32 0, i32 0), i64 6) | |
%result = call %Metaclass* @Metaclass_new(%Metaclass* null, %String* %sk_str, %Object* bitcast ([23 x i8*]* @shiika_vtable_Metaclass to %Object*), %Metaclass* %"::Metaclass") | |
%sk_str1 = call %String* @gen_literal_string(i8* getelementptr inbounds ([7 x i8], [7 x i8]* @str_30, i32 0, i32 0), i64 6) | |
%result2 = call %Class.0* @Meta_Class_new(%Class.0* null, %String* %sk_str1, %Object* bitcast ([23 x i8*]* @"shiika_vtable_Meta:Triple" to %Object*), %Metaclass* %result) | |
%as = bitcast %Class.0* %result2 to %Triple* | |
store %Triple* %as, %Triple** @"::Triple", align 8 | |
br label %End | |
End: ; preds = %0 | |
ret void | |
} | |
define void @init_Error() { | |
%"::Metaclass" = load %Metaclass*, %Metaclass** @"::Metaclass", align 8 | |
%sk_str = call %String* @gen_literal_string(i8* getelementptr inbounds ([6 x i8], [6 x i8]* @str_31, i32 0, i32 0), i64 5) | |
%result = call %Metaclass* @Metaclass_new(%Metaclass* null, %String* %sk_str, %Object* bitcast ([23 x i8*]* @shiika_vtable_Metaclass to %Object*), %Metaclass* %"::Metaclass") | |
%sk_str1 = call %String* @gen_literal_string(i8* getelementptr inbounds ([6 x i8], [6 x i8]* @str_31, i32 0, i32 0), i64 5) | |
%result2 = call %Class.0* @Meta_Class_new(%Class.0* null, %String* %sk_str1, %Object* bitcast ([23 x i8*]* @"shiika_vtable_Meta:Error" to %Object*), %Metaclass* %result) | |
%as = bitcast %Class.0* %result2 to %Error* | |
store %Error* %as, %Error** @"::Error", align 8 | |
br label %End | |
End: ; preds = %0 | |
ret void | |
} | |
define void @init_MutableString() { | |
%"::Metaclass" = load %Metaclass*, %Metaclass** @"::Metaclass", align 8 | |
%sk_str = call %String* @gen_literal_string(i8* getelementptr inbounds ([14 x i8], [14 x i8]* @str_32, i32 0, i32 0), i64 13) | |
%result = call %Metaclass* @Metaclass_new(%Metaclass* null, %String* %sk_str, %Object* bitcast ([23 x i8*]* @shiika_vtable_Metaclass to %Object*), %Metaclass* %"::Metaclass") | |
%sk_str1 = call %String* @gen_literal_string(i8* getelementptr inbounds ([14 x i8], [14 x i8]* @str_32, i32 0, i32 0), i64 13) | |
%result2 = call %Class.0* @Meta_Class_new(%Class.0* null, %String* %sk_str1, %Object* bitcast ([23 x i8*]* @"shiika_vtable_Meta:MutableString" to %Object*), %Metaclass* %result) | |
%as = bitcast %Class.0* %result2 to %MutableString* | |
store %MutableString* %as, %MutableString** @"::MutableString", align 8 | |
br label %End | |
End: ; preds = %0 | |
ret void | |
} | |
define void @init_Metaclass() { | |
%mem = call i8* @shiika_malloc(i64 mul nuw (i64 ptrtoint (i1** getelementptr (i1*, i1** null, i32 1) to i64), i64 5)) | |
%the_metaclass = bitcast i8* %mem to %Metaclass* | |
%addr_vtable = getelementptr inbounds %Metaclass, %Metaclass* %the_metaclass, i32 0, i32 0 | |
store i8* bitcast ([23 x i8*]* @shiika_vtable_Metaclass to i8*), i8** %addr_vtable, align 8 | |
%addr_my_class = getelementptr inbounds %Metaclass, %Metaclass* %the_metaclass, i32 0, i32 1 | |
store %Class.0* null, %Class.0** %addr_my_class, align 8 | |
%sk_str = call %String* @gen_literal_string(i8* getelementptr inbounds ([10 x i8], [10 x i8]* @str_33, i32 0, i32 0), i64 9) | |
%"addr_@name" = getelementptr inbounds %Metaclass, %Metaclass* %the_metaclass, i32 0, i32 2 | |
store %String* %sk_str, %String** %"addr_@name", align 8 | |
%class = bitcast %Metaclass* %the_metaclass to %Class.0* | |
%addr_my_class1 = getelementptr inbounds %Metaclass, %Metaclass* %the_metaclass, i32 0, i32 1 | |
store %Class.0* %class, %Class.0** %addr_my_class1, align 8 | |
store %Metaclass* %the_metaclass, %Metaclass** @"::Metaclass", align 8 | |
br label %End | |
End: ; preds = %0 | |
ret void | |
} | |
define void @init_Fn6() { | |
%"::Metaclass" = load %Metaclass*, %Metaclass** @"::Metaclass", align 8 | |
%sk_str = call %String* @gen_literal_string(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @str_34, i32 0, i32 0), i64 3) | |
%result = call %Metaclass* @Metaclass_new(%Metaclass* null, %String* %sk_str, %Object* bitcast ([23 x i8*]* @shiika_vtable_Metaclass to %Object*), %Metaclass* %"::Metaclass") | |
%sk_str1 = call %String* @gen_literal_string(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @str_34, i32 0, i32 0), i64 3) | |
%result2 = call %Class.0* @Meta_Class_new(%Class.0* null, %String* %sk_str1, %Object* bitcast ([23 x i8*]* @"shiika_vtable_Meta:Fn6" to %Object*), %Metaclass* %result) | |
%as = bitcast %Class.0* %result2 to %Fn6* | |
store %Fn6* %as, %Fn6** @"::Fn6", align 8 | |
br label %End | |
End: ; preds = %0 | |
ret void | |
} | |
define void @"init_Result::Ok"() { | |
%"::Metaclass" = load %Metaclass*, %Metaclass** @"::Metaclass", align 8 | |
%sk_str = call %String* @gen_literal_string(i8* getelementptr inbounds ([11 x i8], [11 x i8]* @str_35, i32 0, i32 0), i64 10) | |
%result = call %Metaclass* @Metaclass_new(%Metaclass* null, %String* %sk_str, %Object* bitcast ([23 x i8*]* @shiika_vtable_Metaclass to %Object*), %Metaclass* %"::Metaclass") | |
%sk_str1 = call %String* @gen_literal_string(i8* getelementptr inbounds ([11 x i8], [11 x i8]* @str_35, i32 0, i32 0), i64 10) | |
%result2 = call %Class.0* @Meta_Class_new(%Class.0* null, %String* %sk_str1, %Object* bitcast ([23 x i8*]* @"shiika_vtable_Meta:Result::Ok" to %Object*), %Metaclass* %result) | |
%as = bitcast %Class.0* %result2 to %"Result::Ok"* | |
store %"Result::Ok"* %as, %"Result::Ok"** @"::Result::Ok", align 8 | |
br label %End | |
End: ; preds = %0 | |
ret void | |
} | |
define void @init_Bool() { | |
%"::Metaclass" = load %Metaclass*, %Metaclass** @"::Metaclass", align 8 | |
%sk_str = call %String* @gen_literal_string(i8* getelementptr inbounds ([5 x i8], [5 x i8]* @str_36, i32 0, i32 0), i64 4) | |
%result = call %Metaclass* @Metaclass_new(%Metaclass* null, %String* %sk_str, %Object* bitcast ([23 x i8*]* @shiika_vtable_Metaclass to %Object*), %Metaclass* %"::Metaclass") | |
%sk_str1 = call %String* @gen_literal_string(i8* getelementptr inbounds ([5 x i8], [5 x i8]* @str_36, i32 0, i32 0), i64 4) | |
%result2 = call %Class.0* @Meta_Class_new(%Class.0* null, %String* %sk_str1, %Object* bitcast ([23 x i8*]* @"shiika_vtable_Meta:Bool" to %Object*), %Metaclass* %result) | |
%as = bitcast %Class.0* %result2 to %Bool* | |
store %Bool* %as, %Bool** @"::Bool", align 8 | |
br label %End | |
End: ; preds = %0 | |
ret void | |
} | |
define void @init_Never() { | |
%"::Metaclass" = load %Metaclass*, %Metaclass** @"::Metaclass", align 8 | |
%sk_str = call %String* @gen_literal_string(i8* getelementptr inbounds ([6 x i8], [6 x i8]* @str_37, i32 0, i32 0), i64 5) | |
%result = call %Metaclass* @Metaclass_new(%Metaclass* null, %String* %sk_str, %Object* bitcast ([23 x i8*]* @shiika_vtable_Metaclass to %Object*), %Metaclass* %"::Metaclass") | |
%sk_str1 = call %String* @gen_literal_string(i8* getelementptr inbounds ([6 x i8], [6 x i8]* @str_37, i32 0, i32 0), i64 5) | |
%result2 = call %Class.0* @Meta_Class_new(%Class.0* null, %String* %sk_str1, %Object* bitcast ([22 x i8*]* @"shiika_vtable_Meta:Never" to %Object*), %Metaclass* %result) | |
%as = bitcast %Class.0* %result2 to %Never* | |
store %Never* %as, %Never** @"::Never", align 8 | |
br label %End | |
End: ; preds = %0 | |
ret void | |
} | |
define void @"init_Fn::EXIT_NORMAL"() { | |
%sk_int = call %Int* @box_int(i64 0) | |
store %Int* %sk_int, %Int** @"::Fn::EXIT_NORMAL", align 8 | |
br label %End | |
End: ; preds = %0 | |
ret void | |
} | |
define void @"init_Fn::EXIT_BREAK"() { | |
%sk_int = call %Int* @box_int(i64 1) | |
store %Int* %sk_int, %Int** @"::Fn::EXIT_BREAK", align 8 | |
br label %End | |
End: ; preds = %0 | |
ret void | |
} | |
define void @init_Some() { | |
%"::Maybe::Some" = load %"Maybe::Some"*, %"Maybe::Some"** @"::Maybe::Some", align 8 | |
store %"Maybe::Some"* %"::Maybe::Some", %"Maybe::Some"** @"::Some", align 8 | |
br label %End | |
End: ; preds = %0 | |
ret void | |
} | |
define void @init_None() { | |
%"::Maybe::None" = load %"Maybe::None"*, %"Maybe::None"** @"::Maybe::None", align 8 | |
store %"Maybe::None"* %"::Maybe::None", %"Maybe::None"** @"::None", align 8 | |
br label %End | |
End: ; preds = %0 | |
ret void | |
} | |
define void @"init_Array::BYTES_OF_PTR"() { | |
%sk_int = call %Int* @box_int(i64 8) | |
store %Int* %sk_int, %Int** @"::Array::BYTES_OF_PTR", align 8 | |
br label %End | |
End: ; preds = %0 | |
ret void | |
} | |
define void @"init_Array::INITIAL_CAPA"() { | |
%sk_int = call %Int* @box_int(i64 10) | |
store %Int* %sk_int, %Int** @"::Array::INITIAL_CAPA", align 8 | |
br label %End | |
End: ; preds = %0 | |
ret void | |
} | |
define void @"init_Dict::N_TABLES"() { | |
%sk_int = call %Int* @box_int(i64 1000) | |
store %Int* %sk_int, %Int** @"::Dict::N_TABLES", align 8 | |
br label %End | |
End: ; preds = %0 | |
ret void | |
} | |
define void @"init_MutableString::INITIAL_STR_CAPA"() { | |
%sk_int = call %Int* @box_int(i64 10) | |
store %Int* %sk_int, %Int** @"::MutableString::INITIAL_STR_CAPA", align 8 | |
br label %End | |
End: ; preds = %0 | |
ret void | |
} | |
define void @init_Ok() { | |
%"::Result::Ok" = load %"Result::Ok"*, %"Result::Ok"** @"::Result::Ok", align 8 | |
store %"Result::Ok"* %"::Result::Ok", %"Result::Ok"** @"::Ok", align 8 | |
br label %End | |
End: ; preds = %0 | |
ret void | |
} | |
define void @init_Fail() { | |
%"::Result::Fail" = load %"Result::Fail"*, %"Result::Fail"** @"::Result::Fail", align 8 | |
store %"Result::Fail"* %"::Result::Fail", %"Result::Fail"** @"::Fail", align 8 | |
br label %End | |
End: ; preds = %0 | |
ret void | |
} | |
define void @builtin_init_constants() { | |
call void @init_Metaclass() | |
call void @init_Class() | |
call void @"init_Shiika::Internal::Ptr"() | |
call void @init_Fn2() | |
call void @"init_Maybe::None"() | |
call void @init_Pair() | |
call void @init_Int() | |
call void @"init_Shiika::Internal::Memory"() | |
call void @init_Math() | |
call void @init_Fn() | |
call void @init_Maybe() | |
call void @init_Dict() | |
call void @init_Fn7() | |
call void @init_Fn1() | |
call void @init_Fn0() | |
call void @init_Fn8() | |
call void @init_Fn9() | |
call void @init_Fn4() | |
call void @init_File() | |
call void @init_Float() | |
call void @init_String() | |
call void @init_Fn3() | |
call void @"init_Result::Fail"() | |
call void @"init_Dict::Table"() | |
call void @init_Result() | |
call void @init_Array() | |
call void @init_Object() | |
call void @init_Void() | |
call void @init_Enumerable() | |
call void @init_Fn5() | |
call void @"init_Maybe::Some"() | |
call void @init_Triple() | |
call void @init_Error() | |
call void @init_MutableString() | |
call void @init_Fn6() | |
call void @"init_Result::Ok"() | |
call void @init_Bool() | |
call void @init_Never() | |
call void @"init_Fn::EXIT_NORMAL"() | |
call void @"init_Fn::EXIT_BREAK"() | |
call void @init_Some() | |
call void @init_None() | |
call void @"init_Array::BYTES_OF_PTR"() | |
call void @"init_Array::INITIAL_CAPA"() | |
call void @"init_Dict::N_TABLES"() | |
call void @"init_MutableString::INITIAL_STR_CAPA"() | |
call void @init_Ok() | |
call void @init_Fail() | |
ret void | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment