mem: typed allocation helpers + drop bare malloc/free (Phase 2.2); resolve 0119 as |>-contract clarification

This commit is contained in:
agra
2026-06-11 16:17:39 +03:00
parent 3e10809d7e
commit 84e0fb0752
51 changed files with 33256 additions and 32716 deletions

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1 @@
0

View File

@@ -0,0 +1 @@

View File

@@ -0,0 +1,8 @@
create: 7 42
pipe-create: 1
alloc: 10 40 len=4
clone: 10 (orig 99)
resize: 20 60 len=6
shrink: 99 20 len=2
realloc: 1234
TrackingAllocator: allocs=8 deallocs=8 outstanding=0 total_alloc_bytes=184

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -12,6 +12,9 @@ declare ptr @memcpy(ptr, ptr, i64)
declare ptr @memset(ptr, i32, i64)
; Function Attrs: nounwind
declare ptr @mem_realloc(ptr, ptr, ptr, i64, i64, i64) #0
; Function Attrs: nounwind
define internal ptr @CAllocator.alloc_bytes(ptr %0, ptr %1, i64 %2) #0 {
entry:
@@ -130,64 +133,67 @@ declare ptr @any_to_string(ptr, [2 x i64]) #0
declare ptr @build_format(ptr, ptr) #0
; Function Attrs: nounwind
declare ptr @CAllocator.alloc_bytes.1(ptr, ptr, i64) #0
declare ptr @mem_realloc.1(ptr, ptr, ptr, i64, i64, i64) #0
; Function Attrs: nounwind
declare void @CAllocator.dealloc_bytes.2(ptr, ptr, ptr) #0
declare ptr @CAllocator.alloc_bytes.2(ptr, ptr, i64) #0
; Function Attrs: nounwind
declare i64 @GPA.init.3(ptr) #0
declare void @CAllocator.dealloc_bytes.3(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare ptr @GPA.alloc_bytes.4(ptr, ptr, i64) #0
declare i64 @GPA.init.4(ptr) #0
; Function Attrs: nounwind
declare void @GPA.dealloc_bytes.5(ptr, ptr, ptr) #0
declare ptr @GPA.alloc_bytes.5(ptr, ptr, i64) #0
; Function Attrs: nounwind
declare void @Arena.add_chunk.6(ptr, ptr, i64) #0
declare void @GPA.dealloc_bytes.6(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare void @Arena.init.7(ptr sret({ ptr, i64, { ptr, ptr, ptr } }), ptr, ptr, i64) #0
declare void @Arena.add_chunk.7(ptr, ptr, i64) #0
; Function Attrs: nounwind
declare void @Arena.reset.8(ptr, ptr) #0
declare void @Arena.init.8(ptr sret({ ptr, i64, { ptr, ptr, ptr } }), ptr, ptr, i64) #0
; Function Attrs: nounwind
declare void @Arena.deinit.9(ptr, ptr) #0
declare void @Arena.reset.9(ptr, ptr) #0
; Function Attrs: nounwind
declare ptr @Arena.alloc_bytes.10(ptr, ptr, i64) #0
declare void @Arena.deinit.10(ptr, ptr) #0
; Function Attrs: nounwind
declare void @Arena.dealloc_bytes.11(ptr, ptr, ptr) #0
declare ptr @Arena.alloc_bytes.11(ptr, ptr, i64) #0
; Function Attrs: nounwind
declare ptr @BufAlloc.init.12(ptr, ptr, i64) #0
declare void @Arena.dealloc_bytes.12(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare void @BufAlloc.reset.13(ptr, ptr) #0
declare ptr @BufAlloc.init.13(ptr, ptr, i64) #0
; Function Attrs: nounwind
declare ptr @BufAlloc.alloc_bytes.14(ptr, ptr, i64) #0
declare void @BufAlloc.reset.14(ptr, ptr) #0
; Function Attrs: nounwind
declare void @BufAlloc.dealloc_bytes.15(ptr, ptr, ptr) #0
declare ptr @BufAlloc.alloc_bytes.15(ptr, ptr, i64) #0
; Function Attrs: nounwind
declare void @TrackingAllocator.init.16(ptr sret({ { ptr, ptr, ptr }, i64, i64, i64 }), ptr, ptr) #0
declare void @BufAlloc.dealloc_bytes.16(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare i64 @TrackingAllocator.leak_count.17(ptr, ptr) #0
declare void @TrackingAllocator.init.17(ptr sret({ { ptr, ptr, ptr }, i64, i64, i64 }), ptr, ptr) #0
; Function Attrs: nounwind
declare void @TrackingAllocator.report.18(ptr, ptr) #0
declare i64 @TrackingAllocator.leak_count.18(ptr, ptr) #0
; Function Attrs: nounwind
declare ptr @TrackingAllocator.alloc_bytes.19(ptr, ptr, i64) #0
declare void @TrackingAllocator.report.19(ptr, ptr) #0
; Function Attrs: nounwind
declare void @TrackingAllocator.dealloc_bytes.20(ptr, ptr, ptr) #0
declare ptr @TrackingAllocator.alloc_bytes.20(ptr, ptr, i64) #0
; Function Attrs: nounwind
declare void @TrackingAllocator.dealloc_bytes.21(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare ptr @escape(ptr, ptr) #0
@@ -363,163 +369,166 @@ declare i32 @listen(i32, i32) #0
declare i32 @accept(i32, ptr, ptr) #0
; Function Attrs: nounwind
declare i64 @read.21(i32, ptr, i64) #0
declare i64 @read.22(i32, ptr, i64) #0
; Function Attrs: nounwind
declare i32 @close.22(i32) #0
declare i32 @close.23(i32) #0
; Function Attrs: nounwind
declare i16 @htons(ptr, i64) #0
; Function Attrs: nounwind
declare ptr @CAllocator.alloc_bytes.23(ptr, ptr, i64) #0
declare ptr @mem_realloc.24(ptr, ptr, ptr, i64, i64, i64) #0
; Function Attrs: nounwind
declare void @CAllocator.dealloc_bytes.24(ptr, ptr, ptr) #0
declare ptr @CAllocator.alloc_bytes.25(ptr, ptr, i64) #0
; Function Attrs: nounwind
declare i64 @GPA.init.25(ptr) #0
declare void @CAllocator.dealloc_bytes.26(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare ptr @GPA.alloc_bytes.26(ptr, ptr, i64) #0
declare i64 @GPA.init.27(ptr) #0
; Function Attrs: nounwind
declare void @GPA.dealloc_bytes.27(ptr, ptr, ptr) #0
declare ptr @GPA.alloc_bytes.28(ptr, ptr, i64) #0
; Function Attrs: nounwind
declare void @Arena.add_chunk.28(ptr, ptr, i64) #0
declare void @GPA.dealloc_bytes.29(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare void @Arena.init.29(ptr sret({ ptr, i64, { ptr, ptr, ptr } }), ptr, ptr, i64) #0
declare void @Arena.add_chunk.30(ptr, ptr, i64) #0
; Function Attrs: nounwind
declare void @Arena.reset.30(ptr, ptr) #0
declare void @Arena.init.31(ptr sret({ ptr, i64, { ptr, ptr, ptr } }), ptr, ptr, i64) #0
; Function Attrs: nounwind
declare void @Arena.deinit.31(ptr, ptr) #0
declare void @Arena.reset.32(ptr, ptr) #0
; Function Attrs: nounwind
declare ptr @Arena.alloc_bytes.32(ptr, ptr, i64) #0
declare void @Arena.deinit.33(ptr, ptr) #0
; Function Attrs: nounwind
declare void @Arena.dealloc_bytes.33(ptr, ptr, ptr) #0
declare ptr @Arena.alloc_bytes.34(ptr, ptr, i64) #0
; Function Attrs: nounwind
declare ptr @BufAlloc.init.34(ptr, ptr, i64) #0
declare void @Arena.dealloc_bytes.35(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare void @BufAlloc.reset.35(ptr, ptr) #0
declare ptr @BufAlloc.init.36(ptr, ptr, i64) #0
; Function Attrs: nounwind
declare ptr @BufAlloc.alloc_bytes.36(ptr, ptr, i64) #0
declare void @BufAlloc.reset.37(ptr, ptr) #0
; Function Attrs: nounwind
declare void @BufAlloc.dealloc_bytes.37(ptr, ptr, ptr) #0
declare ptr @BufAlloc.alloc_bytes.38(ptr, ptr, i64) #0
; Function Attrs: nounwind
declare void @TrackingAllocator.init.38(ptr sret({ { ptr, ptr, ptr }, i64, i64, i64 }), ptr, ptr) #0
declare void @BufAlloc.dealloc_bytes.39(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare i64 @TrackingAllocator.leak_count.39(ptr, ptr) #0
declare void @TrackingAllocator.init.40(ptr sret({ { ptr, ptr, ptr }, i64, i64, i64 }), ptr, ptr) #0
; Function Attrs: nounwind
declare void @TrackingAllocator.report.40(ptr, ptr) #0
declare i64 @TrackingAllocator.leak_count.41(ptr, ptr) #0
; Function Attrs: nounwind
declare ptr @TrackingAllocator.alloc_bytes.41(ptr, ptr, i64) #0
declare void @TrackingAllocator.report.42(ptr, ptr) #0
; Function Attrs: nounwind
declare void @TrackingAllocator.dealloc_bytes.42(ptr, ptr, ptr) #0
declare ptr @TrackingAllocator.alloc_bytes.43(ptr, ptr, i64) #0
; Function Attrs: nounwind
declare i32 @open.43(ptr, i32, ...) #0
declare void @TrackingAllocator.dealloc_bytes.44(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare i32 @close.44(i32) #0
declare i32 @open.45(ptr, i32, ...) #0
; Function Attrs: nounwind
declare i64 @read.45(i32, ptr, i64) #0
declare i32 @close.46(i32) #0
; Function Attrs: nounwind
declare i64 @lseek.46(i32, i64, i32) #0
declare i64 @read.47(i32, ptr, i64) #0
; Function Attrs: nounwind
declare i32 @unlink.47(ptr) #0
declare i64 @lseek.48(i32, i64, i32) #0
; Function Attrs: nounwind
declare i32 @rmdir.48(ptr) #0
declare i32 @unlink.49(ptr) #0
; Function Attrs: nounwind
declare i32 @mkdir.49(ptr, i32) #0
declare i32 @rmdir.50(ptr) #0
; Function Attrs: nounwind
declare i32 @access.50(ptr, i32) #0
declare i32 @mkdir.51(ptr, i32) #0
; Function Attrs: nounwind
declare i32 @chmod.51(ptr, i32) #0
declare i32 @access.52(ptr, i32) #0
; Function Attrs: nounwind
declare i32 @rename.52(ptr, ptr) #0
declare i32 @chmod.53(ptr, i32) #0
; Function Attrs: nounwind
declare i1 @File.is_valid.53(ptr, ptr) #0
declare i32 @rename.54(ptr, ptr) #0
; Function Attrs: nounwind
declare i1 @File.close.54(ptr, ptr) #0
declare i1 @File.is_valid.55(ptr, ptr) #0
; Function Attrs: nounwind
declare i64 @File.read.55(ptr, ptr, ptr) #0
declare i1 @File.close.56(ptr, ptr) #0
; Function Attrs: nounwind
declare i64 @File.write.56(ptr, ptr, ptr) #0
declare i64 @File.read.57(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare i64 @File.seek.57(ptr, ptr, i64, i64) #0
declare i64 @File.write.58(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare i32 @mode_to_flags.58(ptr, i64) #0
declare i64 @File.seek.59(ptr, ptr, i64, i64) #0
; Function Attrs: nounwind
declare i64 @open_file.59(ptr, ptr, i64) #0
declare i32 @mode_to_flags.60(ptr, i64) #0
; Function Attrs: nounwind
declare void @read_file.60(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0
declare i64 @open_file.61(ptr, ptr, i64) #0
; Function Attrs: nounwind
declare i1 @write_file.61(ptr, ptr, ptr) #0
declare void @read_file.62(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0
; Function Attrs: nounwind
declare i1 @append_file.62(ptr, ptr, ptr) #0
declare i1 @write_file.63(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare i1 @exists.63(ptr, ptr) #0
declare i1 @append_file.64(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare i1 @delete_file.64(ptr, ptr) #0
declare i1 @exists.65(ptr, ptr) #0
; Function Attrs: nounwind
declare i1 @delete_dir.65(ptr, ptr) #0
declare i1 @delete_file.66(ptr, ptr) #0
; Function Attrs: nounwind
declare i1 @create_dir.66(ptr, ptr) #0
declare i1 @delete_dir.67(ptr, ptr) #0
; Function Attrs: nounwind
declare i1 @set_mode.67(ptr, ptr, i32) #0
declare i1 @create_dir.68(ptr, ptr) #0
; Function Attrs: nounwind
declare i1 @move.68(ptr, ptr, ptr) #0
declare i1 @set_mode.69(ptr, ptr, i32) #0
; Function Attrs: nounwind
declare i1 @create_dir_all.69(ptr, ptr) #0
declare i1 @move.70(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare i1 @copy_file.70(ptr, ptr, ptr) #0
declare i1 @create_dir_all.71(ptr, ptr) #0
; Function Attrs: nounwind
declare ptr @basename.71(ptr, ptr) #0
declare i1 @copy_file.72(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare ptr @dirname.72(ptr, ptr) #0
declare ptr @basename.73(ptr, ptr) #0
; Function Attrs: nounwind
declare ptr @dirname.74(ptr, ptr) #0
; Function Attrs: nounwind
declare void @Array.add(ptr, ptr, ptr, ptr) #0
@@ -717,64 +726,64 @@ declare ptr @BuildOptions.jni_main_java_source_at(i64, i64) #0
declare i64 @build_options() #0
; Function Attrs: nounwind
declare ptr @spaces.73(ptr, i32) #0
declare ptr @spaces.75(ptr, i32) #0
; Function Attrs: nounwind
declare i32 @sx_trace_len.74() #0
declare i32 @sx_trace_len.76() #0
; Function Attrs: nounwind
declare i32 @sx_trace_truncated.75() #0
declare i32 @sx_trace_truncated.77() #0
; Function Attrs: nounwind
declare i64 @sx_trace_frame_at.76(i32) #0
declare i64 @sx_trace_frame_at.78(i32) #0
; Function Attrs: nounwind
declare ptr @to_string.77(ptr) #0
declare ptr @to_string.79(ptr) #0
; Function Attrs: nounwind
declare void @print_current.78(ptr) #0
declare void @print_current.80(ptr) #0
; Function Attrs: nounwind
declare void @print_interpreter_frames.79(ptr) #0
declare void @print_interpreter_frames.81(ptr) #0
; Function Attrs: nounwind
declare ptr @popen.80(ptr, ptr) #0
declare ptr @popen.82(ptr, ptr) #0
; Function Attrs: nounwind
declare i32 @pclose.81(ptr) #0
declare i32 @pclose.83(ptr) #0
; Function Attrs: nounwind
declare i64 @fread.82(ptr, i64, i64, ptr) #0
declare i64 @fread.84(ptr, i64, i64, ptr) #0
; Function Attrs: nounwind
declare i32 @feof.83(ptr) #0
declare i32 @feof.85(ptr) #0
; Function Attrs: nounwind
declare ptr @getenv.84(ptr) #0
declare ptr @getenv.86(ptr) #0
; Function Attrs: nounwind
declare i64 @strlen.85(ptr) #0
declare i64 @strlen.87(ptr) #0
; Function Attrs: nounwind
declare i32 @system.86(ptr) #0
declare i32 @system.88(ptr) #0
; Function Attrs: nounwind
declare void @run.87(ptr sret({ { i32, { ptr, i64 } }, i1 }), ptr, ptr) #0
declare void @run.89(ptr sret({ { i32, { ptr, i64 } }, i1 }), ptr, ptr) #0
; Function Attrs: nounwind
declare void @env.88(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0
declare void @env.90(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0
; Function Attrs: nounwind
declare void @find_executable.89(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0
declare void @find_executable.91(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0
; Function Attrs: nounwind
declare void @_exit.90(i32) #0
declare void @_exit.92(i32) #0
; Function Attrs: nounwind
declare void @exit.91(ptr, i8, ptr) #0
declare void @exit.93(ptr, i8, ptr) #0
; Function Attrs: nounwind
declare void @assert.92(ptr, i1, ptr, ptr) #0
declare void @assert.94(ptr, i1, ptr, ptr) #0
; Function Attrs: nounwind
declare ptr @_NSGetArgv() #0
@@ -804,97 +813,97 @@ declare ptr @Parsed.value_of(ptr, ptr, ptr) #0
declare i1 @is_long_flag(ptr, ptr) #0
; Function Attrs: nounwind
declare void @parse.93(ptr sret({ { { ptr, i64 }, { ptr, i64 }, i64, i1, { ptr, i64 }, { ptr, i64 }, [16 x { i1, { ptr, i64 } }] }, i32 }), ptr, ptr, ptr, ptr) #0
declare void @parse.95(ptr sret({ { { ptr, i64 }, { ptr, i64 }, i64, i1, { ptr, i64 }, { ptr, i64 }, [16 x { i1, { ptr, i64 } }] }, i32 }), ptr, ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare i32 @open.94(ptr, i32, ...) #0
declare i32 @open.96(ptr, i32, ...) #0
; Function Attrs: nounwind
declare i32 @close.95(i32) #0
declare i32 @close.97(i32) #0
; Function Attrs: nounwind
declare i64 @read.96(i32, ptr, i64) #0
declare i64 @read.98(i32, ptr, i64) #0
; Function Attrs: nounwind
declare i64 @lseek.97(i32, i64, i32) #0
declare i64 @lseek.99(i32, i64, i32) #0
; Function Attrs: nounwind
declare i32 @unlink.98(ptr) #0
declare i32 @unlink.100(ptr) #0
; Function Attrs: nounwind
declare i32 @rmdir.99(ptr) #0
declare i32 @rmdir.101(ptr) #0
; Function Attrs: nounwind
declare i32 @mkdir.100(ptr, i32) #0
declare i32 @mkdir.102(ptr, i32) #0
; Function Attrs: nounwind
declare i32 @access.101(ptr, i32) #0
declare i32 @access.103(ptr, i32) #0
; Function Attrs: nounwind
declare i32 @chmod.102(ptr, i32) #0
declare i32 @chmod.104(ptr, i32) #0
; Function Attrs: nounwind
declare i32 @rename.103(ptr, ptr) #0
declare i32 @rename.105(ptr, ptr) #0
; Function Attrs: nounwind
declare i1 @File.is_valid.104(ptr, ptr) #0
declare i1 @File.is_valid.106(ptr, ptr) #0
; Function Attrs: nounwind
declare i1 @File.close.105(ptr, ptr) #0
declare i1 @File.close.107(ptr, ptr) #0
; Function Attrs: nounwind
declare i64 @File.read.106(ptr, ptr, ptr) #0
declare i64 @File.read.108(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare i64 @File.write.107(ptr, ptr, ptr) #0
declare i64 @File.write.109(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare i64 @File.seek.108(ptr, ptr, i64, i64) #0
declare i64 @File.seek.110(ptr, ptr, i64, i64) #0
; Function Attrs: nounwind
declare i32 @mode_to_flags.109(ptr, i64) #0
declare i32 @mode_to_flags.111(ptr, i64) #0
; Function Attrs: nounwind
declare i64 @open_file.110(ptr, ptr, i64) #0
declare i64 @open_file.112(ptr, ptr, i64) #0
; Function Attrs: nounwind
declare void @read_file.111(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0
declare void @read_file.113(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0
; Function Attrs: nounwind
declare i1 @write_file.112(ptr, ptr, ptr) #0
declare i1 @write_file.114(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare i1 @append_file.113(ptr, ptr, ptr) #0
declare i1 @append_file.115(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare i1 @exists.114(ptr, ptr) #0
declare i1 @exists.116(ptr, ptr) #0
; Function Attrs: nounwind
declare i1 @delete_file.115(ptr, ptr) #0
declare i1 @delete_file.117(ptr, ptr) #0
; Function Attrs: nounwind
declare i1 @delete_dir.116(ptr, ptr) #0
declare i1 @delete_dir.118(ptr, ptr) #0
; Function Attrs: nounwind
declare i1 @create_dir.117(ptr, ptr) #0
declare i1 @create_dir.119(ptr, ptr) #0
; Function Attrs: nounwind
declare i1 @set_mode.118(ptr, ptr, i32) #0
declare i1 @set_mode.120(ptr, ptr, i32) #0
; Function Attrs: nounwind
declare i1 @move.119(ptr, ptr, ptr) #0
declare i1 @move.121(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare i1 @create_dir_all.120(ptr, ptr) #0
declare i1 @create_dir_all.122(ptr, ptr) #0
; Function Attrs: nounwind
declare i1 @copy_file.121(ptr, ptr, ptr) #0
declare i1 @copy_file.123(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare ptr @basename.122(ptr, ptr) #0
declare ptr @basename.124(ptr, ptr) #0
; Function Attrs: nounwind
declare ptr @dirname.123(ptr, ptr) #0
declare ptr @dirname.125(ptr, ptr) #0
; Function Attrs: nounwind
declare i64 @rotr(ptr, i64, i64) #0
@@ -933,7 +942,7 @@ declare [64 x i8] @sha256_hex(ptr, ptr) #0
declare void @sha256_file(ptr sret({ [64 x i8], i1 }), ptr, ptr) #0
; Function Attrs: nounwind
declare void @assert.124(ptr, i1) #0
declare void @assert.126(ptr, i1) #0
; Function Attrs: nounwind
define internal i64 @accept_c(ptr %0) #0 {

View File

@@ -4,34 +4,34 @@
@__sx_default_context = internal constant { { ptr, ptr, ptr }, ptr } { { ptr, ptr, ptr } { ptr null, ptr @__thunk_CAllocator_Allocator_alloc_bytes, ptr @__thunk_CAllocator_Allocator_dealloc_bytes }, ptr null }
@__sx_objc_cstr_dealloc = internal constant [8 x i8] c"dealloc\00"
@str = private unnamed_addr constant [2 x i8] c"0\00", align 1
@str.162 = private unnamed_addr constant [15 x i8] c"result := \22\22; \00", align 1
@str.163 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1
@str.164 = private unnamed_addr constant [3 x i8] c", \00", align 1
@str.165 = private unnamed_addr constant [5 x i8] c")); \00", align 1
@str.166 = private unnamed_addr constant [44 x i8] c"result = concat(result, any_to_string(args[\00", align 1
@str.167 = private unnamed_addr constant [6 x i8] c"])); \00", align 1
@str.168 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1
@str.169 = private unnamed_addr constant [3 x i8] c", \00", align 1
@str.170 = private unnamed_addr constant [5 x i8] c")); \00", align 1
@str.171 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1
@str.172 = private unnamed_addr constant [3 x i8] c", \00", align 1
@str.173 = private unnamed_addr constant [5 x i8] c")); \00", align 1
@str.174 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1
@str.175 = private unnamed_addr constant [3 x i8] c", \00", align 1
@str.176 = private unnamed_addr constant [5 x i8] c")); \00", align 1
@str.177 = private unnamed_addr constant [10 x i8] c"compiled\0A\00", align 1
@str.178 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1
@str.164 = private unnamed_addr constant [15 x i8] c"result := \22\22; \00", align 1
@str.165 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1
@str.166 = private unnamed_addr constant [3 x i8] c", \00", align 1
@str.167 = private unnamed_addr constant [5 x i8] c")); \00", align 1
@str.168 = private unnamed_addr constant [44 x i8] c"result = concat(result, any_to_string(args[\00", align 1
@str.169 = private unnamed_addr constant [6 x i8] c"])); \00", align 1
@str.170 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1
@str.171 = private unnamed_addr constant [3 x i8] c", \00", align 1
@str.172 = private unnamed_addr constant [5 x i8] c")); \00", align 1
@str.173 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1
@str.174 = private unnamed_addr constant [3 x i8] c", \00", align 1
@str.175 = private unnamed_addr constant [5 x i8] c")); \00", align 1
@str.176 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1
@str.177 = private unnamed_addr constant [3 x i8] c", \00", align 1
@str.178 = private unnamed_addr constant [5 x i8] c")); \00", align 1
@str.179 = private unnamed_addr constant [10 x i8] c"compiled\0A\00", align 1
@str.180 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1
@str.181 = private unnamed_addr constant [10 x i8] c"compiled\0A\00", align 1
@OBJC_IVAR_NAME_ = private unnamed_addr constant [11 x i8] c"__sx_state\00"
@OBJC_IVAR_TYPE_ = private unnamed_addr constant [3 x i8] c"^v\00"
@OBJC_CLASS_NAME_ = private unnamed_addr constant [9 x i8] c"NSObject\00"
@OBJC_CLASS_NAME_.180 = private unnamed_addr constant [6 x i8] c"SxFoo\00"
@OBJC_CLASS_NAME_.182 = private unnamed_addr constant [6 x i8] c"SxFoo\00"
@OBJC_METH_VAR_NAME_ = private unnamed_addr constant [5 x i8] c"bump\00"
@OBJC_METH_VAR_TYPE_ = private unnamed_addr constant [4 x i8] c"v@:\00"
@OBJC_METH_VAR_NAME_.181 = private unnamed_addr constant [8 x i8] c"dealloc\00"
@OBJC_METH_VAR_TYPE_.182 = private unnamed_addr constant [4 x i8] c"v@:\00"
@OBJC_METH_VAR_NAME_.183 = private unnamed_addr constant [6 x i8] c"alloc\00"
@OBJC_METH_VAR_TYPE_.184 = private unnamed_addr constant [4 x i8] c"@@:\00"
@OBJC_METH_VAR_NAME_.183 = private unnamed_addr constant [8 x i8] c"dealloc\00"
@OBJC_METH_VAR_TYPE_.184 = private unnamed_addr constant [4 x i8] c"v@:\00"
@OBJC_METH_VAR_NAME_.185 = private unnamed_addr constant [6 x i8] c"alloc\00"
@OBJC_METH_VAR_TYPE_.186 = private unnamed_addr constant [4 x i8] c"@@:\00"
; Function Attrs: nounwind
declare void @out(ptr) #0
@@ -44,6 +44,9 @@ declare ptr @memcpy(ptr, ptr, i64)
declare ptr @memset(ptr, i32, i64)
; Function Attrs: nounwind
declare ptr @mem_realloc(ptr, ptr, ptr, i64, i64, i64) #0
; Function Attrs: nounwind
define internal ptr @CAllocator.alloc_bytes(ptr %0, ptr %1, i64 %2) #0 {
entry:
@@ -336,7 +339,7 @@ entry:
%alloca = alloca { ptr, i64 }, align 8
store { ptr, i64 } %1, ptr %alloca, align 8
%allocaN = alloca { ptr, i64 }, align 8
store { ptr, i64 } { ptr @str.162, i64 14 }, ptr %allocaN, align 8
store { ptr, i64 } { ptr @str.164, i64 14 }, ptr %allocaN, align 8
%allocaN = alloca i64, align 8
store i64 0, ptr %allocaN, align 8
%allocaN = alloca i64, align 8
@@ -432,7 +435,7 @@ if.merge.11: ; preds = %if.merge.25, %if.me
if.then.12: ; preds = %if.then.9
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
%call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.163, i64 36 })
%call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.165, i64 36 })
store { ptr, i64 } %call, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
%loadN = load i64, ptr %allocaN, align 8
@@ -440,7 +443,7 @@ if.then.12: ; preds = %if.then.9
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN)
store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.164, i64 2 })
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.166, i64 2 })
store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
%loadN = load i64, ptr %allocaN, align 8
@@ -450,13 +453,13 @@ if.then.12: ; preds = %if.then.9
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN)
store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.165, i64 4 })
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.167, i64 4 })
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %if.merge.13
if.merge.13: ; preds = %if.then.12, %if.then.9
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.166, i64 43 })
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.168, i64 43 })
store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
%loadN = load i64, ptr %allocaN, align 8
@@ -464,7 +467,7 @@ if.merge.13: ; preds = %if.then.12, %if.the
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN)
store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.167, i64 5 })
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.169, i64 5 })
store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load i64, ptr %allocaN, align 8
%addN = add i64 %loadN, 1
@@ -478,7 +481,7 @@ if.merge.13: ; preds = %if.then.12, %if.the
if.then.23: ; preds = %if.else.10
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.168, i64 36 })
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.170, i64 36 })
store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
%loadN = load i64, ptr %allocaN, align 8
@@ -486,7 +489,7 @@ if.then.23: ; preds = %if.else.10
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN)
store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.169, i64 2 })
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.171, i64 2 })
store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
%loadN = load i64, ptr %allocaN, align 8
@@ -497,7 +500,7 @@ if.then.23: ; preds = %if.else.10
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN)
store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.170, i64 4 })
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.172, i64 4 })
store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load i64, ptr %allocaN, align 8
%addN = add i64 %loadN, 2
@@ -554,7 +557,7 @@ if.merge.31: ; preds = %if.merge.34, %if.el
if.then.32: ; preds = %if.then.29
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.171, i64 36 })
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.173, i64 36 })
store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
%loadN = load i64, ptr %allocaN, align 8
@@ -562,7 +565,7 @@ if.then.32: ; preds = %if.then.29
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN)
store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.172, i64 2 })
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.174, i64 2 })
store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
%loadN = load i64, ptr %allocaN, align 8
@@ -573,7 +576,7 @@ if.then.32: ; preds = %if.then.29
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN)
store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.173, i64 4 })
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.175, i64 4 })
store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load i64, ptr %allocaN, align 8
%addN = add i64 %loadN, 2
@@ -593,7 +596,7 @@ if.merge.34: ; preds = %if.else.33, %if.the
if.then.35: ; preds = %while.exit.2
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.174, i64 36 })
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.176, i64 36 })
store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
%loadN = load i64, ptr %allocaN, align 8
@@ -601,7 +604,7 @@ if.then.35: ; preds = %while.exit.2
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN)
store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.175, i64 2 })
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.177, i64 2 })
store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %alloca, align 8
@@ -612,7 +615,7 @@ if.then.35: ; preds = %while.exit.2
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN)
store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.176, i64 4 })
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.178, i64 4 })
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %if.merge.36
@@ -622,64 +625,67 @@ if.merge.36: ; preds = %if.then.35, %while.
}
; Function Attrs: nounwind
declare ptr @CAllocator.alloc_bytes.1(ptr, ptr, i64) #0
declare ptr @mem_realloc.1(ptr, ptr, ptr, i64, i64, i64) #0
; Function Attrs: nounwind
declare void @CAllocator.dealloc_bytes.2(ptr, ptr, ptr) #0
declare ptr @CAllocator.alloc_bytes.2(ptr, ptr, i64) #0
; Function Attrs: nounwind
declare i64 @GPA.init.3(ptr) #0
declare void @CAllocator.dealloc_bytes.3(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare ptr @GPA.alloc_bytes.4(ptr, ptr, i64) #0
declare i64 @GPA.init.4(ptr) #0
; Function Attrs: nounwind
declare void @GPA.dealloc_bytes.5(ptr, ptr, ptr) #0
declare ptr @GPA.alloc_bytes.5(ptr, ptr, i64) #0
; Function Attrs: nounwind
declare void @Arena.add_chunk.6(ptr, ptr, i64) #0
declare void @GPA.dealloc_bytes.6(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare void @Arena.init.7(ptr sret({ ptr, i64, { ptr, ptr, ptr } }), ptr, ptr, i64) #0
declare void @Arena.add_chunk.7(ptr, ptr, i64) #0
; Function Attrs: nounwind
declare void @Arena.reset.8(ptr, ptr) #0
declare void @Arena.init.8(ptr sret({ ptr, i64, { ptr, ptr, ptr } }), ptr, ptr, i64) #0
; Function Attrs: nounwind
declare void @Arena.deinit.9(ptr, ptr) #0
declare void @Arena.reset.9(ptr, ptr) #0
; Function Attrs: nounwind
declare ptr @Arena.alloc_bytes.10(ptr, ptr, i64) #0
declare void @Arena.deinit.10(ptr, ptr) #0
; Function Attrs: nounwind
declare void @Arena.dealloc_bytes.11(ptr, ptr, ptr) #0
declare ptr @Arena.alloc_bytes.11(ptr, ptr, i64) #0
; Function Attrs: nounwind
declare ptr @BufAlloc.init.12(ptr, ptr, i64) #0
declare void @Arena.dealloc_bytes.12(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare void @BufAlloc.reset.13(ptr, ptr) #0
declare ptr @BufAlloc.init.13(ptr, ptr, i64) #0
; Function Attrs: nounwind
declare ptr @BufAlloc.alloc_bytes.14(ptr, ptr, i64) #0
declare void @BufAlloc.reset.14(ptr, ptr) #0
; Function Attrs: nounwind
declare void @BufAlloc.dealloc_bytes.15(ptr, ptr, ptr) #0
declare ptr @BufAlloc.alloc_bytes.15(ptr, ptr, i64) #0
; Function Attrs: nounwind
declare void @TrackingAllocator.init.16(ptr sret({ { ptr, ptr, ptr }, i64, i64, i64 }), ptr, ptr) #0
declare void @BufAlloc.dealloc_bytes.16(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare i64 @TrackingAllocator.leak_count.17(ptr, ptr) #0
declare void @TrackingAllocator.init.17(ptr sret({ { ptr, ptr, ptr }, i64, i64, i64 }), ptr, ptr) #0
; Function Attrs: nounwind
declare void @TrackingAllocator.report.18(ptr, ptr) #0
declare i64 @TrackingAllocator.leak_count.18(ptr, ptr) #0
; Function Attrs: nounwind
declare ptr @TrackingAllocator.alloc_bytes.19(ptr, ptr, i64) #0
declare void @TrackingAllocator.report.19(ptr, ptr) #0
; Function Attrs: nounwind
declare void @TrackingAllocator.dealloc_bytes.20(ptr, ptr, ptr) #0
declare ptr @TrackingAllocator.alloc_bytes.20(ptr, ptr, i64) #0
; Function Attrs: nounwind
declare void @TrackingAllocator.dealloc_bytes.21(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare ptr @escape(ptr, ptr) #0
@@ -855,163 +861,166 @@ declare i32 @listen(i32, i32) #0
declare i32 @accept(i32, ptr, ptr) #0
; Function Attrs: nounwind
declare i64 @read.21(i32, ptr, i64) #0
declare i64 @read.22(i32, ptr, i64) #0
; Function Attrs: nounwind
declare i32 @close.22(i32) #0
declare i32 @close.23(i32) #0
; Function Attrs: nounwind
declare i16 @htons(ptr, i64) #0
; Function Attrs: nounwind
declare ptr @CAllocator.alloc_bytes.23(ptr, ptr, i64) #0
declare ptr @mem_realloc.24(ptr, ptr, ptr, i64, i64, i64) #0
; Function Attrs: nounwind
declare void @CAllocator.dealloc_bytes.24(ptr, ptr, ptr) #0
declare ptr @CAllocator.alloc_bytes.25(ptr, ptr, i64) #0
; Function Attrs: nounwind
declare i64 @GPA.init.25(ptr) #0
declare void @CAllocator.dealloc_bytes.26(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare ptr @GPA.alloc_bytes.26(ptr, ptr, i64) #0
declare i64 @GPA.init.27(ptr) #0
; Function Attrs: nounwind
declare void @GPA.dealloc_bytes.27(ptr, ptr, ptr) #0
declare ptr @GPA.alloc_bytes.28(ptr, ptr, i64) #0
; Function Attrs: nounwind
declare void @Arena.add_chunk.28(ptr, ptr, i64) #0
declare void @GPA.dealloc_bytes.29(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare void @Arena.init.29(ptr sret({ ptr, i64, { ptr, ptr, ptr } }), ptr, ptr, i64) #0
declare void @Arena.add_chunk.30(ptr, ptr, i64) #0
; Function Attrs: nounwind
declare void @Arena.reset.30(ptr, ptr) #0
declare void @Arena.init.31(ptr sret({ ptr, i64, { ptr, ptr, ptr } }), ptr, ptr, i64) #0
; Function Attrs: nounwind
declare void @Arena.deinit.31(ptr, ptr) #0
declare void @Arena.reset.32(ptr, ptr) #0
; Function Attrs: nounwind
declare ptr @Arena.alloc_bytes.32(ptr, ptr, i64) #0
declare void @Arena.deinit.33(ptr, ptr) #0
; Function Attrs: nounwind
declare void @Arena.dealloc_bytes.33(ptr, ptr, ptr) #0
declare ptr @Arena.alloc_bytes.34(ptr, ptr, i64) #0
; Function Attrs: nounwind
declare ptr @BufAlloc.init.34(ptr, ptr, i64) #0
declare void @Arena.dealloc_bytes.35(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare void @BufAlloc.reset.35(ptr, ptr) #0
declare ptr @BufAlloc.init.36(ptr, ptr, i64) #0
; Function Attrs: nounwind
declare ptr @BufAlloc.alloc_bytes.36(ptr, ptr, i64) #0
declare void @BufAlloc.reset.37(ptr, ptr) #0
; Function Attrs: nounwind
declare void @BufAlloc.dealloc_bytes.37(ptr, ptr, ptr) #0
declare ptr @BufAlloc.alloc_bytes.38(ptr, ptr, i64) #0
; Function Attrs: nounwind
declare void @TrackingAllocator.init.38(ptr sret({ { ptr, ptr, ptr }, i64, i64, i64 }), ptr, ptr) #0
declare void @BufAlloc.dealloc_bytes.39(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare i64 @TrackingAllocator.leak_count.39(ptr, ptr) #0
declare void @TrackingAllocator.init.40(ptr sret({ { ptr, ptr, ptr }, i64, i64, i64 }), ptr, ptr) #0
; Function Attrs: nounwind
declare void @TrackingAllocator.report.40(ptr, ptr) #0
declare i64 @TrackingAllocator.leak_count.41(ptr, ptr) #0
; Function Attrs: nounwind
declare ptr @TrackingAllocator.alloc_bytes.41(ptr, ptr, i64) #0
declare void @TrackingAllocator.report.42(ptr, ptr) #0
; Function Attrs: nounwind
declare void @TrackingAllocator.dealloc_bytes.42(ptr, ptr, ptr) #0
declare ptr @TrackingAllocator.alloc_bytes.43(ptr, ptr, i64) #0
; Function Attrs: nounwind
declare i32 @open.43(ptr, i32, ...) #0
declare void @TrackingAllocator.dealloc_bytes.44(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare i32 @close.44(i32) #0
declare i32 @open.45(ptr, i32, ...) #0
; Function Attrs: nounwind
declare i64 @read.45(i32, ptr, i64) #0
declare i32 @close.46(i32) #0
; Function Attrs: nounwind
declare i64 @lseek.46(i32, i64, i32) #0
declare i64 @read.47(i32, ptr, i64) #0
; Function Attrs: nounwind
declare i32 @unlink.47(ptr) #0
declare i64 @lseek.48(i32, i64, i32) #0
; Function Attrs: nounwind
declare i32 @rmdir.48(ptr) #0
declare i32 @unlink.49(ptr) #0
; Function Attrs: nounwind
declare i32 @mkdir.49(ptr, i32) #0
declare i32 @rmdir.50(ptr) #0
; Function Attrs: nounwind
declare i32 @access.50(ptr, i32) #0
declare i32 @mkdir.51(ptr, i32) #0
; Function Attrs: nounwind
declare i32 @chmod.51(ptr, i32) #0
declare i32 @access.52(ptr, i32) #0
; Function Attrs: nounwind
declare i32 @rename.52(ptr, ptr) #0
declare i32 @chmod.53(ptr, i32) #0
; Function Attrs: nounwind
declare i1 @File.is_valid.53(ptr, ptr) #0
declare i32 @rename.54(ptr, ptr) #0
; Function Attrs: nounwind
declare i1 @File.close.54(ptr, ptr) #0
declare i1 @File.is_valid.55(ptr, ptr) #0
; Function Attrs: nounwind
declare i64 @File.read.55(ptr, ptr, ptr) #0
declare i1 @File.close.56(ptr, ptr) #0
; Function Attrs: nounwind
declare i64 @File.write.56(ptr, ptr, ptr) #0
declare i64 @File.read.57(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare i64 @File.seek.57(ptr, ptr, i64, i64) #0
declare i64 @File.write.58(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare i32 @mode_to_flags.58(ptr, i64) #0
declare i64 @File.seek.59(ptr, ptr, i64, i64) #0
; Function Attrs: nounwind
declare i64 @open_file.59(ptr, ptr, i64) #0
declare i32 @mode_to_flags.60(ptr, i64) #0
; Function Attrs: nounwind
declare void @read_file.60(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0
declare i64 @open_file.61(ptr, ptr, i64) #0
; Function Attrs: nounwind
declare i1 @write_file.61(ptr, ptr, ptr) #0
declare void @read_file.62(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0
; Function Attrs: nounwind
declare i1 @append_file.62(ptr, ptr, ptr) #0
declare i1 @write_file.63(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare i1 @exists.63(ptr, ptr) #0
declare i1 @append_file.64(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare i1 @delete_file.64(ptr, ptr) #0
declare i1 @exists.65(ptr, ptr) #0
; Function Attrs: nounwind
declare i1 @delete_dir.65(ptr, ptr) #0
declare i1 @delete_file.66(ptr, ptr) #0
; Function Attrs: nounwind
declare i1 @create_dir.66(ptr, ptr) #0
declare i1 @delete_dir.67(ptr, ptr) #0
; Function Attrs: nounwind
declare i1 @set_mode.67(ptr, ptr, i32) #0
declare i1 @create_dir.68(ptr, ptr) #0
; Function Attrs: nounwind
declare i1 @move.68(ptr, ptr, ptr) #0
declare i1 @set_mode.69(ptr, ptr, i32) #0
; Function Attrs: nounwind
declare i1 @create_dir_all.69(ptr, ptr) #0
declare i1 @move.70(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare i1 @copy_file.70(ptr, ptr, ptr) #0
declare i1 @create_dir_all.71(ptr, ptr) #0
; Function Attrs: nounwind
declare ptr @basename.71(ptr, ptr) #0
declare i1 @copy_file.72(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare ptr @dirname.72(ptr, ptr) #0
declare ptr @basename.73(ptr, ptr) #0
; Function Attrs: nounwind
declare ptr @dirname.74(ptr, ptr) #0
; Function Attrs: nounwind
declare void @Array.add(ptr, ptr, ptr, ptr) #0
@@ -1209,64 +1218,64 @@ declare ptr @BuildOptions.jni_main_java_source_at(i64, i64) #0
declare i64 @build_options() #0
; Function Attrs: nounwind
declare ptr @spaces.73(ptr, i32) #0
declare ptr @spaces.75(ptr, i32) #0
; Function Attrs: nounwind
declare i32 @sx_trace_len.74() #0
declare i32 @sx_trace_len.76() #0
; Function Attrs: nounwind
declare i32 @sx_trace_truncated.75() #0
declare i32 @sx_trace_truncated.77() #0
; Function Attrs: nounwind
declare i64 @sx_trace_frame_at.76(i32) #0
declare i64 @sx_trace_frame_at.78(i32) #0
; Function Attrs: nounwind
declare ptr @to_string.77(ptr) #0
declare ptr @to_string.79(ptr) #0
; Function Attrs: nounwind
declare void @print_current.78(ptr) #0
declare void @print_current.80(ptr) #0
; Function Attrs: nounwind
declare void @print_interpreter_frames.79(ptr) #0
declare void @print_interpreter_frames.81(ptr) #0
; Function Attrs: nounwind
declare ptr @popen.80(ptr, ptr) #0
declare ptr @popen.82(ptr, ptr) #0
; Function Attrs: nounwind
declare i32 @pclose.81(ptr) #0
declare i32 @pclose.83(ptr) #0
; Function Attrs: nounwind
declare i64 @fread.82(ptr, i64, i64, ptr) #0
declare i64 @fread.84(ptr, i64, i64, ptr) #0
; Function Attrs: nounwind
declare i32 @feof.83(ptr) #0
declare i32 @feof.85(ptr) #0
; Function Attrs: nounwind
declare ptr @getenv.84(ptr) #0
declare ptr @getenv.86(ptr) #0
; Function Attrs: nounwind
declare i64 @strlen.85(ptr) #0
declare i64 @strlen.87(ptr) #0
; Function Attrs: nounwind
declare i32 @system.86(ptr) #0
declare i32 @system.88(ptr) #0
; Function Attrs: nounwind
declare void @run.87(ptr sret({ { i32, { ptr, i64 } }, i1 }), ptr, ptr) #0
declare void @run.89(ptr sret({ { i32, { ptr, i64 } }, i1 }), ptr, ptr) #0
; Function Attrs: nounwind
declare void @env.88(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0
declare void @env.90(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0
; Function Attrs: nounwind
declare void @find_executable.89(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0
declare void @find_executable.91(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0
; Function Attrs: nounwind
declare void @_exit.90(i32) #0
declare void @_exit.92(i32) #0
; Function Attrs: nounwind
declare void @exit.91(ptr, i8, ptr) #0
declare void @exit.93(ptr, i8, ptr) #0
; Function Attrs: nounwind
declare void @assert.92(ptr, i1, ptr, ptr) #0
declare void @assert.94(ptr, i1, ptr, ptr) #0
; Function Attrs: nounwind
declare ptr @_NSGetArgv() #0
@@ -1296,97 +1305,97 @@ declare ptr @Parsed.value_of(ptr, ptr, ptr) #0
declare i1 @is_long_flag(ptr, ptr) #0
; Function Attrs: nounwind
declare void @parse.93(ptr sret({ { { ptr, i64 }, { ptr, i64 }, i64, i1, { ptr, i64 }, { ptr, i64 }, [16 x { i1, { ptr, i64 } }] }, i32 }), ptr, ptr, ptr, ptr) #0
declare void @parse.95(ptr sret({ { { ptr, i64 }, { ptr, i64 }, i64, i1, { ptr, i64 }, { ptr, i64 }, [16 x { i1, { ptr, i64 } }] }, i32 }), ptr, ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare i32 @open.94(ptr, i32, ...) #0
declare i32 @open.96(ptr, i32, ...) #0
; Function Attrs: nounwind
declare i32 @close.95(i32) #0
declare i32 @close.97(i32) #0
; Function Attrs: nounwind
declare i64 @read.96(i32, ptr, i64) #0
declare i64 @read.98(i32, ptr, i64) #0
; Function Attrs: nounwind
declare i64 @lseek.97(i32, i64, i32) #0
declare i64 @lseek.99(i32, i64, i32) #0
; Function Attrs: nounwind
declare i32 @unlink.98(ptr) #0
declare i32 @unlink.100(ptr) #0
; Function Attrs: nounwind
declare i32 @rmdir.99(ptr) #0
declare i32 @rmdir.101(ptr) #0
; Function Attrs: nounwind
declare i32 @mkdir.100(ptr, i32) #0
declare i32 @mkdir.102(ptr, i32) #0
; Function Attrs: nounwind
declare i32 @access.101(ptr, i32) #0
declare i32 @access.103(ptr, i32) #0
; Function Attrs: nounwind
declare i32 @chmod.102(ptr, i32) #0
declare i32 @chmod.104(ptr, i32) #0
; Function Attrs: nounwind
declare i32 @rename.103(ptr, ptr) #0
declare i32 @rename.105(ptr, ptr) #0
; Function Attrs: nounwind
declare i1 @File.is_valid.104(ptr, ptr) #0
declare i1 @File.is_valid.106(ptr, ptr) #0
; Function Attrs: nounwind
declare i1 @File.close.105(ptr, ptr) #0
declare i1 @File.close.107(ptr, ptr) #0
; Function Attrs: nounwind
declare i64 @File.read.106(ptr, ptr, ptr) #0
declare i64 @File.read.108(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare i64 @File.write.107(ptr, ptr, ptr) #0
declare i64 @File.write.109(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare i64 @File.seek.108(ptr, ptr, i64, i64) #0
declare i64 @File.seek.110(ptr, ptr, i64, i64) #0
; Function Attrs: nounwind
declare i32 @mode_to_flags.109(ptr, i64) #0
declare i32 @mode_to_flags.111(ptr, i64) #0
; Function Attrs: nounwind
declare i64 @open_file.110(ptr, ptr, i64) #0
declare i64 @open_file.112(ptr, ptr, i64) #0
; Function Attrs: nounwind
declare void @read_file.111(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0
declare void @read_file.113(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0
; Function Attrs: nounwind
declare i1 @write_file.112(ptr, ptr, ptr) #0
declare i1 @write_file.114(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare i1 @append_file.113(ptr, ptr, ptr) #0
declare i1 @append_file.115(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare i1 @exists.114(ptr, ptr) #0
declare i1 @exists.116(ptr, ptr) #0
; Function Attrs: nounwind
declare i1 @delete_file.115(ptr, ptr) #0
declare i1 @delete_file.117(ptr, ptr) #0
; Function Attrs: nounwind
declare i1 @delete_dir.116(ptr, ptr) #0
declare i1 @delete_dir.118(ptr, ptr) #0
; Function Attrs: nounwind
declare i1 @create_dir.117(ptr, ptr) #0
declare i1 @create_dir.119(ptr, ptr) #0
; Function Attrs: nounwind
declare i1 @set_mode.118(ptr, ptr, i32) #0
declare i1 @set_mode.120(ptr, ptr, i32) #0
; Function Attrs: nounwind
declare i1 @move.119(ptr, ptr, ptr) #0
declare i1 @move.121(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare i1 @create_dir_all.120(ptr, ptr) #0
declare i1 @create_dir_all.122(ptr, ptr) #0
; Function Attrs: nounwind
declare i1 @copy_file.121(ptr, ptr, ptr) #0
declare i1 @copy_file.123(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare ptr @basename.122(ptr, ptr) #0
declare ptr @basename.124(ptr, ptr) #0
; Function Attrs: nounwind
declare ptr @dirname.123(ptr, ptr) #0
declare ptr @dirname.125(ptr, ptr) #0
; Function Attrs: nounwind
declare i64 @rotr(ptr, i64, i64) #0
@@ -1425,118 +1434,118 @@ declare [64 x i8] @sha256_hex(ptr, ptr) #0
declare void @sha256_file(ptr sret({ [64 x i8], i1 }), ptr, ptr) #0
; Function Attrs: nounwind
declare void @assert.124(ptr, i1) #0
declare void @assert.126(ptr, i1) #0
; Function Attrs: nounwind
declare void @BuildOptions.add_link_flag.125(i64, ptr) #0
declare void @BuildOptions.add_link_flag.127(i64, ptr) #0
; Function Attrs: nounwind
declare void @BuildOptions.add_framework.126(i64, ptr) #0
declare void @BuildOptions.add_framework.128(i64, ptr) #0
; Function Attrs: nounwind
declare void @BuildOptions.set_output_path.127(i64, ptr) #0
declare void @BuildOptions.set_output_path.129(i64, ptr) #0
; Function Attrs: nounwind
declare void @BuildOptions.set_wasm_shell.128(i64, ptr) #0
declare void @BuildOptions.set_wasm_shell.130(i64, ptr) #0
; Function Attrs: nounwind
declare void @BuildOptions.add_asset_dir.129(i64, ptr, ptr) #0
declare void @BuildOptions.add_asset_dir.131(i64, ptr, ptr) #0
; Function Attrs: nounwind
declare i64 @BuildOptions.asset_dir_count.130(i64) #0
declare i64 @BuildOptions.asset_dir_count.132(i64) #0
; Function Attrs: nounwind
declare ptr @BuildOptions.asset_dir_src_at.131(i64, i64) #0
declare ptr @BuildOptions.asset_dir_src_at.133(i64, i64) #0
; Function Attrs: nounwind
declare ptr @BuildOptions.asset_dir_dest_at.132(i64, i64) #0
declare ptr @BuildOptions.asset_dir_dest_at.134(i64, i64) #0
; Function Attrs: nounwind
declare void @BuildOptions.set_post_link_callback.133(i64, ptr) #0
declare void @BuildOptions.set_post_link_callback.135(i64, ptr) #0
; Function Attrs: nounwind
declare void @BuildOptions.set_post_link_module.134(i64, ptr) #0
declare void @BuildOptions.set_post_link_module.136(i64, ptr) #0
; Function Attrs: nounwind
declare ptr @BuildOptions.binary_path.135(i64) #0
declare ptr @BuildOptions.binary_path.137(i64) #0
; Function Attrs: nounwind
declare void @BuildOptions.set_bundle_path.136(i64, ptr) #0
declare void @BuildOptions.set_bundle_path.138(i64, ptr) #0
; Function Attrs: nounwind
declare void @BuildOptions.set_bundle_id.137(i64, ptr) #0
declare void @BuildOptions.set_bundle_id.139(i64, ptr) #0
; Function Attrs: nounwind
declare void @BuildOptions.set_codesign_identity.138(i64, ptr) #0
declare void @BuildOptions.set_codesign_identity.140(i64, ptr) #0
; Function Attrs: nounwind
declare void @BuildOptions.set_provisioning_profile.139(i64, ptr) #0
declare void @BuildOptions.set_provisioning_profile.141(i64, ptr) #0
; Function Attrs: nounwind
declare ptr @BuildOptions.bundle_path.140(i64) #0
declare ptr @BuildOptions.bundle_path.142(i64) #0
; Function Attrs: nounwind
declare ptr @BuildOptions.bundle_id.141(i64) #0
declare ptr @BuildOptions.bundle_id.143(i64) #0
; Function Attrs: nounwind
declare ptr @BuildOptions.codesign_identity.142(i64) #0
declare ptr @BuildOptions.codesign_identity.144(i64) #0
; Function Attrs: nounwind
declare ptr @BuildOptions.provisioning_profile.143(i64) #0
declare ptr @BuildOptions.provisioning_profile.145(i64) #0
; Function Attrs: nounwind
declare ptr @BuildOptions.target_triple.144(i64) #0
declare ptr @BuildOptions.target_triple.146(i64) #0
; Function Attrs: nounwind
declare i1 @BuildOptions.is_macos.145(i64) #0
declare i1 @BuildOptions.is_macos.147(i64) #0
; Function Attrs: nounwind
declare i1 @BuildOptions.is_ios.146(i64) #0
declare i1 @BuildOptions.is_ios.148(i64) #0
; Function Attrs: nounwind
declare i1 @BuildOptions.is_ios_device.147(i64) #0
declare i1 @BuildOptions.is_ios_device.149(i64) #0
; Function Attrs: nounwind
declare i1 @BuildOptions.is_ios_simulator.148(i64) #0
declare i1 @BuildOptions.is_ios_simulator.150(i64) #0
; Function Attrs: nounwind
declare i1 @BuildOptions.is_android.149(i64) #0
declare i1 @BuildOptions.is_android.151(i64) #0
; Function Attrs: nounwind
declare i64 @BuildOptions.framework_count.150(i64) #0
declare i64 @BuildOptions.framework_count.152(i64) #0
; Function Attrs: nounwind
declare ptr @BuildOptions.framework_at.151(i64, i64) #0
declare ptr @BuildOptions.framework_at.153(i64, i64) #0
; Function Attrs: nounwind
declare i64 @BuildOptions.framework_path_count.152(i64) #0
declare i64 @BuildOptions.framework_path_count.154(i64) #0
; Function Attrs: nounwind
declare ptr @BuildOptions.framework_path_at.153(i64, i64) #0
declare ptr @BuildOptions.framework_path_at.155(i64, i64) #0
; Function Attrs: nounwind
declare void @BuildOptions.set_manifest_path.154(i64, ptr) #0
declare void @BuildOptions.set_manifest_path.156(i64, ptr) #0
; Function Attrs: nounwind
declare void @BuildOptions.set_keystore_path.155(i64, ptr) #0
declare void @BuildOptions.set_keystore_path.157(i64, ptr) #0
; Function Attrs: nounwind
declare ptr @BuildOptions.manifest_path.156(i64) #0
declare ptr @BuildOptions.manifest_path.158(i64) #0
; Function Attrs: nounwind
declare ptr @BuildOptions.keystore_path.157(i64) #0
declare ptr @BuildOptions.keystore_path.159(i64) #0
; Function Attrs: nounwind
declare i64 @BuildOptions.jni_main_count.158(i64) #0
declare i64 @BuildOptions.jni_main_count.160(i64) #0
; Function Attrs: nounwind
declare ptr @BuildOptions.jni_main_foreign_path_at.159(i64, i64) #0
declare ptr @BuildOptions.jni_main_foreign_path_at.161(i64, i64) #0
; Function Attrs: nounwind
declare ptr @BuildOptions.jni_main_java_source_at.160(i64, i64) #0
declare ptr @BuildOptions.jni_main_java_source_at.162(i64, i64) #0
; Function Attrs: nounwind
declare i64 @build_options.161() #0
declare i64 @build_options.163() #0
; Function Attrs: nounwind
define internal void @SxFoo.bump(ptr %0, ptr %1) #0 {
@@ -1579,14 +1588,14 @@ entry:
define internal void @print__ct_sfeff9eeccd48b824__pack(ptr %0) #0 {
entry:
%alloca = alloca { ptr, i64 }, align 8
store { ptr, i64 } { ptr @str.177, i64 9 }, ptr %alloca, align 8
store { ptr, i64 } { ptr @str.179, i64 9 }, ptr %alloca, align 8
%allocaN = alloca { ptr, i64 }, align 8
%gep = getelementptr inbounds { ptr, i64 }, ptr %allocaN, i32 0, i32 0
store ptr null, ptr %gep, align 8
%gepN = getelementptr inbounds { ptr, i64 }, ptr %allocaN, i32 0, i32 1
store i64 0, ptr %gepN, align 8
%allocaN = alloca { ptr, i64 }, align 8
store { ptr, i64 } { ptr @str.178, i64 0 }, ptr %allocaN, align 8
store { ptr, i64 } { ptr @str.180, i64 0 }, ptr %allocaN, align 8
%load = load { ptr, i64 }, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %alloca, align 8
%call = call { ptr, i64 } @substr(ptr %0, { ptr, i64 } %loadN, i64 0, i64 9)
@@ -1602,7 +1611,7 @@ entry:
; Function Attrs: nounwind
define internal { ptr, i64 } @__insert_0(ptr %0) #0 {
entry:
%call = call { ptr, i64 } @build_format(ptr %0, { ptr, i64 } { ptr @str.179, i64 9 })
%call = call { ptr, i64 } @build_format(ptr %0, { ptr, i64 } { ptr @str.181, i64 9 })
ret { ptr, i64 } %call
}
@@ -1682,17 +1691,17 @@ declare ptr @class_getInstanceVariable(ptr, ptr)
define internal void @__sx_objc_defined_class_init() {
entry:
%super_cls = call ptr @objc_getClass(ptr @OBJC_CLASS_NAME_)
%cls = call ptr @objc_allocateClassPair(ptr %super_cls, ptr @OBJC_CLASS_NAME_.180, i64 0)
%cls = call ptr @objc_allocateClassPair(ptr %super_cls, ptr @OBJC_CLASS_NAME_.182, i64 0)
%0 = call i8 @class_addIvar(ptr %cls, ptr @OBJC_IVAR_NAME_, i64 8, i8 3, ptr @OBJC_IVAR_TYPE_)
%metacls = call ptr @object_getClass(ptr %cls)
%sel = call ptr @sel_registerName(ptr @OBJC_METH_VAR_NAME_)
%1 = call i8 @class_addMethod(ptr %cls, ptr %sel, ptr @__SxFoo_bump_imp, ptr @OBJC_METH_VAR_TYPE_)
call void @objc_registerClassPair(ptr %cls)
store ptr %cls, ptr @__SxFoo_class, align 8
%sel_dealloc = call ptr @sel_registerName(ptr @OBJC_METH_VAR_NAME_.181)
%2 = call i8 @class_addMethod(ptr %cls, ptr %sel_dealloc, ptr @__SxFoo_dealloc_imp, ptr @OBJC_METH_VAR_TYPE_.182)
%sel_alloc = call ptr @sel_registerName(ptr @OBJC_METH_VAR_NAME_.183)
%3 = call i8 @class_addMethod(ptr %metacls, ptr %sel_alloc, ptr @__SxFoo_alloc_imp, ptr @OBJC_METH_VAR_TYPE_.184)
%sel_dealloc = call ptr @sel_registerName(ptr @OBJC_METH_VAR_NAME_.183)
%2 = call i8 @class_addMethod(ptr %cls, ptr %sel_dealloc, ptr @__SxFoo_dealloc_imp, ptr @OBJC_METH_VAR_TYPE_.184)
%sel_alloc = call ptr @sel_registerName(ptr @OBJC_METH_VAR_NAME_.185)
%3 = call i8 @class_addMethod(ptr %metacls, ptr %sel_alloc, ptr @__SxFoo_alloc_imp, ptr @OBJC_METH_VAR_TYPE_.186)
%iv = call ptr @class_getInstanceVariable(ptr %cls, ptr @OBJC_IVAR_NAME_)
store ptr %iv, ptr @__SxFoo_state_ivar, align 8
ret void

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

View File

@@ -3,26 +3,26 @@
@OBJC_SELECTOR_REFERENCES_init = internal global ptr null
@OBJC_SELECTOR_REFERENCES_release = internal global ptr null
@str = private unnamed_addr constant [2 x i8] c"0\00", align 1
@str.162 = private unnamed_addr constant [15 x i8] c"result := \22\22; \00", align 1
@str.163 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1
@str.164 = private unnamed_addr constant [3 x i8] c", \00", align 1
@str.165 = private unnamed_addr constant [5 x i8] c")); \00", align 1
@str.166 = private unnamed_addr constant [44 x i8] c"result = concat(result, any_to_string(args[\00", align 1
@str.167 = private unnamed_addr constant [6 x i8] c"])); \00", align 1
@str.168 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1
@str.169 = private unnamed_addr constant [3 x i8] c", \00", align 1
@str.170 = private unnamed_addr constant [5 x i8] c")); \00", align 1
@str.171 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1
@str.172 = private unnamed_addr constant [3 x i8] c", \00", align 1
@str.173 = private unnamed_addr constant [5 x i8] c")); \00", align 1
@str.174 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1
@str.175 = private unnamed_addr constant [3 x i8] c", \00", align 1
@str.176 = private unnamed_addr constant [5 x i8] c")); \00", align 1
@str.177 = private unnamed_addr constant [4 x i8] c"ok\0A\00", align 1
@str.178 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1
@str.164 = private unnamed_addr constant [15 x i8] c"result := \22\22; \00", align 1
@str.165 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1
@str.166 = private unnamed_addr constant [3 x i8] c", \00", align 1
@str.167 = private unnamed_addr constant [5 x i8] c")); \00", align 1
@str.168 = private unnamed_addr constant [44 x i8] c"result = concat(result, any_to_string(args[\00", align 1
@str.169 = private unnamed_addr constant [6 x i8] c"])); \00", align 1
@str.170 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1
@str.171 = private unnamed_addr constant [3 x i8] c", \00", align 1
@str.172 = private unnamed_addr constant [5 x i8] c")); \00", align 1
@str.173 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1
@str.174 = private unnamed_addr constant [3 x i8] c", \00", align 1
@str.175 = private unnamed_addr constant [5 x i8] c")); \00", align 1
@str.176 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1
@str.177 = private unnamed_addr constant [3 x i8] c", \00", align 1
@str.178 = private unnamed_addr constant [5 x i8] c")); \00", align 1
@str.179 = private unnamed_addr constant [4 x i8] c"ok\0A\00", align 1
@str.180 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1
@str.181 = private unnamed_addr constant [4 x i8] c"ok\0A\00", align 1
@OBJC_METH_VAR_NAME_ = private unnamed_addr constant [5 x i8] c"init\00"
@OBJC_METH_VAR_NAME_.180 = private unnamed_addr constant [8 x i8] c"release\00"
@OBJC_METH_VAR_NAME_.182 = private unnamed_addr constant [8 x i8] c"release\00"
@llvm.global_ctors = appending global [1 x { i32, ptr, ptr }] [{ i32, ptr, ptr } { i32 65535, ptr @__sx_objc_selector_init, ptr null }]
; Function Attrs: nounwind
@@ -36,6 +36,9 @@ declare ptr @memcpy(ptr, ptr, i64)
declare ptr @memset(ptr, i32, i64)
; Function Attrs: nounwind
declare ptr @mem_realloc(ptr, ptr, ptr, i64, i64, i64) #0
; Function Attrs: nounwind
define internal ptr @CAllocator.alloc_bytes(ptr %0, ptr %1, i64 %2) #0 {
entry:
@@ -328,7 +331,7 @@ entry:
%alloca = alloca { ptr, i64 }, align 8
store { ptr, i64 } %1, ptr %alloca, align 8
%allocaN = alloca { ptr, i64 }, align 8
store { ptr, i64 } { ptr @str.162, i64 14 }, ptr %allocaN, align 8
store { ptr, i64 } { ptr @str.164, i64 14 }, ptr %allocaN, align 8
%allocaN = alloca i64, align 8
store i64 0, ptr %allocaN, align 8
%allocaN = alloca i64, align 8
@@ -424,7 +427,7 @@ if.merge.11: ; preds = %if.merge.25, %if.me
if.then.12: ; preds = %if.then.9
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
%call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.163, i64 36 })
%call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.165, i64 36 })
store { ptr, i64 } %call, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
%loadN = load i64, ptr %allocaN, align 8
@@ -432,7 +435,7 @@ if.then.12: ; preds = %if.then.9
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN)
store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.164, i64 2 })
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.166, i64 2 })
store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
%loadN = load i64, ptr %allocaN, align 8
@@ -442,13 +445,13 @@ if.then.12: ; preds = %if.then.9
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN)
store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.165, i64 4 })
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.167, i64 4 })
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %if.merge.13
if.merge.13: ; preds = %if.then.12, %if.then.9
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.166, i64 43 })
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.168, i64 43 })
store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
%loadN = load i64, ptr %allocaN, align 8
@@ -456,7 +459,7 @@ if.merge.13: ; preds = %if.then.12, %if.the
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN)
store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.167, i64 5 })
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.169, i64 5 })
store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load i64, ptr %allocaN, align 8
%addN = add i64 %loadN, 1
@@ -470,7 +473,7 @@ if.merge.13: ; preds = %if.then.12, %if.the
if.then.23: ; preds = %if.else.10
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.168, i64 36 })
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.170, i64 36 })
store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
%loadN = load i64, ptr %allocaN, align 8
@@ -478,7 +481,7 @@ if.then.23: ; preds = %if.else.10
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN)
store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.169, i64 2 })
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.171, i64 2 })
store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
%loadN = load i64, ptr %allocaN, align 8
@@ -489,7 +492,7 @@ if.then.23: ; preds = %if.else.10
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN)
store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.170, i64 4 })
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.172, i64 4 })
store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load i64, ptr %allocaN, align 8
%addN = add i64 %loadN, 2
@@ -546,7 +549,7 @@ if.merge.31: ; preds = %if.merge.34, %if.el
if.then.32: ; preds = %if.then.29
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.171, i64 36 })
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.173, i64 36 })
store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
%loadN = load i64, ptr %allocaN, align 8
@@ -554,7 +557,7 @@ if.then.32: ; preds = %if.then.29
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN)
store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.172, i64 2 })
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.174, i64 2 })
store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
%loadN = load i64, ptr %allocaN, align 8
@@ -565,7 +568,7 @@ if.then.32: ; preds = %if.then.29
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN)
store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.173, i64 4 })
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.175, i64 4 })
store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load i64, ptr %allocaN, align 8
%addN = add i64 %loadN, 2
@@ -585,7 +588,7 @@ if.merge.34: ; preds = %if.else.33, %if.the
if.then.35: ; preds = %while.exit.2
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.174, i64 36 })
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.176, i64 36 })
store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
%loadN = load i64, ptr %allocaN, align 8
@@ -593,7 +596,7 @@ if.then.35: ; preds = %while.exit.2
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN)
store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.175, i64 2 })
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.177, i64 2 })
store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %alloca, align 8
@@ -604,7 +607,7 @@ if.then.35: ; preds = %while.exit.2
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN)
store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.176, i64 4 })
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.178, i64 4 })
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %if.merge.36
@@ -614,64 +617,67 @@ if.merge.36: ; preds = %if.then.35, %while.
}
; Function Attrs: nounwind
declare ptr @CAllocator.alloc_bytes.1(ptr, ptr, i64) #0
declare ptr @mem_realloc.1(ptr, ptr, ptr, i64, i64, i64) #0
; Function Attrs: nounwind
declare void @CAllocator.dealloc_bytes.2(ptr, ptr, ptr) #0
declare ptr @CAllocator.alloc_bytes.2(ptr, ptr, i64) #0
; Function Attrs: nounwind
declare i64 @GPA.init.3(ptr) #0
declare void @CAllocator.dealloc_bytes.3(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare ptr @GPA.alloc_bytes.4(ptr, ptr, i64) #0
declare i64 @GPA.init.4(ptr) #0
; Function Attrs: nounwind
declare void @GPA.dealloc_bytes.5(ptr, ptr, ptr) #0
declare ptr @GPA.alloc_bytes.5(ptr, ptr, i64) #0
; Function Attrs: nounwind
declare void @Arena.add_chunk.6(ptr, ptr, i64) #0
declare void @GPA.dealloc_bytes.6(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare void @Arena.init.7(ptr sret({ ptr, i64, { ptr, ptr, ptr } }), ptr, ptr, i64) #0
declare void @Arena.add_chunk.7(ptr, ptr, i64) #0
; Function Attrs: nounwind
declare void @Arena.reset.8(ptr, ptr) #0
declare void @Arena.init.8(ptr sret({ ptr, i64, { ptr, ptr, ptr } }), ptr, ptr, i64) #0
; Function Attrs: nounwind
declare void @Arena.deinit.9(ptr, ptr) #0
declare void @Arena.reset.9(ptr, ptr) #0
; Function Attrs: nounwind
declare ptr @Arena.alloc_bytes.10(ptr, ptr, i64) #0
declare void @Arena.deinit.10(ptr, ptr) #0
; Function Attrs: nounwind
declare void @Arena.dealloc_bytes.11(ptr, ptr, ptr) #0
declare ptr @Arena.alloc_bytes.11(ptr, ptr, i64) #0
; Function Attrs: nounwind
declare ptr @BufAlloc.init.12(ptr, ptr, i64) #0
declare void @Arena.dealloc_bytes.12(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare void @BufAlloc.reset.13(ptr, ptr) #0
declare ptr @BufAlloc.init.13(ptr, ptr, i64) #0
; Function Attrs: nounwind
declare ptr @BufAlloc.alloc_bytes.14(ptr, ptr, i64) #0
declare void @BufAlloc.reset.14(ptr, ptr) #0
; Function Attrs: nounwind
declare void @BufAlloc.dealloc_bytes.15(ptr, ptr, ptr) #0
declare ptr @BufAlloc.alloc_bytes.15(ptr, ptr, i64) #0
; Function Attrs: nounwind
declare void @TrackingAllocator.init.16(ptr sret({ { ptr, ptr, ptr }, i64, i64, i64 }), ptr, ptr) #0
declare void @BufAlloc.dealloc_bytes.16(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare i64 @TrackingAllocator.leak_count.17(ptr, ptr) #0
declare void @TrackingAllocator.init.17(ptr sret({ { ptr, ptr, ptr }, i64, i64, i64 }), ptr, ptr) #0
; Function Attrs: nounwind
declare void @TrackingAllocator.report.18(ptr, ptr) #0
declare i64 @TrackingAllocator.leak_count.18(ptr, ptr) #0
; Function Attrs: nounwind
declare ptr @TrackingAllocator.alloc_bytes.19(ptr, ptr, i64) #0
declare void @TrackingAllocator.report.19(ptr, ptr) #0
; Function Attrs: nounwind
declare void @TrackingAllocator.dealloc_bytes.20(ptr, ptr, ptr) #0
declare ptr @TrackingAllocator.alloc_bytes.20(ptr, ptr, i64) #0
; Function Attrs: nounwind
declare void @TrackingAllocator.dealloc_bytes.21(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare ptr @escape(ptr, ptr) #0
@@ -847,163 +853,166 @@ declare i32 @listen(i32, i32) #0
declare i32 @accept(i32, ptr, ptr) #0
; Function Attrs: nounwind
declare i64 @read.21(i32, ptr, i64) #0
declare i64 @read.22(i32, ptr, i64) #0
; Function Attrs: nounwind
declare i32 @close.22(i32) #0
declare i32 @close.23(i32) #0
; Function Attrs: nounwind
declare i16 @htons(ptr, i64) #0
; Function Attrs: nounwind
declare ptr @CAllocator.alloc_bytes.23(ptr, ptr, i64) #0
declare ptr @mem_realloc.24(ptr, ptr, ptr, i64, i64, i64) #0
; Function Attrs: nounwind
declare void @CAllocator.dealloc_bytes.24(ptr, ptr, ptr) #0
declare ptr @CAllocator.alloc_bytes.25(ptr, ptr, i64) #0
; Function Attrs: nounwind
declare i64 @GPA.init.25(ptr) #0
declare void @CAllocator.dealloc_bytes.26(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare ptr @GPA.alloc_bytes.26(ptr, ptr, i64) #0
declare i64 @GPA.init.27(ptr) #0
; Function Attrs: nounwind
declare void @GPA.dealloc_bytes.27(ptr, ptr, ptr) #0
declare ptr @GPA.alloc_bytes.28(ptr, ptr, i64) #0
; Function Attrs: nounwind
declare void @Arena.add_chunk.28(ptr, ptr, i64) #0
declare void @GPA.dealloc_bytes.29(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare void @Arena.init.29(ptr sret({ ptr, i64, { ptr, ptr, ptr } }), ptr, ptr, i64) #0
declare void @Arena.add_chunk.30(ptr, ptr, i64) #0
; Function Attrs: nounwind
declare void @Arena.reset.30(ptr, ptr) #0
declare void @Arena.init.31(ptr sret({ ptr, i64, { ptr, ptr, ptr } }), ptr, ptr, i64) #0
; Function Attrs: nounwind
declare void @Arena.deinit.31(ptr, ptr) #0
declare void @Arena.reset.32(ptr, ptr) #0
; Function Attrs: nounwind
declare ptr @Arena.alloc_bytes.32(ptr, ptr, i64) #0
declare void @Arena.deinit.33(ptr, ptr) #0
; Function Attrs: nounwind
declare void @Arena.dealloc_bytes.33(ptr, ptr, ptr) #0
declare ptr @Arena.alloc_bytes.34(ptr, ptr, i64) #0
; Function Attrs: nounwind
declare ptr @BufAlloc.init.34(ptr, ptr, i64) #0
declare void @Arena.dealloc_bytes.35(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare void @BufAlloc.reset.35(ptr, ptr) #0
declare ptr @BufAlloc.init.36(ptr, ptr, i64) #0
; Function Attrs: nounwind
declare ptr @BufAlloc.alloc_bytes.36(ptr, ptr, i64) #0
declare void @BufAlloc.reset.37(ptr, ptr) #0
; Function Attrs: nounwind
declare void @BufAlloc.dealloc_bytes.37(ptr, ptr, ptr) #0
declare ptr @BufAlloc.alloc_bytes.38(ptr, ptr, i64) #0
; Function Attrs: nounwind
declare void @TrackingAllocator.init.38(ptr sret({ { ptr, ptr, ptr }, i64, i64, i64 }), ptr, ptr) #0
declare void @BufAlloc.dealloc_bytes.39(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare i64 @TrackingAllocator.leak_count.39(ptr, ptr) #0
declare void @TrackingAllocator.init.40(ptr sret({ { ptr, ptr, ptr }, i64, i64, i64 }), ptr, ptr) #0
; Function Attrs: nounwind
declare void @TrackingAllocator.report.40(ptr, ptr) #0
declare i64 @TrackingAllocator.leak_count.41(ptr, ptr) #0
; Function Attrs: nounwind
declare ptr @TrackingAllocator.alloc_bytes.41(ptr, ptr, i64) #0
declare void @TrackingAllocator.report.42(ptr, ptr) #0
; Function Attrs: nounwind
declare void @TrackingAllocator.dealloc_bytes.42(ptr, ptr, ptr) #0
declare ptr @TrackingAllocator.alloc_bytes.43(ptr, ptr, i64) #0
; Function Attrs: nounwind
declare i32 @open.43(ptr, i32, ...) #0
declare void @TrackingAllocator.dealloc_bytes.44(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare i32 @close.44(i32) #0
declare i32 @open.45(ptr, i32, ...) #0
; Function Attrs: nounwind
declare i64 @read.45(i32, ptr, i64) #0
declare i32 @close.46(i32) #0
; Function Attrs: nounwind
declare i64 @lseek.46(i32, i64, i32) #0
declare i64 @read.47(i32, ptr, i64) #0
; Function Attrs: nounwind
declare i32 @unlink.47(ptr) #0
declare i64 @lseek.48(i32, i64, i32) #0
; Function Attrs: nounwind
declare i32 @rmdir.48(ptr) #0
declare i32 @unlink.49(ptr) #0
; Function Attrs: nounwind
declare i32 @mkdir.49(ptr, i32) #0
declare i32 @rmdir.50(ptr) #0
; Function Attrs: nounwind
declare i32 @access.50(ptr, i32) #0
declare i32 @mkdir.51(ptr, i32) #0
; Function Attrs: nounwind
declare i32 @chmod.51(ptr, i32) #0
declare i32 @access.52(ptr, i32) #0
; Function Attrs: nounwind
declare i32 @rename.52(ptr, ptr) #0
declare i32 @chmod.53(ptr, i32) #0
; Function Attrs: nounwind
declare i1 @File.is_valid.53(ptr, ptr) #0
declare i32 @rename.54(ptr, ptr) #0
; Function Attrs: nounwind
declare i1 @File.close.54(ptr, ptr) #0
declare i1 @File.is_valid.55(ptr, ptr) #0
; Function Attrs: nounwind
declare i64 @File.read.55(ptr, ptr, ptr) #0
declare i1 @File.close.56(ptr, ptr) #0
; Function Attrs: nounwind
declare i64 @File.write.56(ptr, ptr, ptr) #0
declare i64 @File.read.57(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare i64 @File.seek.57(ptr, ptr, i64, i64) #0
declare i64 @File.write.58(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare i32 @mode_to_flags.58(ptr, i64) #0
declare i64 @File.seek.59(ptr, ptr, i64, i64) #0
; Function Attrs: nounwind
declare i64 @open_file.59(ptr, ptr, i64) #0
declare i32 @mode_to_flags.60(ptr, i64) #0
; Function Attrs: nounwind
declare void @read_file.60(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0
declare i64 @open_file.61(ptr, ptr, i64) #0
; Function Attrs: nounwind
declare i1 @write_file.61(ptr, ptr, ptr) #0
declare void @read_file.62(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0
; Function Attrs: nounwind
declare i1 @append_file.62(ptr, ptr, ptr) #0
declare i1 @write_file.63(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare i1 @exists.63(ptr, ptr) #0
declare i1 @append_file.64(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare i1 @delete_file.64(ptr, ptr) #0
declare i1 @exists.65(ptr, ptr) #0
; Function Attrs: nounwind
declare i1 @delete_dir.65(ptr, ptr) #0
declare i1 @delete_file.66(ptr, ptr) #0
; Function Attrs: nounwind
declare i1 @create_dir.66(ptr, ptr) #0
declare i1 @delete_dir.67(ptr, ptr) #0
; Function Attrs: nounwind
declare i1 @set_mode.67(ptr, ptr, i32) #0
declare i1 @create_dir.68(ptr, ptr) #0
; Function Attrs: nounwind
declare i1 @move.68(ptr, ptr, ptr) #0
declare i1 @set_mode.69(ptr, ptr, i32) #0
; Function Attrs: nounwind
declare i1 @create_dir_all.69(ptr, ptr) #0
declare i1 @move.70(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare i1 @copy_file.70(ptr, ptr, ptr) #0
declare i1 @create_dir_all.71(ptr, ptr) #0
; Function Attrs: nounwind
declare ptr @basename.71(ptr, ptr) #0
declare i1 @copy_file.72(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare ptr @dirname.72(ptr, ptr) #0
declare ptr @basename.73(ptr, ptr) #0
; Function Attrs: nounwind
declare ptr @dirname.74(ptr, ptr) #0
; Function Attrs: nounwind
declare void @Array.add(ptr, ptr, ptr, ptr) #0
@@ -1201,64 +1210,64 @@ declare ptr @BuildOptions.jni_main_java_source_at(i64, i64) #0
declare i64 @build_options() #0
; Function Attrs: nounwind
declare ptr @spaces.73(ptr, i32) #0
declare ptr @spaces.75(ptr, i32) #0
; Function Attrs: nounwind
declare i32 @sx_trace_len.74() #0
declare i32 @sx_trace_len.76() #0
; Function Attrs: nounwind
declare i32 @sx_trace_truncated.75() #0
declare i32 @sx_trace_truncated.77() #0
; Function Attrs: nounwind
declare i64 @sx_trace_frame_at.76(i32) #0
declare i64 @sx_trace_frame_at.78(i32) #0
; Function Attrs: nounwind
declare ptr @to_string.77(ptr) #0
declare ptr @to_string.79(ptr) #0
; Function Attrs: nounwind
declare void @print_current.78(ptr) #0
declare void @print_current.80(ptr) #0
; Function Attrs: nounwind
declare void @print_interpreter_frames.79(ptr) #0
declare void @print_interpreter_frames.81(ptr) #0
; Function Attrs: nounwind
declare ptr @popen.80(ptr, ptr) #0
declare ptr @popen.82(ptr, ptr) #0
; Function Attrs: nounwind
declare i32 @pclose.81(ptr) #0
declare i32 @pclose.83(ptr) #0
; Function Attrs: nounwind
declare i64 @fread.82(ptr, i64, i64, ptr) #0
declare i64 @fread.84(ptr, i64, i64, ptr) #0
; Function Attrs: nounwind
declare i32 @feof.83(ptr) #0
declare i32 @feof.85(ptr) #0
; Function Attrs: nounwind
declare ptr @getenv.84(ptr) #0
declare ptr @getenv.86(ptr) #0
; Function Attrs: nounwind
declare i64 @strlen.85(ptr) #0
declare i64 @strlen.87(ptr) #0
; Function Attrs: nounwind
declare i32 @system.86(ptr) #0
declare i32 @system.88(ptr) #0
; Function Attrs: nounwind
declare void @run.87(ptr sret({ { i32, { ptr, i64 } }, i1 }), ptr, ptr) #0
declare void @run.89(ptr sret({ { i32, { ptr, i64 } }, i1 }), ptr, ptr) #0
; Function Attrs: nounwind
declare void @env.88(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0
declare void @env.90(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0
; Function Attrs: nounwind
declare void @find_executable.89(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0
declare void @find_executable.91(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0
; Function Attrs: nounwind
declare void @_exit.90(i32) #0
declare void @_exit.92(i32) #0
; Function Attrs: nounwind
declare void @exit.91(ptr, i8, ptr) #0
declare void @exit.93(ptr, i8, ptr) #0
; Function Attrs: nounwind
declare void @assert.92(ptr, i1, ptr, ptr) #0
declare void @assert.94(ptr, i1, ptr, ptr) #0
; Function Attrs: nounwind
declare ptr @_NSGetArgv() #0
@@ -1288,97 +1297,97 @@ declare ptr @Parsed.value_of(ptr, ptr, ptr) #0
declare i1 @is_long_flag(ptr, ptr) #0
; Function Attrs: nounwind
declare void @parse.93(ptr sret({ { { ptr, i64 }, { ptr, i64 }, i64, i1, { ptr, i64 }, { ptr, i64 }, [16 x { i1, { ptr, i64 } }] }, i32 }), ptr, ptr, ptr, ptr) #0
declare void @parse.95(ptr sret({ { { ptr, i64 }, { ptr, i64 }, i64, i1, { ptr, i64 }, { ptr, i64 }, [16 x { i1, { ptr, i64 } }] }, i32 }), ptr, ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare i32 @open.94(ptr, i32, ...) #0
declare i32 @open.96(ptr, i32, ...) #0
; Function Attrs: nounwind
declare i32 @close.95(i32) #0
declare i32 @close.97(i32) #0
; Function Attrs: nounwind
declare i64 @read.96(i32, ptr, i64) #0
declare i64 @read.98(i32, ptr, i64) #0
; Function Attrs: nounwind
declare i64 @lseek.97(i32, i64, i32) #0
declare i64 @lseek.99(i32, i64, i32) #0
; Function Attrs: nounwind
declare i32 @unlink.98(ptr) #0
declare i32 @unlink.100(ptr) #0
; Function Attrs: nounwind
declare i32 @rmdir.99(ptr) #0
declare i32 @rmdir.101(ptr) #0
; Function Attrs: nounwind
declare i32 @mkdir.100(ptr, i32) #0
declare i32 @mkdir.102(ptr, i32) #0
; Function Attrs: nounwind
declare i32 @access.101(ptr, i32) #0
declare i32 @access.103(ptr, i32) #0
; Function Attrs: nounwind
declare i32 @chmod.102(ptr, i32) #0
declare i32 @chmod.104(ptr, i32) #0
; Function Attrs: nounwind
declare i32 @rename.103(ptr, ptr) #0
declare i32 @rename.105(ptr, ptr) #0
; Function Attrs: nounwind
declare i1 @File.is_valid.104(ptr, ptr) #0
declare i1 @File.is_valid.106(ptr, ptr) #0
; Function Attrs: nounwind
declare i1 @File.close.105(ptr, ptr) #0
declare i1 @File.close.107(ptr, ptr) #0
; Function Attrs: nounwind
declare i64 @File.read.106(ptr, ptr, ptr) #0
declare i64 @File.read.108(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare i64 @File.write.107(ptr, ptr, ptr) #0
declare i64 @File.write.109(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare i64 @File.seek.108(ptr, ptr, i64, i64) #0
declare i64 @File.seek.110(ptr, ptr, i64, i64) #0
; Function Attrs: nounwind
declare i32 @mode_to_flags.109(ptr, i64) #0
declare i32 @mode_to_flags.111(ptr, i64) #0
; Function Attrs: nounwind
declare i64 @open_file.110(ptr, ptr, i64) #0
declare i64 @open_file.112(ptr, ptr, i64) #0
; Function Attrs: nounwind
declare void @read_file.111(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0
declare void @read_file.113(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0
; Function Attrs: nounwind
declare i1 @write_file.112(ptr, ptr, ptr) #0
declare i1 @write_file.114(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare i1 @append_file.113(ptr, ptr, ptr) #0
declare i1 @append_file.115(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare i1 @exists.114(ptr, ptr) #0
declare i1 @exists.116(ptr, ptr) #0
; Function Attrs: nounwind
declare i1 @delete_file.115(ptr, ptr) #0
declare i1 @delete_file.117(ptr, ptr) #0
; Function Attrs: nounwind
declare i1 @delete_dir.116(ptr, ptr) #0
declare i1 @delete_dir.118(ptr, ptr) #0
; Function Attrs: nounwind
declare i1 @create_dir.117(ptr, ptr) #0
declare i1 @create_dir.119(ptr, ptr) #0
; Function Attrs: nounwind
declare i1 @set_mode.118(ptr, ptr, i32) #0
declare i1 @set_mode.120(ptr, ptr, i32) #0
; Function Attrs: nounwind
declare i1 @move.119(ptr, ptr, ptr) #0
declare i1 @move.121(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare i1 @create_dir_all.120(ptr, ptr) #0
declare i1 @create_dir_all.122(ptr, ptr) #0
; Function Attrs: nounwind
declare i1 @copy_file.121(ptr, ptr, ptr) #0
declare i1 @copy_file.123(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare ptr @basename.122(ptr, ptr) #0
declare ptr @basename.124(ptr, ptr) #0
; Function Attrs: nounwind
declare ptr @dirname.123(ptr, ptr) #0
declare ptr @dirname.125(ptr, ptr) #0
; Function Attrs: nounwind
declare i64 @rotr(ptr, i64, i64) #0
@@ -1417,118 +1426,118 @@ declare [64 x i8] @sha256_hex(ptr, ptr) #0
declare void @sha256_file(ptr sret({ [64 x i8], i1 }), ptr, ptr) #0
; Function Attrs: nounwind
declare void @assert.124(ptr, i1) #0
declare void @assert.126(ptr, i1) #0
; Function Attrs: nounwind
declare void @BuildOptions.add_link_flag.125(i64, ptr) #0
declare void @BuildOptions.add_link_flag.127(i64, ptr) #0
; Function Attrs: nounwind
declare void @BuildOptions.add_framework.126(i64, ptr) #0
declare void @BuildOptions.add_framework.128(i64, ptr) #0
; Function Attrs: nounwind
declare void @BuildOptions.set_output_path.127(i64, ptr) #0
declare void @BuildOptions.set_output_path.129(i64, ptr) #0
; Function Attrs: nounwind
declare void @BuildOptions.set_wasm_shell.128(i64, ptr) #0
declare void @BuildOptions.set_wasm_shell.130(i64, ptr) #0
; Function Attrs: nounwind
declare void @BuildOptions.add_asset_dir.129(i64, ptr, ptr) #0
declare void @BuildOptions.add_asset_dir.131(i64, ptr, ptr) #0
; Function Attrs: nounwind
declare i64 @BuildOptions.asset_dir_count.130(i64) #0
declare i64 @BuildOptions.asset_dir_count.132(i64) #0
; Function Attrs: nounwind
declare ptr @BuildOptions.asset_dir_src_at.131(i64, i64) #0
declare ptr @BuildOptions.asset_dir_src_at.133(i64, i64) #0
; Function Attrs: nounwind
declare ptr @BuildOptions.asset_dir_dest_at.132(i64, i64) #0
declare ptr @BuildOptions.asset_dir_dest_at.134(i64, i64) #0
; Function Attrs: nounwind
declare void @BuildOptions.set_post_link_callback.133(i64, ptr) #0
declare void @BuildOptions.set_post_link_callback.135(i64, ptr) #0
; Function Attrs: nounwind
declare void @BuildOptions.set_post_link_module.134(i64, ptr) #0
declare void @BuildOptions.set_post_link_module.136(i64, ptr) #0
; Function Attrs: nounwind
declare ptr @BuildOptions.binary_path.135(i64) #0
declare ptr @BuildOptions.binary_path.137(i64) #0
; Function Attrs: nounwind
declare void @BuildOptions.set_bundle_path.136(i64, ptr) #0
declare void @BuildOptions.set_bundle_path.138(i64, ptr) #0
; Function Attrs: nounwind
declare void @BuildOptions.set_bundle_id.137(i64, ptr) #0
declare void @BuildOptions.set_bundle_id.139(i64, ptr) #0
; Function Attrs: nounwind
declare void @BuildOptions.set_codesign_identity.138(i64, ptr) #0
declare void @BuildOptions.set_codesign_identity.140(i64, ptr) #0
; Function Attrs: nounwind
declare void @BuildOptions.set_provisioning_profile.139(i64, ptr) #0
declare void @BuildOptions.set_provisioning_profile.141(i64, ptr) #0
; Function Attrs: nounwind
declare ptr @BuildOptions.bundle_path.140(i64) #0
declare ptr @BuildOptions.bundle_path.142(i64) #0
; Function Attrs: nounwind
declare ptr @BuildOptions.bundle_id.141(i64) #0
declare ptr @BuildOptions.bundle_id.143(i64) #0
; Function Attrs: nounwind
declare ptr @BuildOptions.codesign_identity.142(i64) #0
declare ptr @BuildOptions.codesign_identity.144(i64) #0
; Function Attrs: nounwind
declare ptr @BuildOptions.provisioning_profile.143(i64) #0
declare ptr @BuildOptions.provisioning_profile.145(i64) #0
; Function Attrs: nounwind
declare ptr @BuildOptions.target_triple.144(i64) #0
declare ptr @BuildOptions.target_triple.146(i64) #0
; Function Attrs: nounwind
declare i1 @BuildOptions.is_macos.145(i64) #0
declare i1 @BuildOptions.is_macos.147(i64) #0
; Function Attrs: nounwind
declare i1 @BuildOptions.is_ios.146(i64) #0
declare i1 @BuildOptions.is_ios.148(i64) #0
; Function Attrs: nounwind
declare i1 @BuildOptions.is_ios_device.147(i64) #0
declare i1 @BuildOptions.is_ios_device.149(i64) #0
; Function Attrs: nounwind
declare i1 @BuildOptions.is_ios_simulator.148(i64) #0
declare i1 @BuildOptions.is_ios_simulator.150(i64) #0
; Function Attrs: nounwind
declare i1 @BuildOptions.is_android.149(i64) #0
declare i1 @BuildOptions.is_android.151(i64) #0
; Function Attrs: nounwind
declare i64 @BuildOptions.framework_count.150(i64) #0
declare i64 @BuildOptions.framework_count.152(i64) #0
; Function Attrs: nounwind
declare ptr @BuildOptions.framework_at.151(i64, i64) #0
declare ptr @BuildOptions.framework_at.153(i64, i64) #0
; Function Attrs: nounwind
declare i64 @BuildOptions.framework_path_count.152(i64) #0
declare i64 @BuildOptions.framework_path_count.154(i64) #0
; Function Attrs: nounwind
declare ptr @BuildOptions.framework_path_at.153(i64, i64) #0
declare ptr @BuildOptions.framework_path_at.155(i64, i64) #0
; Function Attrs: nounwind
declare void @BuildOptions.set_manifest_path.154(i64, ptr) #0
declare void @BuildOptions.set_manifest_path.156(i64, ptr) #0
; Function Attrs: nounwind
declare void @BuildOptions.set_keystore_path.155(i64, ptr) #0
declare void @BuildOptions.set_keystore_path.157(i64, ptr) #0
; Function Attrs: nounwind
declare ptr @BuildOptions.manifest_path.156(i64) #0
declare ptr @BuildOptions.manifest_path.158(i64) #0
; Function Attrs: nounwind
declare ptr @BuildOptions.keystore_path.157(i64) #0
declare ptr @BuildOptions.keystore_path.159(i64) #0
; Function Attrs: nounwind
declare i64 @BuildOptions.jni_main_count.158(i64) #0
declare i64 @BuildOptions.jni_main_count.160(i64) #0
; Function Attrs: nounwind
declare ptr @BuildOptions.jni_main_foreign_path_at.159(i64, i64) #0
declare ptr @BuildOptions.jni_main_foreign_path_at.161(i64, i64) #0
; Function Attrs: nounwind
declare ptr @BuildOptions.jni_main_java_source_at.160(i64, i64) #0
declare ptr @BuildOptions.jni_main_java_source_at.162(i64, i64) #0
; Function Attrs: nounwind
declare i64 @build_options.161() #0
declare i64 @build_options.163() #0
; Function Attrs: nounwind
define i32 @main() #0 {
@@ -1564,14 +1573,14 @@ entry:
define internal void @print__ct_sbdbafa1a5fe828c0__pack(ptr %0) #0 {
entry:
%alloca = alloca { ptr, i64 }, align 8
store { ptr, i64 } { ptr @str.177, i64 3 }, ptr %alloca, align 8
store { ptr, i64 } { ptr @str.179, i64 3 }, ptr %alloca, align 8
%allocaN = alloca { ptr, i64 }, align 8
%gep = getelementptr inbounds { ptr, i64 }, ptr %allocaN, i32 0, i32 0
store ptr null, ptr %gep, align 8
%gepN = getelementptr inbounds { ptr, i64 }, ptr %allocaN, i32 0, i32 1
store i64 0, ptr %gepN, align 8
%allocaN = alloca { ptr, i64 }, align 8
store { ptr, i64 } { ptr @str.178, i64 0 }, ptr %allocaN, align 8
store { ptr, i64 } { ptr @str.180, i64 0 }, ptr %allocaN, align 8
%load = load { ptr, i64 }, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %alloca, align 8
%call = call { ptr, i64 } @substr(ptr %0, { ptr, i64 } %loadN, i64 0, i64 3)
@@ -1587,7 +1596,7 @@ entry:
; Function Attrs: nounwind
define internal { ptr, i64 } @__insert_0(ptr %0) #0 {
entry:
%call = call { ptr, i64 } @build_format(ptr %0, { ptr, i64 } { ptr @str.179, i64 3 })
%call = call { ptr, i64 } @build_format(ptr %0, { ptr, i64 } { ptr @str.181, i64 3 })
ret { ptr, i64 } %call
}
@@ -1599,7 +1608,7 @@ define internal void @__sx_objc_selector_init() {
entry:
%sel = call ptr @sel_registerName(ptr @OBJC_METH_VAR_NAME_)
store ptr %sel, ptr @OBJC_SELECTOR_REFERENCES_init, align 8
%selN = call ptr @sel_registerName(ptr @OBJC_METH_VAR_NAME_.180)
%selN = call ptr @sel_registerName(ptr @OBJC_METH_VAR_NAME_.182)
store ptr %selN, ptr @OBJC_SELECTOR_REFERENCES_release, align 8
ret void
}

File diff suppressed because one or more lines are too long

View File

@@ -8,47 +8,47 @@
@OBJC_SELECTOR_REFERENCES_initWithFrame_options_ = internal global ptr null
@OBJC_SELECTOR_REFERENCES_actualSelectorName = internal global ptr null
@str = private unnamed_addr constant [2 x i8] c"0\00", align 1
@str.162 = private unnamed_addr constant [15 x i8] c"result := \22\22; \00", align 1
@str.163 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1
@str.164 = private unnamed_addr constant [3 x i8] c", \00", align 1
@str.165 = private unnamed_addr constant [5 x i8] c")); \00", align 1
@str.166 = private unnamed_addr constant [44 x i8] c"result = concat(result, any_to_string(args[\00", align 1
@str.167 = private unnamed_addr constant [6 x i8] c"])); \00", align 1
@str.168 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1
@str.169 = private unnamed_addr constant [3 x i8] c", \00", align 1
@str.170 = private unnamed_addr constant [5 x i8] c")); \00", align 1
@str.171 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1
@str.172 = private unnamed_addr constant [3 x i8] c", \00", align 1
@str.173 = private unnamed_addr constant [5 x i8] c")); \00", align 1
@str.174 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1
@str.175 = private unnamed_addr constant [3 x i8] c", \00", align 1
@str.176 = private unnamed_addr constant [5 x i8] c")); \00", align 1
@str.177 = private unnamed_addr constant [9 x i8] c"NSObject\00", align 1
@str.178 = private unnamed_addr constant [16 x i8] c"SxManglingProbe\00", align 1
@str.179 = private unnamed_addr constant [7 x i8] c"length\00", align 1
@str.180 = private unnamed_addr constant [4 x i8] c"i@:\00", align 1
@str.181 = private unnamed_addr constant [11 x i8] c"addObject:\00", align 1
@str.182 = private unnamed_addr constant [5 x i8] c"i@:i\00", align 1
@str.183 = private unnamed_addr constant [13 x i8] c"combine:and:\00", align 1
@str.184 = private unnamed_addr constant [6 x i8] c"i@:ii\00", align 1
@str.185 = private unnamed_addr constant [20 x i8] c"insert:after:index:\00", align 1
@str.186 = private unnamed_addr constant [7 x i8] c"i@:iii\00", align 1
@str.187 = private unnamed_addr constant [24 x i8] c"add:observer:for:event:\00", align 1
@str.188 = private unnamed_addr constant [8 x i8] c"i@:iiii\00", align 1
@str.189 = private unnamed_addr constant [23 x i8] c"initWithFrame:options:\00", align 1
@str.190 = private unnamed_addr constant [6 x i8] c"i@:ii\00", align 1
@str.191 = private unnamed_addr constant [19 x i8] c"actualSelectorName\00", align 1
@str.192 = private unnamed_addr constant [4 x i8] c"i@:\00", align 1
@str.193 = private unnamed_addr constant [19 x i8] c"mangling table OK\0A\00", align 1
@str.194 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1
@str.164 = private unnamed_addr constant [15 x i8] c"result := \22\22; \00", align 1
@str.165 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1
@str.166 = private unnamed_addr constant [3 x i8] c", \00", align 1
@str.167 = private unnamed_addr constant [5 x i8] c")); \00", align 1
@str.168 = private unnamed_addr constant [44 x i8] c"result = concat(result, any_to_string(args[\00", align 1
@str.169 = private unnamed_addr constant [6 x i8] c"])); \00", align 1
@str.170 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1
@str.171 = private unnamed_addr constant [3 x i8] c", \00", align 1
@str.172 = private unnamed_addr constant [5 x i8] c")); \00", align 1
@str.173 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1
@str.174 = private unnamed_addr constant [3 x i8] c", \00", align 1
@str.175 = private unnamed_addr constant [5 x i8] c")); \00", align 1
@str.176 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1
@str.177 = private unnamed_addr constant [3 x i8] c", \00", align 1
@str.178 = private unnamed_addr constant [5 x i8] c")); \00", align 1
@str.179 = private unnamed_addr constant [9 x i8] c"NSObject\00", align 1
@str.180 = private unnamed_addr constant [16 x i8] c"SxManglingProbe\00", align 1
@str.181 = private unnamed_addr constant [7 x i8] c"length\00", align 1
@str.182 = private unnamed_addr constant [4 x i8] c"i@:\00", align 1
@str.183 = private unnamed_addr constant [11 x i8] c"addObject:\00", align 1
@str.184 = private unnamed_addr constant [5 x i8] c"i@:i\00", align 1
@str.185 = private unnamed_addr constant [13 x i8] c"combine:and:\00", align 1
@str.186 = private unnamed_addr constant [6 x i8] c"i@:ii\00", align 1
@str.187 = private unnamed_addr constant [20 x i8] c"insert:after:index:\00", align 1
@str.188 = private unnamed_addr constant [7 x i8] c"i@:iii\00", align 1
@str.189 = private unnamed_addr constant [24 x i8] c"add:observer:for:event:\00", align 1
@str.190 = private unnamed_addr constant [8 x i8] c"i@:iiii\00", align 1
@str.191 = private unnamed_addr constant [23 x i8] c"initWithFrame:options:\00", align 1
@str.192 = private unnamed_addr constant [6 x i8] c"i@:ii\00", align 1
@str.193 = private unnamed_addr constant [19 x i8] c"actualSelectorName\00", align 1
@str.194 = private unnamed_addr constant [4 x i8] c"i@:\00", align 1
@str.195 = private unnamed_addr constant [19 x i8] c"mangling table OK\0A\00", align 1
@str.196 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1
@str.197 = private unnamed_addr constant [19 x i8] c"mangling table OK\0A\00", align 1
@OBJC_METH_VAR_NAME_ = private unnamed_addr constant [7 x i8] c"length\00"
@OBJC_METH_VAR_NAME_.196 = private unnamed_addr constant [11 x i8] c"addObject:\00"
@OBJC_METH_VAR_NAME_.197 = private unnamed_addr constant [13 x i8] c"combine:and:\00"
@OBJC_METH_VAR_NAME_.198 = private unnamed_addr constant [20 x i8] c"insert:after:index:\00"
@OBJC_METH_VAR_NAME_.199 = private unnamed_addr constant [24 x i8] c"add:observer:for:event:\00"
@OBJC_METH_VAR_NAME_.200 = private unnamed_addr constant [23 x i8] c"initWithFrame:options:\00"
@OBJC_METH_VAR_NAME_.201 = private unnamed_addr constant [19 x i8] c"actualSelectorName\00"
@OBJC_METH_VAR_NAME_.198 = private unnamed_addr constant [11 x i8] c"addObject:\00"
@OBJC_METH_VAR_NAME_.199 = private unnamed_addr constant [13 x i8] c"combine:and:\00"
@OBJC_METH_VAR_NAME_.200 = private unnamed_addr constant [20 x i8] c"insert:after:index:\00"
@OBJC_METH_VAR_NAME_.201 = private unnamed_addr constant [24 x i8] c"add:observer:for:event:\00"
@OBJC_METH_VAR_NAME_.202 = private unnamed_addr constant [23 x i8] c"initWithFrame:options:\00"
@OBJC_METH_VAR_NAME_.203 = private unnamed_addr constant [19 x i8] c"actualSelectorName\00"
@llvm.global_ctors = appending global [1 x { i32, ptr, ptr }] [{ i32, ptr, ptr } { i32 65535, ptr @__sx_objc_selector_init, ptr null }]
; Function Attrs: nounwind
@@ -62,6 +62,9 @@ declare ptr @memcpy(ptr, ptr, i64)
declare ptr @memset(ptr, i32, i64)
; Function Attrs: nounwind
declare ptr @mem_realloc(ptr, ptr, ptr, i64, i64, i64) #0
; Function Attrs: nounwind
define internal ptr @CAllocator.alloc_bytes(ptr %0, ptr %1, i64 %2) #0 {
entry:
@@ -354,7 +357,7 @@ entry:
%alloca = alloca { ptr, i64 }, align 8
store { ptr, i64 } %1, ptr %alloca, align 8
%allocaN = alloca { ptr, i64 }, align 8
store { ptr, i64 } { ptr @str.162, i64 14 }, ptr %allocaN, align 8
store { ptr, i64 } { ptr @str.164, i64 14 }, ptr %allocaN, align 8
%allocaN = alloca i64, align 8
store i64 0, ptr %allocaN, align 8
%allocaN = alloca i64, align 8
@@ -450,7 +453,7 @@ if.merge.11: ; preds = %if.merge.25, %if.me
if.then.12: ; preds = %if.then.9
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
%call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.163, i64 36 })
%call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.165, i64 36 })
store { ptr, i64 } %call, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
%loadN = load i64, ptr %allocaN, align 8
@@ -458,7 +461,7 @@ if.then.12: ; preds = %if.then.9
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN)
store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.164, i64 2 })
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.166, i64 2 })
store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
%loadN = load i64, ptr %allocaN, align 8
@@ -468,13 +471,13 @@ if.then.12: ; preds = %if.then.9
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN)
store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.165, i64 4 })
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.167, i64 4 })
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %if.merge.13
if.merge.13: ; preds = %if.then.12, %if.then.9
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.166, i64 43 })
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.168, i64 43 })
store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
%loadN = load i64, ptr %allocaN, align 8
@@ -482,7 +485,7 @@ if.merge.13: ; preds = %if.then.12, %if.the
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN)
store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.167, i64 5 })
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.169, i64 5 })
store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load i64, ptr %allocaN, align 8
%addN = add i64 %loadN, 1
@@ -496,7 +499,7 @@ if.merge.13: ; preds = %if.then.12, %if.the
if.then.23: ; preds = %if.else.10
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.168, i64 36 })
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.170, i64 36 })
store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
%loadN = load i64, ptr %allocaN, align 8
@@ -504,7 +507,7 @@ if.then.23: ; preds = %if.else.10
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN)
store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.169, i64 2 })
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.171, i64 2 })
store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
%loadN = load i64, ptr %allocaN, align 8
@@ -515,7 +518,7 @@ if.then.23: ; preds = %if.else.10
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN)
store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.170, i64 4 })
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.172, i64 4 })
store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load i64, ptr %allocaN, align 8
%addN = add i64 %loadN, 2
@@ -572,7 +575,7 @@ if.merge.31: ; preds = %if.merge.34, %if.el
if.then.32: ; preds = %if.then.29
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.171, i64 36 })
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.173, i64 36 })
store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
%loadN = load i64, ptr %allocaN, align 8
@@ -580,7 +583,7 @@ if.then.32: ; preds = %if.then.29
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN)
store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.172, i64 2 })
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.174, i64 2 })
store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
%loadN = load i64, ptr %allocaN, align 8
@@ -591,7 +594,7 @@ if.then.32: ; preds = %if.then.29
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN)
store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.173, i64 4 })
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.175, i64 4 })
store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load i64, ptr %allocaN, align 8
%addN = add i64 %loadN, 2
@@ -611,7 +614,7 @@ if.merge.34: ; preds = %if.else.33, %if.the
if.then.35: ; preds = %while.exit.2
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.174, i64 36 })
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.176, i64 36 })
store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
%loadN = load i64, ptr %allocaN, align 8
@@ -619,7 +622,7 @@ if.then.35: ; preds = %while.exit.2
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN)
store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.175, i64 2 })
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.177, i64 2 })
store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %alloca, align 8
@@ -630,7 +633,7 @@ if.then.35: ; preds = %while.exit.2
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN)
store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.176, i64 4 })
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.178, i64 4 })
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %if.merge.36
@@ -640,64 +643,67 @@ if.merge.36: ; preds = %if.then.35, %while.
}
; Function Attrs: nounwind
declare ptr @CAllocator.alloc_bytes.1(ptr, ptr, i64) #0
declare ptr @mem_realloc.1(ptr, ptr, ptr, i64, i64, i64) #0
; Function Attrs: nounwind
declare void @CAllocator.dealloc_bytes.2(ptr, ptr, ptr) #0
declare ptr @CAllocator.alloc_bytes.2(ptr, ptr, i64) #0
; Function Attrs: nounwind
declare i64 @GPA.init.3(ptr) #0
declare void @CAllocator.dealloc_bytes.3(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare ptr @GPA.alloc_bytes.4(ptr, ptr, i64) #0
declare i64 @GPA.init.4(ptr) #0
; Function Attrs: nounwind
declare void @GPA.dealloc_bytes.5(ptr, ptr, ptr) #0
declare ptr @GPA.alloc_bytes.5(ptr, ptr, i64) #0
; Function Attrs: nounwind
declare void @Arena.add_chunk.6(ptr, ptr, i64) #0
declare void @GPA.dealloc_bytes.6(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare void @Arena.init.7(ptr sret({ ptr, i64, { ptr, ptr, ptr } }), ptr, ptr, i64) #0
declare void @Arena.add_chunk.7(ptr, ptr, i64) #0
; Function Attrs: nounwind
declare void @Arena.reset.8(ptr, ptr) #0
declare void @Arena.init.8(ptr sret({ ptr, i64, { ptr, ptr, ptr } }), ptr, ptr, i64) #0
; Function Attrs: nounwind
declare void @Arena.deinit.9(ptr, ptr) #0
declare void @Arena.reset.9(ptr, ptr) #0
; Function Attrs: nounwind
declare ptr @Arena.alloc_bytes.10(ptr, ptr, i64) #0
declare void @Arena.deinit.10(ptr, ptr) #0
; Function Attrs: nounwind
declare void @Arena.dealloc_bytes.11(ptr, ptr, ptr) #0
declare ptr @Arena.alloc_bytes.11(ptr, ptr, i64) #0
; Function Attrs: nounwind
declare ptr @BufAlloc.init.12(ptr, ptr, i64) #0
declare void @Arena.dealloc_bytes.12(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare void @BufAlloc.reset.13(ptr, ptr) #0
declare ptr @BufAlloc.init.13(ptr, ptr, i64) #0
; Function Attrs: nounwind
declare ptr @BufAlloc.alloc_bytes.14(ptr, ptr, i64) #0
declare void @BufAlloc.reset.14(ptr, ptr) #0
; Function Attrs: nounwind
declare void @BufAlloc.dealloc_bytes.15(ptr, ptr, ptr) #0
declare ptr @BufAlloc.alloc_bytes.15(ptr, ptr, i64) #0
; Function Attrs: nounwind
declare void @TrackingAllocator.init.16(ptr sret({ { ptr, ptr, ptr }, i64, i64, i64 }), ptr, ptr) #0
declare void @BufAlloc.dealloc_bytes.16(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare i64 @TrackingAllocator.leak_count.17(ptr, ptr) #0
declare void @TrackingAllocator.init.17(ptr sret({ { ptr, ptr, ptr }, i64, i64, i64 }), ptr, ptr) #0
; Function Attrs: nounwind
declare void @TrackingAllocator.report.18(ptr, ptr) #0
declare i64 @TrackingAllocator.leak_count.18(ptr, ptr) #0
; Function Attrs: nounwind
declare ptr @TrackingAllocator.alloc_bytes.19(ptr, ptr, i64) #0
declare void @TrackingAllocator.report.19(ptr, ptr) #0
; Function Attrs: nounwind
declare void @TrackingAllocator.dealloc_bytes.20(ptr, ptr, ptr) #0
declare ptr @TrackingAllocator.alloc_bytes.20(ptr, ptr, i64) #0
; Function Attrs: nounwind
declare void @TrackingAllocator.dealloc_bytes.21(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare ptr @escape(ptr, ptr) #0
@@ -873,163 +879,166 @@ declare i32 @listen(i32, i32) #0
declare i32 @accept(i32, ptr, ptr) #0
; Function Attrs: nounwind
declare i64 @read.21(i32, ptr, i64) #0
declare i64 @read.22(i32, ptr, i64) #0
; Function Attrs: nounwind
declare i32 @close.22(i32) #0
declare i32 @close.23(i32) #0
; Function Attrs: nounwind
declare i16 @htons(ptr, i64) #0
; Function Attrs: nounwind
declare ptr @CAllocator.alloc_bytes.23(ptr, ptr, i64) #0
declare ptr @mem_realloc.24(ptr, ptr, ptr, i64, i64, i64) #0
; Function Attrs: nounwind
declare void @CAllocator.dealloc_bytes.24(ptr, ptr, ptr) #0
declare ptr @CAllocator.alloc_bytes.25(ptr, ptr, i64) #0
; Function Attrs: nounwind
declare i64 @GPA.init.25(ptr) #0
declare void @CAllocator.dealloc_bytes.26(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare ptr @GPA.alloc_bytes.26(ptr, ptr, i64) #0
declare i64 @GPA.init.27(ptr) #0
; Function Attrs: nounwind
declare void @GPA.dealloc_bytes.27(ptr, ptr, ptr) #0
declare ptr @GPA.alloc_bytes.28(ptr, ptr, i64) #0
; Function Attrs: nounwind
declare void @Arena.add_chunk.28(ptr, ptr, i64) #0
declare void @GPA.dealloc_bytes.29(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare void @Arena.init.29(ptr sret({ ptr, i64, { ptr, ptr, ptr } }), ptr, ptr, i64) #0
declare void @Arena.add_chunk.30(ptr, ptr, i64) #0
; Function Attrs: nounwind
declare void @Arena.reset.30(ptr, ptr) #0
declare void @Arena.init.31(ptr sret({ ptr, i64, { ptr, ptr, ptr } }), ptr, ptr, i64) #0
; Function Attrs: nounwind
declare void @Arena.deinit.31(ptr, ptr) #0
declare void @Arena.reset.32(ptr, ptr) #0
; Function Attrs: nounwind
declare ptr @Arena.alloc_bytes.32(ptr, ptr, i64) #0
declare void @Arena.deinit.33(ptr, ptr) #0
; Function Attrs: nounwind
declare void @Arena.dealloc_bytes.33(ptr, ptr, ptr) #0
declare ptr @Arena.alloc_bytes.34(ptr, ptr, i64) #0
; Function Attrs: nounwind
declare ptr @BufAlloc.init.34(ptr, ptr, i64) #0
declare void @Arena.dealloc_bytes.35(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare void @BufAlloc.reset.35(ptr, ptr) #0
declare ptr @BufAlloc.init.36(ptr, ptr, i64) #0
; Function Attrs: nounwind
declare ptr @BufAlloc.alloc_bytes.36(ptr, ptr, i64) #0
declare void @BufAlloc.reset.37(ptr, ptr) #0
; Function Attrs: nounwind
declare void @BufAlloc.dealloc_bytes.37(ptr, ptr, ptr) #0
declare ptr @BufAlloc.alloc_bytes.38(ptr, ptr, i64) #0
; Function Attrs: nounwind
declare void @TrackingAllocator.init.38(ptr sret({ { ptr, ptr, ptr }, i64, i64, i64 }), ptr, ptr) #0
declare void @BufAlloc.dealloc_bytes.39(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare i64 @TrackingAllocator.leak_count.39(ptr, ptr) #0
declare void @TrackingAllocator.init.40(ptr sret({ { ptr, ptr, ptr }, i64, i64, i64 }), ptr, ptr) #0
; Function Attrs: nounwind
declare void @TrackingAllocator.report.40(ptr, ptr) #0
declare i64 @TrackingAllocator.leak_count.41(ptr, ptr) #0
; Function Attrs: nounwind
declare ptr @TrackingAllocator.alloc_bytes.41(ptr, ptr, i64) #0
declare void @TrackingAllocator.report.42(ptr, ptr) #0
; Function Attrs: nounwind
declare void @TrackingAllocator.dealloc_bytes.42(ptr, ptr, ptr) #0
declare ptr @TrackingAllocator.alloc_bytes.43(ptr, ptr, i64) #0
; Function Attrs: nounwind
declare i32 @open.43(ptr, i32, ...) #0
declare void @TrackingAllocator.dealloc_bytes.44(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare i32 @close.44(i32) #0
declare i32 @open.45(ptr, i32, ...) #0
; Function Attrs: nounwind
declare i64 @read.45(i32, ptr, i64) #0
declare i32 @close.46(i32) #0
; Function Attrs: nounwind
declare i64 @lseek.46(i32, i64, i32) #0
declare i64 @read.47(i32, ptr, i64) #0
; Function Attrs: nounwind
declare i32 @unlink.47(ptr) #0
declare i64 @lseek.48(i32, i64, i32) #0
; Function Attrs: nounwind
declare i32 @rmdir.48(ptr) #0
declare i32 @unlink.49(ptr) #0
; Function Attrs: nounwind
declare i32 @mkdir.49(ptr, i32) #0
declare i32 @rmdir.50(ptr) #0
; Function Attrs: nounwind
declare i32 @access.50(ptr, i32) #0
declare i32 @mkdir.51(ptr, i32) #0
; Function Attrs: nounwind
declare i32 @chmod.51(ptr, i32) #0
declare i32 @access.52(ptr, i32) #0
; Function Attrs: nounwind
declare i32 @rename.52(ptr, ptr) #0
declare i32 @chmod.53(ptr, i32) #0
; Function Attrs: nounwind
declare i1 @File.is_valid.53(ptr, ptr) #0
declare i32 @rename.54(ptr, ptr) #0
; Function Attrs: nounwind
declare i1 @File.close.54(ptr, ptr) #0
declare i1 @File.is_valid.55(ptr, ptr) #0
; Function Attrs: nounwind
declare i64 @File.read.55(ptr, ptr, ptr) #0
declare i1 @File.close.56(ptr, ptr) #0
; Function Attrs: nounwind
declare i64 @File.write.56(ptr, ptr, ptr) #0
declare i64 @File.read.57(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare i64 @File.seek.57(ptr, ptr, i64, i64) #0
declare i64 @File.write.58(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare i32 @mode_to_flags.58(ptr, i64) #0
declare i64 @File.seek.59(ptr, ptr, i64, i64) #0
; Function Attrs: nounwind
declare i64 @open_file.59(ptr, ptr, i64) #0
declare i32 @mode_to_flags.60(ptr, i64) #0
; Function Attrs: nounwind
declare void @read_file.60(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0
declare i64 @open_file.61(ptr, ptr, i64) #0
; Function Attrs: nounwind
declare i1 @write_file.61(ptr, ptr, ptr) #0
declare void @read_file.62(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0
; Function Attrs: nounwind
declare i1 @append_file.62(ptr, ptr, ptr) #0
declare i1 @write_file.63(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare i1 @exists.63(ptr, ptr) #0
declare i1 @append_file.64(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare i1 @delete_file.64(ptr, ptr) #0
declare i1 @exists.65(ptr, ptr) #0
; Function Attrs: nounwind
declare i1 @delete_dir.65(ptr, ptr) #0
declare i1 @delete_file.66(ptr, ptr) #0
; Function Attrs: nounwind
declare i1 @create_dir.66(ptr, ptr) #0
declare i1 @delete_dir.67(ptr, ptr) #0
; Function Attrs: nounwind
declare i1 @set_mode.67(ptr, ptr, i32) #0
declare i1 @create_dir.68(ptr, ptr) #0
; Function Attrs: nounwind
declare i1 @move.68(ptr, ptr, ptr) #0
declare i1 @set_mode.69(ptr, ptr, i32) #0
; Function Attrs: nounwind
declare i1 @create_dir_all.69(ptr, ptr) #0
declare i1 @move.70(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare i1 @copy_file.70(ptr, ptr, ptr) #0
declare i1 @create_dir_all.71(ptr, ptr) #0
; Function Attrs: nounwind
declare ptr @basename.71(ptr, ptr) #0
declare i1 @copy_file.72(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare ptr @dirname.72(ptr, ptr) #0
declare ptr @basename.73(ptr, ptr) #0
; Function Attrs: nounwind
declare ptr @dirname.74(ptr, ptr) #0
; Function Attrs: nounwind
declare void @Array.add(ptr, ptr, ptr, ptr) #0
@@ -1227,64 +1236,64 @@ declare ptr @BuildOptions.jni_main_java_source_at(i64, i64) #0
declare i64 @build_options() #0
; Function Attrs: nounwind
declare ptr @spaces.73(ptr, i32) #0
declare ptr @spaces.75(ptr, i32) #0
; Function Attrs: nounwind
declare i32 @sx_trace_len.74() #0
declare i32 @sx_trace_len.76() #0
; Function Attrs: nounwind
declare i32 @sx_trace_truncated.75() #0
declare i32 @sx_trace_truncated.77() #0
; Function Attrs: nounwind
declare i64 @sx_trace_frame_at.76(i32) #0
declare i64 @sx_trace_frame_at.78(i32) #0
; Function Attrs: nounwind
declare ptr @to_string.77(ptr) #0
declare ptr @to_string.79(ptr) #0
; Function Attrs: nounwind
declare void @print_current.78(ptr) #0
declare void @print_current.80(ptr) #0
; Function Attrs: nounwind
declare void @print_interpreter_frames.79(ptr) #0
declare void @print_interpreter_frames.81(ptr) #0
; Function Attrs: nounwind
declare ptr @popen.80(ptr, ptr) #0
declare ptr @popen.82(ptr, ptr) #0
; Function Attrs: nounwind
declare i32 @pclose.81(ptr) #0
declare i32 @pclose.83(ptr) #0
; Function Attrs: nounwind
declare i64 @fread.82(ptr, i64, i64, ptr) #0
declare i64 @fread.84(ptr, i64, i64, ptr) #0
; Function Attrs: nounwind
declare i32 @feof.83(ptr) #0
declare i32 @feof.85(ptr) #0
; Function Attrs: nounwind
declare ptr @getenv.84(ptr) #0
declare ptr @getenv.86(ptr) #0
; Function Attrs: nounwind
declare i64 @strlen.85(ptr) #0
declare i64 @strlen.87(ptr) #0
; Function Attrs: nounwind
declare i32 @system.86(ptr) #0
declare i32 @system.88(ptr) #0
; Function Attrs: nounwind
declare void @run.87(ptr sret({ { i32, { ptr, i64 } }, i1 }), ptr, ptr) #0
declare void @run.89(ptr sret({ { i32, { ptr, i64 } }, i1 }), ptr, ptr) #0
; Function Attrs: nounwind
declare void @env.88(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0
declare void @env.90(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0
; Function Attrs: nounwind
declare void @find_executable.89(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0
declare void @find_executable.91(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0
; Function Attrs: nounwind
declare void @_exit.90(i32) #0
declare void @_exit.92(i32) #0
; Function Attrs: nounwind
declare void @exit.91(ptr, i8, ptr) #0
declare void @exit.93(ptr, i8, ptr) #0
; Function Attrs: nounwind
declare void @assert.92(ptr, i1, ptr, ptr) #0
declare void @assert.94(ptr, i1, ptr, ptr) #0
; Function Attrs: nounwind
declare ptr @_NSGetArgv() #0
@@ -1314,97 +1323,97 @@ declare ptr @Parsed.value_of(ptr, ptr, ptr) #0
declare i1 @is_long_flag(ptr, ptr) #0
; Function Attrs: nounwind
declare void @parse.93(ptr sret({ { { ptr, i64 }, { ptr, i64 }, i64, i1, { ptr, i64 }, { ptr, i64 }, [16 x { i1, { ptr, i64 } }] }, i32 }), ptr, ptr, ptr, ptr) #0
declare void @parse.95(ptr sret({ { { ptr, i64 }, { ptr, i64 }, i64, i1, { ptr, i64 }, { ptr, i64 }, [16 x { i1, { ptr, i64 } }] }, i32 }), ptr, ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare i32 @open.94(ptr, i32, ...) #0
declare i32 @open.96(ptr, i32, ...) #0
; Function Attrs: nounwind
declare i32 @close.95(i32) #0
declare i32 @close.97(i32) #0
; Function Attrs: nounwind
declare i64 @read.96(i32, ptr, i64) #0
declare i64 @read.98(i32, ptr, i64) #0
; Function Attrs: nounwind
declare i64 @lseek.97(i32, i64, i32) #0
declare i64 @lseek.99(i32, i64, i32) #0
; Function Attrs: nounwind
declare i32 @unlink.98(ptr) #0
declare i32 @unlink.100(ptr) #0
; Function Attrs: nounwind
declare i32 @rmdir.99(ptr) #0
declare i32 @rmdir.101(ptr) #0
; Function Attrs: nounwind
declare i32 @mkdir.100(ptr, i32) #0
declare i32 @mkdir.102(ptr, i32) #0
; Function Attrs: nounwind
declare i32 @access.101(ptr, i32) #0
declare i32 @access.103(ptr, i32) #0
; Function Attrs: nounwind
declare i32 @chmod.102(ptr, i32) #0
declare i32 @chmod.104(ptr, i32) #0
; Function Attrs: nounwind
declare i32 @rename.103(ptr, ptr) #0
declare i32 @rename.105(ptr, ptr) #0
; Function Attrs: nounwind
declare i1 @File.is_valid.104(ptr, ptr) #0
declare i1 @File.is_valid.106(ptr, ptr) #0
; Function Attrs: nounwind
declare i1 @File.close.105(ptr, ptr) #0
declare i1 @File.close.107(ptr, ptr) #0
; Function Attrs: nounwind
declare i64 @File.read.106(ptr, ptr, ptr) #0
declare i64 @File.read.108(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare i64 @File.write.107(ptr, ptr, ptr) #0
declare i64 @File.write.109(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare i64 @File.seek.108(ptr, ptr, i64, i64) #0
declare i64 @File.seek.110(ptr, ptr, i64, i64) #0
; Function Attrs: nounwind
declare i32 @mode_to_flags.109(ptr, i64) #0
declare i32 @mode_to_flags.111(ptr, i64) #0
; Function Attrs: nounwind
declare i64 @open_file.110(ptr, ptr, i64) #0
declare i64 @open_file.112(ptr, ptr, i64) #0
; Function Attrs: nounwind
declare void @read_file.111(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0
declare void @read_file.113(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0
; Function Attrs: nounwind
declare i1 @write_file.112(ptr, ptr, ptr) #0
declare i1 @write_file.114(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare i1 @append_file.113(ptr, ptr, ptr) #0
declare i1 @append_file.115(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare i1 @exists.114(ptr, ptr) #0
declare i1 @exists.116(ptr, ptr) #0
; Function Attrs: nounwind
declare i1 @delete_file.115(ptr, ptr) #0
declare i1 @delete_file.117(ptr, ptr) #0
; Function Attrs: nounwind
declare i1 @delete_dir.116(ptr, ptr) #0
declare i1 @delete_dir.118(ptr, ptr) #0
; Function Attrs: nounwind
declare i1 @create_dir.117(ptr, ptr) #0
declare i1 @create_dir.119(ptr, ptr) #0
; Function Attrs: nounwind
declare i1 @set_mode.118(ptr, ptr, i32) #0
declare i1 @set_mode.120(ptr, ptr, i32) #0
; Function Attrs: nounwind
declare i1 @move.119(ptr, ptr, ptr) #0
declare i1 @move.121(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare i1 @create_dir_all.120(ptr, ptr) #0
declare i1 @create_dir_all.122(ptr, ptr) #0
; Function Attrs: nounwind
declare i1 @copy_file.121(ptr, ptr, ptr) #0
declare i1 @copy_file.123(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare ptr @basename.122(ptr, ptr) #0
declare ptr @basename.124(ptr, ptr) #0
; Function Attrs: nounwind
declare ptr @dirname.123(ptr, ptr) #0
declare ptr @dirname.125(ptr, ptr) #0
; Function Attrs: nounwind
declare i64 @rotr(ptr, i64, i64) #0
@@ -1443,118 +1452,118 @@ declare [64 x i8] @sha256_hex(ptr, ptr) #0
declare void @sha256_file(ptr sret({ [64 x i8], i1 }), ptr, ptr) #0
; Function Attrs: nounwind
declare void @assert.124(ptr, i1) #0
declare void @assert.126(ptr, i1) #0
; Function Attrs: nounwind
declare void @BuildOptions.add_link_flag.125(i64, ptr) #0
declare void @BuildOptions.add_link_flag.127(i64, ptr) #0
; Function Attrs: nounwind
declare void @BuildOptions.add_framework.126(i64, ptr) #0
declare void @BuildOptions.add_framework.128(i64, ptr) #0
; Function Attrs: nounwind
declare void @BuildOptions.set_output_path.127(i64, ptr) #0
declare void @BuildOptions.set_output_path.129(i64, ptr) #0
; Function Attrs: nounwind
declare void @BuildOptions.set_wasm_shell.128(i64, ptr) #0
declare void @BuildOptions.set_wasm_shell.130(i64, ptr) #0
; Function Attrs: nounwind
declare void @BuildOptions.add_asset_dir.129(i64, ptr, ptr) #0
declare void @BuildOptions.add_asset_dir.131(i64, ptr, ptr) #0
; Function Attrs: nounwind
declare i64 @BuildOptions.asset_dir_count.130(i64) #0
declare i64 @BuildOptions.asset_dir_count.132(i64) #0
; Function Attrs: nounwind
declare ptr @BuildOptions.asset_dir_src_at.131(i64, i64) #0
declare ptr @BuildOptions.asset_dir_src_at.133(i64, i64) #0
; Function Attrs: nounwind
declare ptr @BuildOptions.asset_dir_dest_at.132(i64, i64) #0
declare ptr @BuildOptions.asset_dir_dest_at.134(i64, i64) #0
; Function Attrs: nounwind
declare void @BuildOptions.set_post_link_callback.133(i64, ptr) #0
declare void @BuildOptions.set_post_link_callback.135(i64, ptr) #0
; Function Attrs: nounwind
declare void @BuildOptions.set_post_link_module.134(i64, ptr) #0
declare void @BuildOptions.set_post_link_module.136(i64, ptr) #0
; Function Attrs: nounwind
declare ptr @BuildOptions.binary_path.135(i64) #0
declare ptr @BuildOptions.binary_path.137(i64) #0
; Function Attrs: nounwind
declare void @BuildOptions.set_bundle_path.136(i64, ptr) #0
declare void @BuildOptions.set_bundle_path.138(i64, ptr) #0
; Function Attrs: nounwind
declare void @BuildOptions.set_bundle_id.137(i64, ptr) #0
declare void @BuildOptions.set_bundle_id.139(i64, ptr) #0
; Function Attrs: nounwind
declare void @BuildOptions.set_codesign_identity.138(i64, ptr) #0
declare void @BuildOptions.set_codesign_identity.140(i64, ptr) #0
; Function Attrs: nounwind
declare void @BuildOptions.set_provisioning_profile.139(i64, ptr) #0
declare void @BuildOptions.set_provisioning_profile.141(i64, ptr) #0
; Function Attrs: nounwind
declare ptr @BuildOptions.bundle_path.140(i64) #0
declare ptr @BuildOptions.bundle_path.142(i64) #0
; Function Attrs: nounwind
declare ptr @BuildOptions.bundle_id.141(i64) #0
declare ptr @BuildOptions.bundle_id.143(i64) #0
; Function Attrs: nounwind
declare ptr @BuildOptions.codesign_identity.142(i64) #0
declare ptr @BuildOptions.codesign_identity.144(i64) #0
; Function Attrs: nounwind
declare ptr @BuildOptions.provisioning_profile.143(i64) #0
declare ptr @BuildOptions.provisioning_profile.145(i64) #0
; Function Attrs: nounwind
declare ptr @BuildOptions.target_triple.144(i64) #0
declare ptr @BuildOptions.target_triple.146(i64) #0
; Function Attrs: nounwind
declare i1 @BuildOptions.is_macos.145(i64) #0
declare i1 @BuildOptions.is_macos.147(i64) #0
; Function Attrs: nounwind
declare i1 @BuildOptions.is_ios.146(i64) #0
declare i1 @BuildOptions.is_ios.148(i64) #0
; Function Attrs: nounwind
declare i1 @BuildOptions.is_ios_device.147(i64) #0
declare i1 @BuildOptions.is_ios_device.149(i64) #0
; Function Attrs: nounwind
declare i1 @BuildOptions.is_ios_simulator.148(i64) #0
declare i1 @BuildOptions.is_ios_simulator.150(i64) #0
; Function Attrs: nounwind
declare i1 @BuildOptions.is_android.149(i64) #0
declare i1 @BuildOptions.is_android.151(i64) #0
; Function Attrs: nounwind
declare i64 @BuildOptions.framework_count.150(i64) #0
declare i64 @BuildOptions.framework_count.152(i64) #0
; Function Attrs: nounwind
declare ptr @BuildOptions.framework_at.151(i64, i64) #0
declare ptr @BuildOptions.framework_at.153(i64, i64) #0
; Function Attrs: nounwind
declare i64 @BuildOptions.framework_path_count.152(i64) #0
declare i64 @BuildOptions.framework_path_count.154(i64) #0
; Function Attrs: nounwind
declare ptr @BuildOptions.framework_path_at.153(i64, i64) #0
declare ptr @BuildOptions.framework_path_at.155(i64, i64) #0
; Function Attrs: nounwind
declare void @BuildOptions.set_manifest_path.154(i64, ptr) #0
declare void @BuildOptions.set_manifest_path.156(i64, ptr) #0
; Function Attrs: nounwind
declare void @BuildOptions.set_keystore_path.155(i64, ptr) #0
declare void @BuildOptions.set_keystore_path.157(i64, ptr) #0
; Function Attrs: nounwind
declare ptr @BuildOptions.manifest_path.156(i64) #0
declare ptr @BuildOptions.manifest_path.158(i64) #0
; Function Attrs: nounwind
declare ptr @BuildOptions.keystore_path.157(i64) #0
declare ptr @BuildOptions.keystore_path.159(i64) #0
; Function Attrs: nounwind
declare i64 @BuildOptions.jni_main_count.158(i64) #0
declare i64 @BuildOptions.jni_main_count.160(i64) #0
; Function Attrs: nounwind
declare ptr @BuildOptions.jni_main_foreign_path_at.159(i64, i64) #0
declare ptr @BuildOptions.jni_main_foreign_path_at.161(i64, i64) #0
; Function Attrs: nounwind
declare ptr @BuildOptions.jni_main_java_source_at.160(i64, i64) #0
declare ptr @BuildOptions.jni_main_java_source_at.162(i64, i64) #0
; Function Attrs: nounwind
declare i64 @build_options.161() #0
declare i64 @build_options.163() #0
; Function Attrs: nounwind
declare ptr @objc_getClass(ptr) #0
@@ -1636,17 +1645,14 @@ entry:
define i32 @main() #0 {
entry:
call void @__sx_objc_selector_init()
%call = call ptr @objc_getClass(ptr @str.177)
%call = call ptr @objc_getClass(ptr @str.179)
%alloca = alloca ptr, align 8
store ptr %call, ptr %alloca, align 8
%load = load ptr, ptr %alloca, align 8
%callN = call ptr @objc_allocateClassPair(ptr %load, ptr @str.178, i64 0)
%callN = call ptr @objc_allocateClassPair(ptr %load, ptr @str.180, i64 0)
%allocaN = alloca ptr, align 8
store ptr %callN, ptr %allocaN, align 8
%loadN = load ptr, ptr %allocaN, align 8
%callN = call ptr @sel_registerName(ptr @str.179)
%callN = call i1 @class_addMethod(ptr %loadN, ptr %callN, ptr @universal_imp, ptr @str.180)
%loadN = load ptr, ptr %allocaN, align 8
%callN = call ptr @sel_registerName(ptr @str.181)
%callN = call i1 @class_addMethod(ptr %loadN, ptr %callN, ptr @universal_imp, ptr @str.182)
%loadN = load ptr, ptr %allocaN, align 8
@@ -1665,6 +1671,9 @@ entry:
%callN = call ptr @sel_registerName(ptr @str.191)
%callN = call i1 @class_addMethod(ptr %loadN, ptr %callN, ptr @universal_imp, ptr @str.192)
%loadN = load ptr, ptr %allocaN, align 8
%callN = call ptr @sel_registerName(ptr @str.193)
%callN = call i1 @class_addMethod(ptr %loadN, ptr %callN, ptr @universal_imp, ptr @str.194)
%loadN = load ptr, ptr %allocaN, align 8
call void @objc_registerClassPair(ptr %loadN)
%allocaN = alloca ptr, align 8
%loadN = load ptr, ptr %allocaN, align 8
@@ -1713,14 +1722,14 @@ entry:
define internal void @print__ct_s4c1a58a7c89bfbba__pack(ptr %0) #0 {
entry:
%alloca = alloca { ptr, i64 }, align 8
store { ptr, i64 } { ptr @str.193, i64 18 }, ptr %alloca, align 8
store { ptr, i64 } { ptr @str.195, i64 18 }, ptr %alloca, align 8
%allocaN = alloca { ptr, i64 }, align 8
%gep = getelementptr inbounds { ptr, i64 }, ptr %allocaN, i32 0, i32 0
store ptr null, ptr %gep, align 8
%gepN = getelementptr inbounds { ptr, i64 }, ptr %allocaN, i32 0, i32 1
store i64 0, ptr %gepN, align 8
%allocaN = alloca { ptr, i64 }, align 8
store { ptr, i64 } { ptr @str.194, i64 0 }, ptr %allocaN, align 8
store { ptr, i64 } { ptr @str.196, i64 0 }, ptr %allocaN, align 8
%load = load { ptr, i64 }, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %alloca, align 8
%call = call { ptr, i64 } @substr(ptr %0, { ptr, i64 } %loadN, i64 0, i64 18)
@@ -1736,7 +1745,7 @@ entry:
; Function Attrs: nounwind
define internal { ptr, i64 } @__insert_0(ptr %0) #0 {
entry:
%call = call { ptr, i64 } @build_format(ptr %0, { ptr, i64 } { ptr @str.195, i64 18 })
%call = call { ptr, i64 } @build_format(ptr %0, { ptr, i64 } { ptr @str.197, i64 18 })
ret { ptr, i64 } %call
}
@@ -1744,17 +1753,17 @@ define internal void @__sx_objc_selector_init() {
entry:
%sel = call ptr @sel_registerName(ptr @OBJC_METH_VAR_NAME_)
store ptr %sel, ptr @OBJC_SELECTOR_REFERENCES_length, align 8
%selN = call ptr @sel_registerName(ptr @OBJC_METH_VAR_NAME_.196)
store ptr %selN, ptr @OBJC_SELECTOR_REFERENCES_addObject_, align 8
%selN = call ptr @sel_registerName(ptr @OBJC_METH_VAR_NAME_.197)
store ptr %selN, ptr @OBJC_SELECTOR_REFERENCES_combine_and_, align 8
%selN = call ptr @sel_registerName(ptr @OBJC_METH_VAR_NAME_.198)
store ptr %selN, ptr @OBJC_SELECTOR_REFERENCES_insert_after_index_, align 8
store ptr %selN, ptr @OBJC_SELECTOR_REFERENCES_addObject_, align 8
%selN = call ptr @sel_registerName(ptr @OBJC_METH_VAR_NAME_.199)
store ptr %selN, ptr @OBJC_SELECTOR_REFERENCES_add_observer_for_event_, align 8
store ptr %selN, ptr @OBJC_SELECTOR_REFERENCES_combine_and_, align 8
%selN = call ptr @sel_registerName(ptr @OBJC_METH_VAR_NAME_.200)
store ptr %selN, ptr @OBJC_SELECTOR_REFERENCES_initWithFrame_options_, align 8
store ptr %selN, ptr @OBJC_SELECTOR_REFERENCES_insert_after_index_, align 8
%selN = call ptr @sel_registerName(ptr @OBJC_METH_VAR_NAME_.201)
store ptr %selN, ptr @OBJC_SELECTOR_REFERENCES_add_observer_for_event_, align 8
%selN = call ptr @sel_registerName(ptr @OBJC_METH_VAR_NAME_.202)
store ptr %selN, ptr @OBJC_SELECTOR_REFERENCES_initWithFrame_options_, align 8
%selN = call ptr @sel_registerName(ptr @OBJC_METH_VAR_NAME_.203)
store ptr %selN, ptr @OBJC_SELECTOR_REFERENCES_actualSelectorName, align 8
ret void
}

View File

@@ -2,30 +2,30 @@
@g_should_call = internal global i1 false
@__sx_default_context = internal constant { { ptr, ptr, ptr }, ptr } { { ptr, ptr, ptr } { ptr null, ptr @__thunk_CAllocator_Allocator_alloc_bytes, ptr @__thunk_CAllocator_Allocator_dealloc_bytes }, ptr null }
@str = private unnamed_addr constant [2 x i8] c"0\00", align 1
@str.125 = private unnamed_addr constant [15 x i8] c"result := \22\22; \00", align 1
@str.126 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1
@str.127 = private unnamed_addr constant [3 x i8] c", \00", align 1
@str.128 = private unnamed_addr constant [5 x i8] c")); \00", align 1
@str.129 = private unnamed_addr constant [44 x i8] c"result = concat(result, any_to_string(args[\00", align 1
@str.130 = private unnamed_addr constant [6 x i8] c"])); \00", align 1
@str.131 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1
@str.132 = private unnamed_addr constant [3 x i8] c", \00", align 1
@str.133 = private unnamed_addr constant [5 x i8] c")); \00", align 1
@str.134 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1
@str.135 = private unnamed_addr constant [3 x i8] c", \00", align 1
@str.136 = private unnamed_addr constant [5 x i8] c")); \00", align 1
@str.137 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1
@str.138 = private unnamed_addr constant [3 x i8] c", \00", align 1
@str.139 = private unnamed_addr constant [5 x i8] c")); \00", align 1
@str.140 = private unnamed_addr constant [5 x i8] c"noop\00", align 1
@str.141 = private unnamed_addr constant [4 x i8] c"()V\00", align 1
@SX_JNI_CLS_noop____V = internal global ptr null
@SX_JNI_MID_noop____V = internal global ptr null
@str.127 = private unnamed_addr constant [15 x i8] c"result := \22\22; \00", align 1
@str.128 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1
@str.129 = private unnamed_addr constant [3 x i8] c", \00", align 1
@str.130 = private unnamed_addr constant [5 x i8] c")); \00", align 1
@str.131 = private unnamed_addr constant [44 x i8] c"result = concat(result, any_to_string(args[\00", align 1
@str.132 = private unnamed_addr constant [6 x i8] c"])); \00", align 1
@str.133 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1
@str.134 = private unnamed_addr constant [3 x i8] c", \00", align 1
@str.135 = private unnamed_addr constant [5 x i8] c")); \00", align 1
@str.136 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1
@str.137 = private unnamed_addr constant [3 x i8] c", \00", align 1
@str.138 = private unnamed_addr constant [5 x i8] c")); \00", align 1
@str.139 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1
@str.140 = private unnamed_addr constant [3 x i8] c", \00", align 1
@str.141 = private unnamed_addr constant [5 x i8] c")); \00", align 1
@str.142 = private unnamed_addr constant [5 x i8] c"noop\00", align 1
@str.143 = private unnamed_addr constant [4 x i8] c"()V\00", align 1
@str.144 = private unnamed_addr constant [4 x i8] c"ok\0A\00", align 1
@str.145 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1
@SX_JNI_CLS_noop____V = internal global ptr null
@SX_JNI_MID_noop____V = internal global ptr null
@str.144 = private unnamed_addr constant [5 x i8] c"noop\00", align 1
@str.145 = private unnamed_addr constant [4 x i8] c"()V\00", align 1
@str.146 = private unnamed_addr constant [4 x i8] c"ok\0A\00", align 1
@str.147 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1
@str.148 = private unnamed_addr constant [4 x i8] c"ok\0A\00", align 1
; Function Attrs: nounwind
declare void @out(ptr) #0
@@ -38,6 +38,9 @@ declare ptr @memcpy(ptr, ptr, i64)
declare ptr @memset(ptr, i32, i64)
; Function Attrs: nounwind
declare ptr @mem_realloc(ptr, ptr, ptr, i64, i64, i64) #0
; Function Attrs: nounwind
define internal ptr @CAllocator.alloc_bytes(ptr %0, ptr %1, i64 %2) #0 {
entry:
@@ -330,7 +333,7 @@ entry:
%alloca = alloca { ptr, i64 }, align 8
store { ptr, i64 } %1, ptr %alloca, align 8
%allocaN = alloca { ptr, i64 }, align 8
store { ptr, i64 } { ptr @str.125, i64 14 }, ptr %allocaN, align 8
store { ptr, i64 } { ptr @str.127, i64 14 }, ptr %allocaN, align 8
%allocaN = alloca i64, align 8
store i64 0, ptr %allocaN, align 8
%allocaN = alloca i64, align 8
@@ -426,7 +429,7 @@ if.merge.13: ; preds = %if.merge.27, %if.me
if.then.14: ; preds = %if.then.11
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
%call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.126, i64 36 })
%call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.128, i64 36 })
store { ptr, i64 } %call, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
%loadN = load i64, ptr %allocaN, align 8
@@ -434,7 +437,7 @@ if.then.14: ; preds = %if.then.11
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN)
store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.127, i64 2 })
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.129, i64 2 })
store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
%loadN = load i64, ptr %allocaN, align 8
@@ -444,13 +447,13 @@ if.then.14: ; preds = %if.then.11
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN)
store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.128, i64 4 })
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.130, i64 4 })
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %if.merge.15
if.merge.15: ; preds = %if.then.14, %if.then.11
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.129, i64 43 })
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.131, i64 43 })
store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
%loadN = load i64, ptr %allocaN, align 8
@@ -458,7 +461,7 @@ if.merge.15: ; preds = %if.then.14, %if.the
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN)
store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.130, i64 5 })
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.132, i64 5 })
store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load i64, ptr %allocaN, align 8
%addN = add i64 %loadN, 1
@@ -472,7 +475,7 @@ if.merge.15: ; preds = %if.then.14, %if.the
if.then.25: ; preds = %if.else.12
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.131, i64 36 })
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.133, i64 36 })
store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
%loadN = load i64, ptr %allocaN, align 8
@@ -480,7 +483,7 @@ if.then.25: ; preds = %if.else.12
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN)
store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.132, i64 2 })
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.134, i64 2 })
store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
%loadN = load i64, ptr %allocaN, align 8
@@ -491,7 +494,7 @@ if.then.25: ; preds = %if.else.12
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN)
store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.133, i64 4 })
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.135, i64 4 })
store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load i64, ptr %allocaN, align 8
%addN = add i64 %loadN, 2
@@ -548,7 +551,7 @@ if.merge.33: ; preds = %if.merge.36, %if.el
if.then.34: ; preds = %if.then.31
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.134, i64 36 })
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.136, i64 36 })
store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
%loadN = load i64, ptr %allocaN, align 8
@@ -556,7 +559,7 @@ if.then.34: ; preds = %if.then.31
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN)
store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.135, i64 2 })
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.137, i64 2 })
store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
%loadN = load i64, ptr %allocaN, align 8
@@ -567,7 +570,7 @@ if.then.34: ; preds = %if.then.31
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN)
store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.136, i64 4 })
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.138, i64 4 })
store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load i64, ptr %allocaN, align 8
%addN = add i64 %loadN, 2
@@ -587,7 +590,7 @@ if.merge.36: ; preds = %if.else.35, %if.the
if.then.37: ; preds = %while.exit.4
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.137, i64 36 })
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.139, i64 36 })
store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
%loadN = load i64, ptr %allocaN, align 8
@@ -595,7 +598,7 @@ if.then.37: ; preds = %while.exit.4
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN)
store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.138, i64 2 })
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.140, i64 2 })
store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %alloca, align 8
@@ -606,7 +609,7 @@ if.then.37: ; preds = %while.exit.4
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN)
store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.139, i64 4 })
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.141, i64 4 })
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %if.merge.38
@@ -616,64 +619,67 @@ if.merge.38: ; preds = %if.then.37, %while.
}
; Function Attrs: nounwind
declare ptr @CAllocator.alloc_bytes.1(ptr, ptr, i64) #0
declare ptr @mem_realloc.1(ptr, ptr, ptr, i64, i64, i64) #0
; Function Attrs: nounwind
declare void @CAllocator.dealloc_bytes.2(ptr, ptr, ptr) #0
declare ptr @CAllocator.alloc_bytes.2(ptr, ptr, i64) #0
; Function Attrs: nounwind
declare i64 @GPA.init.3(ptr) #0
declare void @CAllocator.dealloc_bytes.3(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare ptr @GPA.alloc_bytes.4(ptr, ptr, i64) #0
declare i64 @GPA.init.4(ptr) #0
; Function Attrs: nounwind
declare void @GPA.dealloc_bytes.5(ptr, ptr, ptr) #0
declare ptr @GPA.alloc_bytes.5(ptr, ptr, i64) #0
; Function Attrs: nounwind
declare void @Arena.add_chunk.6(ptr, ptr, i64) #0
declare void @GPA.dealloc_bytes.6(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare void @Arena.init.7(ptr sret({ ptr, i64, { ptr, ptr, ptr } }), ptr, ptr, i64) #0
declare void @Arena.add_chunk.7(ptr, ptr, i64) #0
; Function Attrs: nounwind
declare void @Arena.reset.8(ptr, ptr) #0
declare void @Arena.init.8(ptr sret({ ptr, i64, { ptr, ptr, ptr } }), ptr, ptr, i64) #0
; Function Attrs: nounwind
declare void @Arena.deinit.9(ptr, ptr) #0
declare void @Arena.reset.9(ptr, ptr) #0
; Function Attrs: nounwind
declare ptr @Arena.alloc_bytes.10(ptr, ptr, i64) #0
declare void @Arena.deinit.10(ptr, ptr) #0
; Function Attrs: nounwind
declare void @Arena.dealloc_bytes.11(ptr, ptr, ptr) #0
declare ptr @Arena.alloc_bytes.11(ptr, ptr, i64) #0
; Function Attrs: nounwind
declare ptr @BufAlloc.init.12(ptr, ptr, i64) #0
declare void @Arena.dealloc_bytes.12(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare void @BufAlloc.reset.13(ptr, ptr) #0
declare ptr @BufAlloc.init.13(ptr, ptr, i64) #0
; Function Attrs: nounwind
declare ptr @BufAlloc.alloc_bytes.14(ptr, ptr, i64) #0
declare void @BufAlloc.reset.14(ptr, ptr) #0
; Function Attrs: nounwind
declare void @BufAlloc.dealloc_bytes.15(ptr, ptr, ptr) #0
declare ptr @BufAlloc.alloc_bytes.15(ptr, ptr, i64) #0
; Function Attrs: nounwind
declare void @TrackingAllocator.init.16(ptr sret({ { ptr, ptr, ptr }, i64, i64, i64 }), ptr, ptr) #0
declare void @BufAlloc.dealloc_bytes.16(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare i64 @TrackingAllocator.leak_count.17(ptr, ptr) #0
declare void @TrackingAllocator.init.17(ptr sret({ { ptr, ptr, ptr }, i64, i64, i64 }), ptr, ptr) #0
; Function Attrs: nounwind
declare void @TrackingAllocator.report.18(ptr, ptr) #0
declare i64 @TrackingAllocator.leak_count.18(ptr, ptr) #0
; Function Attrs: nounwind
declare ptr @TrackingAllocator.alloc_bytes.19(ptr, ptr, i64) #0
declare void @TrackingAllocator.report.19(ptr, ptr) #0
; Function Attrs: nounwind
declare void @TrackingAllocator.dealloc_bytes.20(ptr, ptr, ptr) #0
declare ptr @TrackingAllocator.alloc_bytes.20(ptr, ptr, i64) #0
; Function Attrs: nounwind
declare void @TrackingAllocator.dealloc_bytes.21(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare ptr @escape(ptr, ptr) #0
@@ -849,163 +855,166 @@ declare i32 @listen(i32, i32) #0
declare i32 @accept(i32, ptr, ptr) #0
; Function Attrs: nounwind
declare i64 @read.21(i32, ptr, i64) #0
declare i64 @read.22(i32, ptr, i64) #0
; Function Attrs: nounwind
declare i32 @close.22(i32) #0
declare i32 @close.23(i32) #0
; Function Attrs: nounwind
declare i16 @htons(ptr, i64) #0
; Function Attrs: nounwind
declare ptr @CAllocator.alloc_bytes.23(ptr, ptr, i64) #0
declare ptr @mem_realloc.24(ptr, ptr, ptr, i64, i64, i64) #0
; Function Attrs: nounwind
declare void @CAllocator.dealloc_bytes.24(ptr, ptr, ptr) #0
declare ptr @CAllocator.alloc_bytes.25(ptr, ptr, i64) #0
; Function Attrs: nounwind
declare i64 @GPA.init.25(ptr) #0
declare void @CAllocator.dealloc_bytes.26(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare ptr @GPA.alloc_bytes.26(ptr, ptr, i64) #0
declare i64 @GPA.init.27(ptr) #0
; Function Attrs: nounwind
declare void @GPA.dealloc_bytes.27(ptr, ptr, ptr) #0
declare ptr @GPA.alloc_bytes.28(ptr, ptr, i64) #0
; Function Attrs: nounwind
declare void @Arena.add_chunk.28(ptr, ptr, i64) #0
declare void @GPA.dealloc_bytes.29(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare void @Arena.init.29(ptr sret({ ptr, i64, { ptr, ptr, ptr } }), ptr, ptr, i64) #0
declare void @Arena.add_chunk.30(ptr, ptr, i64) #0
; Function Attrs: nounwind
declare void @Arena.reset.30(ptr, ptr) #0
declare void @Arena.init.31(ptr sret({ ptr, i64, { ptr, ptr, ptr } }), ptr, ptr, i64) #0
; Function Attrs: nounwind
declare void @Arena.deinit.31(ptr, ptr) #0
declare void @Arena.reset.32(ptr, ptr) #0
; Function Attrs: nounwind
declare ptr @Arena.alloc_bytes.32(ptr, ptr, i64) #0
declare void @Arena.deinit.33(ptr, ptr) #0
; Function Attrs: nounwind
declare void @Arena.dealloc_bytes.33(ptr, ptr, ptr) #0
declare ptr @Arena.alloc_bytes.34(ptr, ptr, i64) #0
; Function Attrs: nounwind
declare ptr @BufAlloc.init.34(ptr, ptr, i64) #0
declare void @Arena.dealloc_bytes.35(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare void @BufAlloc.reset.35(ptr, ptr) #0
declare ptr @BufAlloc.init.36(ptr, ptr, i64) #0
; Function Attrs: nounwind
declare ptr @BufAlloc.alloc_bytes.36(ptr, ptr, i64) #0
declare void @BufAlloc.reset.37(ptr, ptr) #0
; Function Attrs: nounwind
declare void @BufAlloc.dealloc_bytes.37(ptr, ptr, ptr) #0
declare ptr @BufAlloc.alloc_bytes.38(ptr, ptr, i64) #0
; Function Attrs: nounwind
declare void @TrackingAllocator.init.38(ptr sret({ { ptr, ptr, ptr }, i64, i64, i64 }), ptr, ptr) #0
declare void @BufAlloc.dealloc_bytes.39(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare i64 @TrackingAllocator.leak_count.39(ptr, ptr) #0
declare void @TrackingAllocator.init.40(ptr sret({ { ptr, ptr, ptr }, i64, i64, i64 }), ptr, ptr) #0
; Function Attrs: nounwind
declare void @TrackingAllocator.report.40(ptr, ptr) #0
declare i64 @TrackingAllocator.leak_count.41(ptr, ptr) #0
; Function Attrs: nounwind
declare ptr @TrackingAllocator.alloc_bytes.41(ptr, ptr, i64) #0
declare void @TrackingAllocator.report.42(ptr, ptr) #0
; Function Attrs: nounwind
declare void @TrackingAllocator.dealloc_bytes.42(ptr, ptr, ptr) #0
declare ptr @TrackingAllocator.alloc_bytes.43(ptr, ptr, i64) #0
; Function Attrs: nounwind
declare i32 @open.43(ptr, i32, ...) #0
declare void @TrackingAllocator.dealloc_bytes.44(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare i32 @close.44(i32) #0
declare i32 @open.45(ptr, i32, ...) #0
; Function Attrs: nounwind
declare i64 @read.45(i32, ptr, i64) #0
declare i32 @close.46(i32) #0
; Function Attrs: nounwind
declare i64 @lseek.46(i32, i64, i32) #0
declare i64 @read.47(i32, ptr, i64) #0
; Function Attrs: nounwind
declare i32 @unlink.47(ptr) #0
declare i64 @lseek.48(i32, i64, i32) #0
; Function Attrs: nounwind
declare i32 @rmdir.48(ptr) #0
declare i32 @unlink.49(ptr) #0
; Function Attrs: nounwind
declare i32 @mkdir.49(ptr, i32) #0
declare i32 @rmdir.50(ptr) #0
; Function Attrs: nounwind
declare i32 @access.50(ptr, i32) #0
declare i32 @mkdir.51(ptr, i32) #0
; Function Attrs: nounwind
declare i32 @chmod.51(ptr, i32) #0
declare i32 @access.52(ptr, i32) #0
; Function Attrs: nounwind
declare i32 @rename.52(ptr, ptr) #0
declare i32 @chmod.53(ptr, i32) #0
; Function Attrs: nounwind
declare i1 @File.is_valid.53(ptr, ptr) #0
declare i32 @rename.54(ptr, ptr) #0
; Function Attrs: nounwind
declare i1 @File.close.54(ptr, ptr) #0
declare i1 @File.is_valid.55(ptr, ptr) #0
; Function Attrs: nounwind
declare i64 @File.read.55(ptr, ptr, ptr) #0
declare i1 @File.close.56(ptr, ptr) #0
; Function Attrs: nounwind
declare i64 @File.write.56(ptr, ptr, ptr) #0
declare i64 @File.read.57(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare i64 @File.seek.57(ptr, ptr, i64, i64) #0
declare i64 @File.write.58(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare i32 @mode_to_flags.58(ptr, i64) #0
declare i64 @File.seek.59(ptr, ptr, i64, i64) #0
; Function Attrs: nounwind
declare i64 @open_file.59(ptr, ptr, i64) #0
declare i32 @mode_to_flags.60(ptr, i64) #0
; Function Attrs: nounwind
declare void @read_file.60(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0
declare i64 @open_file.61(ptr, ptr, i64) #0
; Function Attrs: nounwind
declare i1 @write_file.61(ptr, ptr, ptr) #0
declare void @read_file.62(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0
; Function Attrs: nounwind
declare i1 @append_file.62(ptr, ptr, ptr) #0
declare i1 @write_file.63(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare i1 @exists.63(ptr, ptr) #0
declare i1 @append_file.64(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare i1 @delete_file.64(ptr, ptr) #0
declare i1 @exists.65(ptr, ptr) #0
; Function Attrs: nounwind
declare i1 @delete_dir.65(ptr, ptr) #0
declare i1 @delete_file.66(ptr, ptr) #0
; Function Attrs: nounwind
declare i1 @create_dir.66(ptr, ptr) #0
declare i1 @delete_dir.67(ptr, ptr) #0
; Function Attrs: nounwind
declare i1 @set_mode.67(ptr, ptr, i32) #0
declare i1 @create_dir.68(ptr, ptr) #0
; Function Attrs: nounwind
declare i1 @move.68(ptr, ptr, ptr) #0
declare i1 @set_mode.69(ptr, ptr, i32) #0
; Function Attrs: nounwind
declare i1 @create_dir_all.69(ptr, ptr) #0
declare i1 @move.70(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare i1 @copy_file.70(ptr, ptr, ptr) #0
declare i1 @create_dir_all.71(ptr, ptr) #0
; Function Attrs: nounwind
declare ptr @basename.71(ptr, ptr) #0
declare i1 @copy_file.72(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare ptr @dirname.72(ptr, ptr) #0
declare ptr @basename.73(ptr, ptr) #0
; Function Attrs: nounwind
declare ptr @dirname.74(ptr, ptr) #0
; Function Attrs: nounwind
declare void @Array.add(ptr, ptr, ptr, ptr) #0
@@ -1203,64 +1212,64 @@ declare ptr @BuildOptions.jni_main_java_source_at(i64, i64) #0
declare i64 @build_options() #0
; Function Attrs: nounwind
declare ptr @spaces.73(ptr, i32) #0
declare ptr @spaces.75(ptr, i32) #0
; Function Attrs: nounwind
declare i32 @sx_trace_len.74() #0
declare i32 @sx_trace_len.76() #0
; Function Attrs: nounwind
declare i32 @sx_trace_truncated.75() #0
declare i32 @sx_trace_truncated.77() #0
; Function Attrs: nounwind
declare i64 @sx_trace_frame_at.76(i32) #0
declare i64 @sx_trace_frame_at.78(i32) #0
; Function Attrs: nounwind
declare ptr @to_string.77(ptr) #0
declare ptr @to_string.79(ptr) #0
; Function Attrs: nounwind
declare void @print_current.78(ptr) #0
declare void @print_current.80(ptr) #0
; Function Attrs: nounwind
declare void @print_interpreter_frames.79(ptr) #0
declare void @print_interpreter_frames.81(ptr) #0
; Function Attrs: nounwind
declare ptr @popen.80(ptr, ptr) #0
declare ptr @popen.82(ptr, ptr) #0
; Function Attrs: nounwind
declare i32 @pclose.81(ptr) #0
declare i32 @pclose.83(ptr) #0
; Function Attrs: nounwind
declare i64 @fread.82(ptr, i64, i64, ptr) #0
declare i64 @fread.84(ptr, i64, i64, ptr) #0
; Function Attrs: nounwind
declare i32 @feof.83(ptr) #0
declare i32 @feof.85(ptr) #0
; Function Attrs: nounwind
declare ptr @getenv.84(ptr) #0
declare ptr @getenv.86(ptr) #0
; Function Attrs: nounwind
declare i64 @strlen.85(ptr) #0
declare i64 @strlen.87(ptr) #0
; Function Attrs: nounwind
declare i32 @system.86(ptr) #0
declare i32 @system.88(ptr) #0
; Function Attrs: nounwind
declare void @run.87(ptr sret({ { i32, { ptr, i64 } }, i1 }), ptr, ptr) #0
declare void @run.89(ptr sret({ { i32, { ptr, i64 } }, i1 }), ptr, ptr) #0
; Function Attrs: nounwind
declare void @env.88(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0
declare void @env.90(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0
; Function Attrs: nounwind
declare void @find_executable.89(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0
declare void @find_executable.91(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0
; Function Attrs: nounwind
declare void @_exit.90(i32) #0
declare void @_exit.92(i32) #0
; Function Attrs: nounwind
declare void @exit.91(ptr, i8, ptr) #0
declare void @exit.93(ptr, i8, ptr) #0
; Function Attrs: nounwind
declare void @assert.92(ptr, i1, ptr, ptr) #0
declare void @assert.94(ptr, i1, ptr, ptr) #0
; Function Attrs: nounwind
declare ptr @_NSGetArgv() #0
@@ -1290,97 +1299,97 @@ declare ptr @Parsed.value_of(ptr, ptr, ptr) #0
declare i1 @is_long_flag(ptr, ptr) #0
; Function Attrs: nounwind
declare void @parse.93(ptr sret({ { { ptr, i64 }, { ptr, i64 }, i64, i1, { ptr, i64 }, { ptr, i64 }, [16 x { i1, { ptr, i64 } }] }, i32 }), ptr, ptr, ptr, ptr) #0
declare void @parse.95(ptr sret({ { { ptr, i64 }, { ptr, i64 }, i64, i1, { ptr, i64 }, { ptr, i64 }, [16 x { i1, { ptr, i64 } }] }, i32 }), ptr, ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare i32 @open.94(ptr, i32, ...) #0
declare i32 @open.96(ptr, i32, ...) #0
; Function Attrs: nounwind
declare i32 @close.95(i32) #0
declare i32 @close.97(i32) #0
; Function Attrs: nounwind
declare i64 @read.96(i32, ptr, i64) #0
declare i64 @read.98(i32, ptr, i64) #0
; Function Attrs: nounwind
declare i64 @lseek.97(i32, i64, i32) #0
declare i64 @lseek.99(i32, i64, i32) #0
; Function Attrs: nounwind
declare i32 @unlink.98(ptr) #0
declare i32 @unlink.100(ptr) #0
; Function Attrs: nounwind
declare i32 @rmdir.99(ptr) #0
declare i32 @rmdir.101(ptr) #0
; Function Attrs: nounwind
declare i32 @mkdir.100(ptr, i32) #0
declare i32 @mkdir.102(ptr, i32) #0
; Function Attrs: nounwind
declare i32 @access.101(ptr, i32) #0
declare i32 @access.103(ptr, i32) #0
; Function Attrs: nounwind
declare i32 @chmod.102(ptr, i32) #0
declare i32 @chmod.104(ptr, i32) #0
; Function Attrs: nounwind
declare i32 @rename.103(ptr, ptr) #0
declare i32 @rename.105(ptr, ptr) #0
; Function Attrs: nounwind
declare i1 @File.is_valid.104(ptr, ptr) #0
declare i1 @File.is_valid.106(ptr, ptr) #0
; Function Attrs: nounwind
declare i1 @File.close.105(ptr, ptr) #0
declare i1 @File.close.107(ptr, ptr) #0
; Function Attrs: nounwind
declare i64 @File.read.106(ptr, ptr, ptr) #0
declare i64 @File.read.108(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare i64 @File.write.107(ptr, ptr, ptr) #0
declare i64 @File.write.109(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare i64 @File.seek.108(ptr, ptr, i64, i64) #0
declare i64 @File.seek.110(ptr, ptr, i64, i64) #0
; Function Attrs: nounwind
declare i32 @mode_to_flags.109(ptr, i64) #0
declare i32 @mode_to_flags.111(ptr, i64) #0
; Function Attrs: nounwind
declare i64 @open_file.110(ptr, ptr, i64) #0
declare i64 @open_file.112(ptr, ptr, i64) #0
; Function Attrs: nounwind
declare void @read_file.111(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0
declare void @read_file.113(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0
; Function Attrs: nounwind
declare i1 @write_file.112(ptr, ptr, ptr) #0
declare i1 @write_file.114(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare i1 @append_file.113(ptr, ptr, ptr) #0
declare i1 @append_file.115(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare i1 @exists.114(ptr, ptr) #0
declare i1 @exists.116(ptr, ptr) #0
; Function Attrs: nounwind
declare i1 @delete_file.115(ptr, ptr) #0
declare i1 @delete_file.117(ptr, ptr) #0
; Function Attrs: nounwind
declare i1 @delete_dir.116(ptr, ptr) #0
declare i1 @delete_dir.118(ptr, ptr) #0
; Function Attrs: nounwind
declare i1 @create_dir.117(ptr, ptr) #0
declare i1 @create_dir.119(ptr, ptr) #0
; Function Attrs: nounwind
declare i1 @set_mode.118(ptr, ptr, i32) #0
declare i1 @set_mode.120(ptr, ptr, i32) #0
; Function Attrs: nounwind
declare i1 @move.119(ptr, ptr, ptr) #0
declare i1 @move.121(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare i1 @create_dir_all.120(ptr, ptr) #0
declare i1 @create_dir_all.122(ptr, ptr) #0
; Function Attrs: nounwind
declare i1 @copy_file.121(ptr, ptr, ptr) #0
declare i1 @copy_file.123(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare ptr @basename.122(ptr, ptr) #0
declare ptr @basename.124(ptr, ptr) #0
; Function Attrs: nounwind
declare ptr @dirname.123(ptr, ptr) #0
declare ptr @dirname.125(ptr, ptr) #0
; Function Attrs: nounwind
declare i64 @rotr(ptr, i64, i64) #0
@@ -1419,7 +1428,7 @@ declare [64 x i8] @sha256_hex(ptr, ptr) #0
declare void @sha256_file(ptr sret({ [64 x i8], i1 }), ptr, ptr) #0
; Function Attrs: nounwind
declare void @assert.124(ptr, i1) #0
declare void @assert.126(ptr, i1) #0
; Function Attrs: nounwind
define internal void @unused_jni(ptr %0, ptr %1, ptr %2) #0 {
@@ -1447,7 +1456,7 @@ jni.miss: ; preds = %entry
store ptr %jni.global.cls, ptr @SX_JNI_CLS_noop____V, align 8
%5 = getelementptr inbounds ptr, ptr %jni.ifs, i32 33
%jni.GetMethodID = load ptr, ptr %5, align 8
%jni.fresh.mid = call ptr %jni.GetMethodID(ptr %load, ptr %jni.global.cls, ptr @str.140, ptr @str.141)
%jni.fresh.mid = call ptr %jni.GetMethodID(ptr %load, ptr %jni.global.cls, ptr @str.142, ptr @str.143)
store ptr %jni.fresh.mid, ptr @SX_JNI_MID_noop____V, align 8
br label %jni.cont
@@ -1472,7 +1481,7 @@ jni.miss7: ; preds = %jni.cont
store ptr %jni.global.cls12, ptr @SX_JNI_CLS_noop____V, align 8
%9 = getelementptr inbounds ptr, ptr %jni.ifs4, i32 33
%jni.GetMethodID13 = load ptr, ptr %9, align 8
%jni.fresh.mid14 = call ptr %jni.GetMethodID13(ptr %load, ptr %jni.global.cls12, ptr @str.142, ptr @str.143)
%jni.fresh.mid14 = call ptr %jni.GetMethodID13(ptr %load, ptr %jni.global.cls12, ptr @str.144, ptr @str.145)
store ptr %jni.fresh.mid14, ptr @SX_JNI_MID_noop____V, align 8
br label %jni.cont8
@@ -1524,14 +1533,14 @@ declare void @sx_jni_env_tl_set(ptr) #0
define internal void @print__ct_sbdbafa1a5fe828c0__pack(ptr %0) #0 {
entry:
%alloca = alloca { ptr, i64 }, align 8
store { ptr, i64 } { ptr @str.144, i64 3 }, ptr %alloca, align 8
store { ptr, i64 } { ptr @str.146, i64 3 }, ptr %alloca, align 8
%allocaN = alloca { ptr, i64 }, align 8
%gep = getelementptr inbounds { ptr, i64 }, ptr %allocaN, i32 0, i32 0
store ptr null, ptr %gep, align 8
%gepN = getelementptr inbounds { ptr, i64 }, ptr %allocaN, i32 0, i32 1
store i64 0, ptr %gepN, align 8
%allocaN = alloca { ptr, i64 }, align 8
store { ptr, i64 } { ptr @str.145, i64 0 }, ptr %allocaN, align 8
store { ptr, i64 } { ptr @str.147, i64 0 }, ptr %allocaN, align 8
%load = load { ptr, i64 }, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %alloca, align 8
%call = call { ptr, i64 } @substr(ptr %0, { ptr, i64 } %loadN, i64 0, i64 3)
@@ -1547,6 +1556,6 @@ entry:
; Function Attrs: nounwind
define internal { ptr, i64 } @__insert_0(ptr %0) #0 {
entry:
%call = call { ptr, i64 } @build_format(ptr %0, { ptr, i64 } { ptr @str.146, i64 3 })
%call = call { ptr, i64 } @build_format(ptr %0, { ptr, i64 } { ptr @str.148, i64 3 })
ret { ptr, i64 } %call
}

View File

@@ -2,28 +2,28 @@
@g_should_call = internal global i1 false
@__sx_default_context = internal constant { { ptr, ptr, ptr }, ptr } { { ptr, ptr, ptr } { ptr null, ptr @__thunk_CAllocator_Allocator_alloc_bytes, ptr @__thunk_CAllocator_Allocator_dealloc_bytes }, ptr null }
@str = private unnamed_addr constant [2 x i8] c"0\00", align 1
@str.125 = private unnamed_addr constant [15 x i8] c"result := \22\22; \00", align 1
@str.126 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1
@str.127 = private unnamed_addr constant [3 x i8] c", \00", align 1
@str.128 = private unnamed_addr constant [5 x i8] c")); \00", align 1
@str.129 = private unnamed_addr constant [44 x i8] c"result = concat(result, any_to_string(args[\00", align 1
@str.130 = private unnamed_addr constant [6 x i8] c"])); \00", align 1
@str.131 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1
@str.132 = private unnamed_addr constant [3 x i8] c", \00", align 1
@str.133 = private unnamed_addr constant [5 x i8] c")); \00", align 1
@str.134 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1
@str.135 = private unnamed_addr constant [3 x i8] c", \00", align 1
@str.136 = private unnamed_addr constant [5 x i8] c")); \00", align 1
@str.137 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1
@str.138 = private unnamed_addr constant [3 x i8] c", \00", align 1
@str.139 = private unnamed_addr constant [5 x i8] c")); \00", align 1
@str.140 = private unnamed_addr constant [9 x i8] c"getCount\00", align 1
@str.141 = private unnamed_addr constant [4 x i8] c"()I\00", align 1
@str.127 = private unnamed_addr constant [15 x i8] c"result := \22\22; \00", align 1
@str.128 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1
@str.129 = private unnamed_addr constant [3 x i8] c", \00", align 1
@str.130 = private unnamed_addr constant [5 x i8] c")); \00", align 1
@str.131 = private unnamed_addr constant [44 x i8] c"result = concat(result, any_to_string(args[\00", align 1
@str.132 = private unnamed_addr constant [6 x i8] c"])); \00", align 1
@str.133 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1
@str.134 = private unnamed_addr constant [3 x i8] c", \00", align 1
@str.135 = private unnamed_addr constant [5 x i8] c")); \00", align 1
@str.136 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1
@str.137 = private unnamed_addr constant [3 x i8] c", \00", align 1
@str.138 = private unnamed_addr constant [5 x i8] c")); \00", align 1
@str.139 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1
@str.140 = private unnamed_addr constant [3 x i8] c", \00", align 1
@str.141 = private unnamed_addr constant [5 x i8] c")); \00", align 1
@str.142 = private unnamed_addr constant [9 x i8] c"getCount\00", align 1
@str.143 = private unnamed_addr constant [4 x i8] c"()I\00", align 1
@SX_JNI_CLS_getCount____I = internal global ptr null
@SX_JNI_MID_getCount____I = internal global ptr null
@str.142 = private unnamed_addr constant [4 x i8] c"ok\0A\00", align 1
@str.143 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1
@str.144 = private unnamed_addr constant [4 x i8] c"ok\0A\00", align 1
@str.145 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1
@str.146 = private unnamed_addr constant [4 x i8] c"ok\0A\00", align 1
; Function Attrs: nounwind
declare void @out(ptr) #0
@@ -36,6 +36,9 @@ declare ptr @memcpy(ptr, ptr, i64)
declare ptr @memset(ptr, i32, i64)
; Function Attrs: nounwind
declare ptr @mem_realloc(ptr, ptr, ptr, i64, i64, i64) #0
; Function Attrs: nounwind
define internal ptr @CAllocator.alloc_bytes(ptr %0, ptr %1, i64 %2) #0 {
entry:
@@ -328,7 +331,7 @@ entry:
%alloca = alloca { ptr, i64 }, align 8
store { ptr, i64 } %1, ptr %alloca, align 8
%allocaN = alloca { ptr, i64 }, align 8
store { ptr, i64 } { ptr @str.125, i64 14 }, ptr %allocaN, align 8
store { ptr, i64 } { ptr @str.127, i64 14 }, ptr %allocaN, align 8
%allocaN = alloca i64, align 8
store i64 0, ptr %allocaN, align 8
%allocaN = alloca i64, align 8
@@ -424,7 +427,7 @@ if.merge.13: ; preds = %if.merge.27, %if.me
if.then.14: ; preds = %if.then.11
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
%call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.126, i64 36 })
%call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.128, i64 36 })
store { ptr, i64 } %call, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
%loadN = load i64, ptr %allocaN, align 8
@@ -432,7 +435,7 @@ if.then.14: ; preds = %if.then.11
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN)
store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.127, i64 2 })
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.129, i64 2 })
store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
%loadN = load i64, ptr %allocaN, align 8
@@ -442,13 +445,13 @@ if.then.14: ; preds = %if.then.11
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN)
store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.128, i64 4 })
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.130, i64 4 })
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %if.merge.15
if.merge.15: ; preds = %if.then.14, %if.then.11
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.129, i64 43 })
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.131, i64 43 })
store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
%loadN = load i64, ptr %allocaN, align 8
@@ -456,7 +459,7 @@ if.merge.15: ; preds = %if.then.14, %if.the
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN)
store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.130, i64 5 })
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.132, i64 5 })
store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load i64, ptr %allocaN, align 8
%addN = add i64 %loadN, 1
@@ -470,7 +473,7 @@ if.merge.15: ; preds = %if.then.14, %if.the
if.then.25: ; preds = %if.else.12
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.131, i64 36 })
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.133, i64 36 })
store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
%loadN = load i64, ptr %allocaN, align 8
@@ -478,7 +481,7 @@ if.then.25: ; preds = %if.else.12
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN)
store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.132, i64 2 })
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.134, i64 2 })
store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
%loadN = load i64, ptr %allocaN, align 8
@@ -489,7 +492,7 @@ if.then.25: ; preds = %if.else.12
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN)
store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.133, i64 4 })
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.135, i64 4 })
store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load i64, ptr %allocaN, align 8
%addN = add i64 %loadN, 2
@@ -546,7 +549,7 @@ if.merge.33: ; preds = %if.merge.36, %if.el
if.then.34: ; preds = %if.then.31
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.134, i64 36 })
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.136, i64 36 })
store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
%loadN = load i64, ptr %allocaN, align 8
@@ -554,7 +557,7 @@ if.then.34: ; preds = %if.then.31
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN)
store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.135, i64 2 })
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.137, i64 2 })
store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
%loadN = load i64, ptr %allocaN, align 8
@@ -565,7 +568,7 @@ if.then.34: ; preds = %if.then.31
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN)
store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.136, i64 4 })
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.138, i64 4 })
store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load i64, ptr %allocaN, align 8
%addN = add i64 %loadN, 2
@@ -585,7 +588,7 @@ if.merge.36: ; preds = %if.else.35, %if.the
if.then.37: ; preds = %while.exit.4
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.137, i64 36 })
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.139, i64 36 })
store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
%loadN = load i64, ptr %allocaN, align 8
@@ -593,7 +596,7 @@ if.then.37: ; preds = %while.exit.4
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN)
store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.138, i64 2 })
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.140, i64 2 })
store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %alloca, align 8
@@ -604,7 +607,7 @@ if.then.37: ; preds = %while.exit.4
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN)
store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.139, i64 4 })
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.141, i64 4 })
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %if.merge.38
@@ -614,64 +617,67 @@ if.merge.38: ; preds = %if.then.37, %while.
}
; Function Attrs: nounwind
declare ptr @CAllocator.alloc_bytes.1(ptr, ptr, i64) #0
declare ptr @mem_realloc.1(ptr, ptr, ptr, i64, i64, i64) #0
; Function Attrs: nounwind
declare void @CAllocator.dealloc_bytes.2(ptr, ptr, ptr) #0
declare ptr @CAllocator.alloc_bytes.2(ptr, ptr, i64) #0
; Function Attrs: nounwind
declare i64 @GPA.init.3(ptr) #0
declare void @CAllocator.dealloc_bytes.3(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare ptr @GPA.alloc_bytes.4(ptr, ptr, i64) #0
declare i64 @GPA.init.4(ptr) #0
; Function Attrs: nounwind
declare void @GPA.dealloc_bytes.5(ptr, ptr, ptr) #0
declare ptr @GPA.alloc_bytes.5(ptr, ptr, i64) #0
; Function Attrs: nounwind
declare void @Arena.add_chunk.6(ptr, ptr, i64) #0
declare void @GPA.dealloc_bytes.6(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare void @Arena.init.7(ptr sret({ ptr, i64, { ptr, ptr, ptr } }), ptr, ptr, i64) #0
declare void @Arena.add_chunk.7(ptr, ptr, i64) #0
; Function Attrs: nounwind
declare void @Arena.reset.8(ptr, ptr) #0
declare void @Arena.init.8(ptr sret({ ptr, i64, { ptr, ptr, ptr } }), ptr, ptr, i64) #0
; Function Attrs: nounwind
declare void @Arena.deinit.9(ptr, ptr) #0
declare void @Arena.reset.9(ptr, ptr) #0
; Function Attrs: nounwind
declare ptr @Arena.alloc_bytes.10(ptr, ptr, i64) #0
declare void @Arena.deinit.10(ptr, ptr) #0
; Function Attrs: nounwind
declare void @Arena.dealloc_bytes.11(ptr, ptr, ptr) #0
declare ptr @Arena.alloc_bytes.11(ptr, ptr, i64) #0
; Function Attrs: nounwind
declare ptr @BufAlloc.init.12(ptr, ptr, i64) #0
declare void @Arena.dealloc_bytes.12(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare void @BufAlloc.reset.13(ptr, ptr) #0
declare ptr @BufAlloc.init.13(ptr, ptr, i64) #0
; Function Attrs: nounwind
declare ptr @BufAlloc.alloc_bytes.14(ptr, ptr, i64) #0
declare void @BufAlloc.reset.14(ptr, ptr) #0
; Function Attrs: nounwind
declare void @BufAlloc.dealloc_bytes.15(ptr, ptr, ptr) #0
declare ptr @BufAlloc.alloc_bytes.15(ptr, ptr, i64) #0
; Function Attrs: nounwind
declare void @TrackingAllocator.init.16(ptr sret({ { ptr, ptr, ptr }, i64, i64, i64 }), ptr, ptr) #0
declare void @BufAlloc.dealloc_bytes.16(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare i64 @TrackingAllocator.leak_count.17(ptr, ptr) #0
declare void @TrackingAllocator.init.17(ptr sret({ { ptr, ptr, ptr }, i64, i64, i64 }), ptr, ptr) #0
; Function Attrs: nounwind
declare void @TrackingAllocator.report.18(ptr, ptr) #0
declare i64 @TrackingAllocator.leak_count.18(ptr, ptr) #0
; Function Attrs: nounwind
declare ptr @TrackingAllocator.alloc_bytes.19(ptr, ptr, i64) #0
declare void @TrackingAllocator.report.19(ptr, ptr) #0
; Function Attrs: nounwind
declare void @TrackingAllocator.dealloc_bytes.20(ptr, ptr, ptr) #0
declare ptr @TrackingAllocator.alloc_bytes.20(ptr, ptr, i64) #0
; Function Attrs: nounwind
declare void @TrackingAllocator.dealloc_bytes.21(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare ptr @escape(ptr, ptr) #0
@@ -847,163 +853,166 @@ declare i32 @listen(i32, i32) #0
declare i32 @accept(i32, ptr, ptr) #0
; Function Attrs: nounwind
declare i64 @read.21(i32, ptr, i64) #0
declare i64 @read.22(i32, ptr, i64) #0
; Function Attrs: nounwind
declare i32 @close.22(i32) #0
declare i32 @close.23(i32) #0
; Function Attrs: nounwind
declare i16 @htons(ptr, i64) #0
; Function Attrs: nounwind
declare ptr @CAllocator.alloc_bytes.23(ptr, ptr, i64) #0
declare ptr @mem_realloc.24(ptr, ptr, ptr, i64, i64, i64) #0
; Function Attrs: nounwind
declare void @CAllocator.dealloc_bytes.24(ptr, ptr, ptr) #0
declare ptr @CAllocator.alloc_bytes.25(ptr, ptr, i64) #0
; Function Attrs: nounwind
declare i64 @GPA.init.25(ptr) #0
declare void @CAllocator.dealloc_bytes.26(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare ptr @GPA.alloc_bytes.26(ptr, ptr, i64) #0
declare i64 @GPA.init.27(ptr) #0
; Function Attrs: nounwind
declare void @GPA.dealloc_bytes.27(ptr, ptr, ptr) #0
declare ptr @GPA.alloc_bytes.28(ptr, ptr, i64) #0
; Function Attrs: nounwind
declare void @Arena.add_chunk.28(ptr, ptr, i64) #0
declare void @GPA.dealloc_bytes.29(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare void @Arena.init.29(ptr sret({ ptr, i64, { ptr, ptr, ptr } }), ptr, ptr, i64) #0
declare void @Arena.add_chunk.30(ptr, ptr, i64) #0
; Function Attrs: nounwind
declare void @Arena.reset.30(ptr, ptr) #0
declare void @Arena.init.31(ptr sret({ ptr, i64, { ptr, ptr, ptr } }), ptr, ptr, i64) #0
; Function Attrs: nounwind
declare void @Arena.deinit.31(ptr, ptr) #0
declare void @Arena.reset.32(ptr, ptr) #0
; Function Attrs: nounwind
declare ptr @Arena.alloc_bytes.32(ptr, ptr, i64) #0
declare void @Arena.deinit.33(ptr, ptr) #0
; Function Attrs: nounwind
declare void @Arena.dealloc_bytes.33(ptr, ptr, ptr) #0
declare ptr @Arena.alloc_bytes.34(ptr, ptr, i64) #0
; Function Attrs: nounwind
declare ptr @BufAlloc.init.34(ptr, ptr, i64) #0
declare void @Arena.dealloc_bytes.35(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare void @BufAlloc.reset.35(ptr, ptr) #0
declare ptr @BufAlloc.init.36(ptr, ptr, i64) #0
; Function Attrs: nounwind
declare ptr @BufAlloc.alloc_bytes.36(ptr, ptr, i64) #0
declare void @BufAlloc.reset.37(ptr, ptr) #0
; Function Attrs: nounwind
declare void @BufAlloc.dealloc_bytes.37(ptr, ptr, ptr) #0
declare ptr @BufAlloc.alloc_bytes.38(ptr, ptr, i64) #0
; Function Attrs: nounwind
declare void @TrackingAllocator.init.38(ptr sret({ { ptr, ptr, ptr }, i64, i64, i64 }), ptr, ptr) #0
declare void @BufAlloc.dealloc_bytes.39(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare i64 @TrackingAllocator.leak_count.39(ptr, ptr) #0
declare void @TrackingAllocator.init.40(ptr sret({ { ptr, ptr, ptr }, i64, i64, i64 }), ptr, ptr) #0
; Function Attrs: nounwind
declare void @TrackingAllocator.report.40(ptr, ptr) #0
declare i64 @TrackingAllocator.leak_count.41(ptr, ptr) #0
; Function Attrs: nounwind
declare ptr @TrackingAllocator.alloc_bytes.41(ptr, ptr, i64) #0
declare void @TrackingAllocator.report.42(ptr, ptr) #0
; Function Attrs: nounwind
declare void @TrackingAllocator.dealloc_bytes.42(ptr, ptr, ptr) #0
declare ptr @TrackingAllocator.alloc_bytes.43(ptr, ptr, i64) #0
; Function Attrs: nounwind
declare i32 @open.43(ptr, i32, ...) #0
declare void @TrackingAllocator.dealloc_bytes.44(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare i32 @close.44(i32) #0
declare i32 @open.45(ptr, i32, ...) #0
; Function Attrs: nounwind
declare i64 @read.45(i32, ptr, i64) #0
declare i32 @close.46(i32) #0
; Function Attrs: nounwind
declare i64 @lseek.46(i32, i64, i32) #0
declare i64 @read.47(i32, ptr, i64) #0
; Function Attrs: nounwind
declare i32 @unlink.47(ptr) #0
declare i64 @lseek.48(i32, i64, i32) #0
; Function Attrs: nounwind
declare i32 @rmdir.48(ptr) #0
declare i32 @unlink.49(ptr) #0
; Function Attrs: nounwind
declare i32 @mkdir.49(ptr, i32) #0
declare i32 @rmdir.50(ptr) #0
; Function Attrs: nounwind
declare i32 @access.50(ptr, i32) #0
declare i32 @mkdir.51(ptr, i32) #0
; Function Attrs: nounwind
declare i32 @chmod.51(ptr, i32) #0
declare i32 @access.52(ptr, i32) #0
; Function Attrs: nounwind
declare i32 @rename.52(ptr, ptr) #0
declare i32 @chmod.53(ptr, i32) #0
; Function Attrs: nounwind
declare i1 @File.is_valid.53(ptr, ptr) #0
declare i32 @rename.54(ptr, ptr) #0
; Function Attrs: nounwind
declare i1 @File.close.54(ptr, ptr) #0
declare i1 @File.is_valid.55(ptr, ptr) #0
; Function Attrs: nounwind
declare i64 @File.read.55(ptr, ptr, ptr) #0
declare i1 @File.close.56(ptr, ptr) #0
; Function Attrs: nounwind
declare i64 @File.write.56(ptr, ptr, ptr) #0
declare i64 @File.read.57(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare i64 @File.seek.57(ptr, ptr, i64, i64) #0
declare i64 @File.write.58(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare i32 @mode_to_flags.58(ptr, i64) #0
declare i64 @File.seek.59(ptr, ptr, i64, i64) #0
; Function Attrs: nounwind
declare i64 @open_file.59(ptr, ptr, i64) #0
declare i32 @mode_to_flags.60(ptr, i64) #0
; Function Attrs: nounwind
declare void @read_file.60(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0
declare i64 @open_file.61(ptr, ptr, i64) #0
; Function Attrs: nounwind
declare i1 @write_file.61(ptr, ptr, ptr) #0
declare void @read_file.62(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0
; Function Attrs: nounwind
declare i1 @append_file.62(ptr, ptr, ptr) #0
declare i1 @write_file.63(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare i1 @exists.63(ptr, ptr) #0
declare i1 @append_file.64(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare i1 @delete_file.64(ptr, ptr) #0
declare i1 @exists.65(ptr, ptr) #0
; Function Attrs: nounwind
declare i1 @delete_dir.65(ptr, ptr) #0
declare i1 @delete_file.66(ptr, ptr) #0
; Function Attrs: nounwind
declare i1 @create_dir.66(ptr, ptr) #0
declare i1 @delete_dir.67(ptr, ptr) #0
; Function Attrs: nounwind
declare i1 @set_mode.67(ptr, ptr, i32) #0
declare i1 @create_dir.68(ptr, ptr) #0
; Function Attrs: nounwind
declare i1 @move.68(ptr, ptr, ptr) #0
declare i1 @set_mode.69(ptr, ptr, i32) #0
; Function Attrs: nounwind
declare i1 @create_dir_all.69(ptr, ptr) #0
declare i1 @move.70(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare i1 @copy_file.70(ptr, ptr, ptr) #0
declare i1 @create_dir_all.71(ptr, ptr) #0
; Function Attrs: nounwind
declare ptr @basename.71(ptr, ptr) #0
declare i1 @copy_file.72(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare ptr @dirname.72(ptr, ptr) #0
declare ptr @basename.73(ptr, ptr) #0
; Function Attrs: nounwind
declare ptr @dirname.74(ptr, ptr) #0
; Function Attrs: nounwind
declare void @Array.add(ptr, ptr, ptr, ptr) #0
@@ -1201,64 +1210,64 @@ declare ptr @BuildOptions.jni_main_java_source_at(i64, i64) #0
declare i64 @build_options() #0
; Function Attrs: nounwind
declare ptr @spaces.73(ptr, i32) #0
declare ptr @spaces.75(ptr, i32) #0
; Function Attrs: nounwind
declare i32 @sx_trace_len.74() #0
declare i32 @sx_trace_len.76() #0
; Function Attrs: nounwind
declare i32 @sx_trace_truncated.75() #0
declare i32 @sx_trace_truncated.77() #0
; Function Attrs: nounwind
declare i64 @sx_trace_frame_at.76(i32) #0
declare i64 @sx_trace_frame_at.78(i32) #0
; Function Attrs: nounwind
declare ptr @to_string.77(ptr) #0
declare ptr @to_string.79(ptr) #0
; Function Attrs: nounwind
declare void @print_current.78(ptr) #0
declare void @print_current.80(ptr) #0
; Function Attrs: nounwind
declare void @print_interpreter_frames.79(ptr) #0
declare void @print_interpreter_frames.81(ptr) #0
; Function Attrs: nounwind
declare ptr @popen.80(ptr, ptr) #0
declare ptr @popen.82(ptr, ptr) #0
; Function Attrs: nounwind
declare i32 @pclose.81(ptr) #0
declare i32 @pclose.83(ptr) #0
; Function Attrs: nounwind
declare i64 @fread.82(ptr, i64, i64, ptr) #0
declare i64 @fread.84(ptr, i64, i64, ptr) #0
; Function Attrs: nounwind
declare i32 @feof.83(ptr) #0
declare i32 @feof.85(ptr) #0
; Function Attrs: nounwind
declare ptr @getenv.84(ptr) #0
declare ptr @getenv.86(ptr) #0
; Function Attrs: nounwind
declare i64 @strlen.85(ptr) #0
declare i64 @strlen.87(ptr) #0
; Function Attrs: nounwind
declare i32 @system.86(ptr) #0
declare i32 @system.88(ptr) #0
; Function Attrs: nounwind
declare void @run.87(ptr sret({ { i32, { ptr, i64 } }, i1 }), ptr, ptr) #0
declare void @run.89(ptr sret({ { i32, { ptr, i64 } }, i1 }), ptr, ptr) #0
; Function Attrs: nounwind
declare void @env.88(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0
declare void @env.90(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0
; Function Attrs: nounwind
declare void @find_executable.89(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0
declare void @find_executable.91(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0
; Function Attrs: nounwind
declare void @_exit.90(i32) #0
declare void @_exit.92(i32) #0
; Function Attrs: nounwind
declare void @exit.91(ptr, i8, ptr) #0
declare void @exit.93(ptr, i8, ptr) #0
; Function Attrs: nounwind
declare void @assert.92(ptr, i1, ptr, ptr) #0
declare void @assert.94(ptr, i1, ptr, ptr) #0
; Function Attrs: nounwind
declare ptr @_NSGetArgv() #0
@@ -1288,97 +1297,97 @@ declare ptr @Parsed.value_of(ptr, ptr, ptr) #0
declare i1 @is_long_flag(ptr, ptr) #0
; Function Attrs: nounwind
declare void @parse.93(ptr sret({ { { ptr, i64 }, { ptr, i64 }, i64, i1, { ptr, i64 }, { ptr, i64 }, [16 x { i1, { ptr, i64 } }] }, i32 }), ptr, ptr, ptr, ptr) #0
declare void @parse.95(ptr sret({ { { ptr, i64 }, { ptr, i64 }, i64, i1, { ptr, i64 }, { ptr, i64 }, [16 x { i1, { ptr, i64 } }] }, i32 }), ptr, ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare i32 @open.94(ptr, i32, ...) #0
declare i32 @open.96(ptr, i32, ...) #0
; Function Attrs: nounwind
declare i32 @close.95(i32) #0
declare i32 @close.97(i32) #0
; Function Attrs: nounwind
declare i64 @read.96(i32, ptr, i64) #0
declare i64 @read.98(i32, ptr, i64) #0
; Function Attrs: nounwind
declare i64 @lseek.97(i32, i64, i32) #0
declare i64 @lseek.99(i32, i64, i32) #0
; Function Attrs: nounwind
declare i32 @unlink.98(ptr) #0
declare i32 @unlink.100(ptr) #0
; Function Attrs: nounwind
declare i32 @rmdir.99(ptr) #0
declare i32 @rmdir.101(ptr) #0
; Function Attrs: nounwind
declare i32 @mkdir.100(ptr, i32) #0
declare i32 @mkdir.102(ptr, i32) #0
; Function Attrs: nounwind
declare i32 @access.101(ptr, i32) #0
declare i32 @access.103(ptr, i32) #0
; Function Attrs: nounwind
declare i32 @chmod.102(ptr, i32) #0
declare i32 @chmod.104(ptr, i32) #0
; Function Attrs: nounwind
declare i32 @rename.103(ptr, ptr) #0
declare i32 @rename.105(ptr, ptr) #0
; Function Attrs: nounwind
declare i1 @File.is_valid.104(ptr, ptr) #0
declare i1 @File.is_valid.106(ptr, ptr) #0
; Function Attrs: nounwind
declare i1 @File.close.105(ptr, ptr) #0
declare i1 @File.close.107(ptr, ptr) #0
; Function Attrs: nounwind
declare i64 @File.read.106(ptr, ptr, ptr) #0
declare i64 @File.read.108(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare i64 @File.write.107(ptr, ptr, ptr) #0
declare i64 @File.write.109(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare i64 @File.seek.108(ptr, ptr, i64, i64) #0
declare i64 @File.seek.110(ptr, ptr, i64, i64) #0
; Function Attrs: nounwind
declare i32 @mode_to_flags.109(ptr, i64) #0
declare i32 @mode_to_flags.111(ptr, i64) #0
; Function Attrs: nounwind
declare i64 @open_file.110(ptr, ptr, i64) #0
declare i64 @open_file.112(ptr, ptr, i64) #0
; Function Attrs: nounwind
declare void @read_file.111(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0
declare void @read_file.113(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0
; Function Attrs: nounwind
declare i1 @write_file.112(ptr, ptr, ptr) #0
declare i1 @write_file.114(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare i1 @append_file.113(ptr, ptr, ptr) #0
declare i1 @append_file.115(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare i1 @exists.114(ptr, ptr) #0
declare i1 @exists.116(ptr, ptr) #0
; Function Attrs: nounwind
declare i1 @delete_file.115(ptr, ptr) #0
declare i1 @delete_file.117(ptr, ptr) #0
; Function Attrs: nounwind
declare i1 @delete_dir.116(ptr, ptr) #0
declare i1 @delete_dir.118(ptr, ptr) #0
; Function Attrs: nounwind
declare i1 @create_dir.117(ptr, ptr) #0
declare i1 @create_dir.119(ptr, ptr) #0
; Function Attrs: nounwind
declare i1 @set_mode.118(ptr, ptr, i32) #0
declare i1 @set_mode.120(ptr, ptr, i32) #0
; Function Attrs: nounwind
declare i1 @move.119(ptr, ptr, ptr) #0
declare i1 @move.121(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare i1 @create_dir_all.120(ptr, ptr) #0
declare i1 @create_dir_all.122(ptr, ptr) #0
; Function Attrs: nounwind
declare i1 @copy_file.121(ptr, ptr, ptr) #0
declare i1 @copy_file.123(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare ptr @basename.122(ptr, ptr) #0
declare ptr @basename.124(ptr, ptr) #0
; Function Attrs: nounwind
declare ptr @dirname.123(ptr, ptr) #0
declare ptr @dirname.125(ptr, ptr) #0
; Function Attrs: nounwind
declare i64 @rotr(ptr, i64, i64) #0
@@ -1417,7 +1426,7 @@ declare [64 x i8] @sha256_hex(ptr, ptr) #0
declare void @sha256_file(ptr sret({ [64 x i8], i1 }), ptr, ptr) #0
; Function Attrs: nounwind
declare void @assert.124(ptr, i1) #0
declare void @assert.126(ptr, i1) #0
; Function Attrs: nounwind
define internal i32 @read_int(ptr %0, ptr %1, ptr %2) #0 {
@@ -1445,7 +1454,7 @@ jni.miss: ; preds = %entry
store ptr %jni.global.cls, ptr @SX_JNI_CLS_getCount____I, align 8
%5 = getelementptr inbounds ptr, ptr %jni.ifs, i32 33
%jni.GetMethodID = load ptr, ptr %5, align 8
%jni.fresh.mid = call ptr %jni.GetMethodID(ptr %load, ptr %jni.global.cls, ptr @str.140, ptr @str.141)
%jni.fresh.mid = call ptr %jni.GetMethodID(ptr %load, ptr %jni.global.cls, ptr @str.142, ptr @str.143)
store ptr %jni.fresh.mid, ptr @SX_JNI_MID_getCount____I, align 8
br label %jni.cont
@@ -1499,14 +1508,14 @@ declare void @sx_jni_env_tl_set(ptr) #0
define internal void @print__ct_sbdbafa1a5fe828c0__pack(ptr %0) #0 {
entry:
%alloca = alloca { ptr, i64 }, align 8
store { ptr, i64 } { ptr @str.142, i64 3 }, ptr %alloca, align 8
store { ptr, i64 } { ptr @str.144, i64 3 }, ptr %alloca, align 8
%allocaN = alloca { ptr, i64 }, align 8
%gep = getelementptr inbounds { ptr, i64 }, ptr %allocaN, i32 0, i32 0
store ptr null, ptr %gep, align 8
%gepN = getelementptr inbounds { ptr, i64 }, ptr %allocaN, i32 0, i32 1
store i64 0, ptr %gepN, align 8
%allocaN = alloca { ptr, i64 }, align 8
store { ptr, i64 } { ptr @str.143, i64 0 }, ptr %allocaN, align 8
store { ptr, i64 } { ptr @str.145, i64 0 }, ptr %allocaN, align 8
%load = load { ptr, i64 }, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %alloca, align 8
%call = call { ptr, i64 } @substr(ptr %0, { ptr, i64 } %loadN, i64 0, i64 3)
@@ -1522,6 +1531,6 @@ entry:
; Function Attrs: nounwind
define internal { ptr, i64 } @__insert_0(ptr %0) #0 {
entry:
%call = call { ptr, i64 } @build_format(ptr %0, { ptr, i64 } { ptr @str.144, i64 3 })
%call = call { ptr, i64 } @build_format(ptr %0, { ptr, i64 } { ptr @str.146, i64 3 })
ret { ptr, i64 } %call
}

View File

@@ -2,28 +2,28 @@
@g_should_call = internal global i1 false
@__sx_default_context = internal constant { { ptr, ptr, ptr }, ptr } { { ptr, ptr, ptr } { ptr null, ptr @__thunk_CAllocator_Allocator_alloc_bytes, ptr @__thunk_CAllocator_Allocator_dealloc_bytes }, ptr null }
@str = private unnamed_addr constant [2 x i8] c"0\00", align 1
@str.125 = private unnamed_addr constant [15 x i8] c"result := \22\22; \00", align 1
@str.126 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1
@str.127 = private unnamed_addr constant [3 x i8] c", \00", align 1
@str.128 = private unnamed_addr constant [5 x i8] c")); \00", align 1
@str.129 = private unnamed_addr constant [44 x i8] c"result = concat(result, any_to_string(args[\00", align 1
@str.130 = private unnamed_addr constant [6 x i8] c"])); \00", align 1
@str.131 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1
@str.132 = private unnamed_addr constant [3 x i8] c", \00", align 1
@str.133 = private unnamed_addr constant [5 x i8] c")); \00", align 1
@str.134 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1
@str.135 = private unnamed_addr constant [3 x i8] c", \00", align 1
@str.136 = private unnamed_addr constant [5 x i8] c")); \00", align 1
@str.137 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1
@str.138 = private unnamed_addr constant [3 x i8] c", \00", align 1
@str.139 = private unnamed_addr constant [5 x i8] c")); \00", align 1
@str.140 = private unnamed_addr constant [18 x i8] c"currentTimeMillis\00", align 1
@str.141 = private unnamed_addr constant [4 x i8] c"()J\00", align 1
@str.127 = private unnamed_addr constant [15 x i8] c"result := \22\22; \00", align 1
@str.128 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1
@str.129 = private unnamed_addr constant [3 x i8] c", \00", align 1
@str.130 = private unnamed_addr constant [5 x i8] c")); \00", align 1
@str.131 = private unnamed_addr constant [44 x i8] c"result = concat(result, any_to_string(args[\00", align 1
@str.132 = private unnamed_addr constant [6 x i8] c"])); \00", align 1
@str.133 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1
@str.134 = private unnamed_addr constant [3 x i8] c", \00", align 1
@str.135 = private unnamed_addr constant [5 x i8] c")); \00", align 1
@str.136 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1
@str.137 = private unnamed_addr constant [3 x i8] c", \00", align 1
@str.138 = private unnamed_addr constant [5 x i8] c")); \00", align 1
@str.139 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1
@str.140 = private unnamed_addr constant [3 x i8] c", \00", align 1
@str.141 = private unnamed_addr constant [5 x i8] c")); \00", align 1
@str.142 = private unnamed_addr constant [18 x i8] c"currentTimeMillis\00", align 1
@str.143 = private unnamed_addr constant [4 x i8] c"()J\00", align 1
@SX_JNI_CLS_currentTimeMillis____J = internal global ptr null
@SX_JNI_MID_currentTimeMillis____J = internal global ptr null
@str.142 = private unnamed_addr constant [4 x i8] c"ok\0A\00", align 1
@str.143 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1
@str.144 = private unnamed_addr constant [4 x i8] c"ok\0A\00", align 1
@str.145 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1
@str.146 = private unnamed_addr constant [4 x i8] c"ok\0A\00", align 1
; Function Attrs: nounwind
declare void @out(ptr) #0
@@ -36,6 +36,9 @@ declare ptr @memcpy(ptr, ptr, i64)
declare ptr @memset(ptr, i32, i64)
; Function Attrs: nounwind
declare ptr @mem_realloc(ptr, ptr, ptr, i64, i64, i64) #0
; Function Attrs: nounwind
define internal ptr @CAllocator.alloc_bytes(ptr %0, ptr %1, i64 %2) #0 {
entry:
@@ -328,7 +331,7 @@ entry:
%alloca = alloca { ptr, i64 }, align 8
store { ptr, i64 } %1, ptr %alloca, align 8
%allocaN = alloca { ptr, i64 }, align 8
store { ptr, i64 } { ptr @str.125, i64 14 }, ptr %allocaN, align 8
store { ptr, i64 } { ptr @str.127, i64 14 }, ptr %allocaN, align 8
%allocaN = alloca i64, align 8
store i64 0, ptr %allocaN, align 8
%allocaN = alloca i64, align 8
@@ -424,7 +427,7 @@ if.merge.13: ; preds = %if.merge.27, %if.me
if.then.14: ; preds = %if.then.11
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
%call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.126, i64 36 })
%call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.128, i64 36 })
store { ptr, i64 } %call, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
%loadN = load i64, ptr %allocaN, align 8
@@ -432,7 +435,7 @@ if.then.14: ; preds = %if.then.11
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN)
store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.127, i64 2 })
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.129, i64 2 })
store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
%loadN = load i64, ptr %allocaN, align 8
@@ -442,13 +445,13 @@ if.then.14: ; preds = %if.then.11
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN)
store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.128, i64 4 })
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.130, i64 4 })
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %if.merge.15
if.merge.15: ; preds = %if.then.14, %if.then.11
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.129, i64 43 })
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.131, i64 43 })
store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
%loadN = load i64, ptr %allocaN, align 8
@@ -456,7 +459,7 @@ if.merge.15: ; preds = %if.then.14, %if.the
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN)
store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.130, i64 5 })
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.132, i64 5 })
store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load i64, ptr %allocaN, align 8
%addN = add i64 %loadN, 1
@@ -470,7 +473,7 @@ if.merge.15: ; preds = %if.then.14, %if.the
if.then.25: ; preds = %if.else.12
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.131, i64 36 })
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.133, i64 36 })
store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
%loadN = load i64, ptr %allocaN, align 8
@@ -478,7 +481,7 @@ if.then.25: ; preds = %if.else.12
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN)
store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.132, i64 2 })
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.134, i64 2 })
store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
%loadN = load i64, ptr %allocaN, align 8
@@ -489,7 +492,7 @@ if.then.25: ; preds = %if.else.12
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN)
store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.133, i64 4 })
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.135, i64 4 })
store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load i64, ptr %allocaN, align 8
%addN = add i64 %loadN, 2
@@ -546,7 +549,7 @@ if.merge.33: ; preds = %if.merge.36, %if.el
if.then.34: ; preds = %if.then.31
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.134, i64 36 })
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.136, i64 36 })
store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
%loadN = load i64, ptr %allocaN, align 8
@@ -554,7 +557,7 @@ if.then.34: ; preds = %if.then.31
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN)
store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.135, i64 2 })
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.137, i64 2 })
store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
%loadN = load i64, ptr %allocaN, align 8
@@ -565,7 +568,7 @@ if.then.34: ; preds = %if.then.31
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN)
store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.136, i64 4 })
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.138, i64 4 })
store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load i64, ptr %allocaN, align 8
%addN = add i64 %loadN, 2
@@ -585,7 +588,7 @@ if.merge.36: ; preds = %if.else.35, %if.the
if.then.37: ; preds = %while.exit.4
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.137, i64 36 })
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.139, i64 36 })
store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
%loadN = load i64, ptr %allocaN, align 8
@@ -593,7 +596,7 @@ if.then.37: ; preds = %while.exit.4
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN)
store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.138, i64 2 })
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.140, i64 2 })
store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %alloca, align 8
@@ -604,7 +607,7 @@ if.then.37: ; preds = %while.exit.4
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN)
store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.139, i64 4 })
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.141, i64 4 })
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %if.merge.38
@@ -614,64 +617,67 @@ if.merge.38: ; preds = %if.then.37, %while.
}
; Function Attrs: nounwind
declare ptr @CAllocator.alloc_bytes.1(ptr, ptr, i64) #0
declare ptr @mem_realloc.1(ptr, ptr, ptr, i64, i64, i64) #0
; Function Attrs: nounwind
declare void @CAllocator.dealloc_bytes.2(ptr, ptr, ptr) #0
declare ptr @CAllocator.alloc_bytes.2(ptr, ptr, i64) #0
; Function Attrs: nounwind
declare i64 @GPA.init.3(ptr) #0
declare void @CAllocator.dealloc_bytes.3(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare ptr @GPA.alloc_bytes.4(ptr, ptr, i64) #0
declare i64 @GPA.init.4(ptr) #0
; Function Attrs: nounwind
declare void @GPA.dealloc_bytes.5(ptr, ptr, ptr) #0
declare ptr @GPA.alloc_bytes.5(ptr, ptr, i64) #0
; Function Attrs: nounwind
declare void @Arena.add_chunk.6(ptr, ptr, i64) #0
declare void @GPA.dealloc_bytes.6(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare void @Arena.init.7(ptr sret({ ptr, i64, { ptr, ptr, ptr } }), ptr, ptr, i64) #0
declare void @Arena.add_chunk.7(ptr, ptr, i64) #0
; Function Attrs: nounwind
declare void @Arena.reset.8(ptr, ptr) #0
declare void @Arena.init.8(ptr sret({ ptr, i64, { ptr, ptr, ptr } }), ptr, ptr, i64) #0
; Function Attrs: nounwind
declare void @Arena.deinit.9(ptr, ptr) #0
declare void @Arena.reset.9(ptr, ptr) #0
; Function Attrs: nounwind
declare ptr @Arena.alloc_bytes.10(ptr, ptr, i64) #0
declare void @Arena.deinit.10(ptr, ptr) #0
; Function Attrs: nounwind
declare void @Arena.dealloc_bytes.11(ptr, ptr, ptr) #0
declare ptr @Arena.alloc_bytes.11(ptr, ptr, i64) #0
; Function Attrs: nounwind
declare ptr @BufAlloc.init.12(ptr, ptr, i64) #0
declare void @Arena.dealloc_bytes.12(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare void @BufAlloc.reset.13(ptr, ptr) #0
declare ptr @BufAlloc.init.13(ptr, ptr, i64) #0
; Function Attrs: nounwind
declare ptr @BufAlloc.alloc_bytes.14(ptr, ptr, i64) #0
declare void @BufAlloc.reset.14(ptr, ptr) #0
; Function Attrs: nounwind
declare void @BufAlloc.dealloc_bytes.15(ptr, ptr, ptr) #0
declare ptr @BufAlloc.alloc_bytes.15(ptr, ptr, i64) #0
; Function Attrs: nounwind
declare void @TrackingAllocator.init.16(ptr sret({ { ptr, ptr, ptr }, i64, i64, i64 }), ptr, ptr) #0
declare void @BufAlloc.dealloc_bytes.16(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare i64 @TrackingAllocator.leak_count.17(ptr, ptr) #0
declare void @TrackingAllocator.init.17(ptr sret({ { ptr, ptr, ptr }, i64, i64, i64 }), ptr, ptr) #0
; Function Attrs: nounwind
declare void @TrackingAllocator.report.18(ptr, ptr) #0
declare i64 @TrackingAllocator.leak_count.18(ptr, ptr) #0
; Function Attrs: nounwind
declare ptr @TrackingAllocator.alloc_bytes.19(ptr, ptr, i64) #0
declare void @TrackingAllocator.report.19(ptr, ptr) #0
; Function Attrs: nounwind
declare void @TrackingAllocator.dealloc_bytes.20(ptr, ptr, ptr) #0
declare ptr @TrackingAllocator.alloc_bytes.20(ptr, ptr, i64) #0
; Function Attrs: nounwind
declare void @TrackingAllocator.dealloc_bytes.21(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare ptr @escape(ptr, ptr) #0
@@ -847,163 +853,166 @@ declare i32 @listen(i32, i32) #0
declare i32 @accept(i32, ptr, ptr) #0
; Function Attrs: nounwind
declare i64 @read.21(i32, ptr, i64) #0
declare i64 @read.22(i32, ptr, i64) #0
; Function Attrs: nounwind
declare i32 @close.22(i32) #0
declare i32 @close.23(i32) #0
; Function Attrs: nounwind
declare i16 @htons(ptr, i64) #0
; Function Attrs: nounwind
declare ptr @CAllocator.alloc_bytes.23(ptr, ptr, i64) #0
declare ptr @mem_realloc.24(ptr, ptr, ptr, i64, i64, i64) #0
; Function Attrs: nounwind
declare void @CAllocator.dealloc_bytes.24(ptr, ptr, ptr) #0
declare ptr @CAllocator.alloc_bytes.25(ptr, ptr, i64) #0
; Function Attrs: nounwind
declare i64 @GPA.init.25(ptr) #0
declare void @CAllocator.dealloc_bytes.26(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare ptr @GPA.alloc_bytes.26(ptr, ptr, i64) #0
declare i64 @GPA.init.27(ptr) #0
; Function Attrs: nounwind
declare void @GPA.dealloc_bytes.27(ptr, ptr, ptr) #0
declare ptr @GPA.alloc_bytes.28(ptr, ptr, i64) #0
; Function Attrs: nounwind
declare void @Arena.add_chunk.28(ptr, ptr, i64) #0
declare void @GPA.dealloc_bytes.29(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare void @Arena.init.29(ptr sret({ ptr, i64, { ptr, ptr, ptr } }), ptr, ptr, i64) #0
declare void @Arena.add_chunk.30(ptr, ptr, i64) #0
; Function Attrs: nounwind
declare void @Arena.reset.30(ptr, ptr) #0
declare void @Arena.init.31(ptr sret({ ptr, i64, { ptr, ptr, ptr } }), ptr, ptr, i64) #0
; Function Attrs: nounwind
declare void @Arena.deinit.31(ptr, ptr) #0
declare void @Arena.reset.32(ptr, ptr) #0
; Function Attrs: nounwind
declare ptr @Arena.alloc_bytes.32(ptr, ptr, i64) #0
declare void @Arena.deinit.33(ptr, ptr) #0
; Function Attrs: nounwind
declare void @Arena.dealloc_bytes.33(ptr, ptr, ptr) #0
declare ptr @Arena.alloc_bytes.34(ptr, ptr, i64) #0
; Function Attrs: nounwind
declare ptr @BufAlloc.init.34(ptr, ptr, i64) #0
declare void @Arena.dealloc_bytes.35(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare void @BufAlloc.reset.35(ptr, ptr) #0
declare ptr @BufAlloc.init.36(ptr, ptr, i64) #0
; Function Attrs: nounwind
declare ptr @BufAlloc.alloc_bytes.36(ptr, ptr, i64) #0
declare void @BufAlloc.reset.37(ptr, ptr) #0
; Function Attrs: nounwind
declare void @BufAlloc.dealloc_bytes.37(ptr, ptr, ptr) #0
declare ptr @BufAlloc.alloc_bytes.38(ptr, ptr, i64) #0
; Function Attrs: nounwind
declare void @TrackingAllocator.init.38(ptr sret({ { ptr, ptr, ptr }, i64, i64, i64 }), ptr, ptr) #0
declare void @BufAlloc.dealloc_bytes.39(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare i64 @TrackingAllocator.leak_count.39(ptr, ptr) #0
declare void @TrackingAllocator.init.40(ptr sret({ { ptr, ptr, ptr }, i64, i64, i64 }), ptr, ptr) #0
; Function Attrs: nounwind
declare void @TrackingAllocator.report.40(ptr, ptr) #0
declare i64 @TrackingAllocator.leak_count.41(ptr, ptr) #0
; Function Attrs: nounwind
declare ptr @TrackingAllocator.alloc_bytes.41(ptr, ptr, i64) #0
declare void @TrackingAllocator.report.42(ptr, ptr) #0
; Function Attrs: nounwind
declare void @TrackingAllocator.dealloc_bytes.42(ptr, ptr, ptr) #0
declare ptr @TrackingAllocator.alloc_bytes.43(ptr, ptr, i64) #0
; Function Attrs: nounwind
declare i32 @open.43(ptr, i32, ...) #0
declare void @TrackingAllocator.dealloc_bytes.44(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare i32 @close.44(i32) #0
declare i32 @open.45(ptr, i32, ...) #0
; Function Attrs: nounwind
declare i64 @read.45(i32, ptr, i64) #0
declare i32 @close.46(i32) #0
; Function Attrs: nounwind
declare i64 @lseek.46(i32, i64, i32) #0
declare i64 @read.47(i32, ptr, i64) #0
; Function Attrs: nounwind
declare i32 @unlink.47(ptr) #0
declare i64 @lseek.48(i32, i64, i32) #0
; Function Attrs: nounwind
declare i32 @rmdir.48(ptr) #0
declare i32 @unlink.49(ptr) #0
; Function Attrs: nounwind
declare i32 @mkdir.49(ptr, i32) #0
declare i32 @rmdir.50(ptr) #0
; Function Attrs: nounwind
declare i32 @access.50(ptr, i32) #0
declare i32 @mkdir.51(ptr, i32) #0
; Function Attrs: nounwind
declare i32 @chmod.51(ptr, i32) #0
declare i32 @access.52(ptr, i32) #0
; Function Attrs: nounwind
declare i32 @rename.52(ptr, ptr) #0
declare i32 @chmod.53(ptr, i32) #0
; Function Attrs: nounwind
declare i1 @File.is_valid.53(ptr, ptr) #0
declare i32 @rename.54(ptr, ptr) #0
; Function Attrs: nounwind
declare i1 @File.close.54(ptr, ptr) #0
declare i1 @File.is_valid.55(ptr, ptr) #0
; Function Attrs: nounwind
declare i64 @File.read.55(ptr, ptr, ptr) #0
declare i1 @File.close.56(ptr, ptr) #0
; Function Attrs: nounwind
declare i64 @File.write.56(ptr, ptr, ptr) #0
declare i64 @File.read.57(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare i64 @File.seek.57(ptr, ptr, i64, i64) #0
declare i64 @File.write.58(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare i32 @mode_to_flags.58(ptr, i64) #0
declare i64 @File.seek.59(ptr, ptr, i64, i64) #0
; Function Attrs: nounwind
declare i64 @open_file.59(ptr, ptr, i64) #0
declare i32 @mode_to_flags.60(ptr, i64) #0
; Function Attrs: nounwind
declare void @read_file.60(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0
declare i64 @open_file.61(ptr, ptr, i64) #0
; Function Attrs: nounwind
declare i1 @write_file.61(ptr, ptr, ptr) #0
declare void @read_file.62(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0
; Function Attrs: nounwind
declare i1 @append_file.62(ptr, ptr, ptr) #0
declare i1 @write_file.63(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare i1 @exists.63(ptr, ptr) #0
declare i1 @append_file.64(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare i1 @delete_file.64(ptr, ptr) #0
declare i1 @exists.65(ptr, ptr) #0
; Function Attrs: nounwind
declare i1 @delete_dir.65(ptr, ptr) #0
declare i1 @delete_file.66(ptr, ptr) #0
; Function Attrs: nounwind
declare i1 @create_dir.66(ptr, ptr) #0
declare i1 @delete_dir.67(ptr, ptr) #0
; Function Attrs: nounwind
declare i1 @set_mode.67(ptr, ptr, i32) #0
declare i1 @create_dir.68(ptr, ptr) #0
; Function Attrs: nounwind
declare i1 @move.68(ptr, ptr, ptr) #0
declare i1 @set_mode.69(ptr, ptr, i32) #0
; Function Attrs: nounwind
declare i1 @create_dir_all.69(ptr, ptr) #0
declare i1 @move.70(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare i1 @copy_file.70(ptr, ptr, ptr) #0
declare i1 @create_dir_all.71(ptr, ptr) #0
; Function Attrs: nounwind
declare ptr @basename.71(ptr, ptr) #0
declare i1 @copy_file.72(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare ptr @dirname.72(ptr, ptr) #0
declare ptr @basename.73(ptr, ptr) #0
; Function Attrs: nounwind
declare ptr @dirname.74(ptr, ptr) #0
; Function Attrs: nounwind
declare void @Array.add(ptr, ptr, ptr, ptr) #0
@@ -1201,64 +1210,64 @@ declare ptr @BuildOptions.jni_main_java_source_at(i64, i64) #0
declare i64 @build_options() #0
; Function Attrs: nounwind
declare ptr @spaces.73(ptr, i32) #0
declare ptr @spaces.75(ptr, i32) #0
; Function Attrs: nounwind
declare i32 @sx_trace_len.74() #0
declare i32 @sx_trace_len.76() #0
; Function Attrs: nounwind
declare i32 @sx_trace_truncated.75() #0
declare i32 @sx_trace_truncated.77() #0
; Function Attrs: nounwind
declare i64 @sx_trace_frame_at.76(i32) #0
declare i64 @sx_trace_frame_at.78(i32) #0
; Function Attrs: nounwind
declare ptr @to_string.77(ptr) #0
declare ptr @to_string.79(ptr) #0
; Function Attrs: nounwind
declare void @print_current.78(ptr) #0
declare void @print_current.80(ptr) #0
; Function Attrs: nounwind
declare void @print_interpreter_frames.79(ptr) #0
declare void @print_interpreter_frames.81(ptr) #0
; Function Attrs: nounwind
declare ptr @popen.80(ptr, ptr) #0
declare ptr @popen.82(ptr, ptr) #0
; Function Attrs: nounwind
declare i32 @pclose.81(ptr) #0
declare i32 @pclose.83(ptr) #0
; Function Attrs: nounwind
declare i64 @fread.82(ptr, i64, i64, ptr) #0
declare i64 @fread.84(ptr, i64, i64, ptr) #0
; Function Attrs: nounwind
declare i32 @feof.83(ptr) #0
declare i32 @feof.85(ptr) #0
; Function Attrs: nounwind
declare ptr @getenv.84(ptr) #0
declare ptr @getenv.86(ptr) #0
; Function Attrs: nounwind
declare i64 @strlen.85(ptr) #0
declare i64 @strlen.87(ptr) #0
; Function Attrs: nounwind
declare i32 @system.86(ptr) #0
declare i32 @system.88(ptr) #0
; Function Attrs: nounwind
declare void @run.87(ptr sret({ { i32, { ptr, i64 } }, i1 }), ptr, ptr) #0
declare void @run.89(ptr sret({ { i32, { ptr, i64 } }, i1 }), ptr, ptr) #0
; Function Attrs: nounwind
declare void @env.88(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0
declare void @env.90(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0
; Function Attrs: nounwind
declare void @find_executable.89(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0
declare void @find_executable.91(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0
; Function Attrs: nounwind
declare void @_exit.90(i32) #0
declare void @_exit.92(i32) #0
; Function Attrs: nounwind
declare void @exit.91(ptr, i8, ptr) #0
declare void @exit.93(ptr, i8, ptr) #0
; Function Attrs: nounwind
declare void @assert.92(ptr, i1, ptr, ptr) #0
declare void @assert.94(ptr, i1, ptr, ptr) #0
; Function Attrs: nounwind
declare ptr @_NSGetArgv() #0
@@ -1288,97 +1297,97 @@ declare ptr @Parsed.value_of(ptr, ptr, ptr) #0
declare i1 @is_long_flag(ptr, ptr) #0
; Function Attrs: nounwind
declare void @parse.93(ptr sret({ { { ptr, i64 }, { ptr, i64 }, i64, i1, { ptr, i64 }, { ptr, i64 }, [16 x { i1, { ptr, i64 } }] }, i32 }), ptr, ptr, ptr, ptr) #0
declare void @parse.95(ptr sret({ { { ptr, i64 }, { ptr, i64 }, i64, i1, { ptr, i64 }, { ptr, i64 }, [16 x { i1, { ptr, i64 } }] }, i32 }), ptr, ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare i32 @open.94(ptr, i32, ...) #0
declare i32 @open.96(ptr, i32, ...) #0
; Function Attrs: nounwind
declare i32 @close.95(i32) #0
declare i32 @close.97(i32) #0
; Function Attrs: nounwind
declare i64 @read.96(i32, ptr, i64) #0
declare i64 @read.98(i32, ptr, i64) #0
; Function Attrs: nounwind
declare i64 @lseek.97(i32, i64, i32) #0
declare i64 @lseek.99(i32, i64, i32) #0
; Function Attrs: nounwind
declare i32 @unlink.98(ptr) #0
declare i32 @unlink.100(ptr) #0
; Function Attrs: nounwind
declare i32 @rmdir.99(ptr) #0
declare i32 @rmdir.101(ptr) #0
; Function Attrs: nounwind
declare i32 @mkdir.100(ptr, i32) #0
declare i32 @mkdir.102(ptr, i32) #0
; Function Attrs: nounwind
declare i32 @access.101(ptr, i32) #0
declare i32 @access.103(ptr, i32) #0
; Function Attrs: nounwind
declare i32 @chmod.102(ptr, i32) #0
declare i32 @chmod.104(ptr, i32) #0
; Function Attrs: nounwind
declare i32 @rename.103(ptr, ptr) #0
declare i32 @rename.105(ptr, ptr) #0
; Function Attrs: nounwind
declare i1 @File.is_valid.104(ptr, ptr) #0
declare i1 @File.is_valid.106(ptr, ptr) #0
; Function Attrs: nounwind
declare i1 @File.close.105(ptr, ptr) #0
declare i1 @File.close.107(ptr, ptr) #0
; Function Attrs: nounwind
declare i64 @File.read.106(ptr, ptr, ptr) #0
declare i64 @File.read.108(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare i64 @File.write.107(ptr, ptr, ptr) #0
declare i64 @File.write.109(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare i64 @File.seek.108(ptr, ptr, i64, i64) #0
declare i64 @File.seek.110(ptr, ptr, i64, i64) #0
; Function Attrs: nounwind
declare i32 @mode_to_flags.109(ptr, i64) #0
declare i32 @mode_to_flags.111(ptr, i64) #0
; Function Attrs: nounwind
declare i64 @open_file.110(ptr, ptr, i64) #0
declare i64 @open_file.112(ptr, ptr, i64) #0
; Function Attrs: nounwind
declare void @read_file.111(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0
declare void @read_file.113(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0
; Function Attrs: nounwind
declare i1 @write_file.112(ptr, ptr, ptr) #0
declare i1 @write_file.114(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare i1 @append_file.113(ptr, ptr, ptr) #0
declare i1 @append_file.115(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare i1 @exists.114(ptr, ptr) #0
declare i1 @exists.116(ptr, ptr) #0
; Function Attrs: nounwind
declare i1 @delete_file.115(ptr, ptr) #0
declare i1 @delete_file.117(ptr, ptr) #0
; Function Attrs: nounwind
declare i1 @delete_dir.116(ptr, ptr) #0
declare i1 @delete_dir.118(ptr, ptr) #0
; Function Attrs: nounwind
declare i1 @create_dir.117(ptr, ptr) #0
declare i1 @create_dir.119(ptr, ptr) #0
; Function Attrs: nounwind
declare i1 @set_mode.118(ptr, ptr, i32) #0
declare i1 @set_mode.120(ptr, ptr, i32) #0
; Function Attrs: nounwind
declare i1 @move.119(ptr, ptr, ptr) #0
declare i1 @move.121(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare i1 @create_dir_all.120(ptr, ptr) #0
declare i1 @create_dir_all.122(ptr, ptr) #0
; Function Attrs: nounwind
declare i1 @copy_file.121(ptr, ptr, ptr) #0
declare i1 @copy_file.123(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare ptr @basename.122(ptr, ptr) #0
declare ptr @basename.124(ptr, ptr) #0
; Function Attrs: nounwind
declare ptr @dirname.123(ptr, ptr) #0
declare ptr @dirname.125(ptr, ptr) #0
; Function Attrs: nounwind
declare i64 @rotr(ptr, i64, i64) #0
@@ -1417,7 +1426,7 @@ declare [64 x i8] @sha256_hex(ptr, ptr) #0
declare void @sha256_file(ptr sret({ [64 x i8], i1 }), ptr, ptr) #0
; Function Attrs: nounwind
declare void @assert.124(ptr, i1) #0
declare void @assert.126(ptr, i1) #0
; Function Attrs: nounwind
define internal i64 @read_long(ptr %0, ptr %1, ptr %2) #0 {
@@ -1445,7 +1454,7 @@ jni.miss: ; preds = %entry
store ptr %jni.global.cls, ptr @SX_JNI_CLS_currentTimeMillis____J, align 8
%5 = getelementptr inbounds ptr, ptr %jni.ifs, i32 33
%jni.GetMethodID = load ptr, ptr %5, align 8
%jni.fresh.mid = call ptr %jni.GetMethodID(ptr %load, ptr %jni.global.cls, ptr @str.140, ptr @str.141)
%jni.fresh.mid = call ptr %jni.GetMethodID(ptr %load, ptr %jni.global.cls, ptr @str.142, ptr @str.143)
store ptr %jni.fresh.mid, ptr @SX_JNI_MID_currentTimeMillis____J, align 8
br label %jni.cont
@@ -1499,14 +1508,14 @@ declare void @sx_jni_env_tl_set(ptr) #0
define internal void @print__ct_sbdbafa1a5fe828c0__pack(ptr %0) #0 {
entry:
%alloca = alloca { ptr, i64 }, align 8
store { ptr, i64 } { ptr @str.142, i64 3 }, ptr %alloca, align 8
store { ptr, i64 } { ptr @str.144, i64 3 }, ptr %alloca, align 8
%allocaN = alloca { ptr, i64 }, align 8
%gep = getelementptr inbounds { ptr, i64 }, ptr %allocaN, i32 0, i32 0
store ptr null, ptr %gep, align 8
%gepN = getelementptr inbounds { ptr, i64 }, ptr %allocaN, i32 0, i32 1
store i64 0, ptr %gepN, align 8
%allocaN = alloca { ptr, i64 }, align 8
store { ptr, i64 } { ptr @str.143, i64 0 }, ptr %allocaN, align 8
store { ptr, i64 } { ptr @str.145, i64 0 }, ptr %allocaN, align 8
%load = load { ptr, i64 }, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %alloca, align 8
%call = call { ptr, i64 } @substr(ptr %0, { ptr, i64 } %loadN, i64 0, i64 3)
@@ -1522,6 +1531,6 @@ entry:
; Function Attrs: nounwind
define internal { ptr, i64 } @__insert_0(ptr %0) #0 {
entry:
%call = call { ptr, i64 } @build_format(ptr %0, { ptr, i64 } { ptr @str.144, i64 3 })
%call = call { ptr, i64 } @build_format(ptr %0, { ptr, i64 } { ptr @str.146, i64 3 })
ret { ptr, i64 } %call
}

View File

@@ -2,28 +2,28 @@
@g_should_call = internal global i1 false
@__sx_default_context = internal constant { { ptr, ptr, ptr }, ptr } { { ptr, ptr, ptr } { ptr null, ptr @__thunk_CAllocator_Allocator_alloc_bytes, ptr @__thunk_CAllocator_Allocator_dealloc_bytes }, ptr null }
@str = private unnamed_addr constant [2 x i8] c"0\00", align 1
@str.125 = private unnamed_addr constant [15 x i8] c"result := \22\22; \00", align 1
@str.126 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1
@str.127 = private unnamed_addr constant [3 x i8] c", \00", align 1
@str.128 = private unnamed_addr constant [5 x i8] c")); \00", align 1
@str.129 = private unnamed_addr constant [44 x i8] c"result = concat(result, any_to_string(args[\00", align 1
@str.130 = private unnamed_addr constant [6 x i8] c"])); \00", align 1
@str.131 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1
@str.132 = private unnamed_addr constant [3 x i8] c", \00", align 1
@str.133 = private unnamed_addr constant [5 x i8] c")); \00", align 1
@str.134 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1
@str.135 = private unnamed_addr constant [3 x i8] c", \00", align 1
@str.136 = private unnamed_addr constant [5 x i8] c")); \00", align 1
@str.137 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1
@str.138 = private unnamed_addr constant [3 x i8] c", \00", align 1
@str.139 = private unnamed_addr constant [5 x i8] c")); \00", align 1
@str.140 = private unnamed_addr constant [9 x i8] c"getValue\00", align 1
@str.141 = private unnamed_addr constant [4 x i8] c"()D\00", align 1
@str.127 = private unnamed_addr constant [15 x i8] c"result := \22\22; \00", align 1
@str.128 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1
@str.129 = private unnamed_addr constant [3 x i8] c", \00", align 1
@str.130 = private unnamed_addr constant [5 x i8] c")); \00", align 1
@str.131 = private unnamed_addr constant [44 x i8] c"result = concat(result, any_to_string(args[\00", align 1
@str.132 = private unnamed_addr constant [6 x i8] c"])); \00", align 1
@str.133 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1
@str.134 = private unnamed_addr constant [3 x i8] c", \00", align 1
@str.135 = private unnamed_addr constant [5 x i8] c")); \00", align 1
@str.136 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1
@str.137 = private unnamed_addr constant [3 x i8] c", \00", align 1
@str.138 = private unnamed_addr constant [5 x i8] c")); \00", align 1
@str.139 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1
@str.140 = private unnamed_addr constant [3 x i8] c", \00", align 1
@str.141 = private unnamed_addr constant [5 x i8] c")); \00", align 1
@str.142 = private unnamed_addr constant [9 x i8] c"getValue\00", align 1
@str.143 = private unnamed_addr constant [4 x i8] c"()D\00", align 1
@SX_JNI_CLS_getValue____D = internal global ptr null
@SX_JNI_MID_getValue____D = internal global ptr null
@str.142 = private unnamed_addr constant [4 x i8] c"ok\0A\00", align 1
@str.143 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1
@str.144 = private unnamed_addr constant [4 x i8] c"ok\0A\00", align 1
@str.145 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1
@str.146 = private unnamed_addr constant [4 x i8] c"ok\0A\00", align 1
; Function Attrs: nounwind
declare void @out(ptr) #0
@@ -36,6 +36,9 @@ declare ptr @memcpy(ptr, ptr, i64)
declare ptr @memset(ptr, i32, i64)
; Function Attrs: nounwind
declare ptr @mem_realloc(ptr, ptr, ptr, i64, i64, i64) #0
; Function Attrs: nounwind
define internal ptr @CAllocator.alloc_bytes(ptr %0, ptr %1, i64 %2) #0 {
entry:
@@ -328,7 +331,7 @@ entry:
%alloca = alloca { ptr, i64 }, align 8
store { ptr, i64 } %1, ptr %alloca, align 8
%allocaN = alloca { ptr, i64 }, align 8
store { ptr, i64 } { ptr @str.125, i64 14 }, ptr %allocaN, align 8
store { ptr, i64 } { ptr @str.127, i64 14 }, ptr %allocaN, align 8
%allocaN = alloca i64, align 8
store i64 0, ptr %allocaN, align 8
%allocaN = alloca i64, align 8
@@ -424,7 +427,7 @@ if.merge.13: ; preds = %if.merge.27, %if.me
if.then.14: ; preds = %if.then.11
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
%call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.126, i64 36 })
%call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.128, i64 36 })
store { ptr, i64 } %call, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
%loadN = load i64, ptr %allocaN, align 8
@@ -432,7 +435,7 @@ if.then.14: ; preds = %if.then.11
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN)
store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.127, i64 2 })
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.129, i64 2 })
store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
%loadN = load i64, ptr %allocaN, align 8
@@ -442,13 +445,13 @@ if.then.14: ; preds = %if.then.11
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN)
store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.128, i64 4 })
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.130, i64 4 })
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %if.merge.15
if.merge.15: ; preds = %if.then.14, %if.then.11
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.129, i64 43 })
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.131, i64 43 })
store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
%loadN = load i64, ptr %allocaN, align 8
@@ -456,7 +459,7 @@ if.merge.15: ; preds = %if.then.14, %if.the
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN)
store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.130, i64 5 })
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.132, i64 5 })
store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load i64, ptr %allocaN, align 8
%addN = add i64 %loadN, 1
@@ -470,7 +473,7 @@ if.merge.15: ; preds = %if.then.14, %if.the
if.then.25: ; preds = %if.else.12
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.131, i64 36 })
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.133, i64 36 })
store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
%loadN = load i64, ptr %allocaN, align 8
@@ -478,7 +481,7 @@ if.then.25: ; preds = %if.else.12
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN)
store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.132, i64 2 })
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.134, i64 2 })
store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
%loadN = load i64, ptr %allocaN, align 8
@@ -489,7 +492,7 @@ if.then.25: ; preds = %if.else.12
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN)
store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.133, i64 4 })
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.135, i64 4 })
store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load i64, ptr %allocaN, align 8
%addN = add i64 %loadN, 2
@@ -546,7 +549,7 @@ if.merge.33: ; preds = %if.merge.36, %if.el
if.then.34: ; preds = %if.then.31
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.134, i64 36 })
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.136, i64 36 })
store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
%loadN = load i64, ptr %allocaN, align 8
@@ -554,7 +557,7 @@ if.then.34: ; preds = %if.then.31
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN)
store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.135, i64 2 })
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.137, i64 2 })
store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
%loadN = load i64, ptr %allocaN, align 8
@@ -565,7 +568,7 @@ if.then.34: ; preds = %if.then.31
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN)
store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.136, i64 4 })
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.138, i64 4 })
store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load i64, ptr %allocaN, align 8
%addN = add i64 %loadN, 2
@@ -585,7 +588,7 @@ if.merge.36: ; preds = %if.else.35, %if.the
if.then.37: ; preds = %while.exit.4
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.137, i64 36 })
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.139, i64 36 })
store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
%loadN = load i64, ptr %allocaN, align 8
@@ -593,7 +596,7 @@ if.then.37: ; preds = %while.exit.4
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN)
store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.138, i64 2 })
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.140, i64 2 })
store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %alloca, align 8
@@ -604,7 +607,7 @@ if.then.37: ; preds = %while.exit.4
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN)
store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.139, i64 4 })
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.141, i64 4 })
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %if.merge.38
@@ -614,64 +617,67 @@ if.merge.38: ; preds = %if.then.37, %while.
}
; Function Attrs: nounwind
declare ptr @CAllocator.alloc_bytes.1(ptr, ptr, i64) #0
declare ptr @mem_realloc.1(ptr, ptr, ptr, i64, i64, i64) #0
; Function Attrs: nounwind
declare void @CAllocator.dealloc_bytes.2(ptr, ptr, ptr) #0
declare ptr @CAllocator.alloc_bytes.2(ptr, ptr, i64) #0
; Function Attrs: nounwind
declare i64 @GPA.init.3(ptr) #0
declare void @CAllocator.dealloc_bytes.3(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare ptr @GPA.alloc_bytes.4(ptr, ptr, i64) #0
declare i64 @GPA.init.4(ptr) #0
; Function Attrs: nounwind
declare void @GPA.dealloc_bytes.5(ptr, ptr, ptr) #0
declare ptr @GPA.alloc_bytes.5(ptr, ptr, i64) #0
; Function Attrs: nounwind
declare void @Arena.add_chunk.6(ptr, ptr, i64) #0
declare void @GPA.dealloc_bytes.6(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare void @Arena.init.7(ptr sret({ ptr, i64, { ptr, ptr, ptr } }), ptr, ptr, i64) #0
declare void @Arena.add_chunk.7(ptr, ptr, i64) #0
; Function Attrs: nounwind
declare void @Arena.reset.8(ptr, ptr) #0
declare void @Arena.init.8(ptr sret({ ptr, i64, { ptr, ptr, ptr } }), ptr, ptr, i64) #0
; Function Attrs: nounwind
declare void @Arena.deinit.9(ptr, ptr) #0
declare void @Arena.reset.9(ptr, ptr) #0
; Function Attrs: nounwind
declare ptr @Arena.alloc_bytes.10(ptr, ptr, i64) #0
declare void @Arena.deinit.10(ptr, ptr) #0
; Function Attrs: nounwind
declare void @Arena.dealloc_bytes.11(ptr, ptr, ptr) #0
declare ptr @Arena.alloc_bytes.11(ptr, ptr, i64) #0
; Function Attrs: nounwind
declare ptr @BufAlloc.init.12(ptr, ptr, i64) #0
declare void @Arena.dealloc_bytes.12(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare void @BufAlloc.reset.13(ptr, ptr) #0
declare ptr @BufAlloc.init.13(ptr, ptr, i64) #0
; Function Attrs: nounwind
declare ptr @BufAlloc.alloc_bytes.14(ptr, ptr, i64) #0
declare void @BufAlloc.reset.14(ptr, ptr) #0
; Function Attrs: nounwind
declare void @BufAlloc.dealloc_bytes.15(ptr, ptr, ptr) #0
declare ptr @BufAlloc.alloc_bytes.15(ptr, ptr, i64) #0
; Function Attrs: nounwind
declare void @TrackingAllocator.init.16(ptr sret({ { ptr, ptr, ptr }, i64, i64, i64 }), ptr, ptr) #0
declare void @BufAlloc.dealloc_bytes.16(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare i64 @TrackingAllocator.leak_count.17(ptr, ptr) #0
declare void @TrackingAllocator.init.17(ptr sret({ { ptr, ptr, ptr }, i64, i64, i64 }), ptr, ptr) #0
; Function Attrs: nounwind
declare void @TrackingAllocator.report.18(ptr, ptr) #0
declare i64 @TrackingAllocator.leak_count.18(ptr, ptr) #0
; Function Attrs: nounwind
declare ptr @TrackingAllocator.alloc_bytes.19(ptr, ptr, i64) #0
declare void @TrackingAllocator.report.19(ptr, ptr) #0
; Function Attrs: nounwind
declare void @TrackingAllocator.dealloc_bytes.20(ptr, ptr, ptr) #0
declare ptr @TrackingAllocator.alloc_bytes.20(ptr, ptr, i64) #0
; Function Attrs: nounwind
declare void @TrackingAllocator.dealloc_bytes.21(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare ptr @escape(ptr, ptr) #0
@@ -847,163 +853,166 @@ declare i32 @listen(i32, i32) #0
declare i32 @accept(i32, ptr, ptr) #0
; Function Attrs: nounwind
declare i64 @read.21(i32, ptr, i64) #0
declare i64 @read.22(i32, ptr, i64) #0
; Function Attrs: nounwind
declare i32 @close.22(i32) #0
declare i32 @close.23(i32) #0
; Function Attrs: nounwind
declare i16 @htons(ptr, i64) #0
; Function Attrs: nounwind
declare ptr @CAllocator.alloc_bytes.23(ptr, ptr, i64) #0
declare ptr @mem_realloc.24(ptr, ptr, ptr, i64, i64, i64) #0
; Function Attrs: nounwind
declare void @CAllocator.dealloc_bytes.24(ptr, ptr, ptr) #0
declare ptr @CAllocator.alloc_bytes.25(ptr, ptr, i64) #0
; Function Attrs: nounwind
declare i64 @GPA.init.25(ptr) #0
declare void @CAllocator.dealloc_bytes.26(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare ptr @GPA.alloc_bytes.26(ptr, ptr, i64) #0
declare i64 @GPA.init.27(ptr) #0
; Function Attrs: nounwind
declare void @GPA.dealloc_bytes.27(ptr, ptr, ptr) #0
declare ptr @GPA.alloc_bytes.28(ptr, ptr, i64) #0
; Function Attrs: nounwind
declare void @Arena.add_chunk.28(ptr, ptr, i64) #0
declare void @GPA.dealloc_bytes.29(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare void @Arena.init.29(ptr sret({ ptr, i64, { ptr, ptr, ptr } }), ptr, ptr, i64) #0
declare void @Arena.add_chunk.30(ptr, ptr, i64) #0
; Function Attrs: nounwind
declare void @Arena.reset.30(ptr, ptr) #0
declare void @Arena.init.31(ptr sret({ ptr, i64, { ptr, ptr, ptr } }), ptr, ptr, i64) #0
; Function Attrs: nounwind
declare void @Arena.deinit.31(ptr, ptr) #0
declare void @Arena.reset.32(ptr, ptr) #0
; Function Attrs: nounwind
declare ptr @Arena.alloc_bytes.32(ptr, ptr, i64) #0
declare void @Arena.deinit.33(ptr, ptr) #0
; Function Attrs: nounwind
declare void @Arena.dealloc_bytes.33(ptr, ptr, ptr) #0
declare ptr @Arena.alloc_bytes.34(ptr, ptr, i64) #0
; Function Attrs: nounwind
declare ptr @BufAlloc.init.34(ptr, ptr, i64) #0
declare void @Arena.dealloc_bytes.35(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare void @BufAlloc.reset.35(ptr, ptr) #0
declare ptr @BufAlloc.init.36(ptr, ptr, i64) #0
; Function Attrs: nounwind
declare ptr @BufAlloc.alloc_bytes.36(ptr, ptr, i64) #0
declare void @BufAlloc.reset.37(ptr, ptr) #0
; Function Attrs: nounwind
declare void @BufAlloc.dealloc_bytes.37(ptr, ptr, ptr) #0
declare ptr @BufAlloc.alloc_bytes.38(ptr, ptr, i64) #0
; Function Attrs: nounwind
declare void @TrackingAllocator.init.38(ptr sret({ { ptr, ptr, ptr }, i64, i64, i64 }), ptr, ptr) #0
declare void @BufAlloc.dealloc_bytes.39(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare i64 @TrackingAllocator.leak_count.39(ptr, ptr) #0
declare void @TrackingAllocator.init.40(ptr sret({ { ptr, ptr, ptr }, i64, i64, i64 }), ptr, ptr) #0
; Function Attrs: nounwind
declare void @TrackingAllocator.report.40(ptr, ptr) #0
declare i64 @TrackingAllocator.leak_count.41(ptr, ptr) #0
; Function Attrs: nounwind
declare ptr @TrackingAllocator.alloc_bytes.41(ptr, ptr, i64) #0
declare void @TrackingAllocator.report.42(ptr, ptr) #0
; Function Attrs: nounwind
declare void @TrackingAllocator.dealloc_bytes.42(ptr, ptr, ptr) #0
declare ptr @TrackingAllocator.alloc_bytes.43(ptr, ptr, i64) #0
; Function Attrs: nounwind
declare i32 @open.43(ptr, i32, ...) #0
declare void @TrackingAllocator.dealloc_bytes.44(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare i32 @close.44(i32) #0
declare i32 @open.45(ptr, i32, ...) #0
; Function Attrs: nounwind
declare i64 @read.45(i32, ptr, i64) #0
declare i32 @close.46(i32) #0
; Function Attrs: nounwind
declare i64 @lseek.46(i32, i64, i32) #0
declare i64 @read.47(i32, ptr, i64) #0
; Function Attrs: nounwind
declare i32 @unlink.47(ptr) #0
declare i64 @lseek.48(i32, i64, i32) #0
; Function Attrs: nounwind
declare i32 @rmdir.48(ptr) #0
declare i32 @unlink.49(ptr) #0
; Function Attrs: nounwind
declare i32 @mkdir.49(ptr, i32) #0
declare i32 @rmdir.50(ptr) #0
; Function Attrs: nounwind
declare i32 @access.50(ptr, i32) #0
declare i32 @mkdir.51(ptr, i32) #0
; Function Attrs: nounwind
declare i32 @chmod.51(ptr, i32) #0
declare i32 @access.52(ptr, i32) #0
; Function Attrs: nounwind
declare i32 @rename.52(ptr, ptr) #0
declare i32 @chmod.53(ptr, i32) #0
; Function Attrs: nounwind
declare i1 @File.is_valid.53(ptr, ptr) #0
declare i32 @rename.54(ptr, ptr) #0
; Function Attrs: nounwind
declare i1 @File.close.54(ptr, ptr) #0
declare i1 @File.is_valid.55(ptr, ptr) #0
; Function Attrs: nounwind
declare i64 @File.read.55(ptr, ptr, ptr) #0
declare i1 @File.close.56(ptr, ptr) #0
; Function Attrs: nounwind
declare i64 @File.write.56(ptr, ptr, ptr) #0
declare i64 @File.read.57(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare i64 @File.seek.57(ptr, ptr, i64, i64) #0
declare i64 @File.write.58(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare i32 @mode_to_flags.58(ptr, i64) #0
declare i64 @File.seek.59(ptr, ptr, i64, i64) #0
; Function Attrs: nounwind
declare i64 @open_file.59(ptr, ptr, i64) #0
declare i32 @mode_to_flags.60(ptr, i64) #0
; Function Attrs: nounwind
declare void @read_file.60(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0
declare i64 @open_file.61(ptr, ptr, i64) #0
; Function Attrs: nounwind
declare i1 @write_file.61(ptr, ptr, ptr) #0
declare void @read_file.62(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0
; Function Attrs: nounwind
declare i1 @append_file.62(ptr, ptr, ptr) #0
declare i1 @write_file.63(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare i1 @exists.63(ptr, ptr) #0
declare i1 @append_file.64(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare i1 @delete_file.64(ptr, ptr) #0
declare i1 @exists.65(ptr, ptr) #0
; Function Attrs: nounwind
declare i1 @delete_dir.65(ptr, ptr) #0
declare i1 @delete_file.66(ptr, ptr) #0
; Function Attrs: nounwind
declare i1 @create_dir.66(ptr, ptr) #0
declare i1 @delete_dir.67(ptr, ptr) #0
; Function Attrs: nounwind
declare i1 @set_mode.67(ptr, ptr, i32) #0
declare i1 @create_dir.68(ptr, ptr) #0
; Function Attrs: nounwind
declare i1 @move.68(ptr, ptr, ptr) #0
declare i1 @set_mode.69(ptr, ptr, i32) #0
; Function Attrs: nounwind
declare i1 @create_dir_all.69(ptr, ptr) #0
declare i1 @move.70(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare i1 @copy_file.70(ptr, ptr, ptr) #0
declare i1 @create_dir_all.71(ptr, ptr) #0
; Function Attrs: nounwind
declare ptr @basename.71(ptr, ptr) #0
declare i1 @copy_file.72(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare ptr @dirname.72(ptr, ptr) #0
declare ptr @basename.73(ptr, ptr) #0
; Function Attrs: nounwind
declare ptr @dirname.74(ptr, ptr) #0
; Function Attrs: nounwind
declare void @Array.add(ptr, ptr, ptr, ptr) #0
@@ -1201,64 +1210,64 @@ declare ptr @BuildOptions.jni_main_java_source_at(i64, i64) #0
declare i64 @build_options() #0
; Function Attrs: nounwind
declare ptr @spaces.73(ptr, i32) #0
declare ptr @spaces.75(ptr, i32) #0
; Function Attrs: nounwind
declare i32 @sx_trace_len.74() #0
declare i32 @sx_trace_len.76() #0
; Function Attrs: nounwind
declare i32 @sx_trace_truncated.75() #0
declare i32 @sx_trace_truncated.77() #0
; Function Attrs: nounwind
declare i64 @sx_trace_frame_at.76(i32) #0
declare i64 @sx_trace_frame_at.78(i32) #0
; Function Attrs: nounwind
declare ptr @to_string.77(ptr) #0
declare ptr @to_string.79(ptr) #0
; Function Attrs: nounwind
declare void @print_current.78(ptr) #0
declare void @print_current.80(ptr) #0
; Function Attrs: nounwind
declare void @print_interpreter_frames.79(ptr) #0
declare void @print_interpreter_frames.81(ptr) #0
; Function Attrs: nounwind
declare ptr @popen.80(ptr, ptr) #0
declare ptr @popen.82(ptr, ptr) #0
; Function Attrs: nounwind
declare i32 @pclose.81(ptr) #0
declare i32 @pclose.83(ptr) #0
; Function Attrs: nounwind
declare i64 @fread.82(ptr, i64, i64, ptr) #0
declare i64 @fread.84(ptr, i64, i64, ptr) #0
; Function Attrs: nounwind
declare i32 @feof.83(ptr) #0
declare i32 @feof.85(ptr) #0
; Function Attrs: nounwind
declare ptr @getenv.84(ptr) #0
declare ptr @getenv.86(ptr) #0
; Function Attrs: nounwind
declare i64 @strlen.85(ptr) #0
declare i64 @strlen.87(ptr) #0
; Function Attrs: nounwind
declare i32 @system.86(ptr) #0
declare i32 @system.88(ptr) #0
; Function Attrs: nounwind
declare void @run.87(ptr sret({ { i32, { ptr, i64 } }, i1 }), ptr, ptr) #0
declare void @run.89(ptr sret({ { i32, { ptr, i64 } }, i1 }), ptr, ptr) #0
; Function Attrs: nounwind
declare void @env.88(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0
declare void @env.90(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0
; Function Attrs: nounwind
declare void @find_executable.89(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0
declare void @find_executable.91(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0
; Function Attrs: nounwind
declare void @_exit.90(i32) #0
declare void @_exit.92(i32) #0
; Function Attrs: nounwind
declare void @exit.91(ptr, i8, ptr) #0
declare void @exit.93(ptr, i8, ptr) #0
; Function Attrs: nounwind
declare void @assert.92(ptr, i1, ptr, ptr) #0
declare void @assert.94(ptr, i1, ptr, ptr) #0
; Function Attrs: nounwind
declare ptr @_NSGetArgv() #0
@@ -1288,97 +1297,97 @@ declare ptr @Parsed.value_of(ptr, ptr, ptr) #0
declare i1 @is_long_flag(ptr, ptr) #0
; Function Attrs: nounwind
declare void @parse.93(ptr sret({ { { ptr, i64 }, { ptr, i64 }, i64, i1, { ptr, i64 }, { ptr, i64 }, [16 x { i1, { ptr, i64 } }] }, i32 }), ptr, ptr, ptr, ptr) #0
declare void @parse.95(ptr sret({ { { ptr, i64 }, { ptr, i64 }, i64, i1, { ptr, i64 }, { ptr, i64 }, [16 x { i1, { ptr, i64 } }] }, i32 }), ptr, ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare i32 @open.94(ptr, i32, ...) #0
declare i32 @open.96(ptr, i32, ...) #0
; Function Attrs: nounwind
declare i32 @close.95(i32) #0
declare i32 @close.97(i32) #0
; Function Attrs: nounwind
declare i64 @read.96(i32, ptr, i64) #0
declare i64 @read.98(i32, ptr, i64) #0
; Function Attrs: nounwind
declare i64 @lseek.97(i32, i64, i32) #0
declare i64 @lseek.99(i32, i64, i32) #0
; Function Attrs: nounwind
declare i32 @unlink.98(ptr) #0
declare i32 @unlink.100(ptr) #0
; Function Attrs: nounwind
declare i32 @rmdir.99(ptr) #0
declare i32 @rmdir.101(ptr) #0
; Function Attrs: nounwind
declare i32 @mkdir.100(ptr, i32) #0
declare i32 @mkdir.102(ptr, i32) #0
; Function Attrs: nounwind
declare i32 @access.101(ptr, i32) #0
declare i32 @access.103(ptr, i32) #0
; Function Attrs: nounwind
declare i32 @chmod.102(ptr, i32) #0
declare i32 @chmod.104(ptr, i32) #0
; Function Attrs: nounwind
declare i32 @rename.103(ptr, ptr) #0
declare i32 @rename.105(ptr, ptr) #0
; Function Attrs: nounwind
declare i1 @File.is_valid.104(ptr, ptr) #0
declare i1 @File.is_valid.106(ptr, ptr) #0
; Function Attrs: nounwind
declare i1 @File.close.105(ptr, ptr) #0
declare i1 @File.close.107(ptr, ptr) #0
; Function Attrs: nounwind
declare i64 @File.read.106(ptr, ptr, ptr) #0
declare i64 @File.read.108(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare i64 @File.write.107(ptr, ptr, ptr) #0
declare i64 @File.write.109(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare i64 @File.seek.108(ptr, ptr, i64, i64) #0
declare i64 @File.seek.110(ptr, ptr, i64, i64) #0
; Function Attrs: nounwind
declare i32 @mode_to_flags.109(ptr, i64) #0
declare i32 @mode_to_flags.111(ptr, i64) #0
; Function Attrs: nounwind
declare i64 @open_file.110(ptr, ptr, i64) #0
declare i64 @open_file.112(ptr, ptr, i64) #0
; Function Attrs: nounwind
declare void @read_file.111(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0
declare void @read_file.113(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0
; Function Attrs: nounwind
declare i1 @write_file.112(ptr, ptr, ptr) #0
declare i1 @write_file.114(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare i1 @append_file.113(ptr, ptr, ptr) #0
declare i1 @append_file.115(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare i1 @exists.114(ptr, ptr) #0
declare i1 @exists.116(ptr, ptr) #0
; Function Attrs: nounwind
declare i1 @delete_file.115(ptr, ptr) #0
declare i1 @delete_file.117(ptr, ptr) #0
; Function Attrs: nounwind
declare i1 @delete_dir.116(ptr, ptr) #0
declare i1 @delete_dir.118(ptr, ptr) #0
; Function Attrs: nounwind
declare i1 @create_dir.117(ptr, ptr) #0
declare i1 @create_dir.119(ptr, ptr) #0
; Function Attrs: nounwind
declare i1 @set_mode.118(ptr, ptr, i32) #0
declare i1 @set_mode.120(ptr, ptr, i32) #0
; Function Attrs: nounwind
declare i1 @move.119(ptr, ptr, ptr) #0
declare i1 @move.121(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare i1 @create_dir_all.120(ptr, ptr) #0
declare i1 @create_dir_all.122(ptr, ptr) #0
; Function Attrs: nounwind
declare i1 @copy_file.121(ptr, ptr, ptr) #0
declare i1 @copy_file.123(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare ptr @basename.122(ptr, ptr) #0
declare ptr @basename.124(ptr, ptr) #0
; Function Attrs: nounwind
declare ptr @dirname.123(ptr, ptr) #0
declare ptr @dirname.125(ptr, ptr) #0
; Function Attrs: nounwind
declare i64 @rotr(ptr, i64, i64) #0
@@ -1417,7 +1426,7 @@ declare [64 x i8] @sha256_hex(ptr, ptr) #0
declare void @sha256_file(ptr sret({ [64 x i8], i1 }), ptr, ptr) #0
; Function Attrs: nounwind
declare void @assert.124(ptr, i1) #0
declare void @assert.126(ptr, i1) #0
; Function Attrs: nounwind
define internal double @read_double(ptr %0, ptr %1, ptr %2) #0 {
@@ -1445,7 +1454,7 @@ jni.miss: ; preds = %entry
store ptr %jni.global.cls, ptr @SX_JNI_CLS_getValue____D, align 8
%5 = getelementptr inbounds ptr, ptr %jni.ifs, i32 33
%jni.GetMethodID = load ptr, ptr %5, align 8
%jni.fresh.mid = call ptr %jni.GetMethodID(ptr %load, ptr %jni.global.cls, ptr @str.140, ptr @str.141)
%jni.fresh.mid = call ptr %jni.GetMethodID(ptr %load, ptr %jni.global.cls, ptr @str.142, ptr @str.143)
store ptr %jni.fresh.mid, ptr @SX_JNI_MID_getValue____D, align 8
br label %jni.cont
@@ -1499,14 +1508,14 @@ declare void @sx_jni_env_tl_set(ptr) #0
define internal void @print__ct_sbdbafa1a5fe828c0__pack(ptr %0) #0 {
entry:
%alloca = alloca { ptr, i64 }, align 8
store { ptr, i64 } { ptr @str.142, i64 3 }, ptr %alloca, align 8
store { ptr, i64 } { ptr @str.144, i64 3 }, ptr %alloca, align 8
%allocaN = alloca { ptr, i64 }, align 8
%gep = getelementptr inbounds { ptr, i64 }, ptr %allocaN, i32 0, i32 0
store ptr null, ptr %gep, align 8
%gepN = getelementptr inbounds { ptr, i64 }, ptr %allocaN, i32 0, i32 1
store i64 0, ptr %gepN, align 8
%allocaN = alloca { ptr, i64 }, align 8
store { ptr, i64 } { ptr @str.143, i64 0 }, ptr %allocaN, align 8
store { ptr, i64 } { ptr @str.145, i64 0 }, ptr %allocaN, align 8
%load = load { ptr, i64 }, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %alloca, align 8
%call = call { ptr, i64 } @substr(ptr %0, { ptr, i64 } %loadN, i64 0, i64 3)
@@ -1522,6 +1531,6 @@ entry:
; Function Attrs: nounwind
define internal { ptr, i64 } @__insert_0(ptr %0) #0 {
entry:
%call = call { ptr, i64 } @build_format(ptr %0, { ptr, i64 } { ptr @str.144, i64 3 })
%call = call { ptr, i64 } @build_format(ptr %0, { ptr, i64 } { ptr @str.146, i64 3 })
ret { ptr, i64 } %call
}

View File

@@ -2,28 +2,28 @@
@g_should_call = internal global i1 false
@__sx_default_context = internal constant { { ptr, ptr, ptr }, ptr } { { ptr, ptr, ptr } { ptr null, ptr @__thunk_CAllocator_Allocator_alloc_bytes, ptr @__thunk_CAllocator_Allocator_dealloc_bytes }, ptr null }
@str = private unnamed_addr constant [2 x i8] c"0\00", align 1
@str.125 = private unnamed_addr constant [15 x i8] c"result := \22\22; \00", align 1
@str.126 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1
@str.127 = private unnamed_addr constant [3 x i8] c", \00", align 1
@str.128 = private unnamed_addr constant [5 x i8] c")); \00", align 1
@str.129 = private unnamed_addr constant [44 x i8] c"result = concat(result, any_to_string(args[\00", align 1
@str.130 = private unnamed_addr constant [6 x i8] c"])); \00", align 1
@str.131 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1
@str.132 = private unnamed_addr constant [3 x i8] c", \00", align 1
@str.133 = private unnamed_addr constant [5 x i8] c")); \00", align 1
@str.134 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1
@str.135 = private unnamed_addr constant [3 x i8] c", \00", align 1
@str.136 = private unnamed_addr constant [5 x i8] c")); \00", align 1
@str.137 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1
@str.138 = private unnamed_addr constant [3 x i8] c", \00", align 1
@str.139 = private unnamed_addr constant [5 x i8] c")); \00", align 1
@str.140 = private unnamed_addr constant [8 x i8] c"isShown\00", align 1
@str.141 = private unnamed_addr constant [4 x i8] c"()Z\00", align 1
@str.127 = private unnamed_addr constant [15 x i8] c"result := \22\22; \00", align 1
@str.128 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1
@str.129 = private unnamed_addr constant [3 x i8] c", \00", align 1
@str.130 = private unnamed_addr constant [5 x i8] c")); \00", align 1
@str.131 = private unnamed_addr constant [44 x i8] c"result = concat(result, any_to_string(args[\00", align 1
@str.132 = private unnamed_addr constant [6 x i8] c"])); \00", align 1
@str.133 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1
@str.134 = private unnamed_addr constant [3 x i8] c", \00", align 1
@str.135 = private unnamed_addr constant [5 x i8] c")); \00", align 1
@str.136 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1
@str.137 = private unnamed_addr constant [3 x i8] c", \00", align 1
@str.138 = private unnamed_addr constant [5 x i8] c")); \00", align 1
@str.139 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1
@str.140 = private unnamed_addr constant [3 x i8] c", \00", align 1
@str.141 = private unnamed_addr constant [5 x i8] c")); \00", align 1
@str.142 = private unnamed_addr constant [8 x i8] c"isShown\00", align 1
@str.143 = private unnamed_addr constant [4 x i8] c"()Z\00", align 1
@SX_JNI_CLS_isShown____Z = internal global ptr null
@SX_JNI_MID_isShown____Z = internal global ptr null
@str.142 = private unnamed_addr constant [4 x i8] c"ok\0A\00", align 1
@str.143 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1
@str.144 = private unnamed_addr constant [4 x i8] c"ok\0A\00", align 1
@str.145 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1
@str.146 = private unnamed_addr constant [4 x i8] c"ok\0A\00", align 1
; Function Attrs: nounwind
declare void @out(ptr) #0
@@ -36,6 +36,9 @@ declare ptr @memcpy(ptr, ptr, i64)
declare ptr @memset(ptr, i32, i64)
; Function Attrs: nounwind
declare ptr @mem_realloc(ptr, ptr, ptr, i64, i64, i64) #0
; Function Attrs: nounwind
define internal ptr @CAllocator.alloc_bytes(ptr %0, ptr %1, i64 %2) #0 {
entry:
@@ -328,7 +331,7 @@ entry:
%alloca = alloca { ptr, i64 }, align 8
store { ptr, i64 } %1, ptr %alloca, align 8
%allocaN = alloca { ptr, i64 }, align 8
store { ptr, i64 } { ptr @str.125, i64 14 }, ptr %allocaN, align 8
store { ptr, i64 } { ptr @str.127, i64 14 }, ptr %allocaN, align 8
%allocaN = alloca i64, align 8
store i64 0, ptr %allocaN, align 8
%allocaN = alloca i64, align 8
@@ -424,7 +427,7 @@ if.merge.13: ; preds = %if.merge.27, %if.me
if.then.14: ; preds = %if.then.11
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
%call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.126, i64 36 })
%call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.128, i64 36 })
store { ptr, i64 } %call, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
%loadN = load i64, ptr %allocaN, align 8
@@ -432,7 +435,7 @@ if.then.14: ; preds = %if.then.11
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN)
store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.127, i64 2 })
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.129, i64 2 })
store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
%loadN = load i64, ptr %allocaN, align 8
@@ -442,13 +445,13 @@ if.then.14: ; preds = %if.then.11
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN)
store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.128, i64 4 })
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.130, i64 4 })
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %if.merge.15
if.merge.15: ; preds = %if.then.14, %if.then.11
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.129, i64 43 })
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.131, i64 43 })
store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
%loadN = load i64, ptr %allocaN, align 8
@@ -456,7 +459,7 @@ if.merge.15: ; preds = %if.then.14, %if.the
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN)
store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.130, i64 5 })
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.132, i64 5 })
store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load i64, ptr %allocaN, align 8
%addN = add i64 %loadN, 1
@@ -470,7 +473,7 @@ if.merge.15: ; preds = %if.then.14, %if.the
if.then.25: ; preds = %if.else.12
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.131, i64 36 })
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.133, i64 36 })
store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
%loadN = load i64, ptr %allocaN, align 8
@@ -478,7 +481,7 @@ if.then.25: ; preds = %if.else.12
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN)
store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.132, i64 2 })
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.134, i64 2 })
store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
%loadN = load i64, ptr %allocaN, align 8
@@ -489,7 +492,7 @@ if.then.25: ; preds = %if.else.12
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN)
store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.133, i64 4 })
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.135, i64 4 })
store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load i64, ptr %allocaN, align 8
%addN = add i64 %loadN, 2
@@ -546,7 +549,7 @@ if.merge.33: ; preds = %if.merge.36, %if.el
if.then.34: ; preds = %if.then.31
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.134, i64 36 })
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.136, i64 36 })
store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
%loadN = load i64, ptr %allocaN, align 8
@@ -554,7 +557,7 @@ if.then.34: ; preds = %if.then.31
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN)
store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.135, i64 2 })
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.137, i64 2 })
store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
%loadN = load i64, ptr %allocaN, align 8
@@ -565,7 +568,7 @@ if.then.34: ; preds = %if.then.31
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN)
store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.136, i64 4 })
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.138, i64 4 })
store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load i64, ptr %allocaN, align 8
%addN = add i64 %loadN, 2
@@ -585,7 +588,7 @@ if.merge.36: ; preds = %if.else.35, %if.the
if.then.37: ; preds = %while.exit.4
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.137, i64 36 })
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.139, i64 36 })
store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
%loadN = load i64, ptr %allocaN, align 8
@@ -593,7 +596,7 @@ if.then.37: ; preds = %while.exit.4
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN)
store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.138, i64 2 })
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.140, i64 2 })
store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %alloca, align 8
@@ -604,7 +607,7 @@ if.then.37: ; preds = %while.exit.4
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN)
store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.139, i64 4 })
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.141, i64 4 })
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %if.merge.38
@@ -614,64 +617,67 @@ if.merge.38: ; preds = %if.then.37, %while.
}
; Function Attrs: nounwind
declare ptr @CAllocator.alloc_bytes.1(ptr, ptr, i64) #0
declare ptr @mem_realloc.1(ptr, ptr, ptr, i64, i64, i64) #0
; Function Attrs: nounwind
declare void @CAllocator.dealloc_bytes.2(ptr, ptr, ptr) #0
declare ptr @CAllocator.alloc_bytes.2(ptr, ptr, i64) #0
; Function Attrs: nounwind
declare i64 @GPA.init.3(ptr) #0
declare void @CAllocator.dealloc_bytes.3(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare ptr @GPA.alloc_bytes.4(ptr, ptr, i64) #0
declare i64 @GPA.init.4(ptr) #0
; Function Attrs: nounwind
declare void @GPA.dealloc_bytes.5(ptr, ptr, ptr) #0
declare ptr @GPA.alloc_bytes.5(ptr, ptr, i64) #0
; Function Attrs: nounwind
declare void @Arena.add_chunk.6(ptr, ptr, i64) #0
declare void @GPA.dealloc_bytes.6(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare void @Arena.init.7(ptr sret({ ptr, i64, { ptr, ptr, ptr } }), ptr, ptr, i64) #0
declare void @Arena.add_chunk.7(ptr, ptr, i64) #0
; Function Attrs: nounwind
declare void @Arena.reset.8(ptr, ptr) #0
declare void @Arena.init.8(ptr sret({ ptr, i64, { ptr, ptr, ptr } }), ptr, ptr, i64) #0
; Function Attrs: nounwind
declare void @Arena.deinit.9(ptr, ptr) #0
declare void @Arena.reset.9(ptr, ptr) #0
; Function Attrs: nounwind
declare ptr @Arena.alloc_bytes.10(ptr, ptr, i64) #0
declare void @Arena.deinit.10(ptr, ptr) #0
; Function Attrs: nounwind
declare void @Arena.dealloc_bytes.11(ptr, ptr, ptr) #0
declare ptr @Arena.alloc_bytes.11(ptr, ptr, i64) #0
; Function Attrs: nounwind
declare ptr @BufAlloc.init.12(ptr, ptr, i64) #0
declare void @Arena.dealloc_bytes.12(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare void @BufAlloc.reset.13(ptr, ptr) #0
declare ptr @BufAlloc.init.13(ptr, ptr, i64) #0
; Function Attrs: nounwind
declare ptr @BufAlloc.alloc_bytes.14(ptr, ptr, i64) #0
declare void @BufAlloc.reset.14(ptr, ptr) #0
; Function Attrs: nounwind
declare void @BufAlloc.dealloc_bytes.15(ptr, ptr, ptr) #0
declare ptr @BufAlloc.alloc_bytes.15(ptr, ptr, i64) #0
; Function Attrs: nounwind
declare void @TrackingAllocator.init.16(ptr sret({ { ptr, ptr, ptr }, i64, i64, i64 }), ptr, ptr) #0
declare void @BufAlloc.dealloc_bytes.16(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare i64 @TrackingAllocator.leak_count.17(ptr, ptr) #0
declare void @TrackingAllocator.init.17(ptr sret({ { ptr, ptr, ptr }, i64, i64, i64 }), ptr, ptr) #0
; Function Attrs: nounwind
declare void @TrackingAllocator.report.18(ptr, ptr) #0
declare i64 @TrackingAllocator.leak_count.18(ptr, ptr) #0
; Function Attrs: nounwind
declare ptr @TrackingAllocator.alloc_bytes.19(ptr, ptr, i64) #0
declare void @TrackingAllocator.report.19(ptr, ptr) #0
; Function Attrs: nounwind
declare void @TrackingAllocator.dealloc_bytes.20(ptr, ptr, ptr) #0
declare ptr @TrackingAllocator.alloc_bytes.20(ptr, ptr, i64) #0
; Function Attrs: nounwind
declare void @TrackingAllocator.dealloc_bytes.21(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare ptr @escape(ptr, ptr) #0
@@ -847,163 +853,166 @@ declare i32 @listen(i32, i32) #0
declare i32 @accept(i32, ptr, ptr) #0
; Function Attrs: nounwind
declare i64 @read.21(i32, ptr, i64) #0
declare i64 @read.22(i32, ptr, i64) #0
; Function Attrs: nounwind
declare i32 @close.22(i32) #0
declare i32 @close.23(i32) #0
; Function Attrs: nounwind
declare i16 @htons(ptr, i64) #0
; Function Attrs: nounwind
declare ptr @CAllocator.alloc_bytes.23(ptr, ptr, i64) #0
declare ptr @mem_realloc.24(ptr, ptr, ptr, i64, i64, i64) #0
; Function Attrs: nounwind
declare void @CAllocator.dealloc_bytes.24(ptr, ptr, ptr) #0
declare ptr @CAllocator.alloc_bytes.25(ptr, ptr, i64) #0
; Function Attrs: nounwind
declare i64 @GPA.init.25(ptr) #0
declare void @CAllocator.dealloc_bytes.26(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare ptr @GPA.alloc_bytes.26(ptr, ptr, i64) #0
declare i64 @GPA.init.27(ptr) #0
; Function Attrs: nounwind
declare void @GPA.dealloc_bytes.27(ptr, ptr, ptr) #0
declare ptr @GPA.alloc_bytes.28(ptr, ptr, i64) #0
; Function Attrs: nounwind
declare void @Arena.add_chunk.28(ptr, ptr, i64) #0
declare void @GPA.dealloc_bytes.29(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare void @Arena.init.29(ptr sret({ ptr, i64, { ptr, ptr, ptr } }), ptr, ptr, i64) #0
declare void @Arena.add_chunk.30(ptr, ptr, i64) #0
; Function Attrs: nounwind
declare void @Arena.reset.30(ptr, ptr) #0
declare void @Arena.init.31(ptr sret({ ptr, i64, { ptr, ptr, ptr } }), ptr, ptr, i64) #0
; Function Attrs: nounwind
declare void @Arena.deinit.31(ptr, ptr) #0
declare void @Arena.reset.32(ptr, ptr) #0
; Function Attrs: nounwind
declare ptr @Arena.alloc_bytes.32(ptr, ptr, i64) #0
declare void @Arena.deinit.33(ptr, ptr) #0
; Function Attrs: nounwind
declare void @Arena.dealloc_bytes.33(ptr, ptr, ptr) #0
declare ptr @Arena.alloc_bytes.34(ptr, ptr, i64) #0
; Function Attrs: nounwind
declare ptr @BufAlloc.init.34(ptr, ptr, i64) #0
declare void @Arena.dealloc_bytes.35(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare void @BufAlloc.reset.35(ptr, ptr) #0
declare ptr @BufAlloc.init.36(ptr, ptr, i64) #0
; Function Attrs: nounwind
declare ptr @BufAlloc.alloc_bytes.36(ptr, ptr, i64) #0
declare void @BufAlloc.reset.37(ptr, ptr) #0
; Function Attrs: nounwind
declare void @BufAlloc.dealloc_bytes.37(ptr, ptr, ptr) #0
declare ptr @BufAlloc.alloc_bytes.38(ptr, ptr, i64) #0
; Function Attrs: nounwind
declare void @TrackingAllocator.init.38(ptr sret({ { ptr, ptr, ptr }, i64, i64, i64 }), ptr, ptr) #0
declare void @BufAlloc.dealloc_bytes.39(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare i64 @TrackingAllocator.leak_count.39(ptr, ptr) #0
declare void @TrackingAllocator.init.40(ptr sret({ { ptr, ptr, ptr }, i64, i64, i64 }), ptr, ptr) #0
; Function Attrs: nounwind
declare void @TrackingAllocator.report.40(ptr, ptr) #0
declare i64 @TrackingAllocator.leak_count.41(ptr, ptr) #0
; Function Attrs: nounwind
declare ptr @TrackingAllocator.alloc_bytes.41(ptr, ptr, i64) #0
declare void @TrackingAllocator.report.42(ptr, ptr) #0
; Function Attrs: nounwind
declare void @TrackingAllocator.dealloc_bytes.42(ptr, ptr, ptr) #0
declare ptr @TrackingAllocator.alloc_bytes.43(ptr, ptr, i64) #0
; Function Attrs: nounwind
declare i32 @open.43(ptr, i32, ...) #0
declare void @TrackingAllocator.dealloc_bytes.44(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare i32 @close.44(i32) #0
declare i32 @open.45(ptr, i32, ...) #0
; Function Attrs: nounwind
declare i64 @read.45(i32, ptr, i64) #0
declare i32 @close.46(i32) #0
; Function Attrs: nounwind
declare i64 @lseek.46(i32, i64, i32) #0
declare i64 @read.47(i32, ptr, i64) #0
; Function Attrs: nounwind
declare i32 @unlink.47(ptr) #0
declare i64 @lseek.48(i32, i64, i32) #0
; Function Attrs: nounwind
declare i32 @rmdir.48(ptr) #0
declare i32 @unlink.49(ptr) #0
; Function Attrs: nounwind
declare i32 @mkdir.49(ptr, i32) #0
declare i32 @rmdir.50(ptr) #0
; Function Attrs: nounwind
declare i32 @access.50(ptr, i32) #0
declare i32 @mkdir.51(ptr, i32) #0
; Function Attrs: nounwind
declare i32 @chmod.51(ptr, i32) #0
declare i32 @access.52(ptr, i32) #0
; Function Attrs: nounwind
declare i32 @rename.52(ptr, ptr) #0
declare i32 @chmod.53(ptr, i32) #0
; Function Attrs: nounwind
declare i1 @File.is_valid.53(ptr, ptr) #0
declare i32 @rename.54(ptr, ptr) #0
; Function Attrs: nounwind
declare i1 @File.close.54(ptr, ptr) #0
declare i1 @File.is_valid.55(ptr, ptr) #0
; Function Attrs: nounwind
declare i64 @File.read.55(ptr, ptr, ptr) #0
declare i1 @File.close.56(ptr, ptr) #0
; Function Attrs: nounwind
declare i64 @File.write.56(ptr, ptr, ptr) #0
declare i64 @File.read.57(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare i64 @File.seek.57(ptr, ptr, i64, i64) #0
declare i64 @File.write.58(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare i32 @mode_to_flags.58(ptr, i64) #0
declare i64 @File.seek.59(ptr, ptr, i64, i64) #0
; Function Attrs: nounwind
declare i64 @open_file.59(ptr, ptr, i64) #0
declare i32 @mode_to_flags.60(ptr, i64) #0
; Function Attrs: nounwind
declare void @read_file.60(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0
declare i64 @open_file.61(ptr, ptr, i64) #0
; Function Attrs: nounwind
declare i1 @write_file.61(ptr, ptr, ptr) #0
declare void @read_file.62(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0
; Function Attrs: nounwind
declare i1 @append_file.62(ptr, ptr, ptr) #0
declare i1 @write_file.63(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare i1 @exists.63(ptr, ptr) #0
declare i1 @append_file.64(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare i1 @delete_file.64(ptr, ptr) #0
declare i1 @exists.65(ptr, ptr) #0
; Function Attrs: nounwind
declare i1 @delete_dir.65(ptr, ptr) #0
declare i1 @delete_file.66(ptr, ptr) #0
; Function Attrs: nounwind
declare i1 @create_dir.66(ptr, ptr) #0
declare i1 @delete_dir.67(ptr, ptr) #0
; Function Attrs: nounwind
declare i1 @set_mode.67(ptr, ptr, i32) #0
declare i1 @create_dir.68(ptr, ptr) #0
; Function Attrs: nounwind
declare i1 @move.68(ptr, ptr, ptr) #0
declare i1 @set_mode.69(ptr, ptr, i32) #0
; Function Attrs: nounwind
declare i1 @create_dir_all.69(ptr, ptr) #0
declare i1 @move.70(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare i1 @copy_file.70(ptr, ptr, ptr) #0
declare i1 @create_dir_all.71(ptr, ptr) #0
; Function Attrs: nounwind
declare ptr @basename.71(ptr, ptr) #0
declare i1 @copy_file.72(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare ptr @dirname.72(ptr, ptr) #0
declare ptr @basename.73(ptr, ptr) #0
; Function Attrs: nounwind
declare ptr @dirname.74(ptr, ptr) #0
; Function Attrs: nounwind
declare void @Array.add(ptr, ptr, ptr, ptr) #0
@@ -1201,64 +1210,64 @@ declare ptr @BuildOptions.jni_main_java_source_at(i64, i64) #0
declare i64 @build_options() #0
; Function Attrs: nounwind
declare ptr @spaces.73(ptr, i32) #0
declare ptr @spaces.75(ptr, i32) #0
; Function Attrs: nounwind
declare i32 @sx_trace_len.74() #0
declare i32 @sx_trace_len.76() #0
; Function Attrs: nounwind
declare i32 @sx_trace_truncated.75() #0
declare i32 @sx_trace_truncated.77() #0
; Function Attrs: nounwind
declare i64 @sx_trace_frame_at.76(i32) #0
declare i64 @sx_trace_frame_at.78(i32) #0
; Function Attrs: nounwind
declare ptr @to_string.77(ptr) #0
declare ptr @to_string.79(ptr) #0
; Function Attrs: nounwind
declare void @print_current.78(ptr) #0
declare void @print_current.80(ptr) #0
; Function Attrs: nounwind
declare void @print_interpreter_frames.79(ptr) #0
declare void @print_interpreter_frames.81(ptr) #0
; Function Attrs: nounwind
declare ptr @popen.80(ptr, ptr) #0
declare ptr @popen.82(ptr, ptr) #0
; Function Attrs: nounwind
declare i32 @pclose.81(ptr) #0
declare i32 @pclose.83(ptr) #0
; Function Attrs: nounwind
declare i64 @fread.82(ptr, i64, i64, ptr) #0
declare i64 @fread.84(ptr, i64, i64, ptr) #0
; Function Attrs: nounwind
declare i32 @feof.83(ptr) #0
declare i32 @feof.85(ptr) #0
; Function Attrs: nounwind
declare ptr @getenv.84(ptr) #0
declare ptr @getenv.86(ptr) #0
; Function Attrs: nounwind
declare i64 @strlen.85(ptr) #0
declare i64 @strlen.87(ptr) #0
; Function Attrs: nounwind
declare i32 @system.86(ptr) #0
declare i32 @system.88(ptr) #0
; Function Attrs: nounwind
declare void @run.87(ptr sret({ { i32, { ptr, i64 } }, i1 }), ptr, ptr) #0
declare void @run.89(ptr sret({ { i32, { ptr, i64 } }, i1 }), ptr, ptr) #0
; Function Attrs: nounwind
declare void @env.88(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0
declare void @env.90(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0
; Function Attrs: nounwind
declare void @find_executable.89(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0
declare void @find_executable.91(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0
; Function Attrs: nounwind
declare void @_exit.90(i32) #0
declare void @_exit.92(i32) #0
; Function Attrs: nounwind
declare void @exit.91(ptr, i8, ptr) #0
declare void @exit.93(ptr, i8, ptr) #0
; Function Attrs: nounwind
declare void @assert.92(ptr, i1, ptr, ptr) #0
declare void @assert.94(ptr, i1, ptr, ptr) #0
; Function Attrs: nounwind
declare ptr @_NSGetArgv() #0
@@ -1288,97 +1297,97 @@ declare ptr @Parsed.value_of(ptr, ptr, ptr) #0
declare i1 @is_long_flag(ptr, ptr) #0
; Function Attrs: nounwind
declare void @parse.93(ptr sret({ { { ptr, i64 }, { ptr, i64 }, i64, i1, { ptr, i64 }, { ptr, i64 }, [16 x { i1, { ptr, i64 } }] }, i32 }), ptr, ptr, ptr, ptr) #0
declare void @parse.95(ptr sret({ { { ptr, i64 }, { ptr, i64 }, i64, i1, { ptr, i64 }, { ptr, i64 }, [16 x { i1, { ptr, i64 } }] }, i32 }), ptr, ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare i32 @open.94(ptr, i32, ...) #0
declare i32 @open.96(ptr, i32, ...) #0
; Function Attrs: nounwind
declare i32 @close.95(i32) #0
declare i32 @close.97(i32) #0
; Function Attrs: nounwind
declare i64 @read.96(i32, ptr, i64) #0
declare i64 @read.98(i32, ptr, i64) #0
; Function Attrs: nounwind
declare i64 @lseek.97(i32, i64, i32) #0
declare i64 @lseek.99(i32, i64, i32) #0
; Function Attrs: nounwind
declare i32 @unlink.98(ptr) #0
declare i32 @unlink.100(ptr) #0
; Function Attrs: nounwind
declare i32 @rmdir.99(ptr) #0
declare i32 @rmdir.101(ptr) #0
; Function Attrs: nounwind
declare i32 @mkdir.100(ptr, i32) #0
declare i32 @mkdir.102(ptr, i32) #0
; Function Attrs: nounwind
declare i32 @access.101(ptr, i32) #0
declare i32 @access.103(ptr, i32) #0
; Function Attrs: nounwind
declare i32 @chmod.102(ptr, i32) #0
declare i32 @chmod.104(ptr, i32) #0
; Function Attrs: nounwind
declare i32 @rename.103(ptr, ptr) #0
declare i32 @rename.105(ptr, ptr) #0
; Function Attrs: nounwind
declare i1 @File.is_valid.104(ptr, ptr) #0
declare i1 @File.is_valid.106(ptr, ptr) #0
; Function Attrs: nounwind
declare i1 @File.close.105(ptr, ptr) #0
declare i1 @File.close.107(ptr, ptr) #0
; Function Attrs: nounwind
declare i64 @File.read.106(ptr, ptr, ptr) #0
declare i64 @File.read.108(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare i64 @File.write.107(ptr, ptr, ptr) #0
declare i64 @File.write.109(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare i64 @File.seek.108(ptr, ptr, i64, i64) #0
declare i64 @File.seek.110(ptr, ptr, i64, i64) #0
; Function Attrs: nounwind
declare i32 @mode_to_flags.109(ptr, i64) #0
declare i32 @mode_to_flags.111(ptr, i64) #0
; Function Attrs: nounwind
declare i64 @open_file.110(ptr, ptr, i64) #0
declare i64 @open_file.112(ptr, ptr, i64) #0
; Function Attrs: nounwind
declare void @read_file.111(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0
declare void @read_file.113(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0
; Function Attrs: nounwind
declare i1 @write_file.112(ptr, ptr, ptr) #0
declare i1 @write_file.114(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare i1 @append_file.113(ptr, ptr, ptr) #0
declare i1 @append_file.115(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare i1 @exists.114(ptr, ptr) #0
declare i1 @exists.116(ptr, ptr) #0
; Function Attrs: nounwind
declare i1 @delete_file.115(ptr, ptr) #0
declare i1 @delete_file.117(ptr, ptr) #0
; Function Attrs: nounwind
declare i1 @delete_dir.116(ptr, ptr) #0
declare i1 @delete_dir.118(ptr, ptr) #0
; Function Attrs: nounwind
declare i1 @create_dir.117(ptr, ptr) #0
declare i1 @create_dir.119(ptr, ptr) #0
; Function Attrs: nounwind
declare i1 @set_mode.118(ptr, ptr, i32) #0
declare i1 @set_mode.120(ptr, ptr, i32) #0
; Function Attrs: nounwind
declare i1 @move.119(ptr, ptr, ptr) #0
declare i1 @move.121(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare i1 @create_dir_all.120(ptr, ptr) #0
declare i1 @create_dir_all.122(ptr, ptr) #0
; Function Attrs: nounwind
declare i1 @copy_file.121(ptr, ptr, ptr) #0
declare i1 @copy_file.123(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare ptr @basename.122(ptr, ptr) #0
declare ptr @basename.124(ptr, ptr) #0
; Function Attrs: nounwind
declare ptr @dirname.123(ptr, ptr) #0
declare ptr @dirname.125(ptr, ptr) #0
; Function Attrs: nounwind
declare i64 @rotr(ptr, i64, i64) #0
@@ -1417,7 +1426,7 @@ declare [64 x i8] @sha256_hex(ptr, ptr) #0
declare void @sha256_file(ptr sret({ [64 x i8], i1 }), ptr, ptr) #0
; Function Attrs: nounwind
declare void @assert.124(ptr, i1) #0
declare void @assert.126(ptr, i1) #0
; Function Attrs: nounwind
define internal i1 @read_bool(ptr %0, ptr %1, ptr %2) #0 {
@@ -1445,7 +1454,7 @@ jni.miss: ; preds = %entry
store ptr %jni.global.cls, ptr @SX_JNI_CLS_isShown____Z, align 8
%5 = getelementptr inbounds ptr, ptr %jni.ifs, i32 33
%jni.GetMethodID = load ptr, ptr %5, align 8
%jni.fresh.mid = call ptr %jni.GetMethodID(ptr %load, ptr %jni.global.cls, ptr @str.140, ptr @str.141)
%jni.fresh.mid = call ptr %jni.GetMethodID(ptr %load, ptr %jni.global.cls, ptr @str.142, ptr @str.143)
store ptr %jni.fresh.mid, ptr @SX_JNI_MID_isShown____Z, align 8
br label %jni.cont
@@ -1499,14 +1508,14 @@ declare void @sx_jni_env_tl_set(ptr) #0
define internal void @print__ct_sbdbafa1a5fe828c0__pack(ptr %0) #0 {
entry:
%alloca = alloca { ptr, i64 }, align 8
store { ptr, i64 } { ptr @str.142, i64 3 }, ptr %alloca, align 8
store { ptr, i64 } { ptr @str.144, i64 3 }, ptr %alloca, align 8
%allocaN = alloca { ptr, i64 }, align 8
%gep = getelementptr inbounds { ptr, i64 }, ptr %allocaN, i32 0, i32 0
store ptr null, ptr %gep, align 8
%gepN = getelementptr inbounds { ptr, i64 }, ptr %allocaN, i32 0, i32 1
store i64 0, ptr %gepN, align 8
%allocaN = alloca { ptr, i64 }, align 8
store { ptr, i64 } { ptr @str.143, i64 0 }, ptr %allocaN, align 8
store { ptr, i64 } { ptr @str.145, i64 0 }, ptr %allocaN, align 8
%load = load { ptr, i64 }, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %alloca, align 8
%call = call { ptr, i64 } @substr(ptr %0, { ptr, i64 } %loadN, i64 0, i64 3)
@@ -1522,6 +1531,6 @@ entry:
; Function Attrs: nounwind
define internal { ptr, i64 } @__insert_0(ptr %0) #0 {
entry:
%call = call { ptr, i64 } @build_format(ptr %0, { ptr, i64 } { ptr @str.144, i64 3 })
%call = call { ptr, i64 } @build_format(ptr %0, { ptr, i64 } { ptr @str.146, i64 3 })
ret { ptr, i64 } %call
}

View File

@@ -2,28 +2,28 @@
@g_should_call = internal global i1 false
@__sx_default_context = internal constant { { ptr, ptr, ptr }, ptr } { { ptr, ptr, ptr } { ptr null, ptr @__thunk_CAllocator_Allocator_alloc_bytes, ptr @__thunk_CAllocator_Allocator_dealloc_bytes }, ptr null }
@str = private unnamed_addr constant [2 x i8] c"0\00", align 1
@str.125 = private unnamed_addr constant [15 x i8] c"result := \22\22; \00", align 1
@str.126 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1
@str.127 = private unnamed_addr constant [3 x i8] c", \00", align 1
@str.128 = private unnamed_addr constant [5 x i8] c")); \00", align 1
@str.129 = private unnamed_addr constant [44 x i8] c"result = concat(result, any_to_string(args[\00", align 1
@str.130 = private unnamed_addr constant [6 x i8] c"])); \00", align 1
@str.131 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1
@str.132 = private unnamed_addr constant [3 x i8] c", \00", align 1
@str.133 = private unnamed_addr constant [5 x i8] c")); \00", align 1
@str.134 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1
@str.135 = private unnamed_addr constant [3 x i8] c", \00", align 1
@str.136 = private unnamed_addr constant [5 x i8] c")); \00", align 1
@str.137 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1
@str.138 = private unnamed_addr constant [3 x i8] c", \00", align 1
@str.139 = private unnamed_addr constant [5 x i8] c")); \00", align 1
@str.140 = private unnamed_addr constant [10 x i8] c"getWindow\00", align 1
@str.141 = private unnamed_addr constant [24 x i8] c"()Landroid/view/Window;\00", align 1
@str.127 = private unnamed_addr constant [15 x i8] c"result := \22\22; \00", align 1
@str.128 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1
@str.129 = private unnamed_addr constant [3 x i8] c", \00", align 1
@str.130 = private unnamed_addr constant [5 x i8] c")); \00", align 1
@str.131 = private unnamed_addr constant [44 x i8] c"result = concat(result, any_to_string(args[\00", align 1
@str.132 = private unnamed_addr constant [6 x i8] c"])); \00", align 1
@str.133 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1
@str.134 = private unnamed_addr constant [3 x i8] c", \00", align 1
@str.135 = private unnamed_addr constant [5 x i8] c")); \00", align 1
@str.136 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1
@str.137 = private unnamed_addr constant [3 x i8] c", \00", align 1
@str.138 = private unnamed_addr constant [5 x i8] c")); \00", align 1
@str.139 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1
@str.140 = private unnamed_addr constant [3 x i8] c", \00", align 1
@str.141 = private unnamed_addr constant [5 x i8] c")); \00", align 1
@str.142 = private unnamed_addr constant [10 x i8] c"getWindow\00", align 1
@str.143 = private unnamed_addr constant [24 x i8] c"()Landroid/view/Window;\00", align 1
@SX_JNI_CLS_getWindow____Landroid_view_Window_ = internal global ptr null
@SX_JNI_MID_getWindow____Landroid_view_Window_ = internal global ptr null
@str.142 = private unnamed_addr constant [4 x i8] c"ok\0A\00", align 1
@str.143 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1
@str.144 = private unnamed_addr constant [4 x i8] c"ok\0A\00", align 1
@str.145 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1
@str.146 = private unnamed_addr constant [4 x i8] c"ok\0A\00", align 1
; Function Attrs: nounwind
declare void @out(ptr) #0
@@ -36,6 +36,9 @@ declare ptr @memcpy(ptr, ptr, i64)
declare ptr @memset(ptr, i32, i64)
; Function Attrs: nounwind
declare ptr @mem_realloc(ptr, ptr, ptr, i64, i64, i64) #0
; Function Attrs: nounwind
define internal ptr @CAllocator.alloc_bytes(ptr %0, ptr %1, i64 %2) #0 {
entry:
@@ -328,7 +331,7 @@ entry:
%alloca = alloca { ptr, i64 }, align 8
store { ptr, i64 } %1, ptr %alloca, align 8
%allocaN = alloca { ptr, i64 }, align 8
store { ptr, i64 } { ptr @str.125, i64 14 }, ptr %allocaN, align 8
store { ptr, i64 } { ptr @str.127, i64 14 }, ptr %allocaN, align 8
%allocaN = alloca i64, align 8
store i64 0, ptr %allocaN, align 8
%allocaN = alloca i64, align 8
@@ -424,7 +427,7 @@ if.merge.13: ; preds = %if.merge.27, %if.me
if.then.14: ; preds = %if.then.11
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
%call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.126, i64 36 })
%call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.128, i64 36 })
store { ptr, i64 } %call, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
%loadN = load i64, ptr %allocaN, align 8
@@ -432,7 +435,7 @@ if.then.14: ; preds = %if.then.11
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN)
store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.127, i64 2 })
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.129, i64 2 })
store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
%loadN = load i64, ptr %allocaN, align 8
@@ -442,13 +445,13 @@ if.then.14: ; preds = %if.then.11
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN)
store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.128, i64 4 })
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.130, i64 4 })
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %if.merge.15
if.merge.15: ; preds = %if.then.14, %if.then.11
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.129, i64 43 })
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.131, i64 43 })
store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
%loadN = load i64, ptr %allocaN, align 8
@@ -456,7 +459,7 @@ if.merge.15: ; preds = %if.then.14, %if.the
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN)
store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.130, i64 5 })
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.132, i64 5 })
store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load i64, ptr %allocaN, align 8
%addN = add i64 %loadN, 1
@@ -470,7 +473,7 @@ if.merge.15: ; preds = %if.then.14, %if.the
if.then.25: ; preds = %if.else.12
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.131, i64 36 })
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.133, i64 36 })
store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
%loadN = load i64, ptr %allocaN, align 8
@@ -478,7 +481,7 @@ if.then.25: ; preds = %if.else.12
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN)
store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.132, i64 2 })
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.134, i64 2 })
store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
%loadN = load i64, ptr %allocaN, align 8
@@ -489,7 +492,7 @@ if.then.25: ; preds = %if.else.12
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN)
store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.133, i64 4 })
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.135, i64 4 })
store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load i64, ptr %allocaN, align 8
%addN = add i64 %loadN, 2
@@ -546,7 +549,7 @@ if.merge.33: ; preds = %if.merge.36, %if.el
if.then.34: ; preds = %if.then.31
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.134, i64 36 })
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.136, i64 36 })
store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
%loadN = load i64, ptr %allocaN, align 8
@@ -554,7 +557,7 @@ if.then.34: ; preds = %if.then.31
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN)
store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.135, i64 2 })
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.137, i64 2 })
store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
%loadN = load i64, ptr %allocaN, align 8
@@ -565,7 +568,7 @@ if.then.34: ; preds = %if.then.31
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN)
store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.136, i64 4 })
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.138, i64 4 })
store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load i64, ptr %allocaN, align 8
%addN = add i64 %loadN, 2
@@ -585,7 +588,7 @@ if.merge.36: ; preds = %if.else.35, %if.the
if.then.37: ; preds = %while.exit.4
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.137, i64 36 })
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.139, i64 36 })
store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
%loadN = load i64, ptr %allocaN, align 8
@@ -593,7 +596,7 @@ if.then.37: ; preds = %while.exit.4
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN)
store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.138, i64 2 })
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.140, i64 2 })
store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %alloca, align 8
@@ -604,7 +607,7 @@ if.then.37: ; preds = %while.exit.4
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN)
store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.139, i64 4 })
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.141, i64 4 })
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %if.merge.38
@@ -614,64 +617,67 @@ if.merge.38: ; preds = %if.then.37, %while.
}
; Function Attrs: nounwind
declare ptr @CAllocator.alloc_bytes.1(ptr, ptr, i64) #0
declare ptr @mem_realloc.1(ptr, ptr, ptr, i64, i64, i64) #0
; Function Attrs: nounwind
declare void @CAllocator.dealloc_bytes.2(ptr, ptr, ptr) #0
declare ptr @CAllocator.alloc_bytes.2(ptr, ptr, i64) #0
; Function Attrs: nounwind
declare i64 @GPA.init.3(ptr) #0
declare void @CAllocator.dealloc_bytes.3(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare ptr @GPA.alloc_bytes.4(ptr, ptr, i64) #0
declare i64 @GPA.init.4(ptr) #0
; Function Attrs: nounwind
declare void @GPA.dealloc_bytes.5(ptr, ptr, ptr) #0
declare ptr @GPA.alloc_bytes.5(ptr, ptr, i64) #0
; Function Attrs: nounwind
declare void @Arena.add_chunk.6(ptr, ptr, i64) #0
declare void @GPA.dealloc_bytes.6(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare void @Arena.init.7(ptr sret({ ptr, i64, { ptr, ptr, ptr } }), ptr, ptr, i64) #0
declare void @Arena.add_chunk.7(ptr, ptr, i64) #0
; Function Attrs: nounwind
declare void @Arena.reset.8(ptr, ptr) #0
declare void @Arena.init.8(ptr sret({ ptr, i64, { ptr, ptr, ptr } }), ptr, ptr, i64) #0
; Function Attrs: nounwind
declare void @Arena.deinit.9(ptr, ptr) #0
declare void @Arena.reset.9(ptr, ptr) #0
; Function Attrs: nounwind
declare ptr @Arena.alloc_bytes.10(ptr, ptr, i64) #0
declare void @Arena.deinit.10(ptr, ptr) #0
; Function Attrs: nounwind
declare void @Arena.dealloc_bytes.11(ptr, ptr, ptr) #0
declare ptr @Arena.alloc_bytes.11(ptr, ptr, i64) #0
; Function Attrs: nounwind
declare ptr @BufAlloc.init.12(ptr, ptr, i64) #0
declare void @Arena.dealloc_bytes.12(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare void @BufAlloc.reset.13(ptr, ptr) #0
declare ptr @BufAlloc.init.13(ptr, ptr, i64) #0
; Function Attrs: nounwind
declare ptr @BufAlloc.alloc_bytes.14(ptr, ptr, i64) #0
declare void @BufAlloc.reset.14(ptr, ptr) #0
; Function Attrs: nounwind
declare void @BufAlloc.dealloc_bytes.15(ptr, ptr, ptr) #0
declare ptr @BufAlloc.alloc_bytes.15(ptr, ptr, i64) #0
; Function Attrs: nounwind
declare void @TrackingAllocator.init.16(ptr sret({ { ptr, ptr, ptr }, i64, i64, i64 }), ptr, ptr) #0
declare void @BufAlloc.dealloc_bytes.16(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare i64 @TrackingAllocator.leak_count.17(ptr, ptr) #0
declare void @TrackingAllocator.init.17(ptr sret({ { ptr, ptr, ptr }, i64, i64, i64 }), ptr, ptr) #0
; Function Attrs: nounwind
declare void @TrackingAllocator.report.18(ptr, ptr) #0
declare i64 @TrackingAllocator.leak_count.18(ptr, ptr) #0
; Function Attrs: nounwind
declare ptr @TrackingAllocator.alloc_bytes.19(ptr, ptr, i64) #0
declare void @TrackingAllocator.report.19(ptr, ptr) #0
; Function Attrs: nounwind
declare void @TrackingAllocator.dealloc_bytes.20(ptr, ptr, ptr) #0
declare ptr @TrackingAllocator.alloc_bytes.20(ptr, ptr, i64) #0
; Function Attrs: nounwind
declare void @TrackingAllocator.dealloc_bytes.21(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare ptr @escape(ptr, ptr) #0
@@ -847,163 +853,166 @@ declare i32 @listen(i32, i32) #0
declare i32 @accept(i32, ptr, ptr) #0
; Function Attrs: nounwind
declare i64 @read.21(i32, ptr, i64) #0
declare i64 @read.22(i32, ptr, i64) #0
; Function Attrs: nounwind
declare i32 @close.22(i32) #0
declare i32 @close.23(i32) #0
; Function Attrs: nounwind
declare i16 @htons(ptr, i64) #0
; Function Attrs: nounwind
declare ptr @CAllocator.alloc_bytes.23(ptr, ptr, i64) #0
declare ptr @mem_realloc.24(ptr, ptr, ptr, i64, i64, i64) #0
; Function Attrs: nounwind
declare void @CAllocator.dealloc_bytes.24(ptr, ptr, ptr) #0
declare ptr @CAllocator.alloc_bytes.25(ptr, ptr, i64) #0
; Function Attrs: nounwind
declare i64 @GPA.init.25(ptr) #0
declare void @CAllocator.dealloc_bytes.26(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare ptr @GPA.alloc_bytes.26(ptr, ptr, i64) #0
declare i64 @GPA.init.27(ptr) #0
; Function Attrs: nounwind
declare void @GPA.dealloc_bytes.27(ptr, ptr, ptr) #0
declare ptr @GPA.alloc_bytes.28(ptr, ptr, i64) #0
; Function Attrs: nounwind
declare void @Arena.add_chunk.28(ptr, ptr, i64) #0
declare void @GPA.dealloc_bytes.29(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare void @Arena.init.29(ptr sret({ ptr, i64, { ptr, ptr, ptr } }), ptr, ptr, i64) #0
declare void @Arena.add_chunk.30(ptr, ptr, i64) #0
; Function Attrs: nounwind
declare void @Arena.reset.30(ptr, ptr) #0
declare void @Arena.init.31(ptr sret({ ptr, i64, { ptr, ptr, ptr } }), ptr, ptr, i64) #0
; Function Attrs: nounwind
declare void @Arena.deinit.31(ptr, ptr) #0
declare void @Arena.reset.32(ptr, ptr) #0
; Function Attrs: nounwind
declare ptr @Arena.alloc_bytes.32(ptr, ptr, i64) #0
declare void @Arena.deinit.33(ptr, ptr) #0
; Function Attrs: nounwind
declare void @Arena.dealloc_bytes.33(ptr, ptr, ptr) #0
declare ptr @Arena.alloc_bytes.34(ptr, ptr, i64) #0
; Function Attrs: nounwind
declare ptr @BufAlloc.init.34(ptr, ptr, i64) #0
declare void @Arena.dealloc_bytes.35(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare void @BufAlloc.reset.35(ptr, ptr) #0
declare ptr @BufAlloc.init.36(ptr, ptr, i64) #0
; Function Attrs: nounwind
declare ptr @BufAlloc.alloc_bytes.36(ptr, ptr, i64) #0
declare void @BufAlloc.reset.37(ptr, ptr) #0
; Function Attrs: nounwind
declare void @BufAlloc.dealloc_bytes.37(ptr, ptr, ptr) #0
declare ptr @BufAlloc.alloc_bytes.38(ptr, ptr, i64) #0
; Function Attrs: nounwind
declare void @TrackingAllocator.init.38(ptr sret({ { ptr, ptr, ptr }, i64, i64, i64 }), ptr, ptr) #0
declare void @BufAlloc.dealloc_bytes.39(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare i64 @TrackingAllocator.leak_count.39(ptr, ptr) #0
declare void @TrackingAllocator.init.40(ptr sret({ { ptr, ptr, ptr }, i64, i64, i64 }), ptr, ptr) #0
; Function Attrs: nounwind
declare void @TrackingAllocator.report.40(ptr, ptr) #0
declare i64 @TrackingAllocator.leak_count.41(ptr, ptr) #0
; Function Attrs: nounwind
declare ptr @TrackingAllocator.alloc_bytes.41(ptr, ptr, i64) #0
declare void @TrackingAllocator.report.42(ptr, ptr) #0
; Function Attrs: nounwind
declare void @TrackingAllocator.dealloc_bytes.42(ptr, ptr, ptr) #0
declare ptr @TrackingAllocator.alloc_bytes.43(ptr, ptr, i64) #0
; Function Attrs: nounwind
declare i32 @open.43(ptr, i32, ...) #0
declare void @TrackingAllocator.dealloc_bytes.44(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare i32 @close.44(i32) #0
declare i32 @open.45(ptr, i32, ...) #0
; Function Attrs: nounwind
declare i64 @read.45(i32, ptr, i64) #0
declare i32 @close.46(i32) #0
; Function Attrs: nounwind
declare i64 @lseek.46(i32, i64, i32) #0
declare i64 @read.47(i32, ptr, i64) #0
; Function Attrs: nounwind
declare i32 @unlink.47(ptr) #0
declare i64 @lseek.48(i32, i64, i32) #0
; Function Attrs: nounwind
declare i32 @rmdir.48(ptr) #0
declare i32 @unlink.49(ptr) #0
; Function Attrs: nounwind
declare i32 @mkdir.49(ptr, i32) #0
declare i32 @rmdir.50(ptr) #0
; Function Attrs: nounwind
declare i32 @access.50(ptr, i32) #0
declare i32 @mkdir.51(ptr, i32) #0
; Function Attrs: nounwind
declare i32 @chmod.51(ptr, i32) #0
declare i32 @access.52(ptr, i32) #0
; Function Attrs: nounwind
declare i32 @rename.52(ptr, ptr) #0
declare i32 @chmod.53(ptr, i32) #0
; Function Attrs: nounwind
declare i1 @File.is_valid.53(ptr, ptr) #0
declare i32 @rename.54(ptr, ptr) #0
; Function Attrs: nounwind
declare i1 @File.close.54(ptr, ptr) #0
declare i1 @File.is_valid.55(ptr, ptr) #0
; Function Attrs: nounwind
declare i64 @File.read.55(ptr, ptr, ptr) #0
declare i1 @File.close.56(ptr, ptr) #0
; Function Attrs: nounwind
declare i64 @File.write.56(ptr, ptr, ptr) #0
declare i64 @File.read.57(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare i64 @File.seek.57(ptr, ptr, i64, i64) #0
declare i64 @File.write.58(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare i32 @mode_to_flags.58(ptr, i64) #0
declare i64 @File.seek.59(ptr, ptr, i64, i64) #0
; Function Attrs: nounwind
declare i64 @open_file.59(ptr, ptr, i64) #0
declare i32 @mode_to_flags.60(ptr, i64) #0
; Function Attrs: nounwind
declare void @read_file.60(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0
declare i64 @open_file.61(ptr, ptr, i64) #0
; Function Attrs: nounwind
declare i1 @write_file.61(ptr, ptr, ptr) #0
declare void @read_file.62(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0
; Function Attrs: nounwind
declare i1 @append_file.62(ptr, ptr, ptr) #0
declare i1 @write_file.63(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare i1 @exists.63(ptr, ptr) #0
declare i1 @append_file.64(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare i1 @delete_file.64(ptr, ptr) #0
declare i1 @exists.65(ptr, ptr) #0
; Function Attrs: nounwind
declare i1 @delete_dir.65(ptr, ptr) #0
declare i1 @delete_file.66(ptr, ptr) #0
; Function Attrs: nounwind
declare i1 @create_dir.66(ptr, ptr) #0
declare i1 @delete_dir.67(ptr, ptr) #0
; Function Attrs: nounwind
declare i1 @set_mode.67(ptr, ptr, i32) #0
declare i1 @create_dir.68(ptr, ptr) #0
; Function Attrs: nounwind
declare i1 @move.68(ptr, ptr, ptr) #0
declare i1 @set_mode.69(ptr, ptr, i32) #0
; Function Attrs: nounwind
declare i1 @create_dir_all.69(ptr, ptr) #0
declare i1 @move.70(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare i1 @copy_file.70(ptr, ptr, ptr) #0
declare i1 @create_dir_all.71(ptr, ptr) #0
; Function Attrs: nounwind
declare ptr @basename.71(ptr, ptr) #0
declare i1 @copy_file.72(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare ptr @dirname.72(ptr, ptr) #0
declare ptr @basename.73(ptr, ptr) #0
; Function Attrs: nounwind
declare ptr @dirname.74(ptr, ptr) #0
; Function Attrs: nounwind
declare void @Array.add(ptr, ptr, ptr, ptr) #0
@@ -1201,64 +1210,64 @@ declare ptr @BuildOptions.jni_main_java_source_at(i64, i64) #0
declare i64 @build_options() #0
; Function Attrs: nounwind
declare ptr @spaces.73(ptr, i32) #0
declare ptr @spaces.75(ptr, i32) #0
; Function Attrs: nounwind
declare i32 @sx_trace_len.74() #0
declare i32 @sx_trace_len.76() #0
; Function Attrs: nounwind
declare i32 @sx_trace_truncated.75() #0
declare i32 @sx_trace_truncated.77() #0
; Function Attrs: nounwind
declare i64 @sx_trace_frame_at.76(i32) #0
declare i64 @sx_trace_frame_at.78(i32) #0
; Function Attrs: nounwind
declare ptr @to_string.77(ptr) #0
declare ptr @to_string.79(ptr) #0
; Function Attrs: nounwind
declare void @print_current.78(ptr) #0
declare void @print_current.80(ptr) #0
; Function Attrs: nounwind
declare void @print_interpreter_frames.79(ptr) #0
declare void @print_interpreter_frames.81(ptr) #0
; Function Attrs: nounwind
declare ptr @popen.80(ptr, ptr) #0
declare ptr @popen.82(ptr, ptr) #0
; Function Attrs: nounwind
declare i32 @pclose.81(ptr) #0
declare i32 @pclose.83(ptr) #0
; Function Attrs: nounwind
declare i64 @fread.82(ptr, i64, i64, ptr) #0
declare i64 @fread.84(ptr, i64, i64, ptr) #0
; Function Attrs: nounwind
declare i32 @feof.83(ptr) #0
declare i32 @feof.85(ptr) #0
; Function Attrs: nounwind
declare ptr @getenv.84(ptr) #0
declare ptr @getenv.86(ptr) #0
; Function Attrs: nounwind
declare i64 @strlen.85(ptr) #0
declare i64 @strlen.87(ptr) #0
; Function Attrs: nounwind
declare i32 @system.86(ptr) #0
declare i32 @system.88(ptr) #0
; Function Attrs: nounwind
declare void @run.87(ptr sret({ { i32, { ptr, i64 } }, i1 }), ptr, ptr) #0
declare void @run.89(ptr sret({ { i32, { ptr, i64 } }, i1 }), ptr, ptr) #0
; Function Attrs: nounwind
declare void @env.88(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0
declare void @env.90(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0
; Function Attrs: nounwind
declare void @find_executable.89(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0
declare void @find_executable.91(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0
; Function Attrs: nounwind
declare void @_exit.90(i32) #0
declare void @_exit.92(i32) #0
; Function Attrs: nounwind
declare void @exit.91(ptr, i8, ptr) #0
declare void @exit.93(ptr, i8, ptr) #0
; Function Attrs: nounwind
declare void @assert.92(ptr, i1, ptr, ptr) #0
declare void @assert.94(ptr, i1, ptr, ptr) #0
; Function Attrs: nounwind
declare ptr @_NSGetArgv() #0
@@ -1288,97 +1297,97 @@ declare ptr @Parsed.value_of(ptr, ptr, ptr) #0
declare i1 @is_long_flag(ptr, ptr) #0
; Function Attrs: nounwind
declare void @parse.93(ptr sret({ { { ptr, i64 }, { ptr, i64 }, i64, i1, { ptr, i64 }, { ptr, i64 }, [16 x { i1, { ptr, i64 } }] }, i32 }), ptr, ptr, ptr, ptr) #0
declare void @parse.95(ptr sret({ { { ptr, i64 }, { ptr, i64 }, i64, i1, { ptr, i64 }, { ptr, i64 }, [16 x { i1, { ptr, i64 } }] }, i32 }), ptr, ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare i32 @open.94(ptr, i32, ...) #0
declare i32 @open.96(ptr, i32, ...) #0
; Function Attrs: nounwind
declare i32 @close.95(i32) #0
declare i32 @close.97(i32) #0
; Function Attrs: nounwind
declare i64 @read.96(i32, ptr, i64) #0
declare i64 @read.98(i32, ptr, i64) #0
; Function Attrs: nounwind
declare i64 @lseek.97(i32, i64, i32) #0
declare i64 @lseek.99(i32, i64, i32) #0
; Function Attrs: nounwind
declare i32 @unlink.98(ptr) #0
declare i32 @unlink.100(ptr) #0
; Function Attrs: nounwind
declare i32 @rmdir.99(ptr) #0
declare i32 @rmdir.101(ptr) #0
; Function Attrs: nounwind
declare i32 @mkdir.100(ptr, i32) #0
declare i32 @mkdir.102(ptr, i32) #0
; Function Attrs: nounwind
declare i32 @access.101(ptr, i32) #0
declare i32 @access.103(ptr, i32) #0
; Function Attrs: nounwind
declare i32 @chmod.102(ptr, i32) #0
declare i32 @chmod.104(ptr, i32) #0
; Function Attrs: nounwind
declare i32 @rename.103(ptr, ptr) #0
declare i32 @rename.105(ptr, ptr) #0
; Function Attrs: nounwind
declare i1 @File.is_valid.104(ptr, ptr) #0
declare i1 @File.is_valid.106(ptr, ptr) #0
; Function Attrs: nounwind
declare i1 @File.close.105(ptr, ptr) #0
declare i1 @File.close.107(ptr, ptr) #0
; Function Attrs: nounwind
declare i64 @File.read.106(ptr, ptr, ptr) #0
declare i64 @File.read.108(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare i64 @File.write.107(ptr, ptr, ptr) #0
declare i64 @File.write.109(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare i64 @File.seek.108(ptr, ptr, i64, i64) #0
declare i64 @File.seek.110(ptr, ptr, i64, i64) #0
; Function Attrs: nounwind
declare i32 @mode_to_flags.109(ptr, i64) #0
declare i32 @mode_to_flags.111(ptr, i64) #0
; Function Attrs: nounwind
declare i64 @open_file.110(ptr, ptr, i64) #0
declare i64 @open_file.112(ptr, ptr, i64) #0
; Function Attrs: nounwind
declare void @read_file.111(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0
declare void @read_file.113(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0
; Function Attrs: nounwind
declare i1 @write_file.112(ptr, ptr, ptr) #0
declare i1 @write_file.114(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare i1 @append_file.113(ptr, ptr, ptr) #0
declare i1 @append_file.115(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare i1 @exists.114(ptr, ptr) #0
declare i1 @exists.116(ptr, ptr) #0
; Function Attrs: nounwind
declare i1 @delete_file.115(ptr, ptr) #0
declare i1 @delete_file.117(ptr, ptr) #0
; Function Attrs: nounwind
declare i1 @delete_dir.116(ptr, ptr) #0
declare i1 @delete_dir.118(ptr, ptr) #0
; Function Attrs: nounwind
declare i1 @create_dir.117(ptr, ptr) #0
declare i1 @create_dir.119(ptr, ptr) #0
; Function Attrs: nounwind
declare i1 @set_mode.118(ptr, ptr, i32) #0
declare i1 @set_mode.120(ptr, ptr, i32) #0
; Function Attrs: nounwind
declare i1 @move.119(ptr, ptr, ptr) #0
declare i1 @move.121(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare i1 @create_dir_all.120(ptr, ptr) #0
declare i1 @create_dir_all.122(ptr, ptr) #0
; Function Attrs: nounwind
declare i1 @copy_file.121(ptr, ptr, ptr) #0
declare i1 @copy_file.123(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare ptr @basename.122(ptr, ptr) #0
declare ptr @basename.124(ptr, ptr) #0
; Function Attrs: nounwind
declare ptr @dirname.123(ptr, ptr) #0
declare ptr @dirname.125(ptr, ptr) #0
; Function Attrs: nounwind
declare i64 @rotr(ptr, i64, i64) #0
@@ -1417,7 +1426,7 @@ declare [64 x i8] @sha256_hex(ptr, ptr) #0
declare void @sha256_file(ptr sret({ [64 x i8], i1 }), ptr, ptr) #0
; Function Attrs: nounwind
declare void @assert.124(ptr, i1) #0
declare void @assert.126(ptr, i1) #0
; Function Attrs: nounwind
define internal ptr @get_window(ptr %0, ptr %1, ptr %2) #0 {
@@ -1445,7 +1454,7 @@ jni.miss: ; preds = %entry
store ptr %jni.global.cls, ptr @SX_JNI_CLS_getWindow____Landroid_view_Window_, align 8
%5 = getelementptr inbounds ptr, ptr %jni.ifs, i32 33
%jni.GetMethodID = load ptr, ptr %5, align 8
%jni.fresh.mid = call ptr %jni.GetMethodID(ptr %load, ptr %jni.global.cls, ptr @str.140, ptr @str.141)
%jni.fresh.mid = call ptr %jni.GetMethodID(ptr %load, ptr %jni.global.cls, ptr @str.142, ptr @str.143)
store ptr %jni.fresh.mid, ptr @SX_JNI_MID_getWindow____Landroid_view_Window_, align 8
br label %jni.cont
@@ -1499,14 +1508,14 @@ declare void @sx_jni_env_tl_set(ptr) #0
define internal void @print__ct_sbdbafa1a5fe828c0__pack(ptr %0) #0 {
entry:
%alloca = alloca { ptr, i64 }, align 8
store { ptr, i64 } { ptr @str.142, i64 3 }, ptr %alloca, align 8
store { ptr, i64 } { ptr @str.144, i64 3 }, ptr %alloca, align 8
%allocaN = alloca { ptr, i64 }, align 8
%gep = getelementptr inbounds { ptr, i64 }, ptr %allocaN, i32 0, i32 0
store ptr null, ptr %gep, align 8
%gepN = getelementptr inbounds { ptr, i64 }, ptr %allocaN, i32 0, i32 1
store i64 0, ptr %gepN, align 8
%allocaN = alloca { ptr, i64 }, align 8
store { ptr, i64 } { ptr @str.143, i64 0 }, ptr %allocaN, align 8
store { ptr, i64 } { ptr @str.145, i64 0 }, ptr %allocaN, align 8
%load = load { ptr, i64 }, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %alloca, align 8
%call = call { ptr, i64 } @substr(ptr %0, { ptr, i64 } %loadN, i64 0, i64 3)
@@ -1522,6 +1531,6 @@ entry:
; Function Attrs: nounwind
define internal { ptr, i64 } @__insert_0(ptr %0) #0 {
entry:
%call = call { ptr, i64 } @build_format(ptr %0, { ptr, i64 } { ptr @str.144, i64 3 })
%call = call { ptr, i64 } @build_format(ptr %0, { ptr, i64 } { ptr @str.146, i64 3 })
ret { ptr, i64 } %call
}

View File

@@ -2,28 +2,28 @@
@g_should_call = internal global i1 false
@__sx_default_context = internal constant { { ptr, ptr, ptr }, ptr } { { ptr, ptr, ptr } { ptr null, ptr @__thunk_CAllocator_Allocator_alloc_bytes, ptr @__thunk_CAllocator_Allocator_dealloc_bytes }, ptr null }
@str = private unnamed_addr constant [2 x i8] c"0\00", align 1
@str.125 = private unnamed_addr constant [15 x i8] c"result := \22\22; \00", align 1
@str.126 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1
@str.127 = private unnamed_addr constant [3 x i8] c", \00", align 1
@str.128 = private unnamed_addr constant [5 x i8] c")); \00", align 1
@str.129 = private unnamed_addr constant [44 x i8] c"result = concat(result, any_to_string(args[\00", align 1
@str.130 = private unnamed_addr constant [6 x i8] c"])); \00", align 1
@str.131 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1
@str.132 = private unnamed_addr constant [3 x i8] c", \00", align 1
@str.133 = private unnamed_addr constant [5 x i8] c")); \00", align 1
@str.134 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1
@str.135 = private unnamed_addr constant [3 x i8] c", \00", align 1
@str.136 = private unnamed_addr constant [5 x i8] c")); \00", align 1
@str.137 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1
@str.138 = private unnamed_addr constant [3 x i8] c", \00", align 1
@str.139 = private unnamed_addr constant [5 x i8] c")); \00", align 1
@str.140 = private unnamed_addr constant [4 x i8] c"max\00", align 1
@str.141 = private unnamed_addr constant [6 x i8] c"(II)I\00", align 1
@str.127 = private unnamed_addr constant [15 x i8] c"result := \22\22; \00", align 1
@str.128 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1
@str.129 = private unnamed_addr constant [3 x i8] c", \00", align 1
@str.130 = private unnamed_addr constant [5 x i8] c")); \00", align 1
@str.131 = private unnamed_addr constant [44 x i8] c"result = concat(result, any_to_string(args[\00", align 1
@str.132 = private unnamed_addr constant [6 x i8] c"])); \00", align 1
@str.133 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1
@str.134 = private unnamed_addr constant [3 x i8] c", \00", align 1
@str.135 = private unnamed_addr constant [5 x i8] c")); \00", align 1
@str.136 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1
@str.137 = private unnamed_addr constant [3 x i8] c", \00", align 1
@str.138 = private unnamed_addr constant [5 x i8] c")); \00", align 1
@str.139 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1
@str.140 = private unnamed_addr constant [3 x i8] c", \00", align 1
@str.141 = private unnamed_addr constant [5 x i8] c")); \00", align 1
@str.142 = private unnamed_addr constant [4 x i8] c"max\00", align 1
@str.143 = private unnamed_addr constant [6 x i8] c"(II)I\00", align 1
@SX_JNI_CLS_max___II_I = internal global ptr null
@SX_JNI_MID_max___II_I = internal global ptr null
@str.142 = private unnamed_addr constant [4 x i8] c"ok\0A\00", align 1
@str.143 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1
@str.144 = private unnamed_addr constant [4 x i8] c"ok\0A\00", align 1
@str.145 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1
@str.146 = private unnamed_addr constant [4 x i8] c"ok\0A\00", align 1
; Function Attrs: nounwind
declare void @out(ptr) #0
@@ -36,6 +36,9 @@ declare ptr @memcpy(ptr, ptr, i64)
declare ptr @memset(ptr, i32, i64)
; Function Attrs: nounwind
declare ptr @mem_realloc(ptr, ptr, ptr, i64, i64, i64) #0
; Function Attrs: nounwind
define internal ptr @CAllocator.alloc_bytes(ptr %0, ptr %1, i64 %2) #0 {
entry:
@@ -328,7 +331,7 @@ entry:
%alloca = alloca { ptr, i64 }, align 8
store { ptr, i64 } %1, ptr %alloca, align 8
%allocaN = alloca { ptr, i64 }, align 8
store { ptr, i64 } { ptr @str.125, i64 14 }, ptr %allocaN, align 8
store { ptr, i64 } { ptr @str.127, i64 14 }, ptr %allocaN, align 8
%allocaN = alloca i64, align 8
store i64 0, ptr %allocaN, align 8
%allocaN = alloca i64, align 8
@@ -424,7 +427,7 @@ if.merge.13: ; preds = %if.merge.27, %if.me
if.then.14: ; preds = %if.then.11
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
%call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.126, i64 36 })
%call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.128, i64 36 })
store { ptr, i64 } %call, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
%loadN = load i64, ptr %allocaN, align 8
@@ -432,7 +435,7 @@ if.then.14: ; preds = %if.then.11
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN)
store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.127, i64 2 })
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.129, i64 2 })
store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
%loadN = load i64, ptr %allocaN, align 8
@@ -442,13 +445,13 @@ if.then.14: ; preds = %if.then.11
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN)
store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.128, i64 4 })
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.130, i64 4 })
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %if.merge.15
if.merge.15: ; preds = %if.then.14, %if.then.11
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.129, i64 43 })
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.131, i64 43 })
store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
%loadN = load i64, ptr %allocaN, align 8
@@ -456,7 +459,7 @@ if.merge.15: ; preds = %if.then.14, %if.the
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN)
store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.130, i64 5 })
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.132, i64 5 })
store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load i64, ptr %allocaN, align 8
%addN = add i64 %loadN, 1
@@ -470,7 +473,7 @@ if.merge.15: ; preds = %if.then.14, %if.the
if.then.25: ; preds = %if.else.12
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.131, i64 36 })
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.133, i64 36 })
store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
%loadN = load i64, ptr %allocaN, align 8
@@ -478,7 +481,7 @@ if.then.25: ; preds = %if.else.12
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN)
store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.132, i64 2 })
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.134, i64 2 })
store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
%loadN = load i64, ptr %allocaN, align 8
@@ -489,7 +492,7 @@ if.then.25: ; preds = %if.else.12
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN)
store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.133, i64 4 })
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.135, i64 4 })
store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load i64, ptr %allocaN, align 8
%addN = add i64 %loadN, 2
@@ -546,7 +549,7 @@ if.merge.33: ; preds = %if.merge.36, %if.el
if.then.34: ; preds = %if.then.31
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.134, i64 36 })
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.136, i64 36 })
store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
%loadN = load i64, ptr %allocaN, align 8
@@ -554,7 +557,7 @@ if.then.34: ; preds = %if.then.31
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN)
store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.135, i64 2 })
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.137, i64 2 })
store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
%loadN = load i64, ptr %allocaN, align 8
@@ -565,7 +568,7 @@ if.then.34: ; preds = %if.then.31
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN)
store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.136, i64 4 })
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.138, i64 4 })
store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load i64, ptr %allocaN, align 8
%addN = add i64 %loadN, 2
@@ -585,7 +588,7 @@ if.merge.36: ; preds = %if.else.35, %if.the
if.then.37: ; preds = %while.exit.4
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.137, i64 36 })
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.139, i64 36 })
store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
%loadN = load i64, ptr %allocaN, align 8
@@ -593,7 +596,7 @@ if.then.37: ; preds = %while.exit.4
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN)
store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.138, i64 2 })
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.140, i64 2 })
store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %alloca, align 8
@@ -604,7 +607,7 @@ if.then.37: ; preds = %while.exit.4
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN)
store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.139, i64 4 })
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.141, i64 4 })
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %if.merge.38
@@ -614,64 +617,67 @@ if.merge.38: ; preds = %if.then.37, %while.
}
; Function Attrs: nounwind
declare ptr @CAllocator.alloc_bytes.1(ptr, ptr, i64) #0
declare ptr @mem_realloc.1(ptr, ptr, ptr, i64, i64, i64) #0
; Function Attrs: nounwind
declare void @CAllocator.dealloc_bytes.2(ptr, ptr, ptr) #0
declare ptr @CAllocator.alloc_bytes.2(ptr, ptr, i64) #0
; Function Attrs: nounwind
declare i64 @GPA.init.3(ptr) #0
declare void @CAllocator.dealloc_bytes.3(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare ptr @GPA.alloc_bytes.4(ptr, ptr, i64) #0
declare i64 @GPA.init.4(ptr) #0
; Function Attrs: nounwind
declare void @GPA.dealloc_bytes.5(ptr, ptr, ptr) #0
declare ptr @GPA.alloc_bytes.5(ptr, ptr, i64) #0
; Function Attrs: nounwind
declare void @Arena.add_chunk.6(ptr, ptr, i64) #0
declare void @GPA.dealloc_bytes.6(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare void @Arena.init.7(ptr sret({ ptr, i64, { ptr, ptr, ptr } }), ptr, ptr, i64) #0
declare void @Arena.add_chunk.7(ptr, ptr, i64) #0
; Function Attrs: nounwind
declare void @Arena.reset.8(ptr, ptr) #0
declare void @Arena.init.8(ptr sret({ ptr, i64, { ptr, ptr, ptr } }), ptr, ptr, i64) #0
; Function Attrs: nounwind
declare void @Arena.deinit.9(ptr, ptr) #0
declare void @Arena.reset.9(ptr, ptr) #0
; Function Attrs: nounwind
declare ptr @Arena.alloc_bytes.10(ptr, ptr, i64) #0
declare void @Arena.deinit.10(ptr, ptr) #0
; Function Attrs: nounwind
declare void @Arena.dealloc_bytes.11(ptr, ptr, ptr) #0
declare ptr @Arena.alloc_bytes.11(ptr, ptr, i64) #0
; Function Attrs: nounwind
declare ptr @BufAlloc.init.12(ptr, ptr, i64) #0
declare void @Arena.dealloc_bytes.12(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare void @BufAlloc.reset.13(ptr, ptr) #0
declare ptr @BufAlloc.init.13(ptr, ptr, i64) #0
; Function Attrs: nounwind
declare ptr @BufAlloc.alloc_bytes.14(ptr, ptr, i64) #0
declare void @BufAlloc.reset.14(ptr, ptr) #0
; Function Attrs: nounwind
declare void @BufAlloc.dealloc_bytes.15(ptr, ptr, ptr) #0
declare ptr @BufAlloc.alloc_bytes.15(ptr, ptr, i64) #0
; Function Attrs: nounwind
declare void @TrackingAllocator.init.16(ptr sret({ { ptr, ptr, ptr }, i64, i64, i64 }), ptr, ptr) #0
declare void @BufAlloc.dealloc_bytes.16(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare i64 @TrackingAllocator.leak_count.17(ptr, ptr) #0
declare void @TrackingAllocator.init.17(ptr sret({ { ptr, ptr, ptr }, i64, i64, i64 }), ptr, ptr) #0
; Function Attrs: nounwind
declare void @TrackingAllocator.report.18(ptr, ptr) #0
declare i64 @TrackingAllocator.leak_count.18(ptr, ptr) #0
; Function Attrs: nounwind
declare ptr @TrackingAllocator.alloc_bytes.19(ptr, ptr, i64) #0
declare void @TrackingAllocator.report.19(ptr, ptr) #0
; Function Attrs: nounwind
declare void @TrackingAllocator.dealloc_bytes.20(ptr, ptr, ptr) #0
declare ptr @TrackingAllocator.alloc_bytes.20(ptr, ptr, i64) #0
; Function Attrs: nounwind
declare void @TrackingAllocator.dealloc_bytes.21(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare ptr @escape(ptr, ptr) #0
@@ -847,163 +853,166 @@ declare i32 @listen(i32, i32) #0
declare i32 @accept(i32, ptr, ptr) #0
; Function Attrs: nounwind
declare i64 @read.21(i32, ptr, i64) #0
declare i64 @read.22(i32, ptr, i64) #0
; Function Attrs: nounwind
declare i32 @close.22(i32) #0
declare i32 @close.23(i32) #0
; Function Attrs: nounwind
declare i16 @htons(ptr, i64) #0
; Function Attrs: nounwind
declare ptr @CAllocator.alloc_bytes.23(ptr, ptr, i64) #0
declare ptr @mem_realloc.24(ptr, ptr, ptr, i64, i64, i64) #0
; Function Attrs: nounwind
declare void @CAllocator.dealloc_bytes.24(ptr, ptr, ptr) #0
declare ptr @CAllocator.alloc_bytes.25(ptr, ptr, i64) #0
; Function Attrs: nounwind
declare i64 @GPA.init.25(ptr) #0
declare void @CAllocator.dealloc_bytes.26(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare ptr @GPA.alloc_bytes.26(ptr, ptr, i64) #0
declare i64 @GPA.init.27(ptr) #0
; Function Attrs: nounwind
declare void @GPA.dealloc_bytes.27(ptr, ptr, ptr) #0
declare ptr @GPA.alloc_bytes.28(ptr, ptr, i64) #0
; Function Attrs: nounwind
declare void @Arena.add_chunk.28(ptr, ptr, i64) #0
declare void @GPA.dealloc_bytes.29(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare void @Arena.init.29(ptr sret({ ptr, i64, { ptr, ptr, ptr } }), ptr, ptr, i64) #0
declare void @Arena.add_chunk.30(ptr, ptr, i64) #0
; Function Attrs: nounwind
declare void @Arena.reset.30(ptr, ptr) #0
declare void @Arena.init.31(ptr sret({ ptr, i64, { ptr, ptr, ptr } }), ptr, ptr, i64) #0
; Function Attrs: nounwind
declare void @Arena.deinit.31(ptr, ptr) #0
declare void @Arena.reset.32(ptr, ptr) #0
; Function Attrs: nounwind
declare ptr @Arena.alloc_bytes.32(ptr, ptr, i64) #0
declare void @Arena.deinit.33(ptr, ptr) #0
; Function Attrs: nounwind
declare void @Arena.dealloc_bytes.33(ptr, ptr, ptr) #0
declare ptr @Arena.alloc_bytes.34(ptr, ptr, i64) #0
; Function Attrs: nounwind
declare ptr @BufAlloc.init.34(ptr, ptr, i64) #0
declare void @Arena.dealloc_bytes.35(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare void @BufAlloc.reset.35(ptr, ptr) #0
declare ptr @BufAlloc.init.36(ptr, ptr, i64) #0
; Function Attrs: nounwind
declare ptr @BufAlloc.alloc_bytes.36(ptr, ptr, i64) #0
declare void @BufAlloc.reset.37(ptr, ptr) #0
; Function Attrs: nounwind
declare void @BufAlloc.dealloc_bytes.37(ptr, ptr, ptr) #0
declare ptr @BufAlloc.alloc_bytes.38(ptr, ptr, i64) #0
; Function Attrs: nounwind
declare void @TrackingAllocator.init.38(ptr sret({ { ptr, ptr, ptr }, i64, i64, i64 }), ptr, ptr) #0
declare void @BufAlloc.dealloc_bytes.39(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare i64 @TrackingAllocator.leak_count.39(ptr, ptr) #0
declare void @TrackingAllocator.init.40(ptr sret({ { ptr, ptr, ptr }, i64, i64, i64 }), ptr, ptr) #0
; Function Attrs: nounwind
declare void @TrackingAllocator.report.40(ptr, ptr) #0
declare i64 @TrackingAllocator.leak_count.41(ptr, ptr) #0
; Function Attrs: nounwind
declare ptr @TrackingAllocator.alloc_bytes.41(ptr, ptr, i64) #0
declare void @TrackingAllocator.report.42(ptr, ptr) #0
; Function Attrs: nounwind
declare void @TrackingAllocator.dealloc_bytes.42(ptr, ptr, ptr) #0
declare ptr @TrackingAllocator.alloc_bytes.43(ptr, ptr, i64) #0
; Function Attrs: nounwind
declare i32 @open.43(ptr, i32, ...) #0
declare void @TrackingAllocator.dealloc_bytes.44(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare i32 @close.44(i32) #0
declare i32 @open.45(ptr, i32, ...) #0
; Function Attrs: nounwind
declare i64 @read.45(i32, ptr, i64) #0
declare i32 @close.46(i32) #0
; Function Attrs: nounwind
declare i64 @lseek.46(i32, i64, i32) #0
declare i64 @read.47(i32, ptr, i64) #0
; Function Attrs: nounwind
declare i32 @unlink.47(ptr) #0
declare i64 @lseek.48(i32, i64, i32) #0
; Function Attrs: nounwind
declare i32 @rmdir.48(ptr) #0
declare i32 @unlink.49(ptr) #0
; Function Attrs: nounwind
declare i32 @mkdir.49(ptr, i32) #0
declare i32 @rmdir.50(ptr) #0
; Function Attrs: nounwind
declare i32 @access.50(ptr, i32) #0
declare i32 @mkdir.51(ptr, i32) #0
; Function Attrs: nounwind
declare i32 @chmod.51(ptr, i32) #0
declare i32 @access.52(ptr, i32) #0
; Function Attrs: nounwind
declare i32 @rename.52(ptr, ptr) #0
declare i32 @chmod.53(ptr, i32) #0
; Function Attrs: nounwind
declare i1 @File.is_valid.53(ptr, ptr) #0
declare i32 @rename.54(ptr, ptr) #0
; Function Attrs: nounwind
declare i1 @File.close.54(ptr, ptr) #0
declare i1 @File.is_valid.55(ptr, ptr) #0
; Function Attrs: nounwind
declare i64 @File.read.55(ptr, ptr, ptr) #0
declare i1 @File.close.56(ptr, ptr) #0
; Function Attrs: nounwind
declare i64 @File.write.56(ptr, ptr, ptr) #0
declare i64 @File.read.57(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare i64 @File.seek.57(ptr, ptr, i64, i64) #0
declare i64 @File.write.58(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare i32 @mode_to_flags.58(ptr, i64) #0
declare i64 @File.seek.59(ptr, ptr, i64, i64) #0
; Function Attrs: nounwind
declare i64 @open_file.59(ptr, ptr, i64) #0
declare i32 @mode_to_flags.60(ptr, i64) #0
; Function Attrs: nounwind
declare void @read_file.60(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0
declare i64 @open_file.61(ptr, ptr, i64) #0
; Function Attrs: nounwind
declare i1 @write_file.61(ptr, ptr, ptr) #0
declare void @read_file.62(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0
; Function Attrs: nounwind
declare i1 @append_file.62(ptr, ptr, ptr) #0
declare i1 @write_file.63(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare i1 @exists.63(ptr, ptr) #0
declare i1 @append_file.64(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare i1 @delete_file.64(ptr, ptr) #0
declare i1 @exists.65(ptr, ptr) #0
; Function Attrs: nounwind
declare i1 @delete_dir.65(ptr, ptr) #0
declare i1 @delete_file.66(ptr, ptr) #0
; Function Attrs: nounwind
declare i1 @create_dir.66(ptr, ptr) #0
declare i1 @delete_dir.67(ptr, ptr) #0
; Function Attrs: nounwind
declare i1 @set_mode.67(ptr, ptr, i32) #0
declare i1 @create_dir.68(ptr, ptr) #0
; Function Attrs: nounwind
declare i1 @move.68(ptr, ptr, ptr) #0
declare i1 @set_mode.69(ptr, ptr, i32) #0
; Function Attrs: nounwind
declare i1 @create_dir_all.69(ptr, ptr) #0
declare i1 @move.70(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare i1 @copy_file.70(ptr, ptr, ptr) #0
declare i1 @create_dir_all.71(ptr, ptr) #0
; Function Attrs: nounwind
declare ptr @basename.71(ptr, ptr) #0
declare i1 @copy_file.72(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare ptr @dirname.72(ptr, ptr) #0
declare ptr @basename.73(ptr, ptr) #0
; Function Attrs: nounwind
declare ptr @dirname.74(ptr, ptr) #0
; Function Attrs: nounwind
declare void @Array.add(ptr, ptr, ptr, ptr) #0
@@ -1201,64 +1210,64 @@ declare ptr @BuildOptions.jni_main_java_source_at(i64, i64) #0
declare i64 @build_options() #0
; Function Attrs: nounwind
declare ptr @spaces.73(ptr, i32) #0
declare ptr @spaces.75(ptr, i32) #0
; Function Attrs: nounwind
declare i32 @sx_trace_len.74() #0
declare i32 @sx_trace_len.76() #0
; Function Attrs: nounwind
declare i32 @sx_trace_truncated.75() #0
declare i32 @sx_trace_truncated.77() #0
; Function Attrs: nounwind
declare i64 @sx_trace_frame_at.76(i32) #0
declare i64 @sx_trace_frame_at.78(i32) #0
; Function Attrs: nounwind
declare ptr @to_string.77(ptr) #0
declare ptr @to_string.79(ptr) #0
; Function Attrs: nounwind
declare void @print_current.78(ptr) #0
declare void @print_current.80(ptr) #0
; Function Attrs: nounwind
declare void @print_interpreter_frames.79(ptr) #0
declare void @print_interpreter_frames.81(ptr) #0
; Function Attrs: nounwind
declare ptr @popen.80(ptr, ptr) #0
declare ptr @popen.82(ptr, ptr) #0
; Function Attrs: nounwind
declare i32 @pclose.81(ptr) #0
declare i32 @pclose.83(ptr) #0
; Function Attrs: nounwind
declare i64 @fread.82(ptr, i64, i64, ptr) #0
declare i64 @fread.84(ptr, i64, i64, ptr) #0
; Function Attrs: nounwind
declare i32 @feof.83(ptr) #0
declare i32 @feof.85(ptr) #0
; Function Attrs: nounwind
declare ptr @getenv.84(ptr) #0
declare ptr @getenv.86(ptr) #0
; Function Attrs: nounwind
declare i64 @strlen.85(ptr) #0
declare i64 @strlen.87(ptr) #0
; Function Attrs: nounwind
declare i32 @system.86(ptr) #0
declare i32 @system.88(ptr) #0
; Function Attrs: nounwind
declare void @run.87(ptr sret({ { i32, { ptr, i64 } }, i1 }), ptr, ptr) #0
declare void @run.89(ptr sret({ { i32, { ptr, i64 } }, i1 }), ptr, ptr) #0
; Function Attrs: nounwind
declare void @env.88(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0
declare void @env.90(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0
; Function Attrs: nounwind
declare void @find_executable.89(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0
declare void @find_executable.91(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0
; Function Attrs: nounwind
declare void @_exit.90(i32) #0
declare void @_exit.92(i32) #0
; Function Attrs: nounwind
declare void @exit.91(ptr, i8, ptr) #0
declare void @exit.93(ptr, i8, ptr) #0
; Function Attrs: nounwind
declare void @assert.92(ptr, i1, ptr, ptr) #0
declare void @assert.94(ptr, i1, ptr, ptr) #0
; Function Attrs: nounwind
declare ptr @_NSGetArgv() #0
@@ -1288,97 +1297,97 @@ declare ptr @Parsed.value_of(ptr, ptr, ptr) #0
declare i1 @is_long_flag(ptr, ptr) #0
; Function Attrs: nounwind
declare void @parse.93(ptr sret({ { { ptr, i64 }, { ptr, i64 }, i64, i1, { ptr, i64 }, { ptr, i64 }, [16 x { i1, { ptr, i64 } }] }, i32 }), ptr, ptr, ptr, ptr) #0
declare void @parse.95(ptr sret({ { { ptr, i64 }, { ptr, i64 }, i64, i1, { ptr, i64 }, { ptr, i64 }, [16 x { i1, { ptr, i64 } }] }, i32 }), ptr, ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare i32 @open.94(ptr, i32, ...) #0
declare i32 @open.96(ptr, i32, ...) #0
; Function Attrs: nounwind
declare i32 @close.95(i32) #0
declare i32 @close.97(i32) #0
; Function Attrs: nounwind
declare i64 @read.96(i32, ptr, i64) #0
declare i64 @read.98(i32, ptr, i64) #0
; Function Attrs: nounwind
declare i64 @lseek.97(i32, i64, i32) #0
declare i64 @lseek.99(i32, i64, i32) #0
; Function Attrs: nounwind
declare i32 @unlink.98(ptr) #0
declare i32 @unlink.100(ptr) #0
; Function Attrs: nounwind
declare i32 @rmdir.99(ptr) #0
declare i32 @rmdir.101(ptr) #0
; Function Attrs: nounwind
declare i32 @mkdir.100(ptr, i32) #0
declare i32 @mkdir.102(ptr, i32) #0
; Function Attrs: nounwind
declare i32 @access.101(ptr, i32) #0
declare i32 @access.103(ptr, i32) #0
; Function Attrs: nounwind
declare i32 @chmod.102(ptr, i32) #0
declare i32 @chmod.104(ptr, i32) #0
; Function Attrs: nounwind
declare i32 @rename.103(ptr, ptr) #0
declare i32 @rename.105(ptr, ptr) #0
; Function Attrs: nounwind
declare i1 @File.is_valid.104(ptr, ptr) #0
declare i1 @File.is_valid.106(ptr, ptr) #0
; Function Attrs: nounwind
declare i1 @File.close.105(ptr, ptr) #0
declare i1 @File.close.107(ptr, ptr) #0
; Function Attrs: nounwind
declare i64 @File.read.106(ptr, ptr, ptr) #0
declare i64 @File.read.108(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare i64 @File.write.107(ptr, ptr, ptr) #0
declare i64 @File.write.109(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare i64 @File.seek.108(ptr, ptr, i64, i64) #0
declare i64 @File.seek.110(ptr, ptr, i64, i64) #0
; Function Attrs: nounwind
declare i32 @mode_to_flags.109(ptr, i64) #0
declare i32 @mode_to_flags.111(ptr, i64) #0
; Function Attrs: nounwind
declare i64 @open_file.110(ptr, ptr, i64) #0
declare i64 @open_file.112(ptr, ptr, i64) #0
; Function Attrs: nounwind
declare void @read_file.111(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0
declare void @read_file.113(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0
; Function Attrs: nounwind
declare i1 @write_file.112(ptr, ptr, ptr) #0
declare i1 @write_file.114(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare i1 @append_file.113(ptr, ptr, ptr) #0
declare i1 @append_file.115(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare i1 @exists.114(ptr, ptr) #0
declare i1 @exists.116(ptr, ptr) #0
; Function Attrs: nounwind
declare i1 @delete_file.115(ptr, ptr) #0
declare i1 @delete_file.117(ptr, ptr) #0
; Function Attrs: nounwind
declare i1 @delete_dir.116(ptr, ptr) #0
declare i1 @delete_dir.118(ptr, ptr) #0
; Function Attrs: nounwind
declare i1 @create_dir.117(ptr, ptr) #0
declare i1 @create_dir.119(ptr, ptr) #0
; Function Attrs: nounwind
declare i1 @set_mode.118(ptr, ptr, i32) #0
declare i1 @set_mode.120(ptr, ptr, i32) #0
; Function Attrs: nounwind
declare i1 @move.119(ptr, ptr, ptr) #0
declare i1 @move.121(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare i1 @create_dir_all.120(ptr, ptr) #0
declare i1 @create_dir_all.122(ptr, ptr) #0
; Function Attrs: nounwind
declare i1 @copy_file.121(ptr, ptr, ptr) #0
declare i1 @copy_file.123(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare ptr @basename.122(ptr, ptr) #0
declare ptr @basename.124(ptr, ptr) #0
; Function Attrs: nounwind
declare ptr @dirname.123(ptr, ptr) #0
declare ptr @dirname.125(ptr, ptr) #0
; Function Attrs: nounwind
declare i64 @rotr(ptr, i64, i64) #0
@@ -1417,7 +1426,7 @@ declare [64 x i8] @sha256_hex(ptr, ptr) #0
declare void @sha256_file(ptr sret({ [64 x i8], i1 }), ptr, ptr) #0
; Function Attrs: nounwind
declare void @assert.124(ptr, i1) #0
declare void @assert.126(ptr, i1) #0
; Function Attrs: nounwind
define internal i32 @call_static_max(ptr %0, ptr %1, ptr %2) #0 {
@@ -1442,7 +1451,7 @@ jni.miss: ; preds = %entry
store ptr %jni.global.cls, ptr @SX_JNI_CLS_max___II_I, align 8
%4 = getelementptr inbounds ptr, ptr %jni.ifs, i32 113
%jni.GetStaticMethodID = load ptr, ptr %4, align 8
%jni.fresh.mid = call ptr %jni.GetStaticMethodID(ptr %load, ptr %jni.global.cls, ptr @str.140, ptr @str.141)
%jni.fresh.mid = call ptr %jni.GetStaticMethodID(ptr %load, ptr %jni.global.cls, ptr @str.142, ptr @str.143)
store ptr %jni.fresh.mid, ptr @SX_JNI_MID_max___II_I, align 8
br label %jni.cont
@@ -1496,14 +1505,14 @@ declare void @sx_jni_env_tl_set(ptr) #0
define internal void @print__ct_sbdbafa1a5fe828c0__pack(ptr %0) #0 {
entry:
%alloca = alloca { ptr, i64 }, align 8
store { ptr, i64 } { ptr @str.142, i64 3 }, ptr %alloca, align 8
store { ptr, i64 } { ptr @str.144, i64 3 }, ptr %alloca, align 8
%allocaN = alloca { ptr, i64 }, align 8
%gep = getelementptr inbounds { ptr, i64 }, ptr %allocaN, i32 0, i32 0
store ptr null, ptr %gep, align 8
%gepN = getelementptr inbounds { ptr, i64 }, ptr %allocaN, i32 0, i32 1
store i64 0, ptr %gepN, align 8
%allocaN = alloca { ptr, i64 }, align 8
store { ptr, i64 } { ptr @str.143, i64 0 }, ptr %allocaN, align 8
store { ptr, i64 } { ptr @str.145, i64 0 }, ptr %allocaN, align 8
%load = load { ptr, i64 }, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %alloca, align 8
%call = call { ptr, i64 } @substr(ptr %0, { ptr, i64 } %loadN, i64 0, i64 3)
@@ -1519,6 +1528,6 @@ entry:
; Function Attrs: nounwind
define internal { ptr, i64 } @__insert_0(ptr %0) #0 {
entry:
%call = call { ptr, i64 } @build_format(ptr %0, { ptr, i64 } { ptr @str.144, i64 3 })
%call = call { ptr, i64 } @build_format(ptr %0, { ptr, i64 } { ptr @str.146, i64 3 })
ret { ptr, i64 } %call
}

View File

@@ -2,28 +2,28 @@
@g_should_call = internal global i1 false
@__sx_default_context = internal constant { { ptr, ptr, ptr }, ptr } { { ptr, ptr, ptr } { ptr null, ptr @__thunk_CAllocator_Allocator_alloc_bytes, ptr @__thunk_CAllocator_Allocator_dealloc_bytes }, ptr null }
@str = private unnamed_addr constant [2 x i8] c"0\00", align 1
@str.125 = private unnamed_addr constant [15 x i8] c"result := \22\22; \00", align 1
@str.126 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1
@str.127 = private unnamed_addr constant [3 x i8] c", \00", align 1
@str.128 = private unnamed_addr constant [5 x i8] c")); \00", align 1
@str.129 = private unnamed_addr constant [44 x i8] c"result = concat(result, any_to_string(args[\00", align 1
@str.130 = private unnamed_addr constant [6 x i8] c"])); \00", align 1
@str.131 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1
@str.132 = private unnamed_addr constant [3 x i8] c", \00", align 1
@str.133 = private unnamed_addr constant [5 x i8] c")); \00", align 1
@str.134 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1
@str.135 = private unnamed_addr constant [3 x i8] c", \00", align 1
@str.136 = private unnamed_addr constant [5 x i8] c")); \00", align 1
@str.137 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1
@str.138 = private unnamed_addr constant [3 x i8] c", \00", align 1
@str.139 = private unnamed_addr constant [5 x i8] c")); \00", align 1
@str.140 = private unnamed_addr constant [10 x i8] c"getWindow\00", align 1
@str.141 = private unnamed_addr constant [21 x i8] c"()Ljava/lang/Object;\00", align 1
@str.127 = private unnamed_addr constant [15 x i8] c"result := \22\22; \00", align 1
@str.128 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1
@str.129 = private unnamed_addr constant [3 x i8] c", \00", align 1
@str.130 = private unnamed_addr constant [5 x i8] c")); \00", align 1
@str.131 = private unnamed_addr constant [44 x i8] c"result = concat(result, any_to_string(args[\00", align 1
@str.132 = private unnamed_addr constant [6 x i8] c"])); \00", align 1
@str.133 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1
@str.134 = private unnamed_addr constant [3 x i8] c", \00", align 1
@str.135 = private unnamed_addr constant [5 x i8] c")); \00", align 1
@str.136 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1
@str.137 = private unnamed_addr constant [3 x i8] c", \00", align 1
@str.138 = private unnamed_addr constant [5 x i8] c")); \00", align 1
@str.139 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1
@str.140 = private unnamed_addr constant [3 x i8] c", \00", align 1
@str.141 = private unnamed_addr constant [5 x i8] c")); \00", align 1
@str.142 = private unnamed_addr constant [10 x i8] c"getWindow\00", align 1
@str.143 = private unnamed_addr constant [21 x i8] c"()Ljava/lang/Object;\00", align 1
@SX_JNI_CLS_getWindow____Ljava_lang_Object_ = internal global ptr null
@SX_JNI_MID_getWindow____Ljava_lang_Object_ = internal global ptr null
@str.142 = private unnamed_addr constant [4 x i8] c"ok\0A\00", align 1
@str.143 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1
@str.144 = private unnamed_addr constant [4 x i8] c"ok\0A\00", align 1
@str.145 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1
@str.146 = private unnamed_addr constant [4 x i8] c"ok\0A\00", align 1
; Function Attrs: nounwind
declare void @out(ptr) #0
@@ -36,6 +36,9 @@ declare ptr @memcpy(ptr, ptr, i64)
declare ptr @memset(ptr, i32, i64)
; Function Attrs: nounwind
declare ptr @mem_realloc(ptr, ptr, ptr, i64, i64, i64) #0
; Function Attrs: nounwind
define internal ptr @CAllocator.alloc_bytes(ptr %0, ptr %1, i64 %2) #0 {
entry:
@@ -328,7 +331,7 @@ entry:
%alloca = alloca { ptr, i64 }, align 8
store { ptr, i64 } %1, ptr %alloca, align 8
%allocaN = alloca { ptr, i64 }, align 8
store { ptr, i64 } { ptr @str.125, i64 14 }, ptr %allocaN, align 8
store { ptr, i64 } { ptr @str.127, i64 14 }, ptr %allocaN, align 8
%allocaN = alloca i64, align 8
store i64 0, ptr %allocaN, align 8
%allocaN = alloca i64, align 8
@@ -424,7 +427,7 @@ if.merge.13: ; preds = %if.merge.27, %if.me
if.then.14: ; preds = %if.then.11
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
%call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.126, i64 36 })
%call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.128, i64 36 })
store { ptr, i64 } %call, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
%loadN = load i64, ptr %allocaN, align 8
@@ -432,7 +435,7 @@ if.then.14: ; preds = %if.then.11
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN)
store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.127, i64 2 })
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.129, i64 2 })
store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
%loadN = load i64, ptr %allocaN, align 8
@@ -442,13 +445,13 @@ if.then.14: ; preds = %if.then.11
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN)
store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.128, i64 4 })
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.130, i64 4 })
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %if.merge.15
if.merge.15: ; preds = %if.then.14, %if.then.11
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.129, i64 43 })
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.131, i64 43 })
store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
%loadN = load i64, ptr %allocaN, align 8
@@ -456,7 +459,7 @@ if.merge.15: ; preds = %if.then.14, %if.the
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN)
store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.130, i64 5 })
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.132, i64 5 })
store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load i64, ptr %allocaN, align 8
%addN = add i64 %loadN, 1
@@ -470,7 +473,7 @@ if.merge.15: ; preds = %if.then.14, %if.the
if.then.25: ; preds = %if.else.12
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.131, i64 36 })
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.133, i64 36 })
store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
%loadN = load i64, ptr %allocaN, align 8
@@ -478,7 +481,7 @@ if.then.25: ; preds = %if.else.12
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN)
store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.132, i64 2 })
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.134, i64 2 })
store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
%loadN = load i64, ptr %allocaN, align 8
@@ -489,7 +492,7 @@ if.then.25: ; preds = %if.else.12
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN)
store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.133, i64 4 })
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.135, i64 4 })
store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load i64, ptr %allocaN, align 8
%addN = add i64 %loadN, 2
@@ -546,7 +549,7 @@ if.merge.33: ; preds = %if.merge.36, %if.el
if.then.34: ; preds = %if.then.31
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.134, i64 36 })
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.136, i64 36 })
store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
%loadN = load i64, ptr %allocaN, align 8
@@ -554,7 +557,7 @@ if.then.34: ; preds = %if.then.31
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN)
store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.135, i64 2 })
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.137, i64 2 })
store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
%loadN = load i64, ptr %allocaN, align 8
@@ -565,7 +568,7 @@ if.then.34: ; preds = %if.then.31
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN)
store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.136, i64 4 })
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.138, i64 4 })
store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load i64, ptr %allocaN, align 8
%addN = add i64 %loadN, 2
@@ -585,7 +588,7 @@ if.merge.36: ; preds = %if.else.35, %if.the
if.then.37: ; preds = %while.exit.4
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.137, i64 36 })
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.139, i64 36 })
store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
%loadN = load i64, ptr %allocaN, align 8
@@ -593,7 +596,7 @@ if.then.37: ; preds = %while.exit.4
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN)
store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.138, i64 2 })
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.140, i64 2 })
store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %alloca, align 8
@@ -604,7 +607,7 @@ if.then.37: ; preds = %while.exit.4
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN)
store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.139, i64 4 })
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.141, i64 4 })
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %if.merge.38
@@ -614,64 +617,67 @@ if.merge.38: ; preds = %if.then.37, %while.
}
; Function Attrs: nounwind
declare ptr @CAllocator.alloc_bytes.1(ptr, ptr, i64) #0
declare ptr @mem_realloc.1(ptr, ptr, ptr, i64, i64, i64) #0
; Function Attrs: nounwind
declare void @CAllocator.dealloc_bytes.2(ptr, ptr, ptr) #0
declare ptr @CAllocator.alloc_bytes.2(ptr, ptr, i64) #0
; Function Attrs: nounwind
declare i64 @GPA.init.3(ptr) #0
declare void @CAllocator.dealloc_bytes.3(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare ptr @GPA.alloc_bytes.4(ptr, ptr, i64) #0
declare i64 @GPA.init.4(ptr) #0
; Function Attrs: nounwind
declare void @GPA.dealloc_bytes.5(ptr, ptr, ptr) #0
declare ptr @GPA.alloc_bytes.5(ptr, ptr, i64) #0
; Function Attrs: nounwind
declare void @Arena.add_chunk.6(ptr, ptr, i64) #0
declare void @GPA.dealloc_bytes.6(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare void @Arena.init.7(ptr sret({ ptr, i64, { ptr, ptr, ptr } }), ptr, ptr, i64) #0
declare void @Arena.add_chunk.7(ptr, ptr, i64) #0
; Function Attrs: nounwind
declare void @Arena.reset.8(ptr, ptr) #0
declare void @Arena.init.8(ptr sret({ ptr, i64, { ptr, ptr, ptr } }), ptr, ptr, i64) #0
; Function Attrs: nounwind
declare void @Arena.deinit.9(ptr, ptr) #0
declare void @Arena.reset.9(ptr, ptr) #0
; Function Attrs: nounwind
declare ptr @Arena.alloc_bytes.10(ptr, ptr, i64) #0
declare void @Arena.deinit.10(ptr, ptr) #0
; Function Attrs: nounwind
declare void @Arena.dealloc_bytes.11(ptr, ptr, ptr) #0
declare ptr @Arena.alloc_bytes.11(ptr, ptr, i64) #0
; Function Attrs: nounwind
declare ptr @BufAlloc.init.12(ptr, ptr, i64) #0
declare void @Arena.dealloc_bytes.12(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare void @BufAlloc.reset.13(ptr, ptr) #0
declare ptr @BufAlloc.init.13(ptr, ptr, i64) #0
; Function Attrs: nounwind
declare ptr @BufAlloc.alloc_bytes.14(ptr, ptr, i64) #0
declare void @BufAlloc.reset.14(ptr, ptr) #0
; Function Attrs: nounwind
declare void @BufAlloc.dealloc_bytes.15(ptr, ptr, ptr) #0
declare ptr @BufAlloc.alloc_bytes.15(ptr, ptr, i64) #0
; Function Attrs: nounwind
declare void @TrackingAllocator.init.16(ptr sret({ { ptr, ptr, ptr }, i64, i64, i64 }), ptr, ptr) #0
declare void @BufAlloc.dealloc_bytes.16(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare i64 @TrackingAllocator.leak_count.17(ptr, ptr) #0
declare void @TrackingAllocator.init.17(ptr sret({ { ptr, ptr, ptr }, i64, i64, i64 }), ptr, ptr) #0
; Function Attrs: nounwind
declare void @TrackingAllocator.report.18(ptr, ptr) #0
declare i64 @TrackingAllocator.leak_count.18(ptr, ptr) #0
; Function Attrs: nounwind
declare ptr @TrackingAllocator.alloc_bytes.19(ptr, ptr, i64) #0
declare void @TrackingAllocator.report.19(ptr, ptr) #0
; Function Attrs: nounwind
declare void @TrackingAllocator.dealloc_bytes.20(ptr, ptr, ptr) #0
declare ptr @TrackingAllocator.alloc_bytes.20(ptr, ptr, i64) #0
; Function Attrs: nounwind
declare void @TrackingAllocator.dealloc_bytes.21(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare ptr @escape(ptr, ptr) #0
@@ -847,163 +853,166 @@ declare i32 @listen(i32, i32) #0
declare i32 @accept(i32, ptr, ptr) #0
; Function Attrs: nounwind
declare i64 @read.21(i32, ptr, i64) #0
declare i64 @read.22(i32, ptr, i64) #0
; Function Attrs: nounwind
declare i32 @close.22(i32) #0
declare i32 @close.23(i32) #0
; Function Attrs: nounwind
declare i16 @htons(ptr, i64) #0
; Function Attrs: nounwind
declare ptr @CAllocator.alloc_bytes.23(ptr, ptr, i64) #0
declare ptr @mem_realloc.24(ptr, ptr, ptr, i64, i64, i64) #0
; Function Attrs: nounwind
declare void @CAllocator.dealloc_bytes.24(ptr, ptr, ptr) #0
declare ptr @CAllocator.alloc_bytes.25(ptr, ptr, i64) #0
; Function Attrs: nounwind
declare i64 @GPA.init.25(ptr) #0
declare void @CAllocator.dealloc_bytes.26(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare ptr @GPA.alloc_bytes.26(ptr, ptr, i64) #0
declare i64 @GPA.init.27(ptr) #0
; Function Attrs: nounwind
declare void @GPA.dealloc_bytes.27(ptr, ptr, ptr) #0
declare ptr @GPA.alloc_bytes.28(ptr, ptr, i64) #0
; Function Attrs: nounwind
declare void @Arena.add_chunk.28(ptr, ptr, i64) #0
declare void @GPA.dealloc_bytes.29(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare void @Arena.init.29(ptr sret({ ptr, i64, { ptr, ptr, ptr } }), ptr, ptr, i64) #0
declare void @Arena.add_chunk.30(ptr, ptr, i64) #0
; Function Attrs: nounwind
declare void @Arena.reset.30(ptr, ptr) #0
declare void @Arena.init.31(ptr sret({ ptr, i64, { ptr, ptr, ptr } }), ptr, ptr, i64) #0
; Function Attrs: nounwind
declare void @Arena.deinit.31(ptr, ptr) #0
declare void @Arena.reset.32(ptr, ptr) #0
; Function Attrs: nounwind
declare ptr @Arena.alloc_bytes.32(ptr, ptr, i64) #0
declare void @Arena.deinit.33(ptr, ptr) #0
; Function Attrs: nounwind
declare void @Arena.dealloc_bytes.33(ptr, ptr, ptr) #0
declare ptr @Arena.alloc_bytes.34(ptr, ptr, i64) #0
; Function Attrs: nounwind
declare ptr @BufAlloc.init.34(ptr, ptr, i64) #0
declare void @Arena.dealloc_bytes.35(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare void @BufAlloc.reset.35(ptr, ptr) #0
declare ptr @BufAlloc.init.36(ptr, ptr, i64) #0
; Function Attrs: nounwind
declare ptr @BufAlloc.alloc_bytes.36(ptr, ptr, i64) #0
declare void @BufAlloc.reset.37(ptr, ptr) #0
; Function Attrs: nounwind
declare void @BufAlloc.dealloc_bytes.37(ptr, ptr, ptr) #0
declare ptr @BufAlloc.alloc_bytes.38(ptr, ptr, i64) #0
; Function Attrs: nounwind
declare void @TrackingAllocator.init.38(ptr sret({ { ptr, ptr, ptr }, i64, i64, i64 }), ptr, ptr) #0
declare void @BufAlloc.dealloc_bytes.39(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare i64 @TrackingAllocator.leak_count.39(ptr, ptr) #0
declare void @TrackingAllocator.init.40(ptr sret({ { ptr, ptr, ptr }, i64, i64, i64 }), ptr, ptr) #0
; Function Attrs: nounwind
declare void @TrackingAllocator.report.40(ptr, ptr) #0
declare i64 @TrackingAllocator.leak_count.41(ptr, ptr) #0
; Function Attrs: nounwind
declare ptr @TrackingAllocator.alloc_bytes.41(ptr, ptr, i64) #0
declare void @TrackingAllocator.report.42(ptr, ptr) #0
; Function Attrs: nounwind
declare void @TrackingAllocator.dealloc_bytes.42(ptr, ptr, ptr) #0
declare ptr @TrackingAllocator.alloc_bytes.43(ptr, ptr, i64) #0
; Function Attrs: nounwind
declare i32 @open.43(ptr, i32, ...) #0
declare void @TrackingAllocator.dealloc_bytes.44(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare i32 @close.44(i32) #0
declare i32 @open.45(ptr, i32, ...) #0
; Function Attrs: nounwind
declare i64 @read.45(i32, ptr, i64) #0
declare i32 @close.46(i32) #0
; Function Attrs: nounwind
declare i64 @lseek.46(i32, i64, i32) #0
declare i64 @read.47(i32, ptr, i64) #0
; Function Attrs: nounwind
declare i32 @unlink.47(ptr) #0
declare i64 @lseek.48(i32, i64, i32) #0
; Function Attrs: nounwind
declare i32 @rmdir.48(ptr) #0
declare i32 @unlink.49(ptr) #0
; Function Attrs: nounwind
declare i32 @mkdir.49(ptr, i32) #0
declare i32 @rmdir.50(ptr) #0
; Function Attrs: nounwind
declare i32 @access.50(ptr, i32) #0
declare i32 @mkdir.51(ptr, i32) #0
; Function Attrs: nounwind
declare i32 @chmod.51(ptr, i32) #0
declare i32 @access.52(ptr, i32) #0
; Function Attrs: nounwind
declare i32 @rename.52(ptr, ptr) #0
declare i32 @chmod.53(ptr, i32) #0
; Function Attrs: nounwind
declare i1 @File.is_valid.53(ptr, ptr) #0
declare i32 @rename.54(ptr, ptr) #0
; Function Attrs: nounwind
declare i1 @File.close.54(ptr, ptr) #0
declare i1 @File.is_valid.55(ptr, ptr) #0
; Function Attrs: nounwind
declare i64 @File.read.55(ptr, ptr, ptr) #0
declare i1 @File.close.56(ptr, ptr) #0
; Function Attrs: nounwind
declare i64 @File.write.56(ptr, ptr, ptr) #0
declare i64 @File.read.57(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare i64 @File.seek.57(ptr, ptr, i64, i64) #0
declare i64 @File.write.58(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare i32 @mode_to_flags.58(ptr, i64) #0
declare i64 @File.seek.59(ptr, ptr, i64, i64) #0
; Function Attrs: nounwind
declare i64 @open_file.59(ptr, ptr, i64) #0
declare i32 @mode_to_flags.60(ptr, i64) #0
; Function Attrs: nounwind
declare void @read_file.60(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0
declare i64 @open_file.61(ptr, ptr, i64) #0
; Function Attrs: nounwind
declare i1 @write_file.61(ptr, ptr, ptr) #0
declare void @read_file.62(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0
; Function Attrs: nounwind
declare i1 @append_file.62(ptr, ptr, ptr) #0
declare i1 @write_file.63(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare i1 @exists.63(ptr, ptr) #0
declare i1 @append_file.64(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare i1 @delete_file.64(ptr, ptr) #0
declare i1 @exists.65(ptr, ptr) #0
; Function Attrs: nounwind
declare i1 @delete_dir.65(ptr, ptr) #0
declare i1 @delete_file.66(ptr, ptr) #0
; Function Attrs: nounwind
declare i1 @create_dir.66(ptr, ptr) #0
declare i1 @delete_dir.67(ptr, ptr) #0
; Function Attrs: nounwind
declare i1 @set_mode.67(ptr, ptr, i32) #0
declare i1 @create_dir.68(ptr, ptr) #0
; Function Attrs: nounwind
declare i1 @move.68(ptr, ptr, ptr) #0
declare i1 @set_mode.69(ptr, ptr, i32) #0
; Function Attrs: nounwind
declare i1 @create_dir_all.69(ptr, ptr) #0
declare i1 @move.70(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare i1 @copy_file.70(ptr, ptr, ptr) #0
declare i1 @create_dir_all.71(ptr, ptr) #0
; Function Attrs: nounwind
declare ptr @basename.71(ptr, ptr) #0
declare i1 @copy_file.72(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare ptr @dirname.72(ptr, ptr) #0
declare ptr @basename.73(ptr, ptr) #0
; Function Attrs: nounwind
declare ptr @dirname.74(ptr, ptr) #0
; Function Attrs: nounwind
declare void @Array.add(ptr, ptr, ptr, ptr) #0
@@ -1201,64 +1210,64 @@ declare ptr @BuildOptions.jni_main_java_source_at(i64, i64) #0
declare i64 @build_options() #0
; Function Attrs: nounwind
declare ptr @spaces.73(ptr, i32) #0
declare ptr @spaces.75(ptr, i32) #0
; Function Attrs: nounwind
declare i32 @sx_trace_len.74() #0
declare i32 @sx_trace_len.76() #0
; Function Attrs: nounwind
declare i32 @sx_trace_truncated.75() #0
declare i32 @sx_trace_truncated.77() #0
; Function Attrs: nounwind
declare i64 @sx_trace_frame_at.76(i32) #0
declare i64 @sx_trace_frame_at.78(i32) #0
; Function Attrs: nounwind
declare ptr @to_string.77(ptr) #0
declare ptr @to_string.79(ptr) #0
; Function Attrs: nounwind
declare void @print_current.78(ptr) #0
declare void @print_current.80(ptr) #0
; Function Attrs: nounwind
declare void @print_interpreter_frames.79(ptr) #0
declare void @print_interpreter_frames.81(ptr) #0
; Function Attrs: nounwind
declare ptr @popen.80(ptr, ptr) #0
declare ptr @popen.82(ptr, ptr) #0
; Function Attrs: nounwind
declare i32 @pclose.81(ptr) #0
declare i32 @pclose.83(ptr) #0
; Function Attrs: nounwind
declare i64 @fread.82(ptr, i64, i64, ptr) #0
declare i64 @fread.84(ptr, i64, i64, ptr) #0
; Function Attrs: nounwind
declare i32 @feof.83(ptr) #0
declare i32 @feof.85(ptr) #0
; Function Attrs: nounwind
declare ptr @getenv.84(ptr) #0
declare ptr @getenv.86(ptr) #0
; Function Attrs: nounwind
declare i64 @strlen.85(ptr) #0
declare i64 @strlen.87(ptr) #0
; Function Attrs: nounwind
declare i32 @system.86(ptr) #0
declare i32 @system.88(ptr) #0
; Function Attrs: nounwind
declare void @run.87(ptr sret({ { i32, { ptr, i64 } }, i1 }), ptr, ptr) #0
declare void @run.89(ptr sret({ { i32, { ptr, i64 } }, i1 }), ptr, ptr) #0
; Function Attrs: nounwind
declare void @env.88(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0
declare void @env.90(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0
; Function Attrs: nounwind
declare void @find_executable.89(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0
declare void @find_executable.91(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0
; Function Attrs: nounwind
declare void @_exit.90(i32) #0
declare void @_exit.92(i32) #0
; Function Attrs: nounwind
declare void @exit.91(ptr, i8, ptr) #0
declare void @exit.93(ptr, i8, ptr) #0
; Function Attrs: nounwind
declare void @assert.92(ptr, i1, ptr, ptr) #0
declare void @assert.94(ptr, i1, ptr, ptr) #0
; Function Attrs: nounwind
declare ptr @_NSGetArgv() #0
@@ -1288,97 +1297,97 @@ declare ptr @Parsed.value_of(ptr, ptr, ptr) #0
declare i1 @is_long_flag(ptr, ptr) #0
; Function Attrs: nounwind
declare void @parse.93(ptr sret({ { { ptr, i64 }, { ptr, i64 }, i64, i1, { ptr, i64 }, { ptr, i64 }, [16 x { i1, { ptr, i64 } }] }, i32 }), ptr, ptr, ptr, ptr) #0
declare void @parse.95(ptr sret({ { { ptr, i64 }, { ptr, i64 }, i64, i1, { ptr, i64 }, { ptr, i64 }, [16 x { i1, { ptr, i64 } }] }, i32 }), ptr, ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare i32 @open.94(ptr, i32, ...) #0
declare i32 @open.96(ptr, i32, ...) #0
; Function Attrs: nounwind
declare i32 @close.95(i32) #0
declare i32 @close.97(i32) #0
; Function Attrs: nounwind
declare i64 @read.96(i32, ptr, i64) #0
declare i64 @read.98(i32, ptr, i64) #0
; Function Attrs: nounwind
declare i64 @lseek.97(i32, i64, i32) #0
declare i64 @lseek.99(i32, i64, i32) #0
; Function Attrs: nounwind
declare i32 @unlink.98(ptr) #0
declare i32 @unlink.100(ptr) #0
; Function Attrs: nounwind
declare i32 @rmdir.99(ptr) #0
declare i32 @rmdir.101(ptr) #0
; Function Attrs: nounwind
declare i32 @mkdir.100(ptr, i32) #0
declare i32 @mkdir.102(ptr, i32) #0
; Function Attrs: nounwind
declare i32 @access.101(ptr, i32) #0
declare i32 @access.103(ptr, i32) #0
; Function Attrs: nounwind
declare i32 @chmod.102(ptr, i32) #0
declare i32 @chmod.104(ptr, i32) #0
; Function Attrs: nounwind
declare i32 @rename.103(ptr, ptr) #0
declare i32 @rename.105(ptr, ptr) #0
; Function Attrs: nounwind
declare i1 @File.is_valid.104(ptr, ptr) #0
declare i1 @File.is_valid.106(ptr, ptr) #0
; Function Attrs: nounwind
declare i1 @File.close.105(ptr, ptr) #0
declare i1 @File.close.107(ptr, ptr) #0
; Function Attrs: nounwind
declare i64 @File.read.106(ptr, ptr, ptr) #0
declare i64 @File.read.108(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare i64 @File.write.107(ptr, ptr, ptr) #0
declare i64 @File.write.109(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare i64 @File.seek.108(ptr, ptr, i64, i64) #0
declare i64 @File.seek.110(ptr, ptr, i64, i64) #0
; Function Attrs: nounwind
declare i32 @mode_to_flags.109(ptr, i64) #0
declare i32 @mode_to_flags.111(ptr, i64) #0
; Function Attrs: nounwind
declare i64 @open_file.110(ptr, ptr, i64) #0
declare i64 @open_file.112(ptr, ptr, i64) #0
; Function Attrs: nounwind
declare void @read_file.111(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0
declare void @read_file.113(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0
; Function Attrs: nounwind
declare i1 @write_file.112(ptr, ptr, ptr) #0
declare i1 @write_file.114(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare i1 @append_file.113(ptr, ptr, ptr) #0
declare i1 @append_file.115(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare i1 @exists.114(ptr, ptr) #0
declare i1 @exists.116(ptr, ptr) #0
; Function Attrs: nounwind
declare i1 @delete_file.115(ptr, ptr) #0
declare i1 @delete_file.117(ptr, ptr) #0
; Function Attrs: nounwind
declare i1 @delete_dir.116(ptr, ptr) #0
declare i1 @delete_dir.118(ptr, ptr) #0
; Function Attrs: nounwind
declare i1 @create_dir.117(ptr, ptr) #0
declare i1 @create_dir.119(ptr, ptr) #0
; Function Attrs: nounwind
declare i1 @set_mode.118(ptr, ptr, i32) #0
declare i1 @set_mode.120(ptr, ptr, i32) #0
; Function Attrs: nounwind
declare i1 @move.119(ptr, ptr, ptr) #0
declare i1 @move.121(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare i1 @create_dir_all.120(ptr, ptr) #0
declare i1 @create_dir_all.122(ptr, ptr) #0
; Function Attrs: nounwind
declare i1 @copy_file.121(ptr, ptr, ptr) #0
declare i1 @copy_file.123(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare ptr @basename.122(ptr, ptr) #0
declare ptr @basename.124(ptr, ptr) #0
; Function Attrs: nounwind
declare ptr @dirname.123(ptr, ptr) #0
declare ptr @dirname.125(ptr, ptr) #0
; Function Attrs: nounwind
declare i64 @rotr(ptr, i64, i64) #0
@@ -1417,7 +1426,7 @@ declare [64 x i8] @sha256_hex(ptr, ptr) #0
declare void @sha256_file(ptr sret({ [64 x i8], i1 }), ptr, ptr) #0
; Function Attrs: nounwind
declare void @assert.124(ptr, i1) #0
declare void @assert.126(ptr, i1) #0
; Function Attrs: nounwind
define internal void @unused_jni(ptr %0, ptr %1, ptr %2) #0 {
@@ -1446,7 +1455,7 @@ jni.miss: ; preds = %entry
store ptr %jni.global.cls, ptr @SX_JNI_CLS_getWindow____Ljava_lang_Object_, align 8
%5 = getelementptr inbounds ptr, ptr %jni.ifs, i32 33
%jni.GetMethodID = load ptr, ptr %5, align 8
%jni.fresh.mid = call ptr %jni.GetMethodID(ptr %load, ptr %jni.global.cls, ptr @str.140, ptr @str.141)
%jni.fresh.mid = call ptr %jni.GetMethodID(ptr %load, ptr %jni.global.cls, ptr @str.142, ptr @str.143)
store ptr %jni.fresh.mid, ptr @SX_JNI_MID_getWindow____Ljava_lang_Object_, align 8
br label %jni.cont
@@ -1499,14 +1508,14 @@ declare void @sx_jni_env_tl_set(ptr) #0
define internal void @print__ct_sbdbafa1a5fe828c0__pack(ptr %0) #0 {
entry:
%alloca = alloca { ptr, i64 }, align 8
store { ptr, i64 } { ptr @str.142, i64 3 }, ptr %alloca, align 8
store { ptr, i64 } { ptr @str.144, i64 3 }, ptr %alloca, align 8
%allocaN = alloca { ptr, i64 }, align 8
%gep = getelementptr inbounds { ptr, i64 }, ptr %allocaN, i32 0, i32 0
store ptr null, ptr %gep, align 8
%gepN = getelementptr inbounds { ptr, i64 }, ptr %allocaN, i32 0, i32 1
store i64 0, ptr %gepN, align 8
%allocaN = alloca { ptr, i64 }, align 8
store { ptr, i64 } { ptr @str.143, i64 0 }, ptr %allocaN, align 8
store { ptr, i64 } { ptr @str.145, i64 0 }, ptr %allocaN, align 8
%load = load { ptr, i64 }, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %alloca, align 8
%call = call { ptr, i64 } @substr(ptr %0, { ptr, i64 } %loadN, i64 0, i64 3)
@@ -1522,6 +1531,6 @@ entry:
; Function Attrs: nounwind
define internal { ptr, i64 } @__insert_0(ptr %0) #0 {
entry:
%call = call { ptr, i64 } @build_format(ptr %0, { ptr, i64 } { ptr @str.144, i64 3 })
%call = call { ptr, i64 } @build_format(ptr %0, { ptr, i64 } { ptr @str.146, i64 3 })
ret { ptr, i64 } %call
}

View File

@@ -2,28 +2,28 @@
@g_should_call = internal global i1 false
@__sx_default_context = internal constant { { ptr, ptr, ptr }, ptr } { { ptr, ptr, ptr } { ptr null, ptr @__thunk_CAllocator_Allocator_alloc_bytes, ptr @__thunk_CAllocator_Allocator_dealloc_bytes }, ptr null }
@str = private unnamed_addr constant [2 x i8] c"0\00", align 1
@str.125 = private unnamed_addr constant [15 x i8] c"result := \22\22; \00", align 1
@str.126 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1
@str.127 = private unnamed_addr constant [3 x i8] c", \00", align 1
@str.128 = private unnamed_addr constant [5 x i8] c")); \00", align 1
@str.129 = private unnamed_addr constant [44 x i8] c"result = concat(result, any_to_string(args[\00", align 1
@str.130 = private unnamed_addr constant [6 x i8] c"])); \00", align 1
@str.131 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1
@str.132 = private unnamed_addr constant [3 x i8] c", \00", align 1
@str.133 = private unnamed_addr constant [5 x i8] c")); \00", align 1
@str.134 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1
@str.135 = private unnamed_addr constant [3 x i8] c", \00", align 1
@str.136 = private unnamed_addr constant [5 x i8] c")); \00", align 1
@str.137 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1
@str.138 = private unnamed_addr constant [3 x i8] c", \00", align 1
@str.139 = private unnamed_addr constant [5 x i8] c")); \00", align 1
@str.140 = private unnamed_addr constant [5 x i8] c"noop\00", align 1
@str.141 = private unnamed_addr constant [4 x i8] c"()V\00", align 1
@str.127 = private unnamed_addr constant [15 x i8] c"result := \22\22; \00", align 1
@str.128 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1
@str.129 = private unnamed_addr constant [3 x i8] c", \00", align 1
@str.130 = private unnamed_addr constant [5 x i8] c")); \00", align 1
@str.131 = private unnamed_addr constant [44 x i8] c"result = concat(result, any_to_string(args[\00", align 1
@str.132 = private unnamed_addr constant [6 x i8] c"])); \00", align 1
@str.133 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1
@str.134 = private unnamed_addr constant [3 x i8] c", \00", align 1
@str.135 = private unnamed_addr constant [5 x i8] c")); \00", align 1
@str.136 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1
@str.137 = private unnamed_addr constant [3 x i8] c", \00", align 1
@str.138 = private unnamed_addr constant [5 x i8] c")); \00", align 1
@str.139 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1
@str.140 = private unnamed_addr constant [3 x i8] c", \00", align 1
@str.141 = private unnamed_addr constant [5 x i8] c")); \00", align 1
@str.142 = private unnamed_addr constant [5 x i8] c"noop\00", align 1
@str.143 = private unnamed_addr constant [4 x i8] c"()V\00", align 1
@SX_JNI_CLS_noop____V = internal global ptr null
@SX_JNI_MID_noop____V = internal global ptr null
@str.142 = private unnamed_addr constant [4 x i8] c"ok\0A\00", align 1
@str.143 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1
@str.144 = private unnamed_addr constant [4 x i8] c"ok\0A\00", align 1
@str.145 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1
@str.146 = private unnamed_addr constant [4 x i8] c"ok\0A\00", align 1
; Function Attrs: nounwind
declare void @out(ptr) #0
@@ -36,6 +36,9 @@ declare ptr @memcpy(ptr, ptr, i64)
declare ptr @memset(ptr, i32, i64)
; Function Attrs: nounwind
declare ptr @mem_realloc(ptr, ptr, ptr, i64, i64, i64) #0
; Function Attrs: nounwind
define internal ptr @CAllocator.alloc_bytes(ptr %0, ptr %1, i64 %2) #0 {
entry:
@@ -328,7 +331,7 @@ entry:
%alloca = alloca { ptr, i64 }, align 8
store { ptr, i64 } %1, ptr %alloca, align 8
%allocaN = alloca { ptr, i64 }, align 8
store { ptr, i64 } { ptr @str.125, i64 14 }, ptr %allocaN, align 8
store { ptr, i64 } { ptr @str.127, i64 14 }, ptr %allocaN, align 8
%allocaN = alloca i64, align 8
store i64 0, ptr %allocaN, align 8
%allocaN = alloca i64, align 8
@@ -424,7 +427,7 @@ if.merge.13: ; preds = %if.merge.27, %if.me
if.then.14: ; preds = %if.then.11
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
%call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.126, i64 36 })
%call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.128, i64 36 })
store { ptr, i64 } %call, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
%loadN = load i64, ptr %allocaN, align 8
@@ -432,7 +435,7 @@ if.then.14: ; preds = %if.then.11
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN)
store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.127, i64 2 })
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.129, i64 2 })
store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
%loadN = load i64, ptr %allocaN, align 8
@@ -442,13 +445,13 @@ if.then.14: ; preds = %if.then.11
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN)
store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.128, i64 4 })
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.130, i64 4 })
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %if.merge.15
if.merge.15: ; preds = %if.then.14, %if.then.11
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.129, i64 43 })
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.131, i64 43 })
store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
%loadN = load i64, ptr %allocaN, align 8
@@ -456,7 +459,7 @@ if.merge.15: ; preds = %if.then.14, %if.the
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN)
store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.130, i64 5 })
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.132, i64 5 })
store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load i64, ptr %allocaN, align 8
%addN = add i64 %loadN, 1
@@ -470,7 +473,7 @@ if.merge.15: ; preds = %if.then.14, %if.the
if.then.25: ; preds = %if.else.12
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.131, i64 36 })
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.133, i64 36 })
store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
%loadN = load i64, ptr %allocaN, align 8
@@ -478,7 +481,7 @@ if.then.25: ; preds = %if.else.12
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN)
store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.132, i64 2 })
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.134, i64 2 })
store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
%loadN = load i64, ptr %allocaN, align 8
@@ -489,7 +492,7 @@ if.then.25: ; preds = %if.else.12
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN)
store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.133, i64 4 })
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.135, i64 4 })
store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load i64, ptr %allocaN, align 8
%addN = add i64 %loadN, 2
@@ -546,7 +549,7 @@ if.merge.33: ; preds = %if.merge.36, %if.el
if.then.34: ; preds = %if.then.31
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.134, i64 36 })
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.136, i64 36 })
store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
%loadN = load i64, ptr %allocaN, align 8
@@ -554,7 +557,7 @@ if.then.34: ; preds = %if.then.31
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN)
store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.135, i64 2 })
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.137, i64 2 })
store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
%loadN = load i64, ptr %allocaN, align 8
@@ -565,7 +568,7 @@ if.then.34: ; preds = %if.then.31
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN)
store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.136, i64 4 })
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.138, i64 4 })
store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load i64, ptr %allocaN, align 8
%addN = add i64 %loadN, 2
@@ -585,7 +588,7 @@ if.merge.36: ; preds = %if.else.35, %if.the
if.then.37: ; preds = %while.exit.4
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.137, i64 36 })
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.139, i64 36 })
store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
%loadN = load i64, ptr %allocaN, align 8
@@ -593,7 +596,7 @@ if.then.37: ; preds = %while.exit.4
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN)
store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.138, i64 2 })
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.140, i64 2 })
store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %alloca, align 8
@@ -604,7 +607,7 @@ if.then.37: ; preds = %while.exit.4
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN)
store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.139, i64 4 })
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.141, i64 4 })
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %if.merge.38
@@ -614,64 +617,67 @@ if.merge.38: ; preds = %if.then.37, %while.
}
; Function Attrs: nounwind
declare ptr @CAllocator.alloc_bytes.1(ptr, ptr, i64) #0
declare ptr @mem_realloc.1(ptr, ptr, ptr, i64, i64, i64) #0
; Function Attrs: nounwind
declare void @CAllocator.dealloc_bytes.2(ptr, ptr, ptr) #0
declare ptr @CAllocator.alloc_bytes.2(ptr, ptr, i64) #0
; Function Attrs: nounwind
declare i64 @GPA.init.3(ptr) #0
declare void @CAllocator.dealloc_bytes.3(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare ptr @GPA.alloc_bytes.4(ptr, ptr, i64) #0
declare i64 @GPA.init.4(ptr) #0
; Function Attrs: nounwind
declare void @GPA.dealloc_bytes.5(ptr, ptr, ptr) #0
declare ptr @GPA.alloc_bytes.5(ptr, ptr, i64) #0
; Function Attrs: nounwind
declare void @Arena.add_chunk.6(ptr, ptr, i64) #0
declare void @GPA.dealloc_bytes.6(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare void @Arena.init.7(ptr sret({ ptr, i64, { ptr, ptr, ptr } }), ptr, ptr, i64) #0
declare void @Arena.add_chunk.7(ptr, ptr, i64) #0
; Function Attrs: nounwind
declare void @Arena.reset.8(ptr, ptr) #0
declare void @Arena.init.8(ptr sret({ ptr, i64, { ptr, ptr, ptr } }), ptr, ptr, i64) #0
; Function Attrs: nounwind
declare void @Arena.deinit.9(ptr, ptr) #0
declare void @Arena.reset.9(ptr, ptr) #0
; Function Attrs: nounwind
declare ptr @Arena.alloc_bytes.10(ptr, ptr, i64) #0
declare void @Arena.deinit.10(ptr, ptr) #0
; Function Attrs: nounwind
declare void @Arena.dealloc_bytes.11(ptr, ptr, ptr) #0
declare ptr @Arena.alloc_bytes.11(ptr, ptr, i64) #0
; Function Attrs: nounwind
declare ptr @BufAlloc.init.12(ptr, ptr, i64) #0
declare void @Arena.dealloc_bytes.12(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare void @BufAlloc.reset.13(ptr, ptr) #0
declare ptr @BufAlloc.init.13(ptr, ptr, i64) #0
; Function Attrs: nounwind
declare ptr @BufAlloc.alloc_bytes.14(ptr, ptr, i64) #0
declare void @BufAlloc.reset.14(ptr, ptr) #0
; Function Attrs: nounwind
declare void @BufAlloc.dealloc_bytes.15(ptr, ptr, ptr) #0
declare ptr @BufAlloc.alloc_bytes.15(ptr, ptr, i64) #0
; Function Attrs: nounwind
declare void @TrackingAllocator.init.16(ptr sret({ { ptr, ptr, ptr }, i64, i64, i64 }), ptr, ptr) #0
declare void @BufAlloc.dealloc_bytes.16(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare i64 @TrackingAllocator.leak_count.17(ptr, ptr) #0
declare void @TrackingAllocator.init.17(ptr sret({ { ptr, ptr, ptr }, i64, i64, i64 }), ptr, ptr) #0
; Function Attrs: nounwind
declare void @TrackingAllocator.report.18(ptr, ptr) #0
declare i64 @TrackingAllocator.leak_count.18(ptr, ptr) #0
; Function Attrs: nounwind
declare ptr @TrackingAllocator.alloc_bytes.19(ptr, ptr, i64) #0
declare void @TrackingAllocator.report.19(ptr, ptr) #0
; Function Attrs: nounwind
declare void @TrackingAllocator.dealloc_bytes.20(ptr, ptr, ptr) #0
declare ptr @TrackingAllocator.alloc_bytes.20(ptr, ptr, i64) #0
; Function Attrs: nounwind
declare void @TrackingAllocator.dealloc_bytes.21(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare ptr @escape(ptr, ptr) #0
@@ -847,163 +853,166 @@ declare i32 @listen(i32, i32) #0
declare i32 @accept(i32, ptr, ptr) #0
; Function Attrs: nounwind
declare i64 @read.21(i32, ptr, i64) #0
declare i64 @read.22(i32, ptr, i64) #0
; Function Attrs: nounwind
declare i32 @close.22(i32) #0
declare i32 @close.23(i32) #0
; Function Attrs: nounwind
declare i16 @htons(ptr, i64) #0
; Function Attrs: nounwind
declare ptr @CAllocator.alloc_bytes.23(ptr, ptr, i64) #0
declare ptr @mem_realloc.24(ptr, ptr, ptr, i64, i64, i64) #0
; Function Attrs: nounwind
declare void @CAllocator.dealloc_bytes.24(ptr, ptr, ptr) #0
declare ptr @CAllocator.alloc_bytes.25(ptr, ptr, i64) #0
; Function Attrs: nounwind
declare i64 @GPA.init.25(ptr) #0
declare void @CAllocator.dealloc_bytes.26(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare ptr @GPA.alloc_bytes.26(ptr, ptr, i64) #0
declare i64 @GPA.init.27(ptr) #0
; Function Attrs: nounwind
declare void @GPA.dealloc_bytes.27(ptr, ptr, ptr) #0
declare ptr @GPA.alloc_bytes.28(ptr, ptr, i64) #0
; Function Attrs: nounwind
declare void @Arena.add_chunk.28(ptr, ptr, i64) #0
declare void @GPA.dealloc_bytes.29(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare void @Arena.init.29(ptr sret({ ptr, i64, { ptr, ptr, ptr } }), ptr, ptr, i64) #0
declare void @Arena.add_chunk.30(ptr, ptr, i64) #0
; Function Attrs: nounwind
declare void @Arena.reset.30(ptr, ptr) #0
declare void @Arena.init.31(ptr sret({ ptr, i64, { ptr, ptr, ptr } }), ptr, ptr, i64) #0
; Function Attrs: nounwind
declare void @Arena.deinit.31(ptr, ptr) #0
declare void @Arena.reset.32(ptr, ptr) #0
; Function Attrs: nounwind
declare ptr @Arena.alloc_bytes.32(ptr, ptr, i64) #0
declare void @Arena.deinit.33(ptr, ptr) #0
; Function Attrs: nounwind
declare void @Arena.dealloc_bytes.33(ptr, ptr, ptr) #0
declare ptr @Arena.alloc_bytes.34(ptr, ptr, i64) #0
; Function Attrs: nounwind
declare ptr @BufAlloc.init.34(ptr, ptr, i64) #0
declare void @Arena.dealloc_bytes.35(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare void @BufAlloc.reset.35(ptr, ptr) #0
declare ptr @BufAlloc.init.36(ptr, ptr, i64) #0
; Function Attrs: nounwind
declare ptr @BufAlloc.alloc_bytes.36(ptr, ptr, i64) #0
declare void @BufAlloc.reset.37(ptr, ptr) #0
; Function Attrs: nounwind
declare void @BufAlloc.dealloc_bytes.37(ptr, ptr, ptr) #0
declare ptr @BufAlloc.alloc_bytes.38(ptr, ptr, i64) #0
; Function Attrs: nounwind
declare void @TrackingAllocator.init.38(ptr sret({ { ptr, ptr, ptr }, i64, i64, i64 }), ptr, ptr) #0
declare void @BufAlloc.dealloc_bytes.39(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare i64 @TrackingAllocator.leak_count.39(ptr, ptr) #0
declare void @TrackingAllocator.init.40(ptr sret({ { ptr, ptr, ptr }, i64, i64, i64 }), ptr, ptr) #0
; Function Attrs: nounwind
declare void @TrackingAllocator.report.40(ptr, ptr) #0
declare i64 @TrackingAllocator.leak_count.41(ptr, ptr) #0
; Function Attrs: nounwind
declare ptr @TrackingAllocator.alloc_bytes.41(ptr, ptr, i64) #0
declare void @TrackingAllocator.report.42(ptr, ptr) #0
; Function Attrs: nounwind
declare void @TrackingAllocator.dealloc_bytes.42(ptr, ptr, ptr) #0
declare ptr @TrackingAllocator.alloc_bytes.43(ptr, ptr, i64) #0
; Function Attrs: nounwind
declare i32 @open.43(ptr, i32, ...) #0
declare void @TrackingAllocator.dealloc_bytes.44(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare i32 @close.44(i32) #0
declare i32 @open.45(ptr, i32, ...) #0
; Function Attrs: nounwind
declare i64 @read.45(i32, ptr, i64) #0
declare i32 @close.46(i32) #0
; Function Attrs: nounwind
declare i64 @lseek.46(i32, i64, i32) #0
declare i64 @read.47(i32, ptr, i64) #0
; Function Attrs: nounwind
declare i32 @unlink.47(ptr) #0
declare i64 @lseek.48(i32, i64, i32) #0
; Function Attrs: nounwind
declare i32 @rmdir.48(ptr) #0
declare i32 @unlink.49(ptr) #0
; Function Attrs: nounwind
declare i32 @mkdir.49(ptr, i32) #0
declare i32 @rmdir.50(ptr) #0
; Function Attrs: nounwind
declare i32 @access.50(ptr, i32) #0
declare i32 @mkdir.51(ptr, i32) #0
; Function Attrs: nounwind
declare i32 @chmod.51(ptr, i32) #0
declare i32 @access.52(ptr, i32) #0
; Function Attrs: nounwind
declare i32 @rename.52(ptr, ptr) #0
declare i32 @chmod.53(ptr, i32) #0
; Function Attrs: nounwind
declare i1 @File.is_valid.53(ptr, ptr) #0
declare i32 @rename.54(ptr, ptr) #0
; Function Attrs: nounwind
declare i1 @File.close.54(ptr, ptr) #0
declare i1 @File.is_valid.55(ptr, ptr) #0
; Function Attrs: nounwind
declare i64 @File.read.55(ptr, ptr, ptr) #0
declare i1 @File.close.56(ptr, ptr) #0
; Function Attrs: nounwind
declare i64 @File.write.56(ptr, ptr, ptr) #0
declare i64 @File.read.57(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare i64 @File.seek.57(ptr, ptr, i64, i64) #0
declare i64 @File.write.58(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare i32 @mode_to_flags.58(ptr, i64) #0
declare i64 @File.seek.59(ptr, ptr, i64, i64) #0
; Function Attrs: nounwind
declare i64 @open_file.59(ptr, ptr, i64) #0
declare i32 @mode_to_flags.60(ptr, i64) #0
; Function Attrs: nounwind
declare void @read_file.60(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0
declare i64 @open_file.61(ptr, ptr, i64) #0
; Function Attrs: nounwind
declare i1 @write_file.61(ptr, ptr, ptr) #0
declare void @read_file.62(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0
; Function Attrs: nounwind
declare i1 @append_file.62(ptr, ptr, ptr) #0
declare i1 @write_file.63(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare i1 @exists.63(ptr, ptr) #0
declare i1 @append_file.64(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare i1 @delete_file.64(ptr, ptr) #0
declare i1 @exists.65(ptr, ptr) #0
; Function Attrs: nounwind
declare i1 @delete_dir.65(ptr, ptr) #0
declare i1 @delete_file.66(ptr, ptr) #0
; Function Attrs: nounwind
declare i1 @create_dir.66(ptr, ptr) #0
declare i1 @delete_dir.67(ptr, ptr) #0
; Function Attrs: nounwind
declare i1 @set_mode.67(ptr, ptr, i32) #0
declare i1 @create_dir.68(ptr, ptr) #0
; Function Attrs: nounwind
declare i1 @move.68(ptr, ptr, ptr) #0
declare i1 @set_mode.69(ptr, ptr, i32) #0
; Function Attrs: nounwind
declare i1 @create_dir_all.69(ptr, ptr) #0
declare i1 @move.70(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare i1 @copy_file.70(ptr, ptr, ptr) #0
declare i1 @create_dir_all.71(ptr, ptr) #0
; Function Attrs: nounwind
declare ptr @basename.71(ptr, ptr) #0
declare i1 @copy_file.72(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare ptr @dirname.72(ptr, ptr) #0
declare ptr @basename.73(ptr, ptr) #0
; Function Attrs: nounwind
declare ptr @dirname.74(ptr, ptr) #0
; Function Attrs: nounwind
declare void @Array.add(ptr, ptr, ptr, ptr) #0
@@ -1201,64 +1210,64 @@ declare ptr @BuildOptions.jni_main_java_source_at(i64, i64) #0
declare i64 @build_options() #0
; Function Attrs: nounwind
declare ptr @spaces.73(ptr, i32) #0
declare ptr @spaces.75(ptr, i32) #0
; Function Attrs: nounwind
declare i32 @sx_trace_len.74() #0
declare i32 @sx_trace_len.76() #0
; Function Attrs: nounwind
declare i32 @sx_trace_truncated.75() #0
declare i32 @sx_trace_truncated.77() #0
; Function Attrs: nounwind
declare i64 @sx_trace_frame_at.76(i32) #0
declare i64 @sx_trace_frame_at.78(i32) #0
; Function Attrs: nounwind
declare ptr @to_string.77(ptr) #0
declare ptr @to_string.79(ptr) #0
; Function Attrs: nounwind
declare void @print_current.78(ptr) #0
declare void @print_current.80(ptr) #0
; Function Attrs: nounwind
declare void @print_interpreter_frames.79(ptr) #0
declare void @print_interpreter_frames.81(ptr) #0
; Function Attrs: nounwind
declare ptr @popen.80(ptr, ptr) #0
declare ptr @popen.82(ptr, ptr) #0
; Function Attrs: nounwind
declare i32 @pclose.81(ptr) #0
declare i32 @pclose.83(ptr) #0
; Function Attrs: nounwind
declare i64 @fread.82(ptr, i64, i64, ptr) #0
declare i64 @fread.84(ptr, i64, i64, ptr) #0
; Function Attrs: nounwind
declare i32 @feof.83(ptr) #0
declare i32 @feof.85(ptr) #0
; Function Attrs: nounwind
declare ptr @getenv.84(ptr) #0
declare ptr @getenv.86(ptr) #0
; Function Attrs: nounwind
declare i64 @strlen.85(ptr) #0
declare i64 @strlen.87(ptr) #0
; Function Attrs: nounwind
declare i32 @system.86(ptr) #0
declare i32 @system.88(ptr) #0
; Function Attrs: nounwind
declare void @run.87(ptr sret({ { i32, { ptr, i64 } }, i1 }), ptr, ptr) #0
declare void @run.89(ptr sret({ { i32, { ptr, i64 } }, i1 }), ptr, ptr) #0
; Function Attrs: nounwind
declare void @env.88(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0
declare void @env.90(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0
; Function Attrs: nounwind
declare void @find_executable.89(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0
declare void @find_executable.91(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0
; Function Attrs: nounwind
declare void @_exit.90(i32) #0
declare void @_exit.92(i32) #0
; Function Attrs: nounwind
declare void @exit.91(ptr, i8, ptr) #0
declare void @exit.93(ptr, i8, ptr) #0
; Function Attrs: nounwind
declare void @assert.92(ptr, i1, ptr, ptr) #0
declare void @assert.94(ptr, i1, ptr, ptr) #0
; Function Attrs: nounwind
declare ptr @_NSGetArgv() #0
@@ -1288,97 +1297,97 @@ declare ptr @Parsed.value_of(ptr, ptr, ptr) #0
declare i1 @is_long_flag(ptr, ptr) #0
; Function Attrs: nounwind
declare void @parse.93(ptr sret({ { { ptr, i64 }, { ptr, i64 }, i64, i1, { ptr, i64 }, { ptr, i64 }, [16 x { i1, { ptr, i64 } }] }, i32 }), ptr, ptr, ptr, ptr) #0
declare void @parse.95(ptr sret({ { { ptr, i64 }, { ptr, i64 }, i64, i1, { ptr, i64 }, { ptr, i64 }, [16 x { i1, { ptr, i64 } }] }, i32 }), ptr, ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare i32 @open.94(ptr, i32, ...) #0
declare i32 @open.96(ptr, i32, ...) #0
; Function Attrs: nounwind
declare i32 @close.95(i32) #0
declare i32 @close.97(i32) #0
; Function Attrs: nounwind
declare i64 @read.96(i32, ptr, i64) #0
declare i64 @read.98(i32, ptr, i64) #0
; Function Attrs: nounwind
declare i64 @lseek.97(i32, i64, i32) #0
declare i64 @lseek.99(i32, i64, i32) #0
; Function Attrs: nounwind
declare i32 @unlink.98(ptr) #0
declare i32 @unlink.100(ptr) #0
; Function Attrs: nounwind
declare i32 @rmdir.99(ptr) #0
declare i32 @rmdir.101(ptr) #0
; Function Attrs: nounwind
declare i32 @mkdir.100(ptr, i32) #0
declare i32 @mkdir.102(ptr, i32) #0
; Function Attrs: nounwind
declare i32 @access.101(ptr, i32) #0
declare i32 @access.103(ptr, i32) #0
; Function Attrs: nounwind
declare i32 @chmod.102(ptr, i32) #0
declare i32 @chmod.104(ptr, i32) #0
; Function Attrs: nounwind
declare i32 @rename.103(ptr, ptr) #0
declare i32 @rename.105(ptr, ptr) #0
; Function Attrs: nounwind
declare i1 @File.is_valid.104(ptr, ptr) #0
declare i1 @File.is_valid.106(ptr, ptr) #0
; Function Attrs: nounwind
declare i1 @File.close.105(ptr, ptr) #0
declare i1 @File.close.107(ptr, ptr) #0
; Function Attrs: nounwind
declare i64 @File.read.106(ptr, ptr, ptr) #0
declare i64 @File.read.108(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare i64 @File.write.107(ptr, ptr, ptr) #0
declare i64 @File.write.109(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare i64 @File.seek.108(ptr, ptr, i64, i64) #0
declare i64 @File.seek.110(ptr, ptr, i64, i64) #0
; Function Attrs: nounwind
declare i32 @mode_to_flags.109(ptr, i64) #0
declare i32 @mode_to_flags.111(ptr, i64) #0
; Function Attrs: nounwind
declare i64 @open_file.110(ptr, ptr, i64) #0
declare i64 @open_file.112(ptr, ptr, i64) #0
; Function Attrs: nounwind
declare void @read_file.111(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0
declare void @read_file.113(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0
; Function Attrs: nounwind
declare i1 @write_file.112(ptr, ptr, ptr) #0
declare i1 @write_file.114(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare i1 @append_file.113(ptr, ptr, ptr) #0
declare i1 @append_file.115(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare i1 @exists.114(ptr, ptr) #0
declare i1 @exists.116(ptr, ptr) #0
; Function Attrs: nounwind
declare i1 @delete_file.115(ptr, ptr) #0
declare i1 @delete_file.117(ptr, ptr) #0
; Function Attrs: nounwind
declare i1 @delete_dir.116(ptr, ptr) #0
declare i1 @delete_dir.118(ptr, ptr) #0
; Function Attrs: nounwind
declare i1 @create_dir.117(ptr, ptr) #0
declare i1 @create_dir.119(ptr, ptr) #0
; Function Attrs: nounwind
declare i1 @set_mode.118(ptr, ptr, i32) #0
declare i1 @set_mode.120(ptr, ptr, i32) #0
; Function Attrs: nounwind
declare i1 @move.119(ptr, ptr, ptr) #0
declare i1 @move.121(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare i1 @create_dir_all.120(ptr, ptr) #0
declare i1 @create_dir_all.122(ptr, ptr) #0
; Function Attrs: nounwind
declare i1 @copy_file.121(ptr, ptr, ptr) #0
declare i1 @copy_file.123(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare ptr @basename.122(ptr, ptr) #0
declare ptr @basename.124(ptr, ptr) #0
; Function Attrs: nounwind
declare ptr @dirname.123(ptr, ptr) #0
declare ptr @dirname.125(ptr, ptr) #0
; Function Attrs: nounwind
declare i64 @rotr(ptr, i64, i64) #0
@@ -1417,7 +1426,7 @@ declare [64 x i8] @sha256_hex(ptr, ptr) #0
declare void @sha256_file(ptr sret({ [64 x i8], i1 }), ptr, ptr) #0
; Function Attrs: nounwind
declare void @assert.124(ptr, i1) #0
declare void @assert.126(ptr, i1) #0
; Function Attrs: nounwind
define internal void @unused_jni(ptr %0, ptr %1, ptr %2) #0 {
@@ -1445,7 +1454,7 @@ jni.miss: ; preds = %entry
store ptr %jni.global.cls, ptr @SX_JNI_CLS_noop____V, align 8
%5 = getelementptr inbounds ptr, ptr %jni.ifs, i32 33
%jni.GetMethodID = load ptr, ptr %5, align 8
%jni.fresh.mid = call ptr %jni.GetMethodID(ptr %load, ptr %jni.global.cls, ptr @str.140, ptr @str.141)
%jni.fresh.mid = call ptr %jni.GetMethodID(ptr %load, ptr %jni.global.cls, ptr @str.142, ptr @str.143)
store ptr %jni.fresh.mid, ptr @SX_JNI_MID_noop____V, align 8
br label %jni.cont
@@ -1497,14 +1506,14 @@ declare void @sx_jni_env_tl_set(ptr) #0
define internal void @print__ct_sbdbafa1a5fe828c0__pack(ptr %0) #0 {
entry:
%alloca = alloca { ptr, i64 }, align 8
store { ptr, i64 } { ptr @str.142, i64 3 }, ptr %alloca, align 8
store { ptr, i64 } { ptr @str.144, i64 3 }, ptr %alloca, align 8
%allocaN = alloca { ptr, i64 }, align 8
%gep = getelementptr inbounds { ptr, i64 }, ptr %allocaN, i32 0, i32 0
store ptr null, ptr %gep, align 8
%gepN = getelementptr inbounds { ptr, i64 }, ptr %allocaN, i32 0, i32 1
store i64 0, ptr %gepN, align 8
%allocaN = alloca { ptr, i64 }, align 8
store { ptr, i64 } { ptr @str.143, i64 0 }, ptr %allocaN, align 8
store { ptr, i64 } { ptr @str.145, i64 0 }, ptr %allocaN, align 8
%load = load { ptr, i64 }, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %alloca, align 8
%call = call { ptr, i64 } @substr(ptr %0, { ptr, i64 } %loadN, i64 0, i64 3)
@@ -1520,6 +1529,6 @@ entry:
; Function Attrs: nounwind
define internal { ptr, i64 } @__insert_0(ptr %0) #0 {
entry:
%call = call { ptr, i64 } @build_format(ptr %0, { ptr, i64 } { ptr @str.144, i64 3 })
%call = call { ptr, i64 } @build_format(ptr %0, { ptr, i64 } { ptr @str.146, i64 3 })
ret { ptr, i64 } %call
}

View File

@@ -2,10 +2,10 @@
@g_held_view = internal global ptr null
@__sx_default_context = internal constant { { ptr, ptr, ptr }, ptr } { { ptr, ptr, ptr } { ptr null, ptr @__thunk_CAllocator_Allocator_alloc_bytes, ptr @__thunk_CAllocator_Allocator_dealloc_bytes }, ptr null }
@str = private unnamed_addr constant [9 x i8] c"onCreate\00", align 1
@str.162 = private unnamed_addr constant [23 x i8] c"(Landroid/os/Bundle;)V\00", align 1
@str.164 = private unnamed_addr constant [23 x i8] c"(Landroid/os/Bundle;)V\00", align 1
@jni.parent.path = private unnamed_addr constant [21 x i8] c"android/app/Activity\00", align 1
@str.163 = private unnamed_addr constant [7 x i8] c"<init>\00", align 1
@str.164 = private unnamed_addr constant [29 x i8] c"(Landroid/content/Context;)V\00", align 1
@str.165 = private unnamed_addr constant [7 x i8] c"<init>\00", align 1
@str.166 = private unnamed_addr constant [29 x i8] c"(Landroid/content/Context;)V\00", align 1
@jni.ctor.path = private unnamed_addr constant [25 x i8] c"android/view/SurfaceView\00", align 1
; Function Attrs: nounwind
@@ -19,6 +19,9 @@ declare ptr @memcpy(ptr, ptr, i64)
declare ptr @memset(ptr, i32, i64)
; Function Attrs: nounwind
declare ptr @mem_realloc(ptr, ptr, ptr, i64, i64, i64) #0
; Function Attrs: nounwind
define internal ptr @CAllocator.alloc_bytes(ptr %0, ptr %1, i64 %2) #0 {
entry:
@@ -137,64 +140,67 @@ declare ptr @any_to_string(ptr, [2 x i64]) #0
declare ptr @build_format(ptr, ptr) #0
; Function Attrs: nounwind
declare ptr @CAllocator.alloc_bytes.1(ptr, ptr, i64) #0
declare ptr @mem_realloc.1(ptr, ptr, ptr, i64, i64, i64) #0
; Function Attrs: nounwind
declare void @CAllocator.dealloc_bytes.2(ptr, ptr, ptr) #0
declare ptr @CAllocator.alloc_bytes.2(ptr, ptr, i64) #0
; Function Attrs: nounwind
declare i64 @GPA.init.3(ptr) #0
declare void @CAllocator.dealloc_bytes.3(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare ptr @GPA.alloc_bytes.4(ptr, ptr, i64) #0
declare i64 @GPA.init.4(ptr) #0
; Function Attrs: nounwind
declare void @GPA.dealloc_bytes.5(ptr, ptr, ptr) #0
declare ptr @GPA.alloc_bytes.5(ptr, ptr, i64) #0
; Function Attrs: nounwind
declare void @Arena.add_chunk.6(ptr, ptr, i64) #0
declare void @GPA.dealloc_bytes.6(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare void @Arena.init.7(ptr sret({ ptr, i64, { ptr, ptr, ptr } }), ptr, ptr, i64) #0
declare void @Arena.add_chunk.7(ptr, ptr, i64) #0
; Function Attrs: nounwind
declare void @Arena.reset.8(ptr, ptr) #0
declare void @Arena.init.8(ptr sret({ ptr, i64, { ptr, ptr, ptr } }), ptr, ptr, i64) #0
; Function Attrs: nounwind
declare void @Arena.deinit.9(ptr, ptr) #0
declare void @Arena.reset.9(ptr, ptr) #0
; Function Attrs: nounwind
declare ptr @Arena.alloc_bytes.10(ptr, ptr, i64) #0
declare void @Arena.deinit.10(ptr, ptr) #0
; Function Attrs: nounwind
declare void @Arena.dealloc_bytes.11(ptr, ptr, ptr) #0
declare ptr @Arena.alloc_bytes.11(ptr, ptr, i64) #0
; Function Attrs: nounwind
declare ptr @BufAlloc.init.12(ptr, ptr, i64) #0
declare void @Arena.dealloc_bytes.12(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare void @BufAlloc.reset.13(ptr, ptr) #0
declare ptr @BufAlloc.init.13(ptr, ptr, i64) #0
; Function Attrs: nounwind
declare ptr @BufAlloc.alloc_bytes.14(ptr, ptr, i64) #0
declare void @BufAlloc.reset.14(ptr, ptr) #0
; Function Attrs: nounwind
declare void @BufAlloc.dealloc_bytes.15(ptr, ptr, ptr) #0
declare ptr @BufAlloc.alloc_bytes.15(ptr, ptr, i64) #0
; Function Attrs: nounwind
declare void @TrackingAllocator.init.16(ptr sret({ { ptr, ptr, ptr }, i64, i64, i64 }), ptr, ptr) #0
declare void @BufAlloc.dealloc_bytes.16(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare i64 @TrackingAllocator.leak_count.17(ptr, ptr) #0
declare void @TrackingAllocator.init.17(ptr sret({ { ptr, ptr, ptr }, i64, i64, i64 }), ptr, ptr) #0
; Function Attrs: nounwind
declare void @TrackingAllocator.report.18(ptr, ptr) #0
declare i64 @TrackingAllocator.leak_count.18(ptr, ptr) #0
; Function Attrs: nounwind
declare ptr @TrackingAllocator.alloc_bytes.19(ptr, ptr, i64) #0
declare void @TrackingAllocator.report.19(ptr, ptr) #0
; Function Attrs: nounwind
declare void @TrackingAllocator.dealloc_bytes.20(ptr, ptr, ptr) #0
declare ptr @TrackingAllocator.alloc_bytes.20(ptr, ptr, i64) #0
; Function Attrs: nounwind
declare void @TrackingAllocator.dealloc_bytes.21(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare ptr @escape(ptr, ptr) #0
@@ -370,163 +376,166 @@ declare i32 @listen(i32, i32) #0
declare i32 @accept(i32, ptr, ptr) #0
; Function Attrs: nounwind
declare i64 @read.21(i32, ptr, i64) #0
declare i64 @read.22(i32, ptr, i64) #0
; Function Attrs: nounwind
declare i32 @close.22(i32) #0
declare i32 @close.23(i32) #0
; Function Attrs: nounwind
declare i16 @htons(ptr, i64) #0
; Function Attrs: nounwind
declare ptr @CAllocator.alloc_bytes.23(ptr, ptr, i64) #0
declare ptr @mem_realloc.24(ptr, ptr, ptr, i64, i64, i64) #0
; Function Attrs: nounwind
declare void @CAllocator.dealloc_bytes.24(ptr, ptr, ptr) #0
declare ptr @CAllocator.alloc_bytes.25(ptr, ptr, i64) #0
; Function Attrs: nounwind
declare i64 @GPA.init.25(ptr) #0
declare void @CAllocator.dealloc_bytes.26(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare ptr @GPA.alloc_bytes.26(ptr, ptr, i64) #0
declare i64 @GPA.init.27(ptr) #0
; Function Attrs: nounwind
declare void @GPA.dealloc_bytes.27(ptr, ptr, ptr) #0
declare ptr @GPA.alloc_bytes.28(ptr, ptr, i64) #0
; Function Attrs: nounwind
declare void @Arena.add_chunk.28(ptr, ptr, i64) #0
declare void @GPA.dealloc_bytes.29(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare void @Arena.init.29(ptr sret({ ptr, i64, { ptr, ptr, ptr } }), ptr, ptr, i64) #0
declare void @Arena.add_chunk.30(ptr, ptr, i64) #0
; Function Attrs: nounwind
declare void @Arena.reset.30(ptr, ptr) #0
declare void @Arena.init.31(ptr sret({ ptr, i64, { ptr, ptr, ptr } }), ptr, ptr, i64) #0
; Function Attrs: nounwind
declare void @Arena.deinit.31(ptr, ptr) #0
declare void @Arena.reset.32(ptr, ptr) #0
; Function Attrs: nounwind
declare ptr @Arena.alloc_bytes.32(ptr, ptr, i64) #0
declare void @Arena.deinit.33(ptr, ptr) #0
; Function Attrs: nounwind
declare void @Arena.dealloc_bytes.33(ptr, ptr, ptr) #0
declare ptr @Arena.alloc_bytes.34(ptr, ptr, i64) #0
; Function Attrs: nounwind
declare ptr @BufAlloc.init.34(ptr, ptr, i64) #0
declare void @Arena.dealloc_bytes.35(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare void @BufAlloc.reset.35(ptr, ptr) #0
declare ptr @BufAlloc.init.36(ptr, ptr, i64) #0
; Function Attrs: nounwind
declare ptr @BufAlloc.alloc_bytes.36(ptr, ptr, i64) #0
declare void @BufAlloc.reset.37(ptr, ptr) #0
; Function Attrs: nounwind
declare void @BufAlloc.dealloc_bytes.37(ptr, ptr, ptr) #0
declare ptr @BufAlloc.alloc_bytes.38(ptr, ptr, i64) #0
; Function Attrs: nounwind
declare void @TrackingAllocator.init.38(ptr sret({ { ptr, ptr, ptr }, i64, i64, i64 }), ptr, ptr) #0
declare void @BufAlloc.dealloc_bytes.39(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare i64 @TrackingAllocator.leak_count.39(ptr, ptr) #0
declare void @TrackingAllocator.init.40(ptr sret({ { ptr, ptr, ptr }, i64, i64, i64 }), ptr, ptr) #0
; Function Attrs: nounwind
declare void @TrackingAllocator.report.40(ptr, ptr) #0
declare i64 @TrackingAllocator.leak_count.41(ptr, ptr) #0
; Function Attrs: nounwind
declare ptr @TrackingAllocator.alloc_bytes.41(ptr, ptr, i64) #0
declare void @TrackingAllocator.report.42(ptr, ptr) #0
; Function Attrs: nounwind
declare void @TrackingAllocator.dealloc_bytes.42(ptr, ptr, ptr) #0
declare ptr @TrackingAllocator.alloc_bytes.43(ptr, ptr, i64) #0
; Function Attrs: nounwind
declare i32 @open.43(ptr, i32, ...) #0
declare void @TrackingAllocator.dealloc_bytes.44(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare i32 @close.44(i32) #0
declare i32 @open.45(ptr, i32, ...) #0
; Function Attrs: nounwind
declare i64 @read.45(i32, ptr, i64) #0
declare i32 @close.46(i32) #0
; Function Attrs: nounwind
declare i64 @lseek.46(i32, i64, i32) #0
declare i64 @read.47(i32, ptr, i64) #0
; Function Attrs: nounwind
declare i32 @unlink.47(ptr) #0
declare i64 @lseek.48(i32, i64, i32) #0
; Function Attrs: nounwind
declare i32 @rmdir.48(ptr) #0
declare i32 @unlink.49(ptr) #0
; Function Attrs: nounwind
declare i32 @mkdir.49(ptr, i32) #0
declare i32 @rmdir.50(ptr) #0
; Function Attrs: nounwind
declare i32 @access.50(ptr, i32) #0
declare i32 @mkdir.51(ptr, i32) #0
; Function Attrs: nounwind
declare i32 @chmod.51(ptr, i32) #0
declare i32 @access.52(ptr, i32) #0
; Function Attrs: nounwind
declare i32 @rename.52(ptr, ptr) #0
declare i32 @chmod.53(ptr, i32) #0
; Function Attrs: nounwind
declare i1 @File.is_valid.53(ptr, ptr) #0
declare i32 @rename.54(ptr, ptr) #0
; Function Attrs: nounwind
declare i1 @File.close.54(ptr, ptr) #0
declare i1 @File.is_valid.55(ptr, ptr) #0
; Function Attrs: nounwind
declare i64 @File.read.55(ptr, ptr, ptr) #0
declare i1 @File.close.56(ptr, ptr) #0
; Function Attrs: nounwind
declare i64 @File.write.56(ptr, ptr, ptr) #0
declare i64 @File.read.57(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare i64 @File.seek.57(ptr, ptr, i64, i64) #0
declare i64 @File.write.58(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare i32 @mode_to_flags.58(ptr, i64) #0
declare i64 @File.seek.59(ptr, ptr, i64, i64) #0
; Function Attrs: nounwind
declare i64 @open_file.59(ptr, ptr, i64) #0
declare i32 @mode_to_flags.60(ptr, i64) #0
; Function Attrs: nounwind
declare void @read_file.60(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0
declare i64 @open_file.61(ptr, ptr, i64) #0
; Function Attrs: nounwind
declare i1 @write_file.61(ptr, ptr, ptr) #0
declare void @read_file.62(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0
; Function Attrs: nounwind
declare i1 @append_file.62(ptr, ptr, ptr) #0
declare i1 @write_file.63(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare i1 @exists.63(ptr, ptr) #0
declare i1 @append_file.64(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare i1 @delete_file.64(ptr, ptr) #0
declare i1 @exists.65(ptr, ptr) #0
; Function Attrs: nounwind
declare i1 @delete_dir.65(ptr, ptr) #0
declare i1 @delete_file.66(ptr, ptr) #0
; Function Attrs: nounwind
declare i1 @create_dir.66(ptr, ptr) #0
declare i1 @delete_dir.67(ptr, ptr) #0
; Function Attrs: nounwind
declare i1 @set_mode.67(ptr, ptr, i32) #0
declare i1 @create_dir.68(ptr, ptr) #0
; Function Attrs: nounwind
declare i1 @move.68(ptr, ptr, ptr) #0
declare i1 @set_mode.69(ptr, ptr, i32) #0
; Function Attrs: nounwind
declare i1 @create_dir_all.69(ptr, ptr) #0
declare i1 @move.70(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare i1 @copy_file.70(ptr, ptr, ptr) #0
declare i1 @create_dir_all.71(ptr, ptr) #0
; Function Attrs: nounwind
declare ptr @basename.71(ptr, ptr) #0
declare i1 @copy_file.72(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare ptr @dirname.72(ptr, ptr) #0
declare ptr @basename.73(ptr, ptr) #0
; Function Attrs: nounwind
declare ptr @dirname.74(ptr, ptr) #0
; Function Attrs: nounwind
declare void @Array.add(ptr, ptr, ptr, ptr) #0
@@ -724,64 +733,64 @@ declare ptr @BuildOptions.jni_main_java_source_at(i64, i64) #0
declare i64 @build_options() #0
; Function Attrs: nounwind
declare ptr @spaces.73(ptr, i32) #0
declare ptr @spaces.75(ptr, i32) #0
; Function Attrs: nounwind
declare i32 @sx_trace_len.74() #0
declare i32 @sx_trace_len.76() #0
; Function Attrs: nounwind
declare i32 @sx_trace_truncated.75() #0
declare i32 @sx_trace_truncated.77() #0
; Function Attrs: nounwind
declare i64 @sx_trace_frame_at.76(i32) #0
declare i64 @sx_trace_frame_at.78(i32) #0
; Function Attrs: nounwind
declare ptr @to_string.77(ptr) #0
declare ptr @to_string.79(ptr) #0
; Function Attrs: nounwind
declare void @print_current.78(ptr) #0
declare void @print_current.80(ptr) #0
; Function Attrs: nounwind
declare void @print_interpreter_frames.79(ptr) #0
declare void @print_interpreter_frames.81(ptr) #0
; Function Attrs: nounwind
declare ptr @popen.80(ptr, ptr) #0
declare ptr @popen.82(ptr, ptr) #0
; Function Attrs: nounwind
declare i32 @pclose.81(ptr) #0
declare i32 @pclose.83(ptr) #0
; Function Attrs: nounwind
declare i64 @fread.82(ptr, i64, i64, ptr) #0
declare i64 @fread.84(ptr, i64, i64, ptr) #0
; Function Attrs: nounwind
declare i32 @feof.83(ptr) #0
declare i32 @feof.85(ptr) #0
; Function Attrs: nounwind
declare ptr @getenv.84(ptr) #0
declare ptr @getenv.86(ptr) #0
; Function Attrs: nounwind
declare i64 @strlen.85(ptr) #0
declare i64 @strlen.87(ptr) #0
; Function Attrs: nounwind
declare i32 @system.86(ptr) #0
declare i32 @system.88(ptr) #0
; Function Attrs: nounwind
declare void @run.87(ptr sret({ { i32, { ptr, i64 } }, i1 }), ptr, ptr) #0
declare void @run.89(ptr sret({ { i32, { ptr, i64 } }, i1 }), ptr, ptr) #0
; Function Attrs: nounwind
declare void @env.88(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0
declare void @env.90(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0
; Function Attrs: nounwind
declare void @find_executable.89(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0
declare void @find_executable.91(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0
; Function Attrs: nounwind
declare void @_exit.90(i32) #0
declare void @_exit.92(i32) #0
; Function Attrs: nounwind
declare void @exit.91(ptr, i8, ptr) #0
declare void @exit.93(ptr, i8, ptr) #0
; Function Attrs: nounwind
declare void @assert.92(ptr, i1, ptr, ptr) #0
declare void @assert.94(ptr, i1, ptr, ptr) #0
; Function Attrs: nounwind
declare ptr @_NSGetArgv() #0
@@ -811,97 +820,97 @@ declare ptr @Parsed.value_of(ptr, ptr, ptr) #0
declare i1 @is_long_flag(ptr, ptr) #0
; Function Attrs: nounwind
declare void @parse.93(ptr sret({ { { ptr, i64 }, { ptr, i64 }, i64, i1, { ptr, i64 }, { ptr, i64 }, [16 x { i1, { ptr, i64 } }] }, i32 }), ptr, ptr, ptr, ptr) #0
declare void @parse.95(ptr sret({ { { ptr, i64 }, { ptr, i64 }, i64, i1, { ptr, i64 }, { ptr, i64 }, [16 x { i1, { ptr, i64 } }] }, i32 }), ptr, ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare i32 @open.94(ptr, i32, ...) #0
declare i32 @open.96(ptr, i32, ...) #0
; Function Attrs: nounwind
declare i32 @close.95(i32) #0
declare i32 @close.97(i32) #0
; Function Attrs: nounwind
declare i64 @read.96(i32, ptr, i64) #0
declare i64 @read.98(i32, ptr, i64) #0
; Function Attrs: nounwind
declare i64 @lseek.97(i32, i64, i32) #0
declare i64 @lseek.99(i32, i64, i32) #0
; Function Attrs: nounwind
declare i32 @unlink.98(ptr) #0
declare i32 @unlink.100(ptr) #0
; Function Attrs: nounwind
declare i32 @rmdir.99(ptr) #0
declare i32 @rmdir.101(ptr) #0
; Function Attrs: nounwind
declare i32 @mkdir.100(ptr, i32) #0
declare i32 @mkdir.102(ptr, i32) #0
; Function Attrs: nounwind
declare i32 @access.101(ptr, i32) #0
declare i32 @access.103(ptr, i32) #0
; Function Attrs: nounwind
declare i32 @chmod.102(ptr, i32) #0
declare i32 @chmod.104(ptr, i32) #0
; Function Attrs: nounwind
declare i32 @rename.103(ptr, ptr) #0
declare i32 @rename.105(ptr, ptr) #0
; Function Attrs: nounwind
declare i1 @File.is_valid.104(ptr, ptr) #0
declare i1 @File.is_valid.106(ptr, ptr) #0
; Function Attrs: nounwind
declare i1 @File.close.105(ptr, ptr) #0
declare i1 @File.close.107(ptr, ptr) #0
; Function Attrs: nounwind
declare i64 @File.read.106(ptr, ptr, ptr) #0
declare i64 @File.read.108(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare i64 @File.write.107(ptr, ptr, ptr) #0
declare i64 @File.write.109(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare i64 @File.seek.108(ptr, ptr, i64, i64) #0
declare i64 @File.seek.110(ptr, ptr, i64, i64) #0
; Function Attrs: nounwind
declare i32 @mode_to_flags.109(ptr, i64) #0
declare i32 @mode_to_flags.111(ptr, i64) #0
; Function Attrs: nounwind
declare i64 @open_file.110(ptr, ptr, i64) #0
declare i64 @open_file.112(ptr, ptr, i64) #0
; Function Attrs: nounwind
declare void @read_file.111(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0
declare void @read_file.113(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0
; Function Attrs: nounwind
declare i1 @write_file.112(ptr, ptr, ptr) #0
declare i1 @write_file.114(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare i1 @append_file.113(ptr, ptr, ptr) #0
declare i1 @append_file.115(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare i1 @exists.114(ptr, ptr) #0
declare i1 @exists.116(ptr, ptr) #0
; Function Attrs: nounwind
declare i1 @delete_file.115(ptr, ptr) #0
declare i1 @delete_file.117(ptr, ptr) #0
; Function Attrs: nounwind
declare i1 @delete_dir.116(ptr, ptr) #0
declare i1 @delete_dir.118(ptr, ptr) #0
; Function Attrs: nounwind
declare i1 @create_dir.117(ptr, ptr) #0
declare i1 @create_dir.119(ptr, ptr) #0
; Function Attrs: nounwind
declare i1 @set_mode.118(ptr, ptr, i32) #0
declare i1 @set_mode.120(ptr, ptr, i32) #0
; Function Attrs: nounwind
declare i1 @move.119(ptr, ptr, ptr) #0
declare i1 @move.121(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare i1 @create_dir_all.120(ptr, ptr) #0
declare i1 @create_dir_all.122(ptr, ptr) #0
; Function Attrs: nounwind
declare i1 @copy_file.121(ptr, ptr, ptr) #0
declare i1 @copy_file.123(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare ptr @basename.122(ptr, ptr) #0
declare ptr @basename.124(ptr, ptr) #0
; Function Attrs: nounwind
declare ptr @dirname.123(ptr, ptr) #0
declare ptr @dirname.125(ptr, ptr) #0
; Function Attrs: nounwind
declare i64 @rotr(ptr, i64, i64) #0
@@ -940,118 +949,118 @@ declare [64 x i8] @sha256_hex(ptr, ptr) #0
declare void @sha256_file(ptr sret({ [64 x i8], i1 }), ptr, ptr) #0
; Function Attrs: nounwind
declare void @assert.124(ptr, i1) #0
declare void @assert.126(ptr, i1) #0
; Function Attrs: nounwind
declare void @BuildOptions.add_link_flag.125(i64, ptr) #0
declare void @BuildOptions.add_link_flag.127(i64, ptr) #0
; Function Attrs: nounwind
declare void @BuildOptions.add_framework.126(i64, ptr) #0
declare void @BuildOptions.add_framework.128(i64, ptr) #0
; Function Attrs: nounwind
declare void @BuildOptions.set_output_path.127(i64, ptr) #0
declare void @BuildOptions.set_output_path.129(i64, ptr) #0
; Function Attrs: nounwind
declare void @BuildOptions.set_wasm_shell.128(i64, ptr) #0
declare void @BuildOptions.set_wasm_shell.130(i64, ptr) #0
; Function Attrs: nounwind
declare void @BuildOptions.add_asset_dir.129(i64, ptr, ptr) #0
declare void @BuildOptions.add_asset_dir.131(i64, ptr, ptr) #0
; Function Attrs: nounwind
declare i64 @BuildOptions.asset_dir_count.130(i64) #0
declare i64 @BuildOptions.asset_dir_count.132(i64) #0
; Function Attrs: nounwind
declare ptr @BuildOptions.asset_dir_src_at.131(i64, i64) #0
declare ptr @BuildOptions.asset_dir_src_at.133(i64, i64) #0
; Function Attrs: nounwind
declare ptr @BuildOptions.asset_dir_dest_at.132(i64, i64) #0
declare ptr @BuildOptions.asset_dir_dest_at.134(i64, i64) #0
; Function Attrs: nounwind
declare void @BuildOptions.set_post_link_callback.133(i64, ptr) #0
declare void @BuildOptions.set_post_link_callback.135(i64, ptr) #0
; Function Attrs: nounwind
declare void @BuildOptions.set_post_link_module.134(i64, ptr) #0
declare void @BuildOptions.set_post_link_module.136(i64, ptr) #0
; Function Attrs: nounwind
declare ptr @BuildOptions.binary_path.135(i64) #0
declare ptr @BuildOptions.binary_path.137(i64) #0
; Function Attrs: nounwind
declare void @BuildOptions.set_bundle_path.136(i64, ptr) #0
declare void @BuildOptions.set_bundle_path.138(i64, ptr) #0
; Function Attrs: nounwind
declare void @BuildOptions.set_bundle_id.137(i64, ptr) #0
declare void @BuildOptions.set_bundle_id.139(i64, ptr) #0
; Function Attrs: nounwind
declare void @BuildOptions.set_codesign_identity.138(i64, ptr) #0
declare void @BuildOptions.set_codesign_identity.140(i64, ptr) #0
; Function Attrs: nounwind
declare void @BuildOptions.set_provisioning_profile.139(i64, ptr) #0
declare void @BuildOptions.set_provisioning_profile.141(i64, ptr) #0
; Function Attrs: nounwind
declare ptr @BuildOptions.bundle_path.140(i64) #0
declare ptr @BuildOptions.bundle_path.142(i64) #0
; Function Attrs: nounwind
declare ptr @BuildOptions.bundle_id.141(i64) #0
declare ptr @BuildOptions.bundle_id.143(i64) #0
; Function Attrs: nounwind
declare ptr @BuildOptions.codesign_identity.142(i64) #0
declare ptr @BuildOptions.codesign_identity.144(i64) #0
; Function Attrs: nounwind
declare ptr @BuildOptions.provisioning_profile.143(i64) #0
declare ptr @BuildOptions.provisioning_profile.145(i64) #0
; Function Attrs: nounwind
declare ptr @BuildOptions.target_triple.144(i64) #0
declare ptr @BuildOptions.target_triple.146(i64) #0
; Function Attrs: nounwind
declare i1 @BuildOptions.is_macos.145(i64) #0
declare i1 @BuildOptions.is_macos.147(i64) #0
; Function Attrs: nounwind
declare i1 @BuildOptions.is_ios.146(i64) #0
declare i1 @BuildOptions.is_ios.148(i64) #0
; Function Attrs: nounwind
declare i1 @BuildOptions.is_ios_device.147(i64) #0
declare i1 @BuildOptions.is_ios_device.149(i64) #0
; Function Attrs: nounwind
declare i1 @BuildOptions.is_ios_simulator.148(i64) #0
declare i1 @BuildOptions.is_ios_simulator.150(i64) #0
; Function Attrs: nounwind
declare i1 @BuildOptions.is_android.149(i64) #0
declare i1 @BuildOptions.is_android.151(i64) #0
; Function Attrs: nounwind
declare i64 @BuildOptions.framework_count.150(i64) #0
declare i64 @BuildOptions.framework_count.152(i64) #0
; Function Attrs: nounwind
declare ptr @BuildOptions.framework_at.151(i64, i64) #0
declare ptr @BuildOptions.framework_at.153(i64, i64) #0
; Function Attrs: nounwind
declare i64 @BuildOptions.framework_path_count.152(i64) #0
declare i64 @BuildOptions.framework_path_count.154(i64) #0
; Function Attrs: nounwind
declare ptr @BuildOptions.framework_path_at.153(i64, i64) #0
declare ptr @BuildOptions.framework_path_at.155(i64, i64) #0
; Function Attrs: nounwind
declare void @BuildOptions.set_manifest_path.154(i64, ptr) #0
declare void @BuildOptions.set_manifest_path.156(i64, ptr) #0
; Function Attrs: nounwind
declare void @BuildOptions.set_keystore_path.155(i64, ptr) #0
declare void @BuildOptions.set_keystore_path.157(i64, ptr) #0
; Function Attrs: nounwind
declare ptr @BuildOptions.manifest_path.156(i64) #0
declare ptr @BuildOptions.manifest_path.158(i64) #0
; Function Attrs: nounwind
declare ptr @BuildOptions.keystore_path.157(i64) #0
declare ptr @BuildOptions.keystore_path.159(i64) #0
; Function Attrs: nounwind
declare i64 @BuildOptions.jni_main_count.158(i64) #0
declare i64 @BuildOptions.jni_main_count.160(i64) #0
; Function Attrs: nounwind
declare ptr @BuildOptions.jni_main_foreign_path_at.159(i64, i64) #0
declare ptr @BuildOptions.jni_main_foreign_path_at.161(i64, i64) #0
; Function Attrs: nounwind
declare ptr @BuildOptions.jni_main_java_source_at.160(i64, i64) #0
declare ptr @BuildOptions.jni_main_java_source_at.162(i64, i64) #0
; Function Attrs: nounwind
declare i64 @build_options.161() #0
declare i64 @build_options.163() #0
; Function Attrs: nounwind
define i32 @main() #0 {
@@ -1091,7 +1100,7 @@ entry:
%jni.parent.cls = call ptr %jni.FindClass(ptr %load, ptr @jni.parent.path)
%4 = getelementptr inbounds ptr, ptr %jni.ifs, i32 33
%jni.GetMethodID = load ptr, ptr %4, align 8
%jni.mid = call ptr %jni.GetMethodID(ptr %load, ptr %jni.parent.cls, ptr @str, ptr @str.162)
%jni.mid = call ptr %jni.GetMethodID(ptr %load, ptr %jni.parent.cls, ptr @str, ptr @str.164)
%jni.parent.cls.slot = alloca ptr, align 8
store ptr %jni.parent.cls, ptr %jni.parent.cls.slot, align 8
%5 = getelementptr inbounds ptr, ptr %jni.ifs, i32 91
@@ -1107,7 +1116,7 @@ entry:
%jni.ctor.cls = call ptr %jni.FindClass9(ptr %load, ptr @jni.ctor.path)
%7 = getelementptr inbounds ptr, ptr %jni.ifs8, i32 33
%jni.GetMethodID10 = load ptr, ptr %7, align 8
%jni.ctor.mid = call ptr %jni.GetMethodID10(ptr %load, ptr %jni.ctor.cls, ptr @str.163, ptr @str.164)
%jni.ctor.mid = call ptr %jni.GetMethodID10(ptr %load, ptr %jni.ctor.cls, ptr @str.165, ptr @str.166)
%8 = getelementptr inbounds ptr, ptr %jni.ifs8, i32 28
%jni.NewObject = load ptr, ptr %8, align 8
%jni.new.obj = call ptr %jni.NewObject(ptr %load, ptr %jni.ctor.cls, ptr %jni.ctor.mid, ptr %loadN)