std: drop the redundant flat mem.sx import from the facade

The flat #import of mem.sx predated the namespace tail — the tail's
mem :: #import already puts mem.sx in the program graph, which is all
the ufcs helpers (context.allocator.create/alloc/free/clone) and the
CAllocator default-context machinery need; std.sx itself references no
mem name. Probe-verified the full mem surface + all gates: suite
588/588, zig build test 0, m3te 23/23, game builds + bundles. The
double import was also duplicating lowered IR — the 37 re-pinned .ir
snapshots net ~2.5k lines smaller; output streams byte-identical.
This commit is contained in:
agra
2026-06-11 21:25:32 +03:00
parent 49a36bb492
commit c75cd9c63c
38 changed files with 25752 additions and 28274 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

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

@@ -138,69 +138,6 @@ declare ptr @TrackingAllocator.alloc_bytes(ptr, ptr, i64) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @TrackingAllocator.dealloc_bytes(ptr, ptr, ptr) #0 declare void @TrackingAllocator.dealloc_bytes(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare ptr @mem_realloc.3(ptr, ptr, ptr, i64, i64, i64) #0
; Function Attrs: nounwind
declare ptr @CAllocator.alloc_bytes.4(ptr, ptr, i64) #0
; Function Attrs: nounwind
declare void @CAllocator.dealloc_bytes.5(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare i64 @GPA.init.6(ptr) #0
; Function Attrs: nounwind
declare ptr @GPA.alloc_bytes.7(ptr, ptr, i64) #0
; Function Attrs: nounwind
declare void @GPA.dealloc_bytes.8(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare void @Arena.add_chunk.9(ptr, ptr, i64) #0
; Function Attrs: nounwind
declare void @Arena.init.10(ptr sret({ ptr, i64, { ptr, ptr, ptr } }), ptr, ptr, i64) #0
; Function Attrs: nounwind
declare void @Arena.reset.11(ptr, ptr) #0
; Function Attrs: nounwind
declare void @Arena.deinit.12(ptr, ptr) #0
; Function Attrs: nounwind
declare ptr @Arena.alloc_bytes.13(ptr, ptr, i64) #0
; Function Attrs: nounwind
declare void @Arena.dealloc_bytes.14(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare void @BufAlloc.init.15(ptr sret({ ptr, i64, i64 }), ptr, ptr, i64) #0
; Function Attrs: nounwind
declare void @BufAlloc.reset.16(ptr, ptr) #0
; Function Attrs: nounwind
declare ptr @BufAlloc.alloc_bytes.17(ptr, ptr, i64) #0
; Function Attrs: nounwind
declare void @BufAlloc.dealloc_bytes.18(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare void @TrackingAllocator.init.19(ptr sret({ { ptr, ptr, ptr }, i64, i64, i64 }), ptr, ptr) #0
; Function Attrs: nounwind
declare i64 @TrackingAllocator.leak_count.20(ptr, ptr) #0
; Function Attrs: nounwind
declare void @TrackingAllocator.report.21(ptr, ptr) #0
; Function Attrs: nounwind
declare ptr @TrackingAllocator.alloc_bytes.22(ptr, ptr, i64) #0
; Function Attrs: nounwind
declare void @TrackingAllocator.dealloc_bytes.23(ptr, ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare ptr @escape(ptr, ptr) #0 declare ptr @escape(ptr, ptr) #0
@@ -375,166 +312,166 @@ declare i32 @listen(i32, i32) #0
declare i32 @accept(i32, ptr, ptr) #0 declare i32 @accept(i32, ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i64 @read.24(i32, ptr, i64) #0 declare i64 @read.3(i32, ptr, i64) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i32 @close.25(i32) #0 declare i32 @close.4(i32) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i16 @htons(ptr, i64) #0 declare i16 @htons(ptr, i64) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare ptr @mem_realloc.26(ptr, ptr, ptr, i64, i64, i64) #0 declare ptr @mem_realloc.5(ptr, ptr, ptr, i64, i64, i64) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare ptr @CAllocator.alloc_bytes.27(ptr, ptr, i64) #0 declare ptr @CAllocator.alloc_bytes.6(ptr, ptr, i64) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @CAllocator.dealloc_bytes.28(ptr, ptr, ptr) #0 declare void @CAllocator.dealloc_bytes.7(ptr, ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i64 @GPA.init.29(ptr) #0 declare i64 @GPA.init.8(ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare ptr @GPA.alloc_bytes.30(ptr, ptr, i64) #0 declare ptr @GPA.alloc_bytes.9(ptr, ptr, i64) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @GPA.dealloc_bytes.31(ptr, ptr, ptr) #0 declare void @GPA.dealloc_bytes.10(ptr, ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @Arena.add_chunk.32(ptr, ptr, i64) #0 declare void @Arena.add_chunk.11(ptr, ptr, i64) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @Arena.init.33(ptr sret({ ptr, i64, { ptr, ptr, ptr } }), ptr, ptr, i64) #0 declare void @Arena.init.12(ptr sret({ ptr, i64, { ptr, ptr, ptr } }), ptr, ptr, i64) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @Arena.reset.34(ptr, ptr) #0 declare void @Arena.reset.13(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @Arena.deinit.35(ptr, ptr) #0 declare void @Arena.deinit.14(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare ptr @Arena.alloc_bytes.36(ptr, ptr, i64) #0 declare ptr @Arena.alloc_bytes.15(ptr, ptr, i64) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @Arena.dealloc_bytes.37(ptr, ptr, ptr) #0 declare void @Arena.dealloc_bytes.16(ptr, ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @BufAlloc.init.38(ptr sret({ ptr, i64, i64 }), ptr, ptr, i64) #0 declare void @BufAlloc.init.17(ptr sret({ ptr, i64, i64 }), ptr, ptr, i64) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @BufAlloc.reset.39(ptr, ptr) #0 declare void @BufAlloc.reset.18(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare ptr @BufAlloc.alloc_bytes.40(ptr, ptr, i64) #0 declare ptr @BufAlloc.alloc_bytes.19(ptr, ptr, i64) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @BufAlloc.dealloc_bytes.41(ptr, ptr, ptr) #0 declare void @BufAlloc.dealloc_bytes.20(ptr, ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @TrackingAllocator.init.42(ptr sret({ { ptr, ptr, ptr }, i64, i64, i64 }), ptr, ptr) #0 declare void @TrackingAllocator.init.21(ptr sret({ { ptr, ptr, ptr }, i64, i64, i64 }), ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i64 @TrackingAllocator.leak_count.43(ptr, ptr) #0 declare i64 @TrackingAllocator.leak_count.22(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @TrackingAllocator.report.44(ptr, ptr) #0 declare void @TrackingAllocator.report.23(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare ptr @TrackingAllocator.alloc_bytes.45(ptr, ptr, i64) #0 declare ptr @TrackingAllocator.alloc_bytes.24(ptr, ptr, i64) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @TrackingAllocator.dealloc_bytes.46(ptr, ptr, ptr) #0 declare void @TrackingAllocator.dealloc_bytes.25(ptr, ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i32 @open.47(ptr, i32, ...) #0 declare i32 @open.26(ptr, i32, ...) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i32 @close.48(i32) #0 declare i32 @close.27(i32) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i64 @read.49(i32, ptr, i64) #0 declare i64 @read.28(i32, ptr, i64) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i64 @lseek.50(i32, i64, i32) #0 declare i64 @lseek.29(i32, i64, i32) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i32 @unlink.51(ptr) #0 declare i32 @unlink.30(ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i32 @rmdir.52(ptr) #0 declare i32 @rmdir.31(ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i32 @mkdir.53(ptr, i32) #0 declare i32 @mkdir.32(ptr, i32) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i32 @access.54(ptr, i32) #0 declare i32 @access.33(ptr, i32) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i32 @chmod.55(ptr, i32) #0 declare i32 @chmod.34(ptr, i32) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i32 @rename.56(ptr, ptr) #0 declare i32 @rename.35(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i1 @File.is_valid.57(ptr, ptr) #0 declare i1 @File.is_valid.36(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i1 @File.close.58(ptr, ptr) #0 declare i1 @File.close.37(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i64 @File.read.59(ptr, ptr, ptr) #0 declare i64 @File.read.38(ptr, ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i64 @File.write.60(ptr, ptr, ptr) #0 declare i64 @File.write.39(ptr, ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i64 @File.seek.61(ptr, ptr, i64, i64) #0 declare i64 @File.seek.40(ptr, ptr, i64, i64) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i32 @mode_to_flags.62(ptr, i64) #0 declare i32 @mode_to_flags.41(ptr, i64) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i64 @open_file.63(ptr, ptr, i64) #0 declare i64 @open_file.42(ptr, ptr, i64) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @read_file.64(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 declare void @read_file.43(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i1 @write_file.65(ptr, ptr, ptr) #0 declare i1 @write_file.44(ptr, ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i1 @append_file.66(ptr, ptr, ptr) #0 declare i1 @append_file.45(ptr, ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i1 @exists.67(ptr, ptr) #0 declare i1 @exists.46(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i1 @delete_file.68(ptr, ptr) #0 declare i1 @delete_file.47(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i1 @delete_dir.69(ptr, ptr) #0 declare i1 @delete_dir.48(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i1 @create_dir.70(ptr, ptr) #0 declare i1 @create_dir.49(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i1 @set_mode.71(ptr, ptr, i32) #0 declare i1 @set_mode.50(ptr, ptr, i32) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i1 @move.72(ptr, ptr, ptr) #0 declare i1 @move.51(ptr, ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i1 @create_dir_all.73(ptr, ptr) #0 declare i1 @create_dir_all.52(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i1 @copy_file.74(ptr, ptr, ptr) #0 declare i1 @copy_file.53(ptr, ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare ptr @basename.75(ptr, ptr) #0 declare ptr @basename.54(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare ptr @dirname.76(ptr, ptr) #0 declare ptr @dirname.55(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @Array.add(ptr, ptr, ptr, ptr) #0 declare void @Array.add(ptr, ptr, ptr, ptr) #0
@@ -732,64 +669,64 @@ declare ptr @BuildOptions.jni_main_java_source_at(i64, i64) #0
declare i64 @build_options() #0 declare i64 @build_options() #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare ptr @spaces.77(ptr, i32) #0 declare ptr @spaces.56(ptr, i32) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i32 @sx_trace_len.78() #0 declare i32 @sx_trace_len.57() #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i32 @sx_trace_truncated.79() #0 declare i32 @sx_trace_truncated.58() #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i64 @sx_trace_frame_at.80(i32) #0 declare i64 @sx_trace_frame_at.59(i32) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare ptr @to_string.81(ptr) #0 declare ptr @to_string.60(ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @print_current.82(ptr) #0 declare void @print_current.61(ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @print_interpreter_frames.83(ptr) #0 declare void @print_interpreter_frames.62(ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare ptr @popen.84(ptr, ptr) #0 declare ptr @popen.63(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i32 @pclose.85(ptr) #0 declare i32 @pclose.64(ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i64 @fread.86(ptr, i64, i64, ptr) #0 declare i64 @fread.65(ptr, i64, i64, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i32 @feof.87(ptr) #0 declare i32 @feof.66(ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare ptr @getenv.88(ptr) #0 declare ptr @getenv.67(ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i64 @strlen.89(ptr) #0 declare i64 @strlen.68(ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i32 @system.90(ptr) #0 declare i32 @system.69(ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @run.91(ptr sret({ { i32, { ptr, i64 } }, i1 }), ptr, ptr) #0 declare void @run.70(ptr sret({ { i32, { ptr, i64 } }, i1 }), ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @env.92(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 declare void @env.71(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @find_executable.93(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 declare void @find_executable.72(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @_exit.94(i32) #0 declare void @_exit.73(i32) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @exit.95(ptr, i8, ptr) #0 declare void @exit.74(ptr, i8, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @assert.96(ptr, i1, ptr, ptr) #0 declare void @assert.75(ptr, i1, ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare ptr @_NSGetArgv() #0 declare ptr @_NSGetArgv() #0
@@ -819,97 +756,97 @@ declare ptr @Parsed.value_of(ptr, ptr, ptr) #0
declare i1 @is_long_flag(ptr, ptr) #0 declare i1 @is_long_flag(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @parse.97(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.76(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 ; Function Attrs: nounwind
declare i32 @open.98(ptr, i32, ...) #0 declare i32 @open.77(ptr, i32, ...) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i32 @close.99(i32) #0 declare i32 @close.78(i32) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i64 @read.100(i32, ptr, i64) #0 declare i64 @read.79(i32, ptr, i64) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i64 @lseek.101(i32, i64, i32) #0 declare i64 @lseek.80(i32, i64, i32) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i32 @unlink.102(ptr) #0 declare i32 @unlink.81(ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i32 @rmdir.103(ptr) #0 declare i32 @rmdir.82(ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i32 @mkdir.104(ptr, i32) #0 declare i32 @mkdir.83(ptr, i32) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i32 @access.105(ptr, i32) #0 declare i32 @access.84(ptr, i32) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i32 @chmod.106(ptr, i32) #0 declare i32 @chmod.85(ptr, i32) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i32 @rename.107(ptr, ptr) #0 declare i32 @rename.86(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i1 @File.is_valid.108(ptr, ptr) #0 declare i1 @File.is_valid.87(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i1 @File.close.109(ptr, ptr) #0 declare i1 @File.close.88(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i64 @File.read.110(ptr, ptr, ptr) #0 declare i64 @File.read.89(ptr, ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i64 @File.write.111(ptr, ptr, ptr) #0 declare i64 @File.write.90(ptr, ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i64 @File.seek.112(ptr, ptr, i64, i64) #0 declare i64 @File.seek.91(ptr, ptr, i64, i64) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i32 @mode_to_flags.113(ptr, i64) #0 declare i32 @mode_to_flags.92(ptr, i64) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i64 @open_file.114(ptr, ptr, i64) #0 declare i64 @open_file.93(ptr, ptr, i64) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @read_file.115(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 declare void @read_file.94(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i1 @write_file.116(ptr, ptr, ptr) #0 declare i1 @write_file.95(ptr, ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i1 @append_file.117(ptr, ptr, ptr) #0 declare i1 @append_file.96(ptr, ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i1 @exists.118(ptr, ptr) #0 declare i1 @exists.97(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i1 @delete_file.119(ptr, ptr) #0 declare i1 @delete_file.98(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i1 @delete_dir.120(ptr, ptr) #0 declare i1 @delete_dir.99(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i1 @create_dir.121(ptr, ptr) #0 declare i1 @create_dir.100(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i1 @set_mode.122(ptr, ptr, i32) #0 declare i1 @set_mode.101(ptr, ptr, i32) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i1 @move.123(ptr, ptr, ptr) #0 declare i1 @move.102(ptr, ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i1 @create_dir_all.124(ptr, ptr) #0 declare i1 @create_dir_all.103(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i1 @copy_file.125(ptr, ptr, ptr) #0 declare i1 @copy_file.104(ptr, ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare ptr @basename.126(ptr, ptr) #0 declare ptr @basename.105(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare ptr @dirname.127(ptr, ptr) #0 declare ptr @dirname.106(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i64 @rotr(ptr, i64, i64) #0 declare i64 @rotr(ptr, i64, i64) #0
@@ -948,7 +885,7 @@ declare [64 x i8] @sha256_hex(ptr, ptr) #0
declare void @sha256_file(ptr sret({ [64 x i8], i1 }), ptr, ptr) #0 declare void @sha256_file(ptr sret({ [64 x i8], i1 }), ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @assert.128(ptr, i1) #0 declare void @assert.107(ptr, i1) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
define internal i64 @accept_c(ptr %0) #0 { 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_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" @__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 = private unnamed_addr constant [2 x i8] c"0\00", align 1
@str.166 = private unnamed_addr constant [15 x i8] c"result := \22\22; \00", align 1 @str.145 = private unnamed_addr constant [15 x i8] c"result := \22\22; \00", align 1
@str.167 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1 @str.146 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1
@str.168 = private unnamed_addr constant [3 x i8] c", \00", align 1 @str.147 = private unnamed_addr constant [3 x i8] c", \00", align 1
@str.169 = private unnamed_addr constant [5 x i8] c")); \00", align 1 @str.148 = private unnamed_addr constant [5 x i8] c")); \00", align 1
@str.170 = private unnamed_addr constant [44 x i8] c"result = concat(result, any_to_string(args[\00", align 1 @str.149 = private unnamed_addr constant [44 x i8] c"result = concat(result, any_to_string(args[\00", align 1
@str.171 = private unnamed_addr constant [6 x i8] c"])); \00", align 1 @str.150 = private unnamed_addr constant [6 x i8] c"])); \00", align 1
@str.172 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1 @str.151 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1
@str.173 = private unnamed_addr constant [3 x i8] c", \00", align 1 @str.152 = private unnamed_addr constant [3 x i8] c", \00", align 1
@str.174 = private unnamed_addr constant [5 x i8] c")); \00", align 1 @str.153 = private unnamed_addr constant [5 x i8] c")); \00", align 1
@str.175 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1 @str.154 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1
@str.176 = private unnamed_addr constant [3 x i8] c", \00", align 1 @str.155 = private unnamed_addr constant [3 x i8] c", \00", align 1
@str.177 = private unnamed_addr constant [5 x i8] c")); \00", align 1 @str.156 = private unnamed_addr constant [5 x i8] c")); \00", align 1
@str.178 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1 @str.157 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1
@str.179 = private unnamed_addr constant [3 x i8] c", \00", align 1 @str.158 = private unnamed_addr constant [3 x i8] c", \00", align 1
@str.180 = private unnamed_addr constant [5 x i8] c")); \00", align 1 @str.159 = private unnamed_addr constant [5 x i8] c")); \00", align 1
@str.181 = private unnamed_addr constant [10 x i8] c"compiled\0A\00", align 1 @str.160 = private unnamed_addr constant [10 x i8] c"compiled\0A\00", align 1
@str.182 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 @str.161 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1
@str.183 = private unnamed_addr constant [10 x i8] c"compiled\0A\00", align 1 @str.162 = 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_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_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_ = private unnamed_addr constant [9 x i8] c"NSObject\00"
@OBJC_CLASS_NAME_.184 = private unnamed_addr constant [6 x i8] c"SxFoo\00" @OBJC_CLASS_NAME_.163 = 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_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_TYPE_ = private unnamed_addr constant [4 x i8] c"v@:\00"
@OBJC_METH_VAR_NAME_.185 = private unnamed_addr constant [8 x i8] c"dealloc\00" @OBJC_METH_VAR_NAME_.164 = private unnamed_addr constant [8 x i8] c"dealloc\00"
@OBJC_METH_VAR_TYPE_.186 = private unnamed_addr constant [4 x i8] c"v@:\00" @OBJC_METH_VAR_TYPE_.165 = private unnamed_addr constant [4 x i8] c"v@:\00"
@OBJC_METH_VAR_NAME_.187 = private unnamed_addr constant [6 x i8] c"alloc\00" @OBJC_METH_VAR_NAME_.166 = private unnamed_addr constant [6 x i8] c"alloc\00"
@OBJC_METH_VAR_TYPE_.188 = private unnamed_addr constant [4 x i8] c"@@:\00" @OBJC_METH_VAR_TYPE_.167 = private unnamed_addr constant [4 x i8] c"@@:\00"
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @out(ptr) #0 declare void @out(ptr) #0
@@ -261,7 +261,7 @@ entry:
%alloca = alloca { ptr, i64 }, align 8 %alloca = alloca { ptr, i64 }, align 8
store { ptr, i64 } %1, ptr %alloca, align 8 store { ptr, i64 } %1, ptr %alloca, align 8
%allocaN = alloca { ptr, i64 }, align 8 %allocaN = alloca { ptr, i64 }, align 8
store { ptr, i64 } { ptr @str.166, i64 14 }, ptr %allocaN, align 8 store { ptr, i64 } { ptr @str.145, i64 14 }, ptr %allocaN, align 8
%allocaN = alloca i64, align 8 %allocaN = alloca i64, align 8
store i64 0, ptr %allocaN, align 8 store i64 0, ptr %allocaN, align 8
%allocaN = alloca i64, align 8 %allocaN = alloca i64, align 8
@@ -357,7 +357,7 @@ if.merge.11: ; preds = %if.merge.25, %if.me
if.then.12: ; preds = %if.then.9 if.then.12: ; preds = %if.then.9
%loadN = load { ptr, i64 }, ptr %allocaN, align 8 %loadN = load { ptr, i64 }, ptr %allocaN, align 8
%call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.167, i64 36 }) %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.146, i64 36 })
store { ptr, i64 } %call, ptr %allocaN, align 8 store { ptr, i64 } %call, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %allocaN, align 8 %loadN = load { ptr, i64 }, ptr %allocaN, align 8
%loadN = load i64, ptr %allocaN, align 8 %loadN = load i64, ptr %allocaN, align 8
@@ -365,7 +365,7 @@ if.then.12: ; preds = %if.then.9
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN) %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN)
store { ptr, i64 } %callN, ptr %allocaN, align 8 store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, 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.168, i64 2 }) %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.147, i64 2 })
store { ptr, i64 } %callN, ptr %allocaN, align 8 store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %allocaN, align 8 %loadN = load { ptr, i64 }, ptr %allocaN, align 8
%loadN = load i64, ptr %allocaN, align 8 %loadN = load i64, ptr %allocaN, align 8
@@ -375,13 +375,13 @@ if.then.12: ; preds = %if.then.9
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN) %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN)
store { ptr, i64 } %callN, ptr %allocaN, align 8 store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, 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 4 }) %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.148, i64 4 })
store { ptr, i64 } %callN, ptr %allocaN, align 8 store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %if.merge.13 br label %if.merge.13
if.merge.13: ; preds = %if.then.12, %if.then.9 if.merge.13: ; preds = %if.then.12, %if.then.9
%loadN = load { ptr, i64 }, 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 43 }) %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.149, i64 43 })
store { ptr, i64 } %callN, ptr %allocaN, align 8 store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %allocaN, align 8 %loadN = load { ptr, i64 }, ptr %allocaN, align 8
%loadN = load i64, ptr %allocaN, align 8 %loadN = load i64, ptr %allocaN, align 8
@@ -389,7 +389,7 @@ if.merge.13: ; preds = %if.then.12, %if.the
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN) %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN)
store { ptr, i64 } %callN, ptr %allocaN, align 8 store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, 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.171, i64 5 }) %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.150, i64 5 })
store { ptr, i64 } %callN, ptr %allocaN, align 8 store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load i64, ptr %allocaN, align 8 %loadN = load i64, ptr %allocaN, align 8
%addN = add i64 %loadN, 1 %addN = add i64 %loadN, 1
@@ -403,7 +403,7 @@ if.merge.13: ; preds = %if.then.12, %if.the
if.then.23: ; preds = %if.else.10 if.then.23: ; preds = %if.else.10
%loadN = load { ptr, i64 }, 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 36 }) %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.151, i64 36 })
store { ptr, i64 } %callN, ptr %allocaN, align 8 store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %allocaN, align 8 %loadN = load { ptr, i64 }, ptr %allocaN, align 8
%loadN = load i64, ptr %allocaN, align 8 %loadN = load i64, ptr %allocaN, align 8
@@ -411,7 +411,7 @@ if.then.23: ; preds = %if.else.10
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN) %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN)
store { ptr, i64 } %callN, ptr %allocaN, align 8 store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, 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 2 }) %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.152, i64 2 })
store { ptr, i64 } %callN, ptr %allocaN, align 8 store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %allocaN, align 8 %loadN = load { ptr, i64 }, ptr %allocaN, align 8
%loadN = load i64, ptr %allocaN, align 8 %loadN = load i64, ptr %allocaN, align 8
@@ -422,7 +422,7 @@ if.then.23: ; preds = %if.else.10
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN) %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN)
store { ptr, i64 } %callN, ptr %allocaN, align 8 store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, 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.174, i64 4 }) %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.153, i64 4 })
store { ptr, i64 } %callN, ptr %allocaN, align 8 store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load i64, ptr %allocaN, align 8 %loadN = load i64, ptr %allocaN, align 8
%addN = add i64 %loadN, 2 %addN = add i64 %loadN, 2
@@ -479,7 +479,7 @@ if.merge.31: ; preds = %if.merge.34, %if.el
if.then.32: ; preds = %if.then.29 if.then.32: ; preds = %if.then.29
%loadN = load { ptr, i64 }, 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 36 }) %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.154, i64 36 })
store { ptr, i64 } %callN, ptr %allocaN, align 8 store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %allocaN, align 8 %loadN = load { ptr, i64 }, ptr %allocaN, align 8
%loadN = load i64, ptr %allocaN, align 8 %loadN = load i64, ptr %allocaN, align 8
@@ -487,7 +487,7 @@ if.then.32: ; preds = %if.then.29
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN) %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN)
store { ptr, i64 } %callN, ptr %allocaN, align 8 store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, 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 2 }) %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.155, i64 2 })
store { ptr, i64 } %callN, ptr %allocaN, align 8 store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %allocaN, align 8 %loadN = load { ptr, i64 }, ptr %allocaN, align 8
%loadN = load i64, ptr %allocaN, align 8 %loadN = load i64, ptr %allocaN, align 8
@@ -498,7 +498,7 @@ if.then.32: ; preds = %if.then.29
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN) %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN)
store { ptr, i64 } %callN, ptr %allocaN, align 8 store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, 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.177, i64 4 }) %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.156, i64 4 })
store { ptr, i64 } %callN, ptr %allocaN, align 8 store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load i64, ptr %allocaN, align 8 %loadN = load i64, ptr %allocaN, align 8
%addN = add i64 %loadN, 2 %addN = add i64 %loadN, 2
@@ -518,7 +518,7 @@ if.merge.34: ; preds = %if.else.33, %if.the
if.then.35: ; preds = %while.exit.2 if.then.35: ; preds = %while.exit.2
%loadN = load { ptr, i64 }, 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.178, i64 36 }) %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.157, i64 36 })
store { ptr, i64 } %callN, ptr %allocaN, align 8 store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %allocaN, align 8 %loadN = load { ptr, i64 }, ptr %allocaN, align 8
%loadN = load i64, ptr %allocaN, align 8 %loadN = load i64, ptr %allocaN, align 8
@@ -526,7 +526,7 @@ if.then.35: ; preds = %while.exit.2
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN) %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN)
store { ptr, i64 } %callN, ptr %allocaN, align 8 store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, 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.179, i64 2 }) %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.158, i64 2 })
store { ptr, i64 } %callN, ptr %allocaN, align 8 store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %allocaN, align 8 %loadN = load { ptr, i64 }, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %alloca, align 8 %loadN = load { ptr, i64 }, ptr %alloca, align 8
@@ -537,7 +537,7 @@ if.then.35: ; preds = %while.exit.2
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN) %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN)
store { ptr, i64 } %callN, ptr %allocaN, align 8 store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, 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.180, i64 4 }) %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.159, i64 4 })
store { ptr, i64 } %callN, ptr %allocaN, align 8 store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %if.merge.36 br label %if.merge.36
@@ -630,69 +630,6 @@ declare ptr @TrackingAllocator.alloc_bytes(ptr, ptr, i64) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @TrackingAllocator.dealloc_bytes(ptr, ptr, ptr) #0 declare void @TrackingAllocator.dealloc_bytes(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare ptr @mem_realloc.3(ptr, ptr, ptr, i64, i64, i64) #0
; Function Attrs: nounwind
declare ptr @CAllocator.alloc_bytes.4(ptr, ptr, i64) #0
; Function Attrs: nounwind
declare void @CAllocator.dealloc_bytes.5(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare i64 @GPA.init.6(ptr) #0
; Function Attrs: nounwind
declare ptr @GPA.alloc_bytes.7(ptr, ptr, i64) #0
; Function Attrs: nounwind
declare void @GPA.dealloc_bytes.8(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare void @Arena.add_chunk.9(ptr, ptr, i64) #0
; Function Attrs: nounwind
declare void @Arena.init.10(ptr sret({ ptr, i64, { ptr, ptr, ptr } }), ptr, ptr, i64) #0
; Function Attrs: nounwind
declare void @Arena.reset.11(ptr, ptr) #0
; Function Attrs: nounwind
declare void @Arena.deinit.12(ptr, ptr) #0
; Function Attrs: nounwind
declare ptr @Arena.alloc_bytes.13(ptr, ptr, i64) #0
; Function Attrs: nounwind
declare void @Arena.dealloc_bytes.14(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare void @BufAlloc.init.15(ptr sret({ ptr, i64, i64 }), ptr, ptr, i64) #0
; Function Attrs: nounwind
declare void @BufAlloc.reset.16(ptr, ptr) #0
; Function Attrs: nounwind
declare ptr @BufAlloc.alloc_bytes.17(ptr, ptr, i64) #0
; Function Attrs: nounwind
declare void @BufAlloc.dealloc_bytes.18(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare void @TrackingAllocator.init.19(ptr sret({ { ptr, ptr, ptr }, i64, i64, i64 }), ptr, ptr) #0
; Function Attrs: nounwind
declare i64 @TrackingAllocator.leak_count.20(ptr, ptr) #0
; Function Attrs: nounwind
declare void @TrackingAllocator.report.21(ptr, ptr) #0
; Function Attrs: nounwind
declare ptr @TrackingAllocator.alloc_bytes.22(ptr, ptr, i64) #0
; Function Attrs: nounwind
declare void @TrackingAllocator.dealloc_bytes.23(ptr, ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare ptr @escape(ptr, ptr) #0 declare ptr @escape(ptr, ptr) #0
@@ -867,166 +804,166 @@ declare i32 @listen(i32, i32) #0
declare i32 @accept(i32, ptr, ptr) #0 declare i32 @accept(i32, ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i64 @read.24(i32, ptr, i64) #0 declare i64 @read.3(i32, ptr, i64) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i32 @close.25(i32) #0 declare i32 @close.4(i32) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i16 @htons(ptr, i64) #0 declare i16 @htons(ptr, i64) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare ptr @mem_realloc.26(ptr, ptr, ptr, i64, i64, i64) #0 declare ptr @mem_realloc.5(ptr, ptr, ptr, i64, i64, i64) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare ptr @CAllocator.alloc_bytes.27(ptr, ptr, i64) #0 declare ptr @CAllocator.alloc_bytes.6(ptr, ptr, i64) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @CAllocator.dealloc_bytes.28(ptr, ptr, ptr) #0 declare void @CAllocator.dealloc_bytes.7(ptr, ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i64 @GPA.init.29(ptr) #0 declare i64 @GPA.init.8(ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare ptr @GPA.alloc_bytes.30(ptr, ptr, i64) #0 declare ptr @GPA.alloc_bytes.9(ptr, ptr, i64) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @GPA.dealloc_bytes.31(ptr, ptr, ptr) #0 declare void @GPA.dealloc_bytes.10(ptr, ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @Arena.add_chunk.32(ptr, ptr, i64) #0 declare void @Arena.add_chunk.11(ptr, ptr, i64) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @Arena.init.33(ptr sret({ ptr, i64, { ptr, ptr, ptr } }), ptr, ptr, i64) #0 declare void @Arena.init.12(ptr sret({ ptr, i64, { ptr, ptr, ptr } }), ptr, ptr, i64) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @Arena.reset.34(ptr, ptr) #0 declare void @Arena.reset.13(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @Arena.deinit.35(ptr, ptr) #0 declare void @Arena.deinit.14(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare ptr @Arena.alloc_bytes.36(ptr, ptr, i64) #0 declare ptr @Arena.alloc_bytes.15(ptr, ptr, i64) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @Arena.dealloc_bytes.37(ptr, ptr, ptr) #0 declare void @Arena.dealloc_bytes.16(ptr, ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @BufAlloc.init.38(ptr sret({ ptr, i64, i64 }), ptr, ptr, i64) #0 declare void @BufAlloc.init.17(ptr sret({ ptr, i64, i64 }), ptr, ptr, i64) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @BufAlloc.reset.39(ptr, ptr) #0 declare void @BufAlloc.reset.18(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare ptr @BufAlloc.alloc_bytes.40(ptr, ptr, i64) #0 declare ptr @BufAlloc.alloc_bytes.19(ptr, ptr, i64) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @BufAlloc.dealloc_bytes.41(ptr, ptr, ptr) #0 declare void @BufAlloc.dealloc_bytes.20(ptr, ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @TrackingAllocator.init.42(ptr sret({ { ptr, ptr, ptr }, i64, i64, i64 }), ptr, ptr) #0 declare void @TrackingAllocator.init.21(ptr sret({ { ptr, ptr, ptr }, i64, i64, i64 }), ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i64 @TrackingAllocator.leak_count.43(ptr, ptr) #0 declare i64 @TrackingAllocator.leak_count.22(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @TrackingAllocator.report.44(ptr, ptr) #0 declare void @TrackingAllocator.report.23(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare ptr @TrackingAllocator.alloc_bytes.45(ptr, ptr, i64) #0 declare ptr @TrackingAllocator.alloc_bytes.24(ptr, ptr, i64) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @TrackingAllocator.dealloc_bytes.46(ptr, ptr, ptr) #0 declare void @TrackingAllocator.dealloc_bytes.25(ptr, ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i32 @open.47(ptr, i32, ...) #0 declare i32 @open.26(ptr, i32, ...) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i32 @close.48(i32) #0 declare i32 @close.27(i32) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i64 @read.49(i32, ptr, i64) #0 declare i64 @read.28(i32, ptr, i64) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i64 @lseek.50(i32, i64, i32) #0 declare i64 @lseek.29(i32, i64, i32) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i32 @unlink.51(ptr) #0 declare i32 @unlink.30(ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i32 @rmdir.52(ptr) #0 declare i32 @rmdir.31(ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i32 @mkdir.53(ptr, i32) #0 declare i32 @mkdir.32(ptr, i32) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i32 @access.54(ptr, i32) #0 declare i32 @access.33(ptr, i32) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i32 @chmod.55(ptr, i32) #0 declare i32 @chmod.34(ptr, i32) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i32 @rename.56(ptr, ptr) #0 declare i32 @rename.35(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i1 @File.is_valid.57(ptr, ptr) #0 declare i1 @File.is_valid.36(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i1 @File.close.58(ptr, ptr) #0 declare i1 @File.close.37(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i64 @File.read.59(ptr, ptr, ptr) #0 declare i64 @File.read.38(ptr, ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i64 @File.write.60(ptr, ptr, ptr) #0 declare i64 @File.write.39(ptr, ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i64 @File.seek.61(ptr, ptr, i64, i64) #0 declare i64 @File.seek.40(ptr, ptr, i64, i64) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i32 @mode_to_flags.62(ptr, i64) #0 declare i32 @mode_to_flags.41(ptr, i64) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i64 @open_file.63(ptr, ptr, i64) #0 declare i64 @open_file.42(ptr, ptr, i64) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @read_file.64(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 declare void @read_file.43(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i1 @write_file.65(ptr, ptr, ptr) #0 declare i1 @write_file.44(ptr, ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i1 @append_file.66(ptr, ptr, ptr) #0 declare i1 @append_file.45(ptr, ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i1 @exists.67(ptr, ptr) #0 declare i1 @exists.46(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i1 @delete_file.68(ptr, ptr) #0 declare i1 @delete_file.47(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i1 @delete_dir.69(ptr, ptr) #0 declare i1 @delete_dir.48(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i1 @create_dir.70(ptr, ptr) #0 declare i1 @create_dir.49(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i1 @set_mode.71(ptr, ptr, i32) #0 declare i1 @set_mode.50(ptr, ptr, i32) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i1 @move.72(ptr, ptr, ptr) #0 declare i1 @move.51(ptr, ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i1 @create_dir_all.73(ptr, ptr) #0 declare i1 @create_dir_all.52(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i1 @copy_file.74(ptr, ptr, ptr) #0 declare i1 @copy_file.53(ptr, ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare ptr @basename.75(ptr, ptr) #0 declare ptr @basename.54(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare ptr @dirname.76(ptr, ptr) #0 declare ptr @dirname.55(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @Array.add(ptr, ptr, ptr, ptr) #0 declare void @Array.add(ptr, ptr, ptr, ptr) #0
@@ -1224,64 +1161,64 @@ declare ptr @BuildOptions.jni_main_java_source_at(i64, i64) #0
declare i64 @build_options() #0 declare i64 @build_options() #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare ptr @spaces.77(ptr, i32) #0 declare ptr @spaces.56(ptr, i32) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i32 @sx_trace_len.78() #0 declare i32 @sx_trace_len.57() #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i32 @sx_trace_truncated.79() #0 declare i32 @sx_trace_truncated.58() #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i64 @sx_trace_frame_at.80(i32) #0 declare i64 @sx_trace_frame_at.59(i32) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare ptr @to_string.81(ptr) #0 declare ptr @to_string.60(ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @print_current.82(ptr) #0 declare void @print_current.61(ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @print_interpreter_frames.83(ptr) #0 declare void @print_interpreter_frames.62(ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare ptr @popen.84(ptr, ptr) #0 declare ptr @popen.63(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i32 @pclose.85(ptr) #0 declare i32 @pclose.64(ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i64 @fread.86(ptr, i64, i64, ptr) #0 declare i64 @fread.65(ptr, i64, i64, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i32 @feof.87(ptr) #0 declare i32 @feof.66(ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare ptr @getenv.88(ptr) #0 declare ptr @getenv.67(ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i64 @strlen.89(ptr) #0 declare i64 @strlen.68(ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i32 @system.90(ptr) #0 declare i32 @system.69(ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @run.91(ptr sret({ { i32, { ptr, i64 } }, i1 }), ptr, ptr) #0 declare void @run.70(ptr sret({ { i32, { ptr, i64 } }, i1 }), ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @env.92(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 declare void @env.71(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @find_executable.93(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 declare void @find_executable.72(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @_exit.94(i32) #0 declare void @_exit.73(i32) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @exit.95(ptr, i8, ptr) #0 declare void @exit.74(ptr, i8, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @assert.96(ptr, i1, ptr, ptr) #0 declare void @assert.75(ptr, i1, ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare ptr @_NSGetArgv() #0 declare ptr @_NSGetArgv() #0
@@ -1311,97 +1248,97 @@ declare ptr @Parsed.value_of(ptr, ptr, ptr) #0
declare i1 @is_long_flag(ptr, ptr) #0 declare i1 @is_long_flag(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @parse.97(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.76(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 ; Function Attrs: nounwind
declare i32 @open.98(ptr, i32, ...) #0 declare i32 @open.77(ptr, i32, ...) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i32 @close.99(i32) #0 declare i32 @close.78(i32) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i64 @read.100(i32, ptr, i64) #0 declare i64 @read.79(i32, ptr, i64) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i64 @lseek.101(i32, i64, i32) #0 declare i64 @lseek.80(i32, i64, i32) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i32 @unlink.102(ptr) #0 declare i32 @unlink.81(ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i32 @rmdir.103(ptr) #0 declare i32 @rmdir.82(ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i32 @mkdir.104(ptr, i32) #0 declare i32 @mkdir.83(ptr, i32) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i32 @access.105(ptr, i32) #0 declare i32 @access.84(ptr, i32) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i32 @chmod.106(ptr, i32) #0 declare i32 @chmod.85(ptr, i32) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i32 @rename.107(ptr, ptr) #0 declare i32 @rename.86(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i1 @File.is_valid.108(ptr, ptr) #0 declare i1 @File.is_valid.87(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i1 @File.close.109(ptr, ptr) #0 declare i1 @File.close.88(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i64 @File.read.110(ptr, ptr, ptr) #0 declare i64 @File.read.89(ptr, ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i64 @File.write.111(ptr, ptr, ptr) #0 declare i64 @File.write.90(ptr, ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i64 @File.seek.112(ptr, ptr, i64, i64) #0 declare i64 @File.seek.91(ptr, ptr, i64, i64) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i32 @mode_to_flags.113(ptr, i64) #0 declare i32 @mode_to_flags.92(ptr, i64) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i64 @open_file.114(ptr, ptr, i64) #0 declare i64 @open_file.93(ptr, ptr, i64) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @read_file.115(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 declare void @read_file.94(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i1 @write_file.116(ptr, ptr, ptr) #0 declare i1 @write_file.95(ptr, ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i1 @append_file.117(ptr, ptr, ptr) #0 declare i1 @append_file.96(ptr, ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i1 @exists.118(ptr, ptr) #0 declare i1 @exists.97(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i1 @delete_file.119(ptr, ptr) #0 declare i1 @delete_file.98(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i1 @delete_dir.120(ptr, ptr) #0 declare i1 @delete_dir.99(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i1 @create_dir.121(ptr, ptr) #0 declare i1 @create_dir.100(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i1 @set_mode.122(ptr, ptr, i32) #0 declare i1 @set_mode.101(ptr, ptr, i32) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i1 @move.123(ptr, ptr, ptr) #0 declare i1 @move.102(ptr, ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i1 @create_dir_all.124(ptr, ptr) #0 declare i1 @create_dir_all.103(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i1 @copy_file.125(ptr, ptr, ptr) #0 declare i1 @copy_file.104(ptr, ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare ptr @basename.126(ptr, ptr) #0 declare ptr @basename.105(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare ptr @dirname.127(ptr, ptr) #0 declare ptr @dirname.106(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i64 @rotr(ptr, i64, i64) #0 declare i64 @rotr(ptr, i64, i64) #0
@@ -1440,118 +1377,118 @@ declare [64 x i8] @sha256_hex(ptr, ptr) #0
declare void @sha256_file(ptr sret({ [64 x i8], i1 }), ptr, ptr) #0 declare void @sha256_file(ptr sret({ [64 x i8], i1 }), ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @assert.128(ptr, i1) #0 declare void @assert.107(ptr, i1) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @BuildOptions.add_link_flag.129(i64, ptr) #0 declare void @BuildOptions.add_link_flag.108(i64, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @BuildOptions.add_framework.130(i64, ptr) #0 declare void @BuildOptions.add_framework.109(i64, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @BuildOptions.set_output_path.131(i64, ptr) #0 declare void @BuildOptions.set_output_path.110(i64, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @BuildOptions.set_wasm_shell.132(i64, ptr) #0 declare void @BuildOptions.set_wasm_shell.111(i64, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @BuildOptions.add_asset_dir.133(i64, ptr, ptr) #0 declare void @BuildOptions.add_asset_dir.112(i64, ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i64 @BuildOptions.asset_dir_count.134(i64) #0 declare i64 @BuildOptions.asset_dir_count.113(i64) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare ptr @BuildOptions.asset_dir_src_at.135(i64, i64) #0 declare ptr @BuildOptions.asset_dir_src_at.114(i64, i64) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare ptr @BuildOptions.asset_dir_dest_at.136(i64, i64) #0 declare ptr @BuildOptions.asset_dir_dest_at.115(i64, i64) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @BuildOptions.set_post_link_callback.137(i64, ptr) #0 declare void @BuildOptions.set_post_link_callback.116(i64, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @BuildOptions.set_post_link_module.138(i64, ptr) #0 declare void @BuildOptions.set_post_link_module.117(i64, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare ptr @BuildOptions.binary_path.139(i64) #0 declare ptr @BuildOptions.binary_path.118(i64) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @BuildOptions.set_bundle_path.140(i64, ptr) #0 declare void @BuildOptions.set_bundle_path.119(i64, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @BuildOptions.set_bundle_id.141(i64, ptr) #0 declare void @BuildOptions.set_bundle_id.120(i64, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @BuildOptions.set_codesign_identity.142(i64, ptr) #0 declare void @BuildOptions.set_codesign_identity.121(i64, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @BuildOptions.set_provisioning_profile.143(i64, ptr) #0 declare void @BuildOptions.set_provisioning_profile.122(i64, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare ptr @BuildOptions.bundle_path.144(i64) #0 declare ptr @BuildOptions.bundle_path.123(i64) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare ptr @BuildOptions.bundle_id.145(i64) #0 declare ptr @BuildOptions.bundle_id.124(i64) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare ptr @BuildOptions.codesign_identity.146(i64) #0 declare ptr @BuildOptions.codesign_identity.125(i64) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare ptr @BuildOptions.provisioning_profile.147(i64) #0 declare ptr @BuildOptions.provisioning_profile.126(i64) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare ptr @BuildOptions.target_triple.148(i64) #0 declare ptr @BuildOptions.target_triple.127(i64) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i1 @BuildOptions.is_macos.149(i64) #0 declare i1 @BuildOptions.is_macos.128(i64) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i1 @BuildOptions.is_ios.150(i64) #0 declare i1 @BuildOptions.is_ios.129(i64) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i1 @BuildOptions.is_ios_device.151(i64) #0 declare i1 @BuildOptions.is_ios_device.130(i64) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i1 @BuildOptions.is_ios_simulator.152(i64) #0 declare i1 @BuildOptions.is_ios_simulator.131(i64) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i1 @BuildOptions.is_android.153(i64) #0 declare i1 @BuildOptions.is_android.132(i64) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i64 @BuildOptions.framework_count.154(i64) #0 declare i64 @BuildOptions.framework_count.133(i64) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare ptr @BuildOptions.framework_at.155(i64, i64) #0 declare ptr @BuildOptions.framework_at.134(i64, i64) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i64 @BuildOptions.framework_path_count.156(i64) #0 declare i64 @BuildOptions.framework_path_count.135(i64) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare ptr @BuildOptions.framework_path_at.157(i64, i64) #0 declare ptr @BuildOptions.framework_path_at.136(i64, i64) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @BuildOptions.set_manifest_path.158(i64, ptr) #0 declare void @BuildOptions.set_manifest_path.137(i64, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @BuildOptions.set_keystore_path.159(i64, ptr) #0 declare void @BuildOptions.set_keystore_path.138(i64, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare ptr @BuildOptions.manifest_path.160(i64) #0 declare ptr @BuildOptions.manifest_path.139(i64) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare ptr @BuildOptions.keystore_path.161(i64) #0 declare ptr @BuildOptions.keystore_path.140(i64) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i64 @BuildOptions.jni_main_count.162(i64) #0 declare i64 @BuildOptions.jni_main_count.141(i64) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare ptr @BuildOptions.jni_main_foreign_path_at.163(i64, i64) #0 declare ptr @BuildOptions.jni_main_foreign_path_at.142(i64, i64) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare ptr @BuildOptions.jni_main_java_source_at.164(i64, i64) #0 declare ptr @BuildOptions.jni_main_java_source_at.143(i64, i64) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i64 @build_options.165() #0 declare i64 @build_options.144() #0
; Function Attrs: nounwind ; Function Attrs: nounwind
define internal void @SxFoo.bump(ptr %0, ptr %1) #0 { define internal void @SxFoo.bump(ptr %0, ptr %1) #0 {
@@ -1594,14 +1531,14 @@ entry:
define internal void @print__ct_sfeff9eeccd48b824__pack(ptr %0) #0 { define internal void @print__ct_sfeff9eeccd48b824__pack(ptr %0) #0 {
entry: entry:
%alloca = alloca { ptr, i64 }, align 8 %alloca = alloca { ptr, i64 }, align 8
store { ptr, i64 } { ptr @str.181, i64 9 }, ptr %alloca, align 8 store { ptr, i64 } { ptr @str.160, i64 9 }, ptr %alloca, align 8
%allocaN = alloca { ptr, i64 }, align 8 %allocaN = alloca { ptr, i64 }, align 8
%gep = getelementptr inbounds { ptr, i64 }, ptr %allocaN, i32 0, i32 0 %gep = getelementptr inbounds { ptr, i64 }, ptr %allocaN, i32 0, i32 0
store ptr null, ptr %gep, align 8 store ptr null, ptr %gep, align 8
%gepN = getelementptr inbounds { ptr, i64 }, ptr %allocaN, i32 0, i32 1 %gepN = getelementptr inbounds { ptr, i64 }, ptr %allocaN, i32 0, i32 1
store i64 0, ptr %gepN, align 8 store i64 0, ptr %gepN, align 8
%allocaN = alloca { ptr, i64 }, align 8 %allocaN = alloca { ptr, i64 }, align 8
store { ptr, i64 } { ptr @str.182, i64 0 }, ptr %allocaN, align 8 store { ptr, i64 } { ptr @str.161, i64 0 }, ptr %allocaN, align 8
%load = load { ptr, i64 }, ptr %allocaN, align 8 %load = load { ptr, i64 }, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %alloca, align 8 %loadN = load { ptr, i64 }, ptr %alloca, align 8
%call = call { ptr, i64 } @substr(ptr %0, { ptr, i64 } %loadN, i64 0, i64 9) %call = call { ptr, i64 } @substr(ptr %0, { ptr, i64 } %loadN, i64 0, i64 9)
@@ -1617,7 +1554,7 @@ entry:
; Function Attrs: nounwind ; Function Attrs: nounwind
define internal { ptr, i64 } @__insert_0(ptr %0) #0 { define internal { ptr, i64 } @__insert_0(ptr %0) #0 {
entry: entry:
%call = call { ptr, i64 } @build_format(ptr %0, { ptr, i64 } { ptr @str.183, i64 9 }) %call = call { ptr, i64 } @build_format(ptr %0, { ptr, i64 } { ptr @str.162, i64 9 })
ret { ptr, i64 } %call ret { ptr, i64 } %call
} }
@@ -1697,17 +1634,17 @@ declare ptr @class_getInstanceVariable(ptr, ptr)
define internal void @__sx_objc_defined_class_init() { define internal void @__sx_objc_defined_class_init() {
entry: entry:
%super_cls = call ptr @objc_getClass(ptr @OBJC_CLASS_NAME_) %super_cls = call ptr @objc_getClass(ptr @OBJC_CLASS_NAME_)
%cls = call ptr @objc_allocateClassPair(ptr %super_cls, ptr @OBJC_CLASS_NAME_.184, i64 0) %cls = call ptr @objc_allocateClassPair(ptr %super_cls, ptr @OBJC_CLASS_NAME_.163, i64 0)
%0 = call i8 @class_addIvar(ptr %cls, ptr @OBJC_IVAR_NAME_, i64 8, i8 3, ptr @OBJC_IVAR_TYPE_) %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) %metacls = call ptr @object_getClass(ptr %cls)
%sel = call ptr @sel_registerName(ptr @OBJC_METH_VAR_NAME_) %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_) %1 = call i8 @class_addMethod(ptr %cls, ptr %sel, ptr @__SxFoo_bump_imp, ptr @OBJC_METH_VAR_TYPE_)
call void @objc_registerClassPair(ptr %cls) call void @objc_registerClassPair(ptr %cls)
store ptr %cls, ptr @__SxFoo_class, align 8 store ptr %cls, ptr @__SxFoo_class, align 8
%sel_dealloc = call ptr @sel_registerName(ptr @OBJC_METH_VAR_NAME_.185) %sel_dealloc = call ptr @sel_registerName(ptr @OBJC_METH_VAR_NAME_.164)
%2 = call i8 @class_addMethod(ptr %cls, ptr %sel_dealloc, ptr @__SxFoo_dealloc_imp, ptr @OBJC_METH_VAR_TYPE_.186) %2 = call i8 @class_addMethod(ptr %cls, ptr %sel_dealloc, ptr @__SxFoo_dealloc_imp, ptr @OBJC_METH_VAR_TYPE_.165)
%sel_alloc = call ptr @sel_registerName(ptr @OBJC_METH_VAR_NAME_.187) %sel_alloc = call ptr @sel_registerName(ptr @OBJC_METH_VAR_NAME_.166)
%3 = call i8 @class_addMethod(ptr %metacls, ptr %sel_alloc, ptr @__SxFoo_alloc_imp, ptr @OBJC_METH_VAR_TYPE_.188) %3 = call i8 @class_addMethod(ptr %metacls, ptr %sel_alloc, ptr @__SxFoo_alloc_imp, ptr @OBJC_METH_VAR_TYPE_.167)
%iv = call ptr @class_getInstanceVariable(ptr %cls, ptr @OBJC_IVAR_NAME_) %iv = call ptr @class_getInstanceVariable(ptr %cls, ptr @OBJC_IVAR_NAME_)
store ptr %iv, ptr @__SxFoo_state_ivar, align 8 store ptr %iv, ptr @__SxFoo_state_ivar, align 8
ret void 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_init = internal global ptr null
@OBJC_SELECTOR_REFERENCES_release = 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 = private unnamed_addr constant [2 x i8] c"0\00", align 1
@str.166 = private unnamed_addr constant [15 x i8] c"result := \22\22; \00", align 1 @str.145 = private unnamed_addr constant [15 x i8] c"result := \22\22; \00", align 1
@str.167 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1 @str.146 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1
@str.168 = private unnamed_addr constant [3 x i8] c", \00", align 1 @str.147 = private unnamed_addr constant [3 x i8] c", \00", align 1
@str.169 = private unnamed_addr constant [5 x i8] c")); \00", align 1 @str.148 = private unnamed_addr constant [5 x i8] c")); \00", align 1
@str.170 = private unnamed_addr constant [44 x i8] c"result = concat(result, any_to_string(args[\00", align 1 @str.149 = private unnamed_addr constant [44 x i8] c"result = concat(result, any_to_string(args[\00", align 1
@str.171 = private unnamed_addr constant [6 x i8] c"])); \00", align 1 @str.150 = private unnamed_addr constant [6 x i8] c"])); \00", align 1
@str.172 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1 @str.151 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1
@str.173 = private unnamed_addr constant [3 x i8] c", \00", align 1 @str.152 = private unnamed_addr constant [3 x i8] c", \00", align 1
@str.174 = private unnamed_addr constant [5 x i8] c")); \00", align 1 @str.153 = private unnamed_addr constant [5 x i8] c")); \00", align 1
@str.175 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1 @str.154 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1
@str.176 = private unnamed_addr constant [3 x i8] c", \00", align 1 @str.155 = private unnamed_addr constant [3 x i8] c", \00", align 1
@str.177 = private unnamed_addr constant [5 x i8] c")); \00", align 1 @str.156 = private unnamed_addr constant [5 x i8] c")); \00", align 1
@str.178 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1 @str.157 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1
@str.179 = private unnamed_addr constant [3 x i8] c", \00", align 1 @str.158 = private unnamed_addr constant [3 x i8] c", \00", align 1
@str.180 = private unnamed_addr constant [5 x i8] c")); \00", align 1 @str.159 = private unnamed_addr constant [5 x i8] c")); \00", align 1
@str.181 = private unnamed_addr constant [4 x i8] c"ok\0A\00", align 1 @str.160 = private unnamed_addr constant [4 x i8] c"ok\0A\00", align 1
@str.182 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 @str.161 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1
@str.183 = private unnamed_addr constant [4 x i8] c"ok\0A\00", align 1 @str.162 = 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_ = private unnamed_addr constant [5 x i8] c"init\00"
@OBJC_METH_VAR_NAME_.184 = private unnamed_addr constant [8 x i8] c"release\00" @OBJC_METH_VAR_NAME_.163 = 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 }] @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 ; Function Attrs: nounwind
@@ -253,7 +253,7 @@ entry:
%alloca = alloca { ptr, i64 }, align 8 %alloca = alloca { ptr, i64 }, align 8
store { ptr, i64 } %1, ptr %alloca, align 8 store { ptr, i64 } %1, ptr %alloca, align 8
%allocaN = alloca { ptr, i64 }, align 8 %allocaN = alloca { ptr, i64 }, align 8
store { ptr, i64 } { ptr @str.166, i64 14 }, ptr %allocaN, align 8 store { ptr, i64 } { ptr @str.145, i64 14 }, ptr %allocaN, align 8
%allocaN = alloca i64, align 8 %allocaN = alloca i64, align 8
store i64 0, ptr %allocaN, align 8 store i64 0, ptr %allocaN, align 8
%allocaN = alloca i64, align 8 %allocaN = alloca i64, align 8
@@ -349,7 +349,7 @@ if.merge.11: ; preds = %if.merge.25, %if.me
if.then.12: ; preds = %if.then.9 if.then.12: ; preds = %if.then.9
%loadN = load { ptr, i64 }, ptr %allocaN, align 8 %loadN = load { ptr, i64 }, ptr %allocaN, align 8
%call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.167, i64 36 }) %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.146, i64 36 })
store { ptr, i64 } %call, ptr %allocaN, align 8 store { ptr, i64 } %call, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %allocaN, align 8 %loadN = load { ptr, i64 }, ptr %allocaN, align 8
%loadN = load i64, ptr %allocaN, align 8 %loadN = load i64, ptr %allocaN, align 8
@@ -357,7 +357,7 @@ if.then.12: ; preds = %if.then.9
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN) %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN)
store { ptr, i64 } %callN, ptr %allocaN, align 8 store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, 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.168, i64 2 }) %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.147, i64 2 })
store { ptr, i64 } %callN, ptr %allocaN, align 8 store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %allocaN, align 8 %loadN = load { ptr, i64 }, ptr %allocaN, align 8
%loadN = load i64, ptr %allocaN, align 8 %loadN = load i64, ptr %allocaN, align 8
@@ -367,13 +367,13 @@ if.then.12: ; preds = %if.then.9
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN) %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN)
store { ptr, i64 } %callN, ptr %allocaN, align 8 store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, 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 4 }) %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.148, i64 4 })
store { ptr, i64 } %callN, ptr %allocaN, align 8 store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %if.merge.13 br label %if.merge.13
if.merge.13: ; preds = %if.then.12, %if.then.9 if.merge.13: ; preds = %if.then.12, %if.then.9
%loadN = load { ptr, i64 }, 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 43 }) %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.149, i64 43 })
store { ptr, i64 } %callN, ptr %allocaN, align 8 store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %allocaN, align 8 %loadN = load { ptr, i64 }, ptr %allocaN, align 8
%loadN = load i64, ptr %allocaN, align 8 %loadN = load i64, ptr %allocaN, align 8
@@ -381,7 +381,7 @@ if.merge.13: ; preds = %if.then.12, %if.the
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN) %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN)
store { ptr, i64 } %callN, ptr %allocaN, align 8 store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, 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.171, i64 5 }) %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.150, i64 5 })
store { ptr, i64 } %callN, ptr %allocaN, align 8 store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load i64, ptr %allocaN, align 8 %loadN = load i64, ptr %allocaN, align 8
%addN = add i64 %loadN, 1 %addN = add i64 %loadN, 1
@@ -395,7 +395,7 @@ if.merge.13: ; preds = %if.then.12, %if.the
if.then.23: ; preds = %if.else.10 if.then.23: ; preds = %if.else.10
%loadN = load { ptr, i64 }, 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 36 }) %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.151, i64 36 })
store { ptr, i64 } %callN, ptr %allocaN, align 8 store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %allocaN, align 8 %loadN = load { ptr, i64 }, ptr %allocaN, align 8
%loadN = load i64, ptr %allocaN, align 8 %loadN = load i64, ptr %allocaN, align 8
@@ -403,7 +403,7 @@ if.then.23: ; preds = %if.else.10
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN) %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN)
store { ptr, i64 } %callN, ptr %allocaN, align 8 store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, 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 2 }) %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.152, i64 2 })
store { ptr, i64 } %callN, ptr %allocaN, align 8 store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %allocaN, align 8 %loadN = load { ptr, i64 }, ptr %allocaN, align 8
%loadN = load i64, ptr %allocaN, align 8 %loadN = load i64, ptr %allocaN, align 8
@@ -414,7 +414,7 @@ if.then.23: ; preds = %if.else.10
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN) %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN)
store { ptr, i64 } %callN, ptr %allocaN, align 8 store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, 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.174, i64 4 }) %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.153, i64 4 })
store { ptr, i64 } %callN, ptr %allocaN, align 8 store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load i64, ptr %allocaN, align 8 %loadN = load i64, ptr %allocaN, align 8
%addN = add i64 %loadN, 2 %addN = add i64 %loadN, 2
@@ -471,7 +471,7 @@ if.merge.31: ; preds = %if.merge.34, %if.el
if.then.32: ; preds = %if.then.29 if.then.32: ; preds = %if.then.29
%loadN = load { ptr, i64 }, 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 36 }) %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.154, i64 36 })
store { ptr, i64 } %callN, ptr %allocaN, align 8 store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %allocaN, align 8 %loadN = load { ptr, i64 }, ptr %allocaN, align 8
%loadN = load i64, ptr %allocaN, align 8 %loadN = load i64, ptr %allocaN, align 8
@@ -479,7 +479,7 @@ if.then.32: ; preds = %if.then.29
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN) %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN)
store { ptr, i64 } %callN, ptr %allocaN, align 8 store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, 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 2 }) %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.155, i64 2 })
store { ptr, i64 } %callN, ptr %allocaN, align 8 store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %allocaN, align 8 %loadN = load { ptr, i64 }, ptr %allocaN, align 8
%loadN = load i64, ptr %allocaN, align 8 %loadN = load i64, ptr %allocaN, align 8
@@ -490,7 +490,7 @@ if.then.32: ; preds = %if.then.29
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN) %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN)
store { ptr, i64 } %callN, ptr %allocaN, align 8 store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, 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.177, i64 4 }) %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.156, i64 4 })
store { ptr, i64 } %callN, ptr %allocaN, align 8 store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load i64, ptr %allocaN, align 8 %loadN = load i64, ptr %allocaN, align 8
%addN = add i64 %loadN, 2 %addN = add i64 %loadN, 2
@@ -510,7 +510,7 @@ if.merge.34: ; preds = %if.else.33, %if.the
if.then.35: ; preds = %while.exit.2 if.then.35: ; preds = %while.exit.2
%loadN = load { ptr, i64 }, 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.178, i64 36 }) %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.157, i64 36 })
store { ptr, i64 } %callN, ptr %allocaN, align 8 store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %allocaN, align 8 %loadN = load { ptr, i64 }, ptr %allocaN, align 8
%loadN = load i64, ptr %allocaN, align 8 %loadN = load i64, ptr %allocaN, align 8
@@ -518,7 +518,7 @@ if.then.35: ; preds = %while.exit.2
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN) %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN)
store { ptr, i64 } %callN, ptr %allocaN, align 8 store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, 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.179, i64 2 }) %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.158, i64 2 })
store { ptr, i64 } %callN, ptr %allocaN, align 8 store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %allocaN, align 8 %loadN = load { ptr, i64 }, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %alloca, align 8 %loadN = load { ptr, i64 }, ptr %alloca, align 8
@@ -529,7 +529,7 @@ if.then.35: ; preds = %while.exit.2
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN) %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN)
store { ptr, i64 } %callN, ptr %allocaN, align 8 store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, 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.180, i64 4 }) %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.159, i64 4 })
store { ptr, i64 } %callN, ptr %allocaN, align 8 store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %if.merge.36 br label %if.merge.36
@@ -622,69 +622,6 @@ declare ptr @TrackingAllocator.alloc_bytes(ptr, ptr, i64) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @TrackingAllocator.dealloc_bytes(ptr, ptr, ptr) #0 declare void @TrackingAllocator.dealloc_bytes(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare ptr @mem_realloc.3(ptr, ptr, ptr, i64, i64, i64) #0
; Function Attrs: nounwind
declare ptr @CAllocator.alloc_bytes.4(ptr, ptr, i64) #0
; Function Attrs: nounwind
declare void @CAllocator.dealloc_bytes.5(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare i64 @GPA.init.6(ptr) #0
; Function Attrs: nounwind
declare ptr @GPA.alloc_bytes.7(ptr, ptr, i64) #0
; Function Attrs: nounwind
declare void @GPA.dealloc_bytes.8(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare void @Arena.add_chunk.9(ptr, ptr, i64) #0
; Function Attrs: nounwind
declare void @Arena.init.10(ptr sret({ ptr, i64, { ptr, ptr, ptr } }), ptr, ptr, i64) #0
; Function Attrs: nounwind
declare void @Arena.reset.11(ptr, ptr) #0
; Function Attrs: nounwind
declare void @Arena.deinit.12(ptr, ptr) #0
; Function Attrs: nounwind
declare ptr @Arena.alloc_bytes.13(ptr, ptr, i64) #0
; Function Attrs: nounwind
declare void @Arena.dealloc_bytes.14(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare void @BufAlloc.init.15(ptr sret({ ptr, i64, i64 }), ptr, ptr, i64) #0
; Function Attrs: nounwind
declare void @BufAlloc.reset.16(ptr, ptr) #0
; Function Attrs: nounwind
declare ptr @BufAlloc.alloc_bytes.17(ptr, ptr, i64) #0
; Function Attrs: nounwind
declare void @BufAlloc.dealloc_bytes.18(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare void @TrackingAllocator.init.19(ptr sret({ { ptr, ptr, ptr }, i64, i64, i64 }), ptr, ptr) #0
; Function Attrs: nounwind
declare i64 @TrackingAllocator.leak_count.20(ptr, ptr) #0
; Function Attrs: nounwind
declare void @TrackingAllocator.report.21(ptr, ptr) #0
; Function Attrs: nounwind
declare ptr @TrackingAllocator.alloc_bytes.22(ptr, ptr, i64) #0
; Function Attrs: nounwind
declare void @TrackingAllocator.dealloc_bytes.23(ptr, ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare ptr @escape(ptr, ptr) #0 declare ptr @escape(ptr, ptr) #0
@@ -859,166 +796,166 @@ declare i32 @listen(i32, i32) #0
declare i32 @accept(i32, ptr, ptr) #0 declare i32 @accept(i32, ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i64 @read.24(i32, ptr, i64) #0 declare i64 @read.3(i32, ptr, i64) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i32 @close.25(i32) #0 declare i32 @close.4(i32) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i16 @htons(ptr, i64) #0 declare i16 @htons(ptr, i64) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare ptr @mem_realloc.26(ptr, ptr, ptr, i64, i64, i64) #0 declare ptr @mem_realloc.5(ptr, ptr, ptr, i64, i64, i64) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare ptr @CAllocator.alloc_bytes.27(ptr, ptr, i64) #0 declare ptr @CAllocator.alloc_bytes.6(ptr, ptr, i64) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @CAllocator.dealloc_bytes.28(ptr, ptr, ptr) #0 declare void @CAllocator.dealloc_bytes.7(ptr, ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i64 @GPA.init.29(ptr) #0 declare i64 @GPA.init.8(ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare ptr @GPA.alloc_bytes.30(ptr, ptr, i64) #0 declare ptr @GPA.alloc_bytes.9(ptr, ptr, i64) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @GPA.dealloc_bytes.31(ptr, ptr, ptr) #0 declare void @GPA.dealloc_bytes.10(ptr, ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @Arena.add_chunk.32(ptr, ptr, i64) #0 declare void @Arena.add_chunk.11(ptr, ptr, i64) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @Arena.init.33(ptr sret({ ptr, i64, { ptr, ptr, ptr } }), ptr, ptr, i64) #0 declare void @Arena.init.12(ptr sret({ ptr, i64, { ptr, ptr, ptr } }), ptr, ptr, i64) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @Arena.reset.34(ptr, ptr) #0 declare void @Arena.reset.13(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @Arena.deinit.35(ptr, ptr) #0 declare void @Arena.deinit.14(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare ptr @Arena.alloc_bytes.36(ptr, ptr, i64) #0 declare ptr @Arena.alloc_bytes.15(ptr, ptr, i64) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @Arena.dealloc_bytes.37(ptr, ptr, ptr) #0 declare void @Arena.dealloc_bytes.16(ptr, ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @BufAlloc.init.38(ptr sret({ ptr, i64, i64 }), ptr, ptr, i64) #0 declare void @BufAlloc.init.17(ptr sret({ ptr, i64, i64 }), ptr, ptr, i64) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @BufAlloc.reset.39(ptr, ptr) #0 declare void @BufAlloc.reset.18(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare ptr @BufAlloc.alloc_bytes.40(ptr, ptr, i64) #0 declare ptr @BufAlloc.alloc_bytes.19(ptr, ptr, i64) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @BufAlloc.dealloc_bytes.41(ptr, ptr, ptr) #0 declare void @BufAlloc.dealloc_bytes.20(ptr, ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @TrackingAllocator.init.42(ptr sret({ { ptr, ptr, ptr }, i64, i64, i64 }), ptr, ptr) #0 declare void @TrackingAllocator.init.21(ptr sret({ { ptr, ptr, ptr }, i64, i64, i64 }), ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i64 @TrackingAllocator.leak_count.43(ptr, ptr) #0 declare i64 @TrackingAllocator.leak_count.22(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @TrackingAllocator.report.44(ptr, ptr) #0 declare void @TrackingAllocator.report.23(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare ptr @TrackingAllocator.alloc_bytes.45(ptr, ptr, i64) #0 declare ptr @TrackingAllocator.alloc_bytes.24(ptr, ptr, i64) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @TrackingAllocator.dealloc_bytes.46(ptr, ptr, ptr) #0 declare void @TrackingAllocator.dealloc_bytes.25(ptr, ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i32 @open.47(ptr, i32, ...) #0 declare i32 @open.26(ptr, i32, ...) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i32 @close.48(i32) #0 declare i32 @close.27(i32) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i64 @read.49(i32, ptr, i64) #0 declare i64 @read.28(i32, ptr, i64) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i64 @lseek.50(i32, i64, i32) #0 declare i64 @lseek.29(i32, i64, i32) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i32 @unlink.51(ptr) #0 declare i32 @unlink.30(ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i32 @rmdir.52(ptr) #0 declare i32 @rmdir.31(ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i32 @mkdir.53(ptr, i32) #0 declare i32 @mkdir.32(ptr, i32) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i32 @access.54(ptr, i32) #0 declare i32 @access.33(ptr, i32) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i32 @chmod.55(ptr, i32) #0 declare i32 @chmod.34(ptr, i32) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i32 @rename.56(ptr, ptr) #0 declare i32 @rename.35(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i1 @File.is_valid.57(ptr, ptr) #0 declare i1 @File.is_valid.36(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i1 @File.close.58(ptr, ptr) #0 declare i1 @File.close.37(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i64 @File.read.59(ptr, ptr, ptr) #0 declare i64 @File.read.38(ptr, ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i64 @File.write.60(ptr, ptr, ptr) #0 declare i64 @File.write.39(ptr, ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i64 @File.seek.61(ptr, ptr, i64, i64) #0 declare i64 @File.seek.40(ptr, ptr, i64, i64) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i32 @mode_to_flags.62(ptr, i64) #0 declare i32 @mode_to_flags.41(ptr, i64) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i64 @open_file.63(ptr, ptr, i64) #0 declare i64 @open_file.42(ptr, ptr, i64) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @read_file.64(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 declare void @read_file.43(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i1 @write_file.65(ptr, ptr, ptr) #0 declare i1 @write_file.44(ptr, ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i1 @append_file.66(ptr, ptr, ptr) #0 declare i1 @append_file.45(ptr, ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i1 @exists.67(ptr, ptr) #0 declare i1 @exists.46(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i1 @delete_file.68(ptr, ptr) #0 declare i1 @delete_file.47(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i1 @delete_dir.69(ptr, ptr) #0 declare i1 @delete_dir.48(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i1 @create_dir.70(ptr, ptr) #0 declare i1 @create_dir.49(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i1 @set_mode.71(ptr, ptr, i32) #0 declare i1 @set_mode.50(ptr, ptr, i32) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i1 @move.72(ptr, ptr, ptr) #0 declare i1 @move.51(ptr, ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i1 @create_dir_all.73(ptr, ptr) #0 declare i1 @create_dir_all.52(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i1 @copy_file.74(ptr, ptr, ptr) #0 declare i1 @copy_file.53(ptr, ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare ptr @basename.75(ptr, ptr) #0 declare ptr @basename.54(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare ptr @dirname.76(ptr, ptr) #0 declare ptr @dirname.55(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @Array.add(ptr, ptr, ptr, ptr) #0 declare void @Array.add(ptr, ptr, ptr, ptr) #0
@@ -1216,64 +1153,64 @@ declare ptr @BuildOptions.jni_main_java_source_at(i64, i64) #0
declare i64 @build_options() #0 declare i64 @build_options() #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare ptr @spaces.77(ptr, i32) #0 declare ptr @spaces.56(ptr, i32) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i32 @sx_trace_len.78() #0 declare i32 @sx_trace_len.57() #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i32 @sx_trace_truncated.79() #0 declare i32 @sx_trace_truncated.58() #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i64 @sx_trace_frame_at.80(i32) #0 declare i64 @sx_trace_frame_at.59(i32) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare ptr @to_string.81(ptr) #0 declare ptr @to_string.60(ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @print_current.82(ptr) #0 declare void @print_current.61(ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @print_interpreter_frames.83(ptr) #0 declare void @print_interpreter_frames.62(ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare ptr @popen.84(ptr, ptr) #0 declare ptr @popen.63(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i32 @pclose.85(ptr) #0 declare i32 @pclose.64(ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i64 @fread.86(ptr, i64, i64, ptr) #0 declare i64 @fread.65(ptr, i64, i64, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i32 @feof.87(ptr) #0 declare i32 @feof.66(ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare ptr @getenv.88(ptr) #0 declare ptr @getenv.67(ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i64 @strlen.89(ptr) #0 declare i64 @strlen.68(ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i32 @system.90(ptr) #0 declare i32 @system.69(ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @run.91(ptr sret({ { i32, { ptr, i64 } }, i1 }), ptr, ptr) #0 declare void @run.70(ptr sret({ { i32, { ptr, i64 } }, i1 }), ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @env.92(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 declare void @env.71(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @find_executable.93(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 declare void @find_executable.72(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @_exit.94(i32) #0 declare void @_exit.73(i32) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @exit.95(ptr, i8, ptr) #0 declare void @exit.74(ptr, i8, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @assert.96(ptr, i1, ptr, ptr) #0 declare void @assert.75(ptr, i1, ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare ptr @_NSGetArgv() #0 declare ptr @_NSGetArgv() #0
@@ -1303,97 +1240,97 @@ declare ptr @Parsed.value_of(ptr, ptr, ptr) #0
declare i1 @is_long_flag(ptr, ptr) #0 declare i1 @is_long_flag(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @parse.97(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.76(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 ; Function Attrs: nounwind
declare i32 @open.98(ptr, i32, ...) #0 declare i32 @open.77(ptr, i32, ...) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i32 @close.99(i32) #0 declare i32 @close.78(i32) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i64 @read.100(i32, ptr, i64) #0 declare i64 @read.79(i32, ptr, i64) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i64 @lseek.101(i32, i64, i32) #0 declare i64 @lseek.80(i32, i64, i32) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i32 @unlink.102(ptr) #0 declare i32 @unlink.81(ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i32 @rmdir.103(ptr) #0 declare i32 @rmdir.82(ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i32 @mkdir.104(ptr, i32) #0 declare i32 @mkdir.83(ptr, i32) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i32 @access.105(ptr, i32) #0 declare i32 @access.84(ptr, i32) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i32 @chmod.106(ptr, i32) #0 declare i32 @chmod.85(ptr, i32) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i32 @rename.107(ptr, ptr) #0 declare i32 @rename.86(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i1 @File.is_valid.108(ptr, ptr) #0 declare i1 @File.is_valid.87(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i1 @File.close.109(ptr, ptr) #0 declare i1 @File.close.88(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i64 @File.read.110(ptr, ptr, ptr) #0 declare i64 @File.read.89(ptr, ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i64 @File.write.111(ptr, ptr, ptr) #0 declare i64 @File.write.90(ptr, ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i64 @File.seek.112(ptr, ptr, i64, i64) #0 declare i64 @File.seek.91(ptr, ptr, i64, i64) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i32 @mode_to_flags.113(ptr, i64) #0 declare i32 @mode_to_flags.92(ptr, i64) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i64 @open_file.114(ptr, ptr, i64) #0 declare i64 @open_file.93(ptr, ptr, i64) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @read_file.115(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 declare void @read_file.94(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i1 @write_file.116(ptr, ptr, ptr) #0 declare i1 @write_file.95(ptr, ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i1 @append_file.117(ptr, ptr, ptr) #0 declare i1 @append_file.96(ptr, ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i1 @exists.118(ptr, ptr) #0 declare i1 @exists.97(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i1 @delete_file.119(ptr, ptr) #0 declare i1 @delete_file.98(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i1 @delete_dir.120(ptr, ptr) #0 declare i1 @delete_dir.99(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i1 @create_dir.121(ptr, ptr) #0 declare i1 @create_dir.100(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i1 @set_mode.122(ptr, ptr, i32) #0 declare i1 @set_mode.101(ptr, ptr, i32) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i1 @move.123(ptr, ptr, ptr) #0 declare i1 @move.102(ptr, ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i1 @create_dir_all.124(ptr, ptr) #0 declare i1 @create_dir_all.103(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i1 @copy_file.125(ptr, ptr, ptr) #0 declare i1 @copy_file.104(ptr, ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare ptr @basename.126(ptr, ptr) #0 declare ptr @basename.105(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare ptr @dirname.127(ptr, ptr) #0 declare ptr @dirname.106(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i64 @rotr(ptr, i64, i64) #0 declare i64 @rotr(ptr, i64, i64) #0
@@ -1432,118 +1369,118 @@ declare [64 x i8] @sha256_hex(ptr, ptr) #0
declare void @sha256_file(ptr sret({ [64 x i8], i1 }), ptr, ptr) #0 declare void @sha256_file(ptr sret({ [64 x i8], i1 }), ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @assert.128(ptr, i1) #0 declare void @assert.107(ptr, i1) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @BuildOptions.add_link_flag.129(i64, ptr) #0 declare void @BuildOptions.add_link_flag.108(i64, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @BuildOptions.add_framework.130(i64, ptr) #0 declare void @BuildOptions.add_framework.109(i64, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @BuildOptions.set_output_path.131(i64, ptr) #0 declare void @BuildOptions.set_output_path.110(i64, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @BuildOptions.set_wasm_shell.132(i64, ptr) #0 declare void @BuildOptions.set_wasm_shell.111(i64, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @BuildOptions.add_asset_dir.133(i64, ptr, ptr) #0 declare void @BuildOptions.add_asset_dir.112(i64, ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i64 @BuildOptions.asset_dir_count.134(i64) #0 declare i64 @BuildOptions.asset_dir_count.113(i64) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare ptr @BuildOptions.asset_dir_src_at.135(i64, i64) #0 declare ptr @BuildOptions.asset_dir_src_at.114(i64, i64) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare ptr @BuildOptions.asset_dir_dest_at.136(i64, i64) #0 declare ptr @BuildOptions.asset_dir_dest_at.115(i64, i64) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @BuildOptions.set_post_link_callback.137(i64, ptr) #0 declare void @BuildOptions.set_post_link_callback.116(i64, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @BuildOptions.set_post_link_module.138(i64, ptr) #0 declare void @BuildOptions.set_post_link_module.117(i64, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare ptr @BuildOptions.binary_path.139(i64) #0 declare ptr @BuildOptions.binary_path.118(i64) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @BuildOptions.set_bundle_path.140(i64, ptr) #0 declare void @BuildOptions.set_bundle_path.119(i64, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @BuildOptions.set_bundle_id.141(i64, ptr) #0 declare void @BuildOptions.set_bundle_id.120(i64, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @BuildOptions.set_codesign_identity.142(i64, ptr) #0 declare void @BuildOptions.set_codesign_identity.121(i64, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @BuildOptions.set_provisioning_profile.143(i64, ptr) #0 declare void @BuildOptions.set_provisioning_profile.122(i64, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare ptr @BuildOptions.bundle_path.144(i64) #0 declare ptr @BuildOptions.bundle_path.123(i64) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare ptr @BuildOptions.bundle_id.145(i64) #0 declare ptr @BuildOptions.bundle_id.124(i64) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare ptr @BuildOptions.codesign_identity.146(i64) #0 declare ptr @BuildOptions.codesign_identity.125(i64) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare ptr @BuildOptions.provisioning_profile.147(i64) #0 declare ptr @BuildOptions.provisioning_profile.126(i64) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare ptr @BuildOptions.target_triple.148(i64) #0 declare ptr @BuildOptions.target_triple.127(i64) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i1 @BuildOptions.is_macos.149(i64) #0 declare i1 @BuildOptions.is_macos.128(i64) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i1 @BuildOptions.is_ios.150(i64) #0 declare i1 @BuildOptions.is_ios.129(i64) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i1 @BuildOptions.is_ios_device.151(i64) #0 declare i1 @BuildOptions.is_ios_device.130(i64) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i1 @BuildOptions.is_ios_simulator.152(i64) #0 declare i1 @BuildOptions.is_ios_simulator.131(i64) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i1 @BuildOptions.is_android.153(i64) #0 declare i1 @BuildOptions.is_android.132(i64) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i64 @BuildOptions.framework_count.154(i64) #0 declare i64 @BuildOptions.framework_count.133(i64) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare ptr @BuildOptions.framework_at.155(i64, i64) #0 declare ptr @BuildOptions.framework_at.134(i64, i64) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i64 @BuildOptions.framework_path_count.156(i64) #0 declare i64 @BuildOptions.framework_path_count.135(i64) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare ptr @BuildOptions.framework_path_at.157(i64, i64) #0 declare ptr @BuildOptions.framework_path_at.136(i64, i64) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @BuildOptions.set_manifest_path.158(i64, ptr) #0 declare void @BuildOptions.set_manifest_path.137(i64, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @BuildOptions.set_keystore_path.159(i64, ptr) #0 declare void @BuildOptions.set_keystore_path.138(i64, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare ptr @BuildOptions.manifest_path.160(i64) #0 declare ptr @BuildOptions.manifest_path.139(i64) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare ptr @BuildOptions.keystore_path.161(i64) #0 declare ptr @BuildOptions.keystore_path.140(i64) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i64 @BuildOptions.jni_main_count.162(i64) #0 declare i64 @BuildOptions.jni_main_count.141(i64) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare ptr @BuildOptions.jni_main_foreign_path_at.163(i64, i64) #0 declare ptr @BuildOptions.jni_main_foreign_path_at.142(i64, i64) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare ptr @BuildOptions.jni_main_java_source_at.164(i64, i64) #0 declare ptr @BuildOptions.jni_main_java_source_at.143(i64, i64) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i64 @build_options.165() #0 declare i64 @build_options.144() #0
; Function Attrs: nounwind ; Function Attrs: nounwind
define i32 @main() #0 { define i32 @main() #0 {
@@ -1579,14 +1516,14 @@ entry:
define internal void @print__ct_sbdbafa1a5fe828c0__pack(ptr %0) #0 { define internal void @print__ct_sbdbafa1a5fe828c0__pack(ptr %0) #0 {
entry: entry:
%alloca = alloca { ptr, i64 }, align 8 %alloca = alloca { ptr, i64 }, align 8
store { ptr, i64 } { ptr @str.181, i64 3 }, ptr %alloca, align 8 store { ptr, i64 } { ptr @str.160, i64 3 }, ptr %alloca, align 8
%allocaN = alloca { ptr, i64 }, align 8 %allocaN = alloca { ptr, i64 }, align 8
%gep = getelementptr inbounds { ptr, i64 }, ptr %allocaN, i32 0, i32 0 %gep = getelementptr inbounds { ptr, i64 }, ptr %allocaN, i32 0, i32 0
store ptr null, ptr %gep, align 8 store ptr null, ptr %gep, align 8
%gepN = getelementptr inbounds { ptr, i64 }, ptr %allocaN, i32 0, i32 1 %gepN = getelementptr inbounds { ptr, i64 }, ptr %allocaN, i32 0, i32 1
store i64 0, ptr %gepN, align 8 store i64 0, ptr %gepN, align 8
%allocaN = alloca { ptr, i64 }, align 8 %allocaN = alloca { ptr, i64 }, align 8
store { ptr, i64 } { ptr @str.182, i64 0 }, ptr %allocaN, align 8 store { ptr, i64 } { ptr @str.161, i64 0 }, ptr %allocaN, align 8
%load = load { ptr, i64 }, ptr %allocaN, align 8 %load = load { ptr, i64 }, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %alloca, align 8 %loadN = load { ptr, i64 }, ptr %alloca, align 8
%call = call { ptr, i64 } @substr(ptr %0, { ptr, i64 } %loadN, i64 0, i64 3) %call = call { ptr, i64 } @substr(ptr %0, { ptr, i64 } %loadN, i64 0, i64 3)
@@ -1602,7 +1539,7 @@ entry:
; Function Attrs: nounwind ; Function Attrs: nounwind
define internal { ptr, i64 } @__insert_0(ptr %0) #0 { define internal { ptr, i64 } @__insert_0(ptr %0) #0 {
entry: entry:
%call = call { ptr, i64 } @build_format(ptr %0, { ptr, i64 } { ptr @str.183, i64 3 }) %call = call { ptr, i64 } @build_format(ptr %0, { ptr, i64 } { ptr @str.162, i64 3 })
ret { ptr, i64 } %call ret { ptr, i64 } %call
} }
@@ -1614,7 +1551,7 @@ define internal void @__sx_objc_selector_init() {
entry: entry:
%sel = call ptr @sel_registerName(ptr @OBJC_METH_VAR_NAME_) %sel = call ptr @sel_registerName(ptr @OBJC_METH_VAR_NAME_)
store ptr %sel, ptr @OBJC_SELECTOR_REFERENCES_init, align 8 store ptr %sel, ptr @OBJC_SELECTOR_REFERENCES_init, align 8
%selN = call ptr @sel_registerName(ptr @OBJC_METH_VAR_NAME_.184) %selN = call ptr @sel_registerName(ptr @OBJC_METH_VAR_NAME_.163)
store ptr %selN, ptr @OBJC_SELECTOR_REFERENCES_release, align 8 store ptr %selN, ptr @OBJC_SELECTOR_REFERENCES_release, align 8
ret void 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_initWithFrame_options_ = internal global ptr null
@OBJC_SELECTOR_REFERENCES_actualSelectorName = 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 = private unnamed_addr constant [2 x i8] c"0\00", align 1
@str.166 = private unnamed_addr constant [15 x i8] c"result := \22\22; \00", align 1 @str.145 = private unnamed_addr constant [15 x i8] c"result := \22\22; \00", align 1
@str.167 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1 @str.146 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1
@str.168 = private unnamed_addr constant [3 x i8] c", \00", align 1 @str.147 = private unnamed_addr constant [3 x i8] c", \00", align 1
@str.169 = private unnamed_addr constant [5 x i8] c")); \00", align 1 @str.148 = private unnamed_addr constant [5 x i8] c")); \00", align 1
@str.170 = private unnamed_addr constant [44 x i8] c"result = concat(result, any_to_string(args[\00", align 1 @str.149 = private unnamed_addr constant [44 x i8] c"result = concat(result, any_to_string(args[\00", align 1
@str.171 = private unnamed_addr constant [6 x i8] c"])); \00", align 1 @str.150 = private unnamed_addr constant [6 x i8] c"])); \00", align 1
@str.172 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1 @str.151 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1
@str.173 = private unnamed_addr constant [3 x i8] c", \00", align 1 @str.152 = private unnamed_addr constant [3 x i8] c", \00", align 1
@str.174 = private unnamed_addr constant [5 x i8] c")); \00", align 1 @str.153 = private unnamed_addr constant [5 x i8] c")); \00", align 1
@str.175 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1 @str.154 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1
@str.176 = private unnamed_addr constant [3 x i8] c", \00", align 1 @str.155 = private unnamed_addr constant [3 x i8] c", \00", align 1
@str.177 = private unnamed_addr constant [5 x i8] c")); \00", align 1 @str.156 = private unnamed_addr constant [5 x i8] c")); \00", align 1
@str.178 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1 @str.157 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1
@str.179 = private unnamed_addr constant [3 x i8] c", \00", align 1 @str.158 = private unnamed_addr constant [3 x i8] c", \00", align 1
@str.180 = private unnamed_addr constant [5 x i8] c")); \00", align 1 @str.159 = private unnamed_addr constant [5 x i8] c")); \00", align 1
@str.181 = private unnamed_addr constant [9 x i8] c"NSObject\00", align 1 @str.160 = private unnamed_addr constant [9 x i8] c"NSObject\00", align 1
@str.182 = private unnamed_addr constant [16 x i8] c"SxManglingProbe\00", align 1 @str.161 = private unnamed_addr constant [16 x i8] c"SxManglingProbe\00", align 1
@str.183 = private unnamed_addr constant [7 x i8] c"length\00", align 1 @str.162 = private unnamed_addr constant [7 x i8] c"length\00", align 1
@str.184 = private unnamed_addr constant [4 x i8] c"i@:\00", align 1 @str.163 = private unnamed_addr constant [4 x i8] c"i@:\00", align 1
@str.185 = private unnamed_addr constant [11 x i8] c"addObject:\00", align 1 @str.164 = private unnamed_addr constant [11 x i8] c"addObject:\00", align 1
@str.186 = private unnamed_addr constant [5 x i8] c"i@:i\00", align 1 @str.165 = private unnamed_addr constant [5 x i8] c"i@:i\00", align 1
@str.187 = private unnamed_addr constant [13 x i8] c"combine:and:\00", align 1 @str.166 = private unnamed_addr constant [13 x i8] c"combine:and:\00", align 1
@str.188 = private unnamed_addr constant [6 x i8] c"i@:ii\00", align 1 @str.167 = private unnamed_addr constant [6 x i8] c"i@:ii\00", align 1
@str.189 = private unnamed_addr constant [20 x i8] c"insert:after:index:\00", align 1 @str.168 = private unnamed_addr constant [20 x i8] c"insert:after:index:\00", align 1
@str.190 = private unnamed_addr constant [7 x i8] c"i@:iii\00", align 1 @str.169 = private unnamed_addr constant [7 x i8] c"i@:iii\00", align 1
@str.191 = private unnamed_addr constant [24 x i8] c"add:observer:for:event:\00", align 1 @str.170 = private unnamed_addr constant [24 x i8] c"add:observer:for:event:\00", align 1
@str.192 = private unnamed_addr constant [8 x i8] c"i@:iiii\00", align 1 @str.171 = private unnamed_addr constant [8 x i8] c"i@:iiii\00", align 1
@str.193 = private unnamed_addr constant [23 x i8] c"initWithFrame:options:\00", align 1 @str.172 = private unnamed_addr constant [23 x i8] c"initWithFrame:options:\00", align 1
@str.194 = private unnamed_addr constant [6 x i8] c"i@:ii\00", align 1 @str.173 = private unnamed_addr constant [6 x i8] c"i@:ii\00", align 1
@str.195 = private unnamed_addr constant [19 x i8] c"actualSelectorName\00", align 1 @str.174 = private unnamed_addr constant [19 x i8] c"actualSelectorName\00", align 1
@str.196 = private unnamed_addr constant [4 x i8] c"i@:\00", align 1 @str.175 = private unnamed_addr constant [4 x i8] c"i@:\00", align 1
@str.197 = private unnamed_addr constant [19 x i8] c"mangling table OK\0A\00", align 1 @str.176 = private unnamed_addr constant [19 x i8] c"mangling table OK\0A\00", align 1
@str.198 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 @str.177 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1
@str.199 = private unnamed_addr constant [19 x i8] c"mangling table OK\0A\00", align 1 @str.178 = 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_ = private unnamed_addr constant [7 x i8] c"length\00"
@OBJC_METH_VAR_NAME_.200 = private unnamed_addr constant [11 x i8] c"addObject:\00" @OBJC_METH_VAR_NAME_.179 = private unnamed_addr constant [11 x i8] c"addObject:\00"
@OBJC_METH_VAR_NAME_.201 = private unnamed_addr constant [13 x i8] c"combine:and:\00" @OBJC_METH_VAR_NAME_.180 = private unnamed_addr constant [13 x i8] c"combine:and:\00"
@OBJC_METH_VAR_NAME_.202 = private unnamed_addr constant [20 x i8] c"insert:after:index:\00" @OBJC_METH_VAR_NAME_.181 = private unnamed_addr constant [20 x i8] c"insert:after:index:\00"
@OBJC_METH_VAR_NAME_.203 = private unnamed_addr constant [24 x i8] c"add:observer:for:event:\00" @OBJC_METH_VAR_NAME_.182 = private unnamed_addr constant [24 x i8] c"add:observer:for:event:\00"
@OBJC_METH_VAR_NAME_.204 = private unnamed_addr constant [23 x i8] c"initWithFrame:options:\00" @OBJC_METH_VAR_NAME_.183 = private unnamed_addr constant [23 x i8] c"initWithFrame:options:\00"
@OBJC_METH_VAR_NAME_.205 = private unnamed_addr constant [19 x i8] c"actualSelectorName\00" @OBJC_METH_VAR_NAME_.184 = 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 }] @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 ; Function Attrs: nounwind
@@ -279,7 +279,7 @@ entry:
%alloca = alloca { ptr, i64 }, align 8 %alloca = alloca { ptr, i64 }, align 8
store { ptr, i64 } %1, ptr %alloca, align 8 store { ptr, i64 } %1, ptr %alloca, align 8
%allocaN = alloca { ptr, i64 }, align 8 %allocaN = alloca { ptr, i64 }, align 8
store { ptr, i64 } { ptr @str.166, i64 14 }, ptr %allocaN, align 8 store { ptr, i64 } { ptr @str.145, i64 14 }, ptr %allocaN, align 8
%allocaN = alloca i64, align 8 %allocaN = alloca i64, align 8
store i64 0, ptr %allocaN, align 8 store i64 0, ptr %allocaN, align 8
%allocaN = alloca i64, align 8 %allocaN = alloca i64, align 8
@@ -375,7 +375,7 @@ if.merge.11: ; preds = %if.merge.25, %if.me
if.then.12: ; preds = %if.then.9 if.then.12: ; preds = %if.then.9
%loadN = load { ptr, i64 }, ptr %allocaN, align 8 %loadN = load { ptr, i64 }, ptr %allocaN, align 8
%call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.167, i64 36 }) %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.146, i64 36 })
store { ptr, i64 } %call, ptr %allocaN, align 8 store { ptr, i64 } %call, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %allocaN, align 8 %loadN = load { ptr, i64 }, ptr %allocaN, align 8
%loadN = load i64, ptr %allocaN, align 8 %loadN = load i64, ptr %allocaN, align 8
@@ -383,7 +383,7 @@ if.then.12: ; preds = %if.then.9
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN) %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN)
store { ptr, i64 } %callN, ptr %allocaN, align 8 store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, 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.168, i64 2 }) %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.147, i64 2 })
store { ptr, i64 } %callN, ptr %allocaN, align 8 store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %allocaN, align 8 %loadN = load { ptr, i64 }, ptr %allocaN, align 8
%loadN = load i64, ptr %allocaN, align 8 %loadN = load i64, ptr %allocaN, align 8
@@ -393,13 +393,13 @@ if.then.12: ; preds = %if.then.9
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN) %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN)
store { ptr, i64 } %callN, ptr %allocaN, align 8 store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, 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 4 }) %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.148, i64 4 })
store { ptr, i64 } %callN, ptr %allocaN, align 8 store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %if.merge.13 br label %if.merge.13
if.merge.13: ; preds = %if.then.12, %if.then.9 if.merge.13: ; preds = %if.then.12, %if.then.9
%loadN = load { ptr, i64 }, 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 43 }) %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.149, i64 43 })
store { ptr, i64 } %callN, ptr %allocaN, align 8 store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %allocaN, align 8 %loadN = load { ptr, i64 }, ptr %allocaN, align 8
%loadN = load i64, ptr %allocaN, align 8 %loadN = load i64, ptr %allocaN, align 8
@@ -407,7 +407,7 @@ if.merge.13: ; preds = %if.then.12, %if.the
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN) %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN)
store { ptr, i64 } %callN, ptr %allocaN, align 8 store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, 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.171, i64 5 }) %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.150, i64 5 })
store { ptr, i64 } %callN, ptr %allocaN, align 8 store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load i64, ptr %allocaN, align 8 %loadN = load i64, ptr %allocaN, align 8
%addN = add i64 %loadN, 1 %addN = add i64 %loadN, 1
@@ -421,7 +421,7 @@ if.merge.13: ; preds = %if.then.12, %if.the
if.then.23: ; preds = %if.else.10 if.then.23: ; preds = %if.else.10
%loadN = load { ptr, i64 }, 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 36 }) %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.151, i64 36 })
store { ptr, i64 } %callN, ptr %allocaN, align 8 store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %allocaN, align 8 %loadN = load { ptr, i64 }, ptr %allocaN, align 8
%loadN = load i64, ptr %allocaN, align 8 %loadN = load i64, ptr %allocaN, align 8
@@ -429,7 +429,7 @@ if.then.23: ; preds = %if.else.10
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN) %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN)
store { ptr, i64 } %callN, ptr %allocaN, align 8 store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, 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 2 }) %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.152, i64 2 })
store { ptr, i64 } %callN, ptr %allocaN, align 8 store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %allocaN, align 8 %loadN = load { ptr, i64 }, ptr %allocaN, align 8
%loadN = load i64, ptr %allocaN, align 8 %loadN = load i64, ptr %allocaN, align 8
@@ -440,7 +440,7 @@ if.then.23: ; preds = %if.else.10
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN) %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN)
store { ptr, i64 } %callN, ptr %allocaN, align 8 store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, 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.174, i64 4 }) %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.153, i64 4 })
store { ptr, i64 } %callN, ptr %allocaN, align 8 store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load i64, ptr %allocaN, align 8 %loadN = load i64, ptr %allocaN, align 8
%addN = add i64 %loadN, 2 %addN = add i64 %loadN, 2
@@ -497,7 +497,7 @@ if.merge.31: ; preds = %if.merge.34, %if.el
if.then.32: ; preds = %if.then.29 if.then.32: ; preds = %if.then.29
%loadN = load { ptr, i64 }, 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 36 }) %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.154, i64 36 })
store { ptr, i64 } %callN, ptr %allocaN, align 8 store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %allocaN, align 8 %loadN = load { ptr, i64 }, ptr %allocaN, align 8
%loadN = load i64, ptr %allocaN, align 8 %loadN = load i64, ptr %allocaN, align 8
@@ -505,7 +505,7 @@ if.then.32: ; preds = %if.then.29
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN) %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN)
store { ptr, i64 } %callN, ptr %allocaN, align 8 store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, 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 2 }) %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.155, i64 2 })
store { ptr, i64 } %callN, ptr %allocaN, align 8 store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %allocaN, align 8 %loadN = load { ptr, i64 }, ptr %allocaN, align 8
%loadN = load i64, ptr %allocaN, align 8 %loadN = load i64, ptr %allocaN, align 8
@@ -516,7 +516,7 @@ if.then.32: ; preds = %if.then.29
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN) %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN)
store { ptr, i64 } %callN, ptr %allocaN, align 8 store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, 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.177, i64 4 }) %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.156, i64 4 })
store { ptr, i64 } %callN, ptr %allocaN, align 8 store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load i64, ptr %allocaN, align 8 %loadN = load i64, ptr %allocaN, align 8
%addN = add i64 %loadN, 2 %addN = add i64 %loadN, 2
@@ -536,7 +536,7 @@ if.merge.34: ; preds = %if.else.33, %if.the
if.then.35: ; preds = %while.exit.2 if.then.35: ; preds = %while.exit.2
%loadN = load { ptr, i64 }, 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.178, i64 36 }) %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.157, i64 36 })
store { ptr, i64 } %callN, ptr %allocaN, align 8 store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %allocaN, align 8 %loadN = load { ptr, i64 }, ptr %allocaN, align 8
%loadN = load i64, ptr %allocaN, align 8 %loadN = load i64, ptr %allocaN, align 8
@@ -544,7 +544,7 @@ if.then.35: ; preds = %while.exit.2
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN) %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN)
store { ptr, i64 } %callN, ptr %allocaN, align 8 store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, 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.179, i64 2 }) %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.158, i64 2 })
store { ptr, i64 } %callN, ptr %allocaN, align 8 store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %allocaN, align 8 %loadN = load { ptr, i64 }, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %alloca, align 8 %loadN = load { ptr, i64 }, ptr %alloca, align 8
@@ -555,7 +555,7 @@ if.then.35: ; preds = %while.exit.2
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN) %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN)
store { ptr, i64 } %callN, ptr %allocaN, align 8 store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, 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.180, i64 4 }) %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.159, i64 4 })
store { ptr, i64 } %callN, ptr %allocaN, align 8 store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %if.merge.36 br label %if.merge.36
@@ -648,69 +648,6 @@ declare ptr @TrackingAllocator.alloc_bytes(ptr, ptr, i64) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @TrackingAllocator.dealloc_bytes(ptr, ptr, ptr) #0 declare void @TrackingAllocator.dealloc_bytes(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare ptr @mem_realloc.3(ptr, ptr, ptr, i64, i64, i64) #0
; Function Attrs: nounwind
declare ptr @CAllocator.alloc_bytes.4(ptr, ptr, i64) #0
; Function Attrs: nounwind
declare void @CAllocator.dealloc_bytes.5(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare i64 @GPA.init.6(ptr) #0
; Function Attrs: nounwind
declare ptr @GPA.alloc_bytes.7(ptr, ptr, i64) #0
; Function Attrs: nounwind
declare void @GPA.dealloc_bytes.8(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare void @Arena.add_chunk.9(ptr, ptr, i64) #0
; Function Attrs: nounwind
declare void @Arena.init.10(ptr sret({ ptr, i64, { ptr, ptr, ptr } }), ptr, ptr, i64) #0
; Function Attrs: nounwind
declare void @Arena.reset.11(ptr, ptr) #0
; Function Attrs: nounwind
declare void @Arena.deinit.12(ptr, ptr) #0
; Function Attrs: nounwind
declare ptr @Arena.alloc_bytes.13(ptr, ptr, i64) #0
; Function Attrs: nounwind
declare void @Arena.dealloc_bytes.14(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare void @BufAlloc.init.15(ptr sret({ ptr, i64, i64 }), ptr, ptr, i64) #0
; Function Attrs: nounwind
declare void @BufAlloc.reset.16(ptr, ptr) #0
; Function Attrs: nounwind
declare ptr @BufAlloc.alloc_bytes.17(ptr, ptr, i64) #0
; Function Attrs: nounwind
declare void @BufAlloc.dealloc_bytes.18(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare void @TrackingAllocator.init.19(ptr sret({ { ptr, ptr, ptr }, i64, i64, i64 }), ptr, ptr) #0
; Function Attrs: nounwind
declare i64 @TrackingAllocator.leak_count.20(ptr, ptr) #0
; Function Attrs: nounwind
declare void @TrackingAllocator.report.21(ptr, ptr) #0
; Function Attrs: nounwind
declare ptr @TrackingAllocator.alloc_bytes.22(ptr, ptr, i64) #0
; Function Attrs: nounwind
declare void @TrackingAllocator.dealloc_bytes.23(ptr, ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare ptr @escape(ptr, ptr) #0 declare ptr @escape(ptr, ptr) #0
@@ -885,166 +822,166 @@ declare i32 @listen(i32, i32) #0
declare i32 @accept(i32, ptr, ptr) #0 declare i32 @accept(i32, ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i64 @read.24(i32, ptr, i64) #0 declare i64 @read.3(i32, ptr, i64) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i32 @close.25(i32) #0 declare i32 @close.4(i32) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i16 @htons(ptr, i64) #0 declare i16 @htons(ptr, i64) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare ptr @mem_realloc.26(ptr, ptr, ptr, i64, i64, i64) #0 declare ptr @mem_realloc.5(ptr, ptr, ptr, i64, i64, i64) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare ptr @CAllocator.alloc_bytes.27(ptr, ptr, i64) #0 declare ptr @CAllocator.alloc_bytes.6(ptr, ptr, i64) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @CAllocator.dealloc_bytes.28(ptr, ptr, ptr) #0 declare void @CAllocator.dealloc_bytes.7(ptr, ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i64 @GPA.init.29(ptr) #0 declare i64 @GPA.init.8(ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare ptr @GPA.alloc_bytes.30(ptr, ptr, i64) #0 declare ptr @GPA.alloc_bytes.9(ptr, ptr, i64) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @GPA.dealloc_bytes.31(ptr, ptr, ptr) #0 declare void @GPA.dealloc_bytes.10(ptr, ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @Arena.add_chunk.32(ptr, ptr, i64) #0 declare void @Arena.add_chunk.11(ptr, ptr, i64) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @Arena.init.33(ptr sret({ ptr, i64, { ptr, ptr, ptr } }), ptr, ptr, i64) #0 declare void @Arena.init.12(ptr sret({ ptr, i64, { ptr, ptr, ptr } }), ptr, ptr, i64) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @Arena.reset.34(ptr, ptr) #0 declare void @Arena.reset.13(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @Arena.deinit.35(ptr, ptr) #0 declare void @Arena.deinit.14(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare ptr @Arena.alloc_bytes.36(ptr, ptr, i64) #0 declare ptr @Arena.alloc_bytes.15(ptr, ptr, i64) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @Arena.dealloc_bytes.37(ptr, ptr, ptr) #0 declare void @Arena.dealloc_bytes.16(ptr, ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @BufAlloc.init.38(ptr sret({ ptr, i64, i64 }), ptr, ptr, i64) #0 declare void @BufAlloc.init.17(ptr sret({ ptr, i64, i64 }), ptr, ptr, i64) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @BufAlloc.reset.39(ptr, ptr) #0 declare void @BufAlloc.reset.18(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare ptr @BufAlloc.alloc_bytes.40(ptr, ptr, i64) #0 declare ptr @BufAlloc.alloc_bytes.19(ptr, ptr, i64) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @BufAlloc.dealloc_bytes.41(ptr, ptr, ptr) #0 declare void @BufAlloc.dealloc_bytes.20(ptr, ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @TrackingAllocator.init.42(ptr sret({ { ptr, ptr, ptr }, i64, i64, i64 }), ptr, ptr) #0 declare void @TrackingAllocator.init.21(ptr sret({ { ptr, ptr, ptr }, i64, i64, i64 }), ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i64 @TrackingAllocator.leak_count.43(ptr, ptr) #0 declare i64 @TrackingAllocator.leak_count.22(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @TrackingAllocator.report.44(ptr, ptr) #0 declare void @TrackingAllocator.report.23(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare ptr @TrackingAllocator.alloc_bytes.45(ptr, ptr, i64) #0 declare ptr @TrackingAllocator.alloc_bytes.24(ptr, ptr, i64) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @TrackingAllocator.dealloc_bytes.46(ptr, ptr, ptr) #0 declare void @TrackingAllocator.dealloc_bytes.25(ptr, ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i32 @open.47(ptr, i32, ...) #0 declare i32 @open.26(ptr, i32, ...) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i32 @close.48(i32) #0 declare i32 @close.27(i32) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i64 @read.49(i32, ptr, i64) #0 declare i64 @read.28(i32, ptr, i64) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i64 @lseek.50(i32, i64, i32) #0 declare i64 @lseek.29(i32, i64, i32) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i32 @unlink.51(ptr) #0 declare i32 @unlink.30(ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i32 @rmdir.52(ptr) #0 declare i32 @rmdir.31(ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i32 @mkdir.53(ptr, i32) #0 declare i32 @mkdir.32(ptr, i32) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i32 @access.54(ptr, i32) #0 declare i32 @access.33(ptr, i32) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i32 @chmod.55(ptr, i32) #0 declare i32 @chmod.34(ptr, i32) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i32 @rename.56(ptr, ptr) #0 declare i32 @rename.35(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i1 @File.is_valid.57(ptr, ptr) #0 declare i1 @File.is_valid.36(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i1 @File.close.58(ptr, ptr) #0 declare i1 @File.close.37(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i64 @File.read.59(ptr, ptr, ptr) #0 declare i64 @File.read.38(ptr, ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i64 @File.write.60(ptr, ptr, ptr) #0 declare i64 @File.write.39(ptr, ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i64 @File.seek.61(ptr, ptr, i64, i64) #0 declare i64 @File.seek.40(ptr, ptr, i64, i64) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i32 @mode_to_flags.62(ptr, i64) #0 declare i32 @mode_to_flags.41(ptr, i64) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i64 @open_file.63(ptr, ptr, i64) #0 declare i64 @open_file.42(ptr, ptr, i64) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @read_file.64(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 declare void @read_file.43(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i1 @write_file.65(ptr, ptr, ptr) #0 declare i1 @write_file.44(ptr, ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i1 @append_file.66(ptr, ptr, ptr) #0 declare i1 @append_file.45(ptr, ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i1 @exists.67(ptr, ptr) #0 declare i1 @exists.46(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i1 @delete_file.68(ptr, ptr) #0 declare i1 @delete_file.47(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i1 @delete_dir.69(ptr, ptr) #0 declare i1 @delete_dir.48(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i1 @create_dir.70(ptr, ptr) #0 declare i1 @create_dir.49(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i1 @set_mode.71(ptr, ptr, i32) #0 declare i1 @set_mode.50(ptr, ptr, i32) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i1 @move.72(ptr, ptr, ptr) #0 declare i1 @move.51(ptr, ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i1 @create_dir_all.73(ptr, ptr) #0 declare i1 @create_dir_all.52(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i1 @copy_file.74(ptr, ptr, ptr) #0 declare i1 @copy_file.53(ptr, ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare ptr @basename.75(ptr, ptr) #0 declare ptr @basename.54(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare ptr @dirname.76(ptr, ptr) #0 declare ptr @dirname.55(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @Array.add(ptr, ptr, ptr, ptr) #0 declare void @Array.add(ptr, ptr, ptr, ptr) #0
@@ -1242,64 +1179,64 @@ declare ptr @BuildOptions.jni_main_java_source_at(i64, i64) #0
declare i64 @build_options() #0 declare i64 @build_options() #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare ptr @spaces.77(ptr, i32) #0 declare ptr @spaces.56(ptr, i32) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i32 @sx_trace_len.78() #0 declare i32 @sx_trace_len.57() #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i32 @sx_trace_truncated.79() #0 declare i32 @sx_trace_truncated.58() #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i64 @sx_trace_frame_at.80(i32) #0 declare i64 @sx_trace_frame_at.59(i32) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare ptr @to_string.81(ptr) #0 declare ptr @to_string.60(ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @print_current.82(ptr) #0 declare void @print_current.61(ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @print_interpreter_frames.83(ptr) #0 declare void @print_interpreter_frames.62(ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare ptr @popen.84(ptr, ptr) #0 declare ptr @popen.63(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i32 @pclose.85(ptr) #0 declare i32 @pclose.64(ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i64 @fread.86(ptr, i64, i64, ptr) #0 declare i64 @fread.65(ptr, i64, i64, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i32 @feof.87(ptr) #0 declare i32 @feof.66(ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare ptr @getenv.88(ptr) #0 declare ptr @getenv.67(ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i64 @strlen.89(ptr) #0 declare i64 @strlen.68(ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i32 @system.90(ptr) #0 declare i32 @system.69(ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @run.91(ptr sret({ { i32, { ptr, i64 } }, i1 }), ptr, ptr) #0 declare void @run.70(ptr sret({ { i32, { ptr, i64 } }, i1 }), ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @env.92(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 declare void @env.71(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @find_executable.93(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 declare void @find_executable.72(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @_exit.94(i32) #0 declare void @_exit.73(i32) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @exit.95(ptr, i8, ptr) #0 declare void @exit.74(ptr, i8, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @assert.96(ptr, i1, ptr, ptr) #0 declare void @assert.75(ptr, i1, ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare ptr @_NSGetArgv() #0 declare ptr @_NSGetArgv() #0
@@ -1329,97 +1266,97 @@ declare ptr @Parsed.value_of(ptr, ptr, ptr) #0
declare i1 @is_long_flag(ptr, ptr) #0 declare i1 @is_long_flag(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @parse.97(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.76(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 ; Function Attrs: nounwind
declare i32 @open.98(ptr, i32, ...) #0 declare i32 @open.77(ptr, i32, ...) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i32 @close.99(i32) #0 declare i32 @close.78(i32) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i64 @read.100(i32, ptr, i64) #0 declare i64 @read.79(i32, ptr, i64) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i64 @lseek.101(i32, i64, i32) #0 declare i64 @lseek.80(i32, i64, i32) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i32 @unlink.102(ptr) #0 declare i32 @unlink.81(ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i32 @rmdir.103(ptr) #0 declare i32 @rmdir.82(ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i32 @mkdir.104(ptr, i32) #0 declare i32 @mkdir.83(ptr, i32) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i32 @access.105(ptr, i32) #0 declare i32 @access.84(ptr, i32) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i32 @chmod.106(ptr, i32) #0 declare i32 @chmod.85(ptr, i32) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i32 @rename.107(ptr, ptr) #0 declare i32 @rename.86(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i1 @File.is_valid.108(ptr, ptr) #0 declare i1 @File.is_valid.87(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i1 @File.close.109(ptr, ptr) #0 declare i1 @File.close.88(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i64 @File.read.110(ptr, ptr, ptr) #0 declare i64 @File.read.89(ptr, ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i64 @File.write.111(ptr, ptr, ptr) #0 declare i64 @File.write.90(ptr, ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i64 @File.seek.112(ptr, ptr, i64, i64) #0 declare i64 @File.seek.91(ptr, ptr, i64, i64) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i32 @mode_to_flags.113(ptr, i64) #0 declare i32 @mode_to_flags.92(ptr, i64) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i64 @open_file.114(ptr, ptr, i64) #0 declare i64 @open_file.93(ptr, ptr, i64) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @read_file.115(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 declare void @read_file.94(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i1 @write_file.116(ptr, ptr, ptr) #0 declare i1 @write_file.95(ptr, ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i1 @append_file.117(ptr, ptr, ptr) #0 declare i1 @append_file.96(ptr, ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i1 @exists.118(ptr, ptr) #0 declare i1 @exists.97(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i1 @delete_file.119(ptr, ptr) #0 declare i1 @delete_file.98(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i1 @delete_dir.120(ptr, ptr) #0 declare i1 @delete_dir.99(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i1 @create_dir.121(ptr, ptr) #0 declare i1 @create_dir.100(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i1 @set_mode.122(ptr, ptr, i32) #0 declare i1 @set_mode.101(ptr, ptr, i32) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i1 @move.123(ptr, ptr, ptr) #0 declare i1 @move.102(ptr, ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i1 @create_dir_all.124(ptr, ptr) #0 declare i1 @create_dir_all.103(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i1 @copy_file.125(ptr, ptr, ptr) #0 declare i1 @copy_file.104(ptr, ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare ptr @basename.126(ptr, ptr) #0 declare ptr @basename.105(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare ptr @dirname.127(ptr, ptr) #0 declare ptr @dirname.106(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i64 @rotr(ptr, i64, i64) #0 declare i64 @rotr(ptr, i64, i64) #0
@@ -1458,118 +1395,118 @@ declare [64 x i8] @sha256_hex(ptr, ptr) #0
declare void @sha256_file(ptr sret({ [64 x i8], i1 }), ptr, ptr) #0 declare void @sha256_file(ptr sret({ [64 x i8], i1 }), ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @assert.128(ptr, i1) #0 declare void @assert.107(ptr, i1) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @BuildOptions.add_link_flag.129(i64, ptr) #0 declare void @BuildOptions.add_link_flag.108(i64, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @BuildOptions.add_framework.130(i64, ptr) #0 declare void @BuildOptions.add_framework.109(i64, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @BuildOptions.set_output_path.131(i64, ptr) #0 declare void @BuildOptions.set_output_path.110(i64, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @BuildOptions.set_wasm_shell.132(i64, ptr) #0 declare void @BuildOptions.set_wasm_shell.111(i64, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @BuildOptions.add_asset_dir.133(i64, ptr, ptr) #0 declare void @BuildOptions.add_asset_dir.112(i64, ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i64 @BuildOptions.asset_dir_count.134(i64) #0 declare i64 @BuildOptions.asset_dir_count.113(i64) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare ptr @BuildOptions.asset_dir_src_at.135(i64, i64) #0 declare ptr @BuildOptions.asset_dir_src_at.114(i64, i64) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare ptr @BuildOptions.asset_dir_dest_at.136(i64, i64) #0 declare ptr @BuildOptions.asset_dir_dest_at.115(i64, i64) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @BuildOptions.set_post_link_callback.137(i64, ptr) #0 declare void @BuildOptions.set_post_link_callback.116(i64, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @BuildOptions.set_post_link_module.138(i64, ptr) #0 declare void @BuildOptions.set_post_link_module.117(i64, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare ptr @BuildOptions.binary_path.139(i64) #0 declare ptr @BuildOptions.binary_path.118(i64) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @BuildOptions.set_bundle_path.140(i64, ptr) #0 declare void @BuildOptions.set_bundle_path.119(i64, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @BuildOptions.set_bundle_id.141(i64, ptr) #0 declare void @BuildOptions.set_bundle_id.120(i64, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @BuildOptions.set_codesign_identity.142(i64, ptr) #0 declare void @BuildOptions.set_codesign_identity.121(i64, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @BuildOptions.set_provisioning_profile.143(i64, ptr) #0 declare void @BuildOptions.set_provisioning_profile.122(i64, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare ptr @BuildOptions.bundle_path.144(i64) #0 declare ptr @BuildOptions.bundle_path.123(i64) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare ptr @BuildOptions.bundle_id.145(i64) #0 declare ptr @BuildOptions.bundle_id.124(i64) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare ptr @BuildOptions.codesign_identity.146(i64) #0 declare ptr @BuildOptions.codesign_identity.125(i64) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare ptr @BuildOptions.provisioning_profile.147(i64) #0 declare ptr @BuildOptions.provisioning_profile.126(i64) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare ptr @BuildOptions.target_triple.148(i64) #0 declare ptr @BuildOptions.target_triple.127(i64) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i1 @BuildOptions.is_macos.149(i64) #0 declare i1 @BuildOptions.is_macos.128(i64) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i1 @BuildOptions.is_ios.150(i64) #0 declare i1 @BuildOptions.is_ios.129(i64) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i1 @BuildOptions.is_ios_device.151(i64) #0 declare i1 @BuildOptions.is_ios_device.130(i64) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i1 @BuildOptions.is_ios_simulator.152(i64) #0 declare i1 @BuildOptions.is_ios_simulator.131(i64) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i1 @BuildOptions.is_android.153(i64) #0 declare i1 @BuildOptions.is_android.132(i64) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i64 @BuildOptions.framework_count.154(i64) #0 declare i64 @BuildOptions.framework_count.133(i64) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare ptr @BuildOptions.framework_at.155(i64, i64) #0 declare ptr @BuildOptions.framework_at.134(i64, i64) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i64 @BuildOptions.framework_path_count.156(i64) #0 declare i64 @BuildOptions.framework_path_count.135(i64) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare ptr @BuildOptions.framework_path_at.157(i64, i64) #0 declare ptr @BuildOptions.framework_path_at.136(i64, i64) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @BuildOptions.set_manifest_path.158(i64, ptr) #0 declare void @BuildOptions.set_manifest_path.137(i64, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @BuildOptions.set_keystore_path.159(i64, ptr) #0 declare void @BuildOptions.set_keystore_path.138(i64, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare ptr @BuildOptions.manifest_path.160(i64) #0 declare ptr @BuildOptions.manifest_path.139(i64) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare ptr @BuildOptions.keystore_path.161(i64) #0 declare ptr @BuildOptions.keystore_path.140(i64) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i64 @BuildOptions.jni_main_count.162(i64) #0 declare i64 @BuildOptions.jni_main_count.141(i64) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare ptr @BuildOptions.jni_main_foreign_path_at.163(i64, i64) #0 declare ptr @BuildOptions.jni_main_foreign_path_at.142(i64, i64) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare ptr @BuildOptions.jni_main_java_source_at.164(i64, i64) #0 declare ptr @BuildOptions.jni_main_java_source_at.143(i64, i64) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i64 @build_options.165() #0 declare i64 @build_options.144() #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare ptr @objc_getClass(ptr) #0 declare ptr @objc_getClass(ptr) #0
@@ -1651,34 +1588,34 @@ entry:
define i32 @main() #0 { define i32 @main() #0 {
entry: entry:
call void @__sx_objc_selector_init() call void @__sx_objc_selector_init()
%call = call ptr @objc_getClass(ptr @str.181) %call = call ptr @objc_getClass(ptr @str.160)
%alloca = alloca ptr, align 8 %alloca = alloca ptr, align 8
store ptr %call, ptr %alloca, align 8 store ptr %call, ptr %alloca, align 8
%load = load ptr, ptr %alloca, align 8 %load = load ptr, ptr %alloca, align 8
%callN = call ptr @objc_allocateClassPair(ptr %load, ptr @str.182, i64 0) %callN = call ptr @objc_allocateClassPair(ptr %load, ptr @str.161, i64 0)
%allocaN = alloca ptr, align 8 %allocaN = alloca ptr, align 8
store ptr %callN, ptr %allocaN, align 8 store ptr %callN, ptr %allocaN, align 8
%loadN = load ptr, ptr %allocaN, align 8 %loadN = load ptr, ptr %allocaN, align 8
%callN = call ptr @sel_registerName(ptr @str.183) %callN = call ptr @sel_registerName(ptr @str.162)
%callN = call i1 @class_addMethod(ptr %loadN, ptr %callN, ptr @universal_imp, ptr @str.184) %callN = call i1 @class_addMethod(ptr %loadN, ptr %callN, ptr @universal_imp, ptr @str.163)
%loadN = load ptr, ptr %allocaN, align 8 %loadN = load ptr, ptr %allocaN, align 8
%callN = call ptr @sel_registerName(ptr @str.185) %callN = call ptr @sel_registerName(ptr @str.164)
%callN = call i1 @class_addMethod(ptr %loadN, ptr %callN, ptr @universal_imp, ptr @str.186) %callN = call i1 @class_addMethod(ptr %loadN, ptr %callN, ptr @universal_imp, ptr @str.165)
%loadN = load ptr, ptr %allocaN, align 8 %loadN = load ptr, ptr %allocaN, align 8
%callN = call ptr @sel_registerName(ptr @str.187) %callN = call ptr @sel_registerName(ptr @str.166)
%callN = call i1 @class_addMethod(ptr %loadN, ptr %callN, ptr @universal_imp, ptr @str.188) %callN = call i1 @class_addMethod(ptr %loadN, ptr %callN, ptr @universal_imp, ptr @str.167)
%loadN = load ptr, ptr %allocaN, align 8 %loadN = load ptr, ptr %allocaN, align 8
%callN = call ptr @sel_registerName(ptr @str.189) %callN = call ptr @sel_registerName(ptr @str.168)
%callN = call i1 @class_addMethod(ptr %loadN, ptr %callN, ptr @universal_imp, ptr @str.190) %callN = call i1 @class_addMethod(ptr %loadN, ptr %callN, ptr @universal_imp, ptr @str.169)
%loadN = load ptr, ptr %allocaN, align 8 %loadN = load ptr, ptr %allocaN, align 8
%callN = call ptr @sel_registerName(ptr @str.191) %callN = call ptr @sel_registerName(ptr @str.170)
%callN = call i1 @class_addMethod(ptr %loadN, ptr %callN, ptr @universal_imp, ptr @str.192) %callN = call i1 @class_addMethod(ptr %loadN, ptr %callN, ptr @universal_imp, ptr @str.171)
%loadN = load ptr, ptr %allocaN, align 8 %loadN = load ptr, ptr %allocaN, align 8
%callN = call ptr @sel_registerName(ptr @str.193) %callN = call ptr @sel_registerName(ptr @str.172)
%callN = call i1 @class_addMethod(ptr %loadN, ptr %callN, ptr @universal_imp, ptr @str.194) %callN = call i1 @class_addMethod(ptr %loadN, ptr %callN, ptr @universal_imp, ptr @str.173)
%loadN = load ptr, ptr %allocaN, align 8 %loadN = load ptr, ptr %allocaN, align 8
%callN = call ptr @sel_registerName(ptr @str.195) %callN = call ptr @sel_registerName(ptr @str.174)
%callN = call i1 @class_addMethod(ptr %loadN, ptr %callN, ptr @universal_imp, ptr @str.196) %callN = call i1 @class_addMethod(ptr %loadN, ptr %callN, ptr @universal_imp, ptr @str.175)
%loadN = load ptr, ptr %allocaN, align 8 %loadN = load ptr, ptr %allocaN, align 8
call void @objc_registerClassPair(ptr %loadN) call void @objc_registerClassPair(ptr %loadN)
%allocaN = alloca ptr, align 8 %allocaN = alloca ptr, align 8
@@ -1728,14 +1665,14 @@ entry:
define internal void @print__ct_s4c1a58a7c89bfbba__pack(ptr %0) #0 { define internal void @print__ct_s4c1a58a7c89bfbba__pack(ptr %0) #0 {
entry: entry:
%alloca = alloca { ptr, i64 }, align 8 %alloca = alloca { ptr, i64 }, align 8
store { ptr, i64 } { ptr @str.197, i64 18 }, ptr %alloca, align 8 store { ptr, i64 } { ptr @str.176, i64 18 }, ptr %alloca, align 8
%allocaN = alloca { ptr, i64 }, align 8 %allocaN = alloca { ptr, i64 }, align 8
%gep = getelementptr inbounds { ptr, i64 }, ptr %allocaN, i32 0, i32 0 %gep = getelementptr inbounds { ptr, i64 }, ptr %allocaN, i32 0, i32 0
store ptr null, ptr %gep, align 8 store ptr null, ptr %gep, align 8
%gepN = getelementptr inbounds { ptr, i64 }, ptr %allocaN, i32 0, i32 1 %gepN = getelementptr inbounds { ptr, i64 }, ptr %allocaN, i32 0, i32 1
store i64 0, ptr %gepN, align 8 store i64 0, ptr %gepN, align 8
%allocaN = alloca { ptr, i64 }, align 8 %allocaN = alloca { ptr, i64 }, align 8
store { ptr, i64 } { ptr @str.198, i64 0 }, ptr %allocaN, align 8 store { ptr, i64 } { ptr @str.177, i64 0 }, ptr %allocaN, align 8
%load = load { ptr, i64 }, ptr %allocaN, align 8 %load = load { ptr, i64 }, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %alloca, align 8 %loadN = load { ptr, i64 }, ptr %alloca, align 8
%call = call { ptr, i64 } @substr(ptr %0, { ptr, i64 } %loadN, i64 0, i64 18) %call = call { ptr, i64 } @substr(ptr %0, { ptr, i64 } %loadN, i64 0, i64 18)
@@ -1751,7 +1688,7 @@ entry:
; Function Attrs: nounwind ; Function Attrs: nounwind
define internal { ptr, i64 } @__insert_0(ptr %0) #0 { define internal { ptr, i64 } @__insert_0(ptr %0) #0 {
entry: entry:
%call = call { ptr, i64 } @build_format(ptr %0, { ptr, i64 } { ptr @str.199, i64 18 }) %call = call { ptr, i64 } @build_format(ptr %0, { ptr, i64 } { ptr @str.178, i64 18 })
ret { ptr, i64 } %call ret { ptr, i64 } %call
} }
@@ -1759,17 +1696,17 @@ define internal void @__sx_objc_selector_init() {
entry: entry:
%sel = call ptr @sel_registerName(ptr @OBJC_METH_VAR_NAME_) %sel = call ptr @sel_registerName(ptr @OBJC_METH_VAR_NAME_)
store ptr %sel, ptr @OBJC_SELECTOR_REFERENCES_length, align 8 store ptr %sel, ptr @OBJC_SELECTOR_REFERENCES_length, align 8
%selN = call ptr @sel_registerName(ptr @OBJC_METH_VAR_NAME_.200) %selN = call ptr @sel_registerName(ptr @OBJC_METH_VAR_NAME_.179)
store ptr %selN, ptr @OBJC_SELECTOR_REFERENCES_addObject_, align 8 store ptr %selN, ptr @OBJC_SELECTOR_REFERENCES_addObject_, align 8
%selN = call ptr @sel_registerName(ptr @OBJC_METH_VAR_NAME_.201) %selN = call ptr @sel_registerName(ptr @OBJC_METH_VAR_NAME_.180)
store ptr %selN, ptr @OBJC_SELECTOR_REFERENCES_combine_and_, align 8 store ptr %selN, ptr @OBJC_SELECTOR_REFERENCES_combine_and_, align 8
%selN = call ptr @sel_registerName(ptr @OBJC_METH_VAR_NAME_.202) %selN = call ptr @sel_registerName(ptr @OBJC_METH_VAR_NAME_.181)
store ptr %selN, ptr @OBJC_SELECTOR_REFERENCES_insert_after_index_, align 8 store ptr %selN, ptr @OBJC_SELECTOR_REFERENCES_insert_after_index_, align 8
%selN = call ptr @sel_registerName(ptr @OBJC_METH_VAR_NAME_.203) %selN = call ptr @sel_registerName(ptr @OBJC_METH_VAR_NAME_.182)
store ptr %selN, ptr @OBJC_SELECTOR_REFERENCES_add_observer_for_event_, align 8 store ptr %selN, ptr @OBJC_SELECTOR_REFERENCES_add_observer_for_event_, align 8
%selN = call ptr @sel_registerName(ptr @OBJC_METH_VAR_NAME_.204) %selN = call ptr @sel_registerName(ptr @OBJC_METH_VAR_NAME_.183)
store ptr %selN, ptr @OBJC_SELECTOR_REFERENCES_initWithFrame_options_, align 8 store ptr %selN, ptr @OBJC_SELECTOR_REFERENCES_initWithFrame_options_, align 8
%selN = call ptr @sel_registerName(ptr @OBJC_METH_VAR_NAME_.205) %selN = call ptr @sel_registerName(ptr @OBJC_METH_VAR_NAME_.184)
store ptr %selN, ptr @OBJC_SELECTOR_REFERENCES_actualSelectorName, align 8 store ptr %selN, ptr @OBJC_SELECTOR_REFERENCES_actualSelectorName, align 8
ret void ret void
} }

View File

@@ -2,30 +2,30 @@
@g_should_call = internal global i1 false @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 } @__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 = private unnamed_addr constant [2 x i8] c"0\00", align 1
@str.129 = private unnamed_addr constant [15 x i8] c"result := \22\22; \00", align 1 @str.108 = private unnamed_addr constant [15 x i8] c"result := \22\22; \00", align 1
@str.130 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1 @str.109 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1
@str.131 = private unnamed_addr constant [3 x i8] c", \00", align 1 @str.110 = private unnamed_addr constant [3 x i8] c", \00", align 1
@str.132 = private unnamed_addr constant [5 x i8] c")); \00", align 1 @str.111 = private unnamed_addr constant [5 x i8] c")); \00", align 1
@str.133 = private unnamed_addr constant [44 x i8] c"result = concat(result, any_to_string(args[\00", align 1 @str.112 = private unnamed_addr constant [44 x i8] c"result = concat(result, any_to_string(args[\00", align 1
@str.134 = private unnamed_addr constant [6 x i8] c"])); \00", align 1 @str.113 = private unnamed_addr constant [6 x i8] c"])); \00", align 1
@str.135 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1 @str.114 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1
@str.136 = private unnamed_addr constant [3 x i8] c", \00", align 1 @str.115 = private unnamed_addr constant [3 x i8] c", \00", align 1
@str.137 = private unnamed_addr constant [5 x i8] c")); \00", align 1 @str.116 = private unnamed_addr constant [5 x i8] c")); \00", align 1
@str.138 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1 @str.117 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1
@str.139 = private unnamed_addr constant [3 x i8] c", \00", align 1 @str.118 = private unnamed_addr constant [3 x i8] c", \00", align 1
@str.140 = private unnamed_addr constant [5 x i8] c")); \00", align 1 @str.119 = private unnamed_addr constant [5 x i8] c")); \00", align 1
@str.141 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1 @str.120 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1
@str.142 = private unnamed_addr constant [3 x i8] c", \00", align 1 @str.121 = private unnamed_addr constant [3 x i8] c", \00", align 1
@str.143 = private unnamed_addr constant [5 x i8] c")); \00", align 1 @str.122 = private unnamed_addr constant [5 x i8] c")); \00", align 1
@str.144 = private unnamed_addr constant [5 x i8] c"noop\00", align 1 @str.123 = 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.124 = private unnamed_addr constant [4 x i8] c"()V\00", align 1
@SX_JNI_CLS_noop____V = internal global ptr null @SX_JNI_CLS_noop____V = internal global ptr null
@SX_JNI_MID_noop____V = internal global ptr null @SX_JNI_MID_noop____V = internal global ptr null
@str.146 = private unnamed_addr constant [5 x i8] c"noop\00", align 1 @str.125 = private unnamed_addr constant [5 x i8] c"noop\00", align 1
@str.147 = private unnamed_addr constant [4 x i8] c"()V\00", align 1 @str.126 = private unnamed_addr constant [4 x i8] c"()V\00", align 1
@str.148 = private unnamed_addr constant [4 x i8] c"ok\0A\00", align 1 @str.127 = private unnamed_addr constant [4 x i8] c"ok\0A\00", align 1
@str.149 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 @str.128 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1
@str.150 = private unnamed_addr constant [4 x i8] c"ok\0A\00", align 1 @str.129 = private unnamed_addr constant [4 x i8] c"ok\0A\00", align 1
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @out(ptr) #0 declare void @out(ptr) #0
@@ -255,7 +255,7 @@ entry:
%alloca = alloca { ptr, i64 }, align 8 %alloca = alloca { ptr, i64 }, align 8
store { ptr, i64 } %1, ptr %alloca, align 8 store { ptr, i64 } %1, ptr %alloca, align 8
%allocaN = alloca { ptr, i64 }, align 8 %allocaN = alloca { ptr, i64 }, align 8
store { ptr, i64 } { ptr @str.129, i64 14 }, ptr %allocaN, align 8 store { ptr, i64 } { ptr @str.108, i64 14 }, ptr %allocaN, align 8
%allocaN = alloca i64, align 8 %allocaN = alloca i64, align 8
store i64 0, ptr %allocaN, align 8 store i64 0, ptr %allocaN, align 8
%allocaN = alloca i64, align 8 %allocaN = alloca i64, align 8
@@ -351,7 +351,7 @@ if.merge.13: ; preds = %if.merge.27, %if.me
if.then.14: ; preds = %if.then.11 if.then.14: ; preds = %if.then.11
%loadN = load { ptr, i64 }, ptr %allocaN, align 8 %loadN = load { ptr, i64 }, ptr %allocaN, align 8
%call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.130, i64 36 }) %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.109, i64 36 })
store { ptr, i64 } %call, ptr %allocaN, align 8 store { ptr, i64 } %call, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %allocaN, align 8 %loadN = load { ptr, i64 }, ptr %allocaN, align 8
%loadN = load i64, ptr %allocaN, align 8 %loadN = load i64, ptr %allocaN, align 8
@@ -359,7 +359,7 @@ if.then.14: ; preds = %if.then.11
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN) %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN)
store { ptr, i64 } %callN, ptr %allocaN, align 8 store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, 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.131, i64 2 }) %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.110, i64 2 })
store { ptr, i64 } %callN, ptr %allocaN, align 8 store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %allocaN, align 8 %loadN = load { ptr, i64 }, ptr %allocaN, align 8
%loadN = load i64, ptr %allocaN, align 8 %loadN = load i64, ptr %allocaN, align 8
@@ -369,13 +369,13 @@ if.then.14: ; preds = %if.then.11
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN) %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN)
store { ptr, i64 } %callN, ptr %allocaN, align 8 store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, 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 4 }) %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.111, i64 4 })
store { ptr, i64 } %callN, ptr %allocaN, align 8 store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %if.merge.15 br label %if.merge.15
if.merge.15: ; preds = %if.then.14, %if.then.11 if.merge.15: ; preds = %if.then.14, %if.then.11
%loadN = load { ptr, i64 }, 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 43 }) %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.112, i64 43 })
store { ptr, i64 } %callN, ptr %allocaN, align 8 store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %allocaN, align 8 %loadN = load { ptr, i64 }, ptr %allocaN, align 8
%loadN = load i64, ptr %allocaN, align 8 %loadN = load i64, ptr %allocaN, align 8
@@ -383,7 +383,7 @@ if.merge.15: ; preds = %if.then.14, %if.the
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN) %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN)
store { ptr, i64 } %callN, ptr %allocaN, align 8 store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, 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.134, i64 5 }) %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.113, i64 5 })
store { ptr, i64 } %callN, ptr %allocaN, align 8 store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load i64, ptr %allocaN, align 8 %loadN = load i64, ptr %allocaN, align 8
%addN = add i64 %loadN, 1 %addN = add i64 %loadN, 1
@@ -397,7 +397,7 @@ if.merge.15: ; preds = %if.then.14, %if.the
if.then.25: ; preds = %if.else.12 if.then.25: ; preds = %if.else.12
%loadN = load { ptr, i64 }, 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 36 }) %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.114, i64 36 })
store { ptr, i64 } %callN, ptr %allocaN, align 8 store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %allocaN, align 8 %loadN = load { ptr, i64 }, ptr %allocaN, align 8
%loadN = load i64, ptr %allocaN, align 8 %loadN = load i64, ptr %allocaN, align 8
@@ -405,7 +405,7 @@ if.then.25: ; preds = %if.else.12
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN) %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN)
store { ptr, i64 } %callN, ptr %allocaN, align 8 store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, 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 2 }) %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.115, i64 2 })
store { ptr, i64 } %callN, ptr %allocaN, align 8 store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %allocaN, align 8 %loadN = load { ptr, i64 }, ptr %allocaN, align 8
%loadN = load i64, ptr %allocaN, align 8 %loadN = load i64, ptr %allocaN, align 8
@@ -416,7 +416,7 @@ if.then.25: ; preds = %if.else.12
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN) %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN)
store { ptr, i64 } %callN, ptr %allocaN, align 8 store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, 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.137, i64 4 }) %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.116, i64 4 })
store { ptr, i64 } %callN, ptr %allocaN, align 8 store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load i64, ptr %allocaN, align 8 %loadN = load i64, ptr %allocaN, align 8
%addN = add i64 %loadN, 2 %addN = add i64 %loadN, 2
@@ -473,7 +473,7 @@ if.merge.33: ; preds = %if.merge.36, %if.el
if.then.34: ; preds = %if.then.31 if.then.34: ; preds = %if.then.31
%loadN = load { ptr, i64 }, 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 36 }) %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.117, i64 36 })
store { ptr, i64 } %callN, ptr %allocaN, align 8 store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %allocaN, align 8 %loadN = load { ptr, i64 }, ptr %allocaN, align 8
%loadN = load i64, ptr %allocaN, align 8 %loadN = load i64, ptr %allocaN, align 8
@@ -481,7 +481,7 @@ if.then.34: ; preds = %if.then.31
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN) %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN)
store { ptr, i64 } %callN, ptr %allocaN, align 8 store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, 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 2 }) %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.118, i64 2 })
store { ptr, i64 } %callN, ptr %allocaN, align 8 store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %allocaN, align 8 %loadN = load { ptr, i64 }, ptr %allocaN, align 8
%loadN = load i64, ptr %allocaN, align 8 %loadN = load i64, ptr %allocaN, align 8
@@ -492,7 +492,7 @@ if.then.34: ; preds = %if.then.31
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN) %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN)
store { ptr, i64 } %callN, ptr %allocaN, align 8 store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, 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.140, i64 4 }) %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.119, i64 4 })
store { ptr, i64 } %callN, ptr %allocaN, align 8 store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load i64, ptr %allocaN, align 8 %loadN = load i64, ptr %allocaN, align 8
%addN = add i64 %loadN, 2 %addN = add i64 %loadN, 2
@@ -512,7 +512,7 @@ if.merge.36: ; preds = %if.else.35, %if.the
if.then.37: ; preds = %while.exit.4 if.then.37: ; preds = %while.exit.4
%loadN = load { ptr, i64 }, 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.141, i64 36 }) %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.120, i64 36 })
store { ptr, i64 } %callN, ptr %allocaN, align 8 store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %allocaN, align 8 %loadN = load { ptr, i64 }, ptr %allocaN, align 8
%loadN = load i64, ptr %allocaN, align 8 %loadN = load i64, ptr %allocaN, align 8
@@ -520,7 +520,7 @@ if.then.37: ; preds = %while.exit.4
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN) %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN)
store { ptr, i64 } %callN, ptr %allocaN, align 8 store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, 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.142, i64 2 }) %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.121, i64 2 })
store { ptr, i64 } %callN, ptr %allocaN, align 8 store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %allocaN, align 8 %loadN = load { ptr, i64 }, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %alloca, align 8 %loadN = load { ptr, i64 }, ptr %alloca, align 8
@@ -531,7 +531,7 @@ if.then.37: ; preds = %while.exit.4
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN) %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN)
store { ptr, i64 } %callN, ptr %allocaN, align 8 store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, 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.143, i64 4 }) %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.122, i64 4 })
store { ptr, i64 } %callN, ptr %allocaN, align 8 store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %if.merge.38 br label %if.merge.38
@@ -624,69 +624,6 @@ declare ptr @TrackingAllocator.alloc_bytes(ptr, ptr, i64) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @TrackingAllocator.dealloc_bytes(ptr, ptr, ptr) #0 declare void @TrackingAllocator.dealloc_bytes(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare ptr @mem_realloc.3(ptr, ptr, ptr, i64, i64, i64) #0
; Function Attrs: nounwind
declare ptr @CAllocator.alloc_bytes.4(ptr, ptr, i64) #0
; Function Attrs: nounwind
declare void @CAllocator.dealloc_bytes.5(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare i64 @GPA.init.6(ptr) #0
; Function Attrs: nounwind
declare ptr @GPA.alloc_bytes.7(ptr, ptr, i64) #0
; Function Attrs: nounwind
declare void @GPA.dealloc_bytes.8(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare void @Arena.add_chunk.9(ptr, ptr, i64) #0
; Function Attrs: nounwind
declare void @Arena.init.10(ptr sret({ ptr, i64, { ptr, ptr, ptr } }), ptr, ptr, i64) #0
; Function Attrs: nounwind
declare void @Arena.reset.11(ptr, ptr) #0
; Function Attrs: nounwind
declare void @Arena.deinit.12(ptr, ptr) #0
; Function Attrs: nounwind
declare ptr @Arena.alloc_bytes.13(ptr, ptr, i64) #0
; Function Attrs: nounwind
declare void @Arena.dealloc_bytes.14(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare void @BufAlloc.init.15(ptr sret({ ptr, i64, i64 }), ptr, ptr, i64) #0
; Function Attrs: nounwind
declare void @BufAlloc.reset.16(ptr, ptr) #0
; Function Attrs: nounwind
declare ptr @BufAlloc.alloc_bytes.17(ptr, ptr, i64) #0
; Function Attrs: nounwind
declare void @BufAlloc.dealloc_bytes.18(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare void @TrackingAllocator.init.19(ptr sret({ { ptr, ptr, ptr }, i64, i64, i64 }), ptr, ptr) #0
; Function Attrs: nounwind
declare i64 @TrackingAllocator.leak_count.20(ptr, ptr) #0
; Function Attrs: nounwind
declare void @TrackingAllocator.report.21(ptr, ptr) #0
; Function Attrs: nounwind
declare ptr @TrackingAllocator.alloc_bytes.22(ptr, ptr, i64) #0
; Function Attrs: nounwind
declare void @TrackingAllocator.dealloc_bytes.23(ptr, ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare ptr @escape(ptr, ptr) #0 declare ptr @escape(ptr, ptr) #0
@@ -861,166 +798,166 @@ declare i32 @listen(i32, i32) #0
declare i32 @accept(i32, ptr, ptr) #0 declare i32 @accept(i32, ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i64 @read.24(i32, ptr, i64) #0 declare i64 @read.3(i32, ptr, i64) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i32 @close.25(i32) #0 declare i32 @close.4(i32) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i16 @htons(ptr, i64) #0 declare i16 @htons(ptr, i64) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare ptr @mem_realloc.26(ptr, ptr, ptr, i64, i64, i64) #0 declare ptr @mem_realloc.5(ptr, ptr, ptr, i64, i64, i64) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare ptr @CAllocator.alloc_bytes.27(ptr, ptr, i64) #0 declare ptr @CAllocator.alloc_bytes.6(ptr, ptr, i64) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @CAllocator.dealloc_bytes.28(ptr, ptr, ptr) #0 declare void @CAllocator.dealloc_bytes.7(ptr, ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i64 @GPA.init.29(ptr) #0 declare i64 @GPA.init.8(ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare ptr @GPA.alloc_bytes.30(ptr, ptr, i64) #0 declare ptr @GPA.alloc_bytes.9(ptr, ptr, i64) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @GPA.dealloc_bytes.31(ptr, ptr, ptr) #0 declare void @GPA.dealloc_bytes.10(ptr, ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @Arena.add_chunk.32(ptr, ptr, i64) #0 declare void @Arena.add_chunk.11(ptr, ptr, i64) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @Arena.init.33(ptr sret({ ptr, i64, { ptr, ptr, ptr } }), ptr, ptr, i64) #0 declare void @Arena.init.12(ptr sret({ ptr, i64, { ptr, ptr, ptr } }), ptr, ptr, i64) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @Arena.reset.34(ptr, ptr) #0 declare void @Arena.reset.13(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @Arena.deinit.35(ptr, ptr) #0 declare void @Arena.deinit.14(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare ptr @Arena.alloc_bytes.36(ptr, ptr, i64) #0 declare ptr @Arena.alloc_bytes.15(ptr, ptr, i64) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @Arena.dealloc_bytes.37(ptr, ptr, ptr) #0 declare void @Arena.dealloc_bytes.16(ptr, ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @BufAlloc.init.38(ptr sret({ ptr, i64, i64 }), ptr, ptr, i64) #0 declare void @BufAlloc.init.17(ptr sret({ ptr, i64, i64 }), ptr, ptr, i64) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @BufAlloc.reset.39(ptr, ptr) #0 declare void @BufAlloc.reset.18(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare ptr @BufAlloc.alloc_bytes.40(ptr, ptr, i64) #0 declare ptr @BufAlloc.alloc_bytes.19(ptr, ptr, i64) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @BufAlloc.dealloc_bytes.41(ptr, ptr, ptr) #0 declare void @BufAlloc.dealloc_bytes.20(ptr, ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @TrackingAllocator.init.42(ptr sret({ { ptr, ptr, ptr }, i64, i64, i64 }), ptr, ptr) #0 declare void @TrackingAllocator.init.21(ptr sret({ { ptr, ptr, ptr }, i64, i64, i64 }), ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i64 @TrackingAllocator.leak_count.43(ptr, ptr) #0 declare i64 @TrackingAllocator.leak_count.22(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @TrackingAllocator.report.44(ptr, ptr) #0 declare void @TrackingAllocator.report.23(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare ptr @TrackingAllocator.alloc_bytes.45(ptr, ptr, i64) #0 declare ptr @TrackingAllocator.alloc_bytes.24(ptr, ptr, i64) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @TrackingAllocator.dealloc_bytes.46(ptr, ptr, ptr) #0 declare void @TrackingAllocator.dealloc_bytes.25(ptr, ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i32 @open.47(ptr, i32, ...) #0 declare i32 @open.26(ptr, i32, ...) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i32 @close.48(i32) #0 declare i32 @close.27(i32) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i64 @read.49(i32, ptr, i64) #0 declare i64 @read.28(i32, ptr, i64) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i64 @lseek.50(i32, i64, i32) #0 declare i64 @lseek.29(i32, i64, i32) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i32 @unlink.51(ptr) #0 declare i32 @unlink.30(ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i32 @rmdir.52(ptr) #0 declare i32 @rmdir.31(ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i32 @mkdir.53(ptr, i32) #0 declare i32 @mkdir.32(ptr, i32) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i32 @access.54(ptr, i32) #0 declare i32 @access.33(ptr, i32) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i32 @chmod.55(ptr, i32) #0 declare i32 @chmod.34(ptr, i32) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i32 @rename.56(ptr, ptr) #0 declare i32 @rename.35(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i1 @File.is_valid.57(ptr, ptr) #0 declare i1 @File.is_valid.36(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i1 @File.close.58(ptr, ptr) #0 declare i1 @File.close.37(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i64 @File.read.59(ptr, ptr, ptr) #0 declare i64 @File.read.38(ptr, ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i64 @File.write.60(ptr, ptr, ptr) #0 declare i64 @File.write.39(ptr, ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i64 @File.seek.61(ptr, ptr, i64, i64) #0 declare i64 @File.seek.40(ptr, ptr, i64, i64) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i32 @mode_to_flags.62(ptr, i64) #0 declare i32 @mode_to_flags.41(ptr, i64) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i64 @open_file.63(ptr, ptr, i64) #0 declare i64 @open_file.42(ptr, ptr, i64) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @read_file.64(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 declare void @read_file.43(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i1 @write_file.65(ptr, ptr, ptr) #0 declare i1 @write_file.44(ptr, ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i1 @append_file.66(ptr, ptr, ptr) #0 declare i1 @append_file.45(ptr, ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i1 @exists.67(ptr, ptr) #0 declare i1 @exists.46(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i1 @delete_file.68(ptr, ptr) #0 declare i1 @delete_file.47(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i1 @delete_dir.69(ptr, ptr) #0 declare i1 @delete_dir.48(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i1 @create_dir.70(ptr, ptr) #0 declare i1 @create_dir.49(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i1 @set_mode.71(ptr, ptr, i32) #0 declare i1 @set_mode.50(ptr, ptr, i32) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i1 @move.72(ptr, ptr, ptr) #0 declare i1 @move.51(ptr, ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i1 @create_dir_all.73(ptr, ptr) #0 declare i1 @create_dir_all.52(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i1 @copy_file.74(ptr, ptr, ptr) #0 declare i1 @copy_file.53(ptr, ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare ptr @basename.75(ptr, ptr) #0 declare ptr @basename.54(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare ptr @dirname.76(ptr, ptr) #0 declare ptr @dirname.55(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @Array.add(ptr, ptr, ptr, ptr) #0 declare void @Array.add(ptr, ptr, ptr, ptr) #0
@@ -1218,64 +1155,64 @@ declare ptr @BuildOptions.jni_main_java_source_at(i64, i64) #0
declare i64 @build_options() #0 declare i64 @build_options() #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare ptr @spaces.77(ptr, i32) #0 declare ptr @spaces.56(ptr, i32) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i32 @sx_trace_len.78() #0 declare i32 @sx_trace_len.57() #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i32 @sx_trace_truncated.79() #0 declare i32 @sx_trace_truncated.58() #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i64 @sx_trace_frame_at.80(i32) #0 declare i64 @sx_trace_frame_at.59(i32) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare ptr @to_string.81(ptr) #0 declare ptr @to_string.60(ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @print_current.82(ptr) #0 declare void @print_current.61(ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @print_interpreter_frames.83(ptr) #0 declare void @print_interpreter_frames.62(ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare ptr @popen.84(ptr, ptr) #0 declare ptr @popen.63(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i32 @pclose.85(ptr) #0 declare i32 @pclose.64(ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i64 @fread.86(ptr, i64, i64, ptr) #0 declare i64 @fread.65(ptr, i64, i64, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i32 @feof.87(ptr) #0 declare i32 @feof.66(ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare ptr @getenv.88(ptr) #0 declare ptr @getenv.67(ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i64 @strlen.89(ptr) #0 declare i64 @strlen.68(ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i32 @system.90(ptr) #0 declare i32 @system.69(ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @run.91(ptr sret({ { i32, { ptr, i64 } }, i1 }), ptr, ptr) #0 declare void @run.70(ptr sret({ { i32, { ptr, i64 } }, i1 }), ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @env.92(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 declare void @env.71(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @find_executable.93(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 declare void @find_executable.72(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @_exit.94(i32) #0 declare void @_exit.73(i32) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @exit.95(ptr, i8, ptr) #0 declare void @exit.74(ptr, i8, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @assert.96(ptr, i1, ptr, ptr) #0 declare void @assert.75(ptr, i1, ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare ptr @_NSGetArgv() #0 declare ptr @_NSGetArgv() #0
@@ -1305,97 +1242,97 @@ declare ptr @Parsed.value_of(ptr, ptr, ptr) #0
declare i1 @is_long_flag(ptr, ptr) #0 declare i1 @is_long_flag(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @parse.97(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.76(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 ; Function Attrs: nounwind
declare i32 @open.98(ptr, i32, ...) #0 declare i32 @open.77(ptr, i32, ...) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i32 @close.99(i32) #0 declare i32 @close.78(i32) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i64 @read.100(i32, ptr, i64) #0 declare i64 @read.79(i32, ptr, i64) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i64 @lseek.101(i32, i64, i32) #0 declare i64 @lseek.80(i32, i64, i32) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i32 @unlink.102(ptr) #0 declare i32 @unlink.81(ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i32 @rmdir.103(ptr) #0 declare i32 @rmdir.82(ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i32 @mkdir.104(ptr, i32) #0 declare i32 @mkdir.83(ptr, i32) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i32 @access.105(ptr, i32) #0 declare i32 @access.84(ptr, i32) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i32 @chmod.106(ptr, i32) #0 declare i32 @chmod.85(ptr, i32) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i32 @rename.107(ptr, ptr) #0 declare i32 @rename.86(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i1 @File.is_valid.108(ptr, ptr) #0 declare i1 @File.is_valid.87(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i1 @File.close.109(ptr, ptr) #0 declare i1 @File.close.88(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i64 @File.read.110(ptr, ptr, ptr) #0 declare i64 @File.read.89(ptr, ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i64 @File.write.111(ptr, ptr, ptr) #0 declare i64 @File.write.90(ptr, ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i64 @File.seek.112(ptr, ptr, i64, i64) #0 declare i64 @File.seek.91(ptr, ptr, i64, i64) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i32 @mode_to_flags.113(ptr, i64) #0 declare i32 @mode_to_flags.92(ptr, i64) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i64 @open_file.114(ptr, ptr, i64) #0 declare i64 @open_file.93(ptr, ptr, i64) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @read_file.115(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 declare void @read_file.94(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i1 @write_file.116(ptr, ptr, ptr) #0 declare i1 @write_file.95(ptr, ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i1 @append_file.117(ptr, ptr, ptr) #0 declare i1 @append_file.96(ptr, ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i1 @exists.118(ptr, ptr) #0 declare i1 @exists.97(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i1 @delete_file.119(ptr, ptr) #0 declare i1 @delete_file.98(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i1 @delete_dir.120(ptr, ptr) #0 declare i1 @delete_dir.99(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i1 @create_dir.121(ptr, ptr) #0 declare i1 @create_dir.100(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i1 @set_mode.122(ptr, ptr, i32) #0 declare i1 @set_mode.101(ptr, ptr, i32) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i1 @move.123(ptr, ptr, ptr) #0 declare i1 @move.102(ptr, ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i1 @create_dir_all.124(ptr, ptr) #0 declare i1 @create_dir_all.103(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i1 @copy_file.125(ptr, ptr, ptr) #0 declare i1 @copy_file.104(ptr, ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare ptr @basename.126(ptr, ptr) #0 declare ptr @basename.105(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare ptr @dirname.127(ptr, ptr) #0 declare ptr @dirname.106(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i64 @rotr(ptr, i64, i64) #0 declare i64 @rotr(ptr, i64, i64) #0
@@ -1434,7 +1371,7 @@ declare [64 x i8] @sha256_hex(ptr, ptr) #0
declare void @sha256_file(ptr sret({ [64 x i8], i1 }), ptr, ptr) #0 declare void @sha256_file(ptr sret({ [64 x i8], i1 }), ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @assert.128(ptr, i1) #0 declare void @assert.107(ptr, i1) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
define internal void @unused_jni(ptr %0, ptr %1, ptr %2) #0 { define internal void @unused_jni(ptr %0, ptr %1, ptr %2) #0 {
@@ -1462,7 +1399,7 @@ jni.miss: ; preds = %entry
store ptr %jni.global.cls, ptr @SX_JNI_CLS_noop____V, align 8 store ptr %jni.global.cls, ptr @SX_JNI_CLS_noop____V, align 8
%5 = getelementptr inbounds ptr, ptr %jni.ifs, i32 33 %5 = getelementptr inbounds ptr, ptr %jni.ifs, i32 33
%jni.GetMethodID = load ptr, ptr %5, align 8 %jni.GetMethodID = load ptr, ptr %5, align 8
%jni.fresh.mid = call ptr %jni.GetMethodID(ptr %load, ptr %jni.global.cls, ptr @str.144, ptr @str.145) %jni.fresh.mid = call ptr %jni.GetMethodID(ptr %load, ptr %jni.global.cls, ptr @str.123, ptr @str.124)
store ptr %jni.fresh.mid, ptr @SX_JNI_MID_noop____V, align 8 store ptr %jni.fresh.mid, ptr @SX_JNI_MID_noop____V, align 8
br label %jni.cont br label %jni.cont
@@ -1487,7 +1424,7 @@ jni.miss7: ; preds = %jni.cont
store ptr %jni.global.cls12, ptr @SX_JNI_CLS_noop____V, align 8 store ptr %jni.global.cls12, ptr @SX_JNI_CLS_noop____V, align 8
%9 = getelementptr inbounds ptr, ptr %jni.ifs4, i32 33 %9 = getelementptr inbounds ptr, ptr %jni.ifs4, i32 33
%jni.GetMethodID13 = load ptr, ptr %9, align 8 %jni.GetMethodID13 = load ptr, ptr %9, align 8
%jni.fresh.mid14 = call ptr %jni.GetMethodID13(ptr %load, ptr %jni.global.cls12, ptr @str.146, ptr @str.147) %jni.fresh.mid14 = call ptr %jni.GetMethodID13(ptr %load, ptr %jni.global.cls12, ptr @str.125, ptr @str.126)
store ptr %jni.fresh.mid14, ptr @SX_JNI_MID_noop____V, align 8 store ptr %jni.fresh.mid14, ptr @SX_JNI_MID_noop____V, align 8
br label %jni.cont8 br label %jni.cont8
@@ -1539,14 +1476,14 @@ declare void @sx_jni_env_tl_set(ptr) #0
define internal void @print__ct_sbdbafa1a5fe828c0__pack(ptr %0) #0 { define internal void @print__ct_sbdbafa1a5fe828c0__pack(ptr %0) #0 {
entry: entry:
%alloca = alloca { ptr, i64 }, align 8 %alloca = alloca { ptr, i64 }, align 8
store { ptr, i64 } { ptr @str.148, i64 3 }, ptr %alloca, align 8 store { ptr, i64 } { ptr @str.127, i64 3 }, ptr %alloca, align 8
%allocaN = alloca { ptr, i64 }, align 8 %allocaN = alloca { ptr, i64 }, align 8
%gep = getelementptr inbounds { ptr, i64 }, ptr %allocaN, i32 0, i32 0 %gep = getelementptr inbounds { ptr, i64 }, ptr %allocaN, i32 0, i32 0
store ptr null, ptr %gep, align 8 store ptr null, ptr %gep, align 8
%gepN = getelementptr inbounds { ptr, i64 }, ptr %allocaN, i32 0, i32 1 %gepN = getelementptr inbounds { ptr, i64 }, ptr %allocaN, i32 0, i32 1
store i64 0, ptr %gepN, align 8 store i64 0, ptr %gepN, align 8
%allocaN = alloca { ptr, i64 }, align 8 %allocaN = alloca { ptr, i64 }, align 8
store { ptr, i64 } { ptr @str.149, i64 0 }, ptr %allocaN, align 8 store { ptr, i64 } { ptr @str.128, i64 0 }, ptr %allocaN, align 8
%load = load { ptr, i64 }, ptr %allocaN, align 8 %load = load { ptr, i64 }, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %alloca, align 8 %loadN = load { ptr, i64 }, ptr %alloca, align 8
%call = call { ptr, i64 } @substr(ptr %0, { ptr, i64 } %loadN, i64 0, i64 3) %call = call { ptr, i64 } @substr(ptr %0, { ptr, i64 } %loadN, i64 0, i64 3)
@@ -1562,6 +1499,6 @@ entry:
; Function Attrs: nounwind ; Function Attrs: nounwind
define internal { ptr, i64 } @__insert_0(ptr %0) #0 { define internal { ptr, i64 } @__insert_0(ptr %0) #0 {
entry: entry:
%call = call { ptr, i64 } @build_format(ptr %0, { ptr, i64 } { ptr @str.150, i64 3 }) %call = call { ptr, i64 } @build_format(ptr %0, { ptr, i64 } { ptr @str.129, i64 3 })
ret { ptr, i64 } %call ret { ptr, i64 } %call
} }

View File

@@ -2,28 +2,28 @@
@g_should_call = internal global i1 false @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 } @__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 = private unnamed_addr constant [2 x i8] c"0\00", align 1
@str.129 = private unnamed_addr constant [15 x i8] c"result := \22\22; \00", align 1 @str.108 = private unnamed_addr constant [15 x i8] c"result := \22\22; \00", align 1
@str.130 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1 @str.109 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1
@str.131 = private unnamed_addr constant [3 x i8] c", \00", align 1 @str.110 = private unnamed_addr constant [3 x i8] c", \00", align 1
@str.132 = private unnamed_addr constant [5 x i8] c")); \00", align 1 @str.111 = private unnamed_addr constant [5 x i8] c")); \00", align 1
@str.133 = private unnamed_addr constant [44 x i8] c"result = concat(result, any_to_string(args[\00", align 1 @str.112 = private unnamed_addr constant [44 x i8] c"result = concat(result, any_to_string(args[\00", align 1
@str.134 = private unnamed_addr constant [6 x i8] c"])); \00", align 1 @str.113 = private unnamed_addr constant [6 x i8] c"])); \00", align 1
@str.135 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1 @str.114 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1
@str.136 = private unnamed_addr constant [3 x i8] c", \00", align 1 @str.115 = private unnamed_addr constant [3 x i8] c", \00", align 1
@str.137 = private unnamed_addr constant [5 x i8] c")); \00", align 1 @str.116 = private unnamed_addr constant [5 x i8] c")); \00", align 1
@str.138 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1 @str.117 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1
@str.139 = private unnamed_addr constant [3 x i8] c", \00", align 1 @str.118 = private unnamed_addr constant [3 x i8] c", \00", align 1
@str.140 = private unnamed_addr constant [5 x i8] c")); \00", align 1 @str.119 = private unnamed_addr constant [5 x i8] c")); \00", align 1
@str.141 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1 @str.120 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1
@str.142 = private unnamed_addr constant [3 x i8] c", \00", align 1 @str.121 = private unnamed_addr constant [3 x i8] c", \00", align 1
@str.143 = private unnamed_addr constant [5 x i8] c")); \00", align 1 @str.122 = private unnamed_addr constant [5 x i8] c")); \00", align 1
@str.144 = private unnamed_addr constant [9 x i8] c"getCount\00", align 1 @str.123 = private unnamed_addr constant [9 x i8] c"getCount\00", align 1
@str.145 = private unnamed_addr constant [4 x i8] c"()I\00", align 1 @str.124 = private unnamed_addr constant [4 x i8] c"()I\00", align 1
@SX_JNI_CLS_getCount____I = internal global ptr null @SX_JNI_CLS_getCount____I = internal global ptr null
@SX_JNI_MID_getCount____I = internal global ptr null @SX_JNI_MID_getCount____I = internal global ptr null
@str.146 = private unnamed_addr constant [4 x i8] c"ok\0A\00", align 1 @str.125 = 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.126 = 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 @str.127 = private unnamed_addr constant [4 x i8] c"ok\0A\00", align 1
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @out(ptr) #0 declare void @out(ptr) #0
@@ -253,7 +253,7 @@ entry:
%alloca = alloca { ptr, i64 }, align 8 %alloca = alloca { ptr, i64 }, align 8
store { ptr, i64 } %1, ptr %alloca, align 8 store { ptr, i64 } %1, ptr %alloca, align 8
%allocaN = alloca { ptr, i64 }, align 8 %allocaN = alloca { ptr, i64 }, align 8
store { ptr, i64 } { ptr @str.129, i64 14 }, ptr %allocaN, align 8 store { ptr, i64 } { ptr @str.108, i64 14 }, ptr %allocaN, align 8
%allocaN = alloca i64, align 8 %allocaN = alloca i64, align 8
store i64 0, ptr %allocaN, align 8 store i64 0, ptr %allocaN, align 8
%allocaN = alloca i64, align 8 %allocaN = alloca i64, align 8
@@ -349,7 +349,7 @@ if.merge.13: ; preds = %if.merge.27, %if.me
if.then.14: ; preds = %if.then.11 if.then.14: ; preds = %if.then.11
%loadN = load { ptr, i64 }, ptr %allocaN, align 8 %loadN = load { ptr, i64 }, ptr %allocaN, align 8
%call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.130, i64 36 }) %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.109, i64 36 })
store { ptr, i64 } %call, ptr %allocaN, align 8 store { ptr, i64 } %call, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %allocaN, align 8 %loadN = load { ptr, i64 }, ptr %allocaN, align 8
%loadN = load i64, ptr %allocaN, align 8 %loadN = load i64, ptr %allocaN, align 8
@@ -357,7 +357,7 @@ if.then.14: ; preds = %if.then.11
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN) %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN)
store { ptr, i64 } %callN, ptr %allocaN, align 8 store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, 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.131, i64 2 }) %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.110, i64 2 })
store { ptr, i64 } %callN, ptr %allocaN, align 8 store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %allocaN, align 8 %loadN = load { ptr, i64 }, ptr %allocaN, align 8
%loadN = load i64, ptr %allocaN, align 8 %loadN = load i64, ptr %allocaN, align 8
@@ -367,13 +367,13 @@ if.then.14: ; preds = %if.then.11
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN) %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN)
store { ptr, i64 } %callN, ptr %allocaN, align 8 store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, 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 4 }) %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.111, i64 4 })
store { ptr, i64 } %callN, ptr %allocaN, align 8 store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %if.merge.15 br label %if.merge.15
if.merge.15: ; preds = %if.then.14, %if.then.11 if.merge.15: ; preds = %if.then.14, %if.then.11
%loadN = load { ptr, i64 }, 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 43 }) %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.112, i64 43 })
store { ptr, i64 } %callN, ptr %allocaN, align 8 store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %allocaN, align 8 %loadN = load { ptr, i64 }, ptr %allocaN, align 8
%loadN = load i64, ptr %allocaN, align 8 %loadN = load i64, ptr %allocaN, align 8
@@ -381,7 +381,7 @@ if.merge.15: ; preds = %if.then.14, %if.the
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN) %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN)
store { ptr, i64 } %callN, ptr %allocaN, align 8 store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, 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.134, i64 5 }) %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.113, i64 5 })
store { ptr, i64 } %callN, ptr %allocaN, align 8 store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load i64, ptr %allocaN, align 8 %loadN = load i64, ptr %allocaN, align 8
%addN = add i64 %loadN, 1 %addN = add i64 %loadN, 1
@@ -395,7 +395,7 @@ if.merge.15: ; preds = %if.then.14, %if.the
if.then.25: ; preds = %if.else.12 if.then.25: ; preds = %if.else.12
%loadN = load { ptr, i64 }, 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 36 }) %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.114, i64 36 })
store { ptr, i64 } %callN, ptr %allocaN, align 8 store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %allocaN, align 8 %loadN = load { ptr, i64 }, ptr %allocaN, align 8
%loadN = load i64, ptr %allocaN, align 8 %loadN = load i64, ptr %allocaN, align 8
@@ -403,7 +403,7 @@ if.then.25: ; preds = %if.else.12
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN) %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN)
store { ptr, i64 } %callN, ptr %allocaN, align 8 store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, 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 2 }) %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.115, i64 2 })
store { ptr, i64 } %callN, ptr %allocaN, align 8 store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %allocaN, align 8 %loadN = load { ptr, i64 }, ptr %allocaN, align 8
%loadN = load i64, ptr %allocaN, align 8 %loadN = load i64, ptr %allocaN, align 8
@@ -414,7 +414,7 @@ if.then.25: ; preds = %if.else.12
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN) %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN)
store { ptr, i64 } %callN, ptr %allocaN, align 8 store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, 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.137, i64 4 }) %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.116, i64 4 })
store { ptr, i64 } %callN, ptr %allocaN, align 8 store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load i64, ptr %allocaN, align 8 %loadN = load i64, ptr %allocaN, align 8
%addN = add i64 %loadN, 2 %addN = add i64 %loadN, 2
@@ -471,7 +471,7 @@ if.merge.33: ; preds = %if.merge.36, %if.el
if.then.34: ; preds = %if.then.31 if.then.34: ; preds = %if.then.31
%loadN = load { ptr, i64 }, 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 36 }) %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.117, i64 36 })
store { ptr, i64 } %callN, ptr %allocaN, align 8 store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %allocaN, align 8 %loadN = load { ptr, i64 }, ptr %allocaN, align 8
%loadN = load i64, ptr %allocaN, align 8 %loadN = load i64, ptr %allocaN, align 8
@@ -479,7 +479,7 @@ if.then.34: ; preds = %if.then.31
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN) %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN)
store { ptr, i64 } %callN, ptr %allocaN, align 8 store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, 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 2 }) %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.118, i64 2 })
store { ptr, i64 } %callN, ptr %allocaN, align 8 store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %allocaN, align 8 %loadN = load { ptr, i64 }, ptr %allocaN, align 8
%loadN = load i64, ptr %allocaN, align 8 %loadN = load i64, ptr %allocaN, align 8
@@ -490,7 +490,7 @@ if.then.34: ; preds = %if.then.31
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN) %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN)
store { ptr, i64 } %callN, ptr %allocaN, align 8 store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, 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.140, i64 4 }) %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.119, i64 4 })
store { ptr, i64 } %callN, ptr %allocaN, align 8 store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load i64, ptr %allocaN, align 8 %loadN = load i64, ptr %allocaN, align 8
%addN = add i64 %loadN, 2 %addN = add i64 %loadN, 2
@@ -510,7 +510,7 @@ if.merge.36: ; preds = %if.else.35, %if.the
if.then.37: ; preds = %while.exit.4 if.then.37: ; preds = %while.exit.4
%loadN = load { ptr, i64 }, 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.141, i64 36 }) %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.120, i64 36 })
store { ptr, i64 } %callN, ptr %allocaN, align 8 store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %allocaN, align 8 %loadN = load { ptr, i64 }, ptr %allocaN, align 8
%loadN = load i64, ptr %allocaN, align 8 %loadN = load i64, ptr %allocaN, align 8
@@ -518,7 +518,7 @@ if.then.37: ; preds = %while.exit.4
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN) %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN)
store { ptr, i64 } %callN, ptr %allocaN, align 8 store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, 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.142, i64 2 }) %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.121, i64 2 })
store { ptr, i64 } %callN, ptr %allocaN, align 8 store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %allocaN, align 8 %loadN = load { ptr, i64 }, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %alloca, align 8 %loadN = load { ptr, i64 }, ptr %alloca, align 8
@@ -529,7 +529,7 @@ if.then.37: ; preds = %while.exit.4
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN) %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN)
store { ptr, i64 } %callN, ptr %allocaN, align 8 store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, 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.143, i64 4 }) %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.122, i64 4 })
store { ptr, i64 } %callN, ptr %allocaN, align 8 store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %if.merge.38 br label %if.merge.38
@@ -622,69 +622,6 @@ declare ptr @TrackingAllocator.alloc_bytes(ptr, ptr, i64) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @TrackingAllocator.dealloc_bytes(ptr, ptr, ptr) #0 declare void @TrackingAllocator.dealloc_bytes(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare ptr @mem_realloc.3(ptr, ptr, ptr, i64, i64, i64) #0
; Function Attrs: nounwind
declare ptr @CAllocator.alloc_bytes.4(ptr, ptr, i64) #0
; Function Attrs: nounwind
declare void @CAllocator.dealloc_bytes.5(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare i64 @GPA.init.6(ptr) #0
; Function Attrs: nounwind
declare ptr @GPA.alloc_bytes.7(ptr, ptr, i64) #0
; Function Attrs: nounwind
declare void @GPA.dealloc_bytes.8(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare void @Arena.add_chunk.9(ptr, ptr, i64) #0
; Function Attrs: nounwind
declare void @Arena.init.10(ptr sret({ ptr, i64, { ptr, ptr, ptr } }), ptr, ptr, i64) #0
; Function Attrs: nounwind
declare void @Arena.reset.11(ptr, ptr) #0
; Function Attrs: nounwind
declare void @Arena.deinit.12(ptr, ptr) #0
; Function Attrs: nounwind
declare ptr @Arena.alloc_bytes.13(ptr, ptr, i64) #0
; Function Attrs: nounwind
declare void @Arena.dealloc_bytes.14(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare void @BufAlloc.init.15(ptr sret({ ptr, i64, i64 }), ptr, ptr, i64) #0
; Function Attrs: nounwind
declare void @BufAlloc.reset.16(ptr, ptr) #0
; Function Attrs: nounwind
declare ptr @BufAlloc.alloc_bytes.17(ptr, ptr, i64) #0
; Function Attrs: nounwind
declare void @BufAlloc.dealloc_bytes.18(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare void @TrackingAllocator.init.19(ptr sret({ { ptr, ptr, ptr }, i64, i64, i64 }), ptr, ptr) #0
; Function Attrs: nounwind
declare i64 @TrackingAllocator.leak_count.20(ptr, ptr) #0
; Function Attrs: nounwind
declare void @TrackingAllocator.report.21(ptr, ptr) #0
; Function Attrs: nounwind
declare ptr @TrackingAllocator.alloc_bytes.22(ptr, ptr, i64) #0
; Function Attrs: nounwind
declare void @TrackingAllocator.dealloc_bytes.23(ptr, ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare ptr @escape(ptr, ptr) #0 declare ptr @escape(ptr, ptr) #0
@@ -859,166 +796,166 @@ declare i32 @listen(i32, i32) #0
declare i32 @accept(i32, ptr, ptr) #0 declare i32 @accept(i32, ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i64 @read.24(i32, ptr, i64) #0 declare i64 @read.3(i32, ptr, i64) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i32 @close.25(i32) #0 declare i32 @close.4(i32) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i16 @htons(ptr, i64) #0 declare i16 @htons(ptr, i64) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare ptr @mem_realloc.26(ptr, ptr, ptr, i64, i64, i64) #0 declare ptr @mem_realloc.5(ptr, ptr, ptr, i64, i64, i64) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare ptr @CAllocator.alloc_bytes.27(ptr, ptr, i64) #0 declare ptr @CAllocator.alloc_bytes.6(ptr, ptr, i64) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @CAllocator.dealloc_bytes.28(ptr, ptr, ptr) #0 declare void @CAllocator.dealloc_bytes.7(ptr, ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i64 @GPA.init.29(ptr) #0 declare i64 @GPA.init.8(ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare ptr @GPA.alloc_bytes.30(ptr, ptr, i64) #0 declare ptr @GPA.alloc_bytes.9(ptr, ptr, i64) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @GPA.dealloc_bytes.31(ptr, ptr, ptr) #0 declare void @GPA.dealloc_bytes.10(ptr, ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @Arena.add_chunk.32(ptr, ptr, i64) #0 declare void @Arena.add_chunk.11(ptr, ptr, i64) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @Arena.init.33(ptr sret({ ptr, i64, { ptr, ptr, ptr } }), ptr, ptr, i64) #0 declare void @Arena.init.12(ptr sret({ ptr, i64, { ptr, ptr, ptr } }), ptr, ptr, i64) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @Arena.reset.34(ptr, ptr) #0 declare void @Arena.reset.13(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @Arena.deinit.35(ptr, ptr) #0 declare void @Arena.deinit.14(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare ptr @Arena.alloc_bytes.36(ptr, ptr, i64) #0 declare ptr @Arena.alloc_bytes.15(ptr, ptr, i64) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @Arena.dealloc_bytes.37(ptr, ptr, ptr) #0 declare void @Arena.dealloc_bytes.16(ptr, ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @BufAlloc.init.38(ptr sret({ ptr, i64, i64 }), ptr, ptr, i64) #0 declare void @BufAlloc.init.17(ptr sret({ ptr, i64, i64 }), ptr, ptr, i64) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @BufAlloc.reset.39(ptr, ptr) #0 declare void @BufAlloc.reset.18(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare ptr @BufAlloc.alloc_bytes.40(ptr, ptr, i64) #0 declare ptr @BufAlloc.alloc_bytes.19(ptr, ptr, i64) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @BufAlloc.dealloc_bytes.41(ptr, ptr, ptr) #0 declare void @BufAlloc.dealloc_bytes.20(ptr, ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @TrackingAllocator.init.42(ptr sret({ { ptr, ptr, ptr }, i64, i64, i64 }), ptr, ptr) #0 declare void @TrackingAllocator.init.21(ptr sret({ { ptr, ptr, ptr }, i64, i64, i64 }), ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i64 @TrackingAllocator.leak_count.43(ptr, ptr) #0 declare i64 @TrackingAllocator.leak_count.22(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @TrackingAllocator.report.44(ptr, ptr) #0 declare void @TrackingAllocator.report.23(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare ptr @TrackingAllocator.alloc_bytes.45(ptr, ptr, i64) #0 declare ptr @TrackingAllocator.alloc_bytes.24(ptr, ptr, i64) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @TrackingAllocator.dealloc_bytes.46(ptr, ptr, ptr) #0 declare void @TrackingAllocator.dealloc_bytes.25(ptr, ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i32 @open.47(ptr, i32, ...) #0 declare i32 @open.26(ptr, i32, ...) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i32 @close.48(i32) #0 declare i32 @close.27(i32) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i64 @read.49(i32, ptr, i64) #0 declare i64 @read.28(i32, ptr, i64) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i64 @lseek.50(i32, i64, i32) #0 declare i64 @lseek.29(i32, i64, i32) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i32 @unlink.51(ptr) #0 declare i32 @unlink.30(ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i32 @rmdir.52(ptr) #0 declare i32 @rmdir.31(ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i32 @mkdir.53(ptr, i32) #0 declare i32 @mkdir.32(ptr, i32) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i32 @access.54(ptr, i32) #0 declare i32 @access.33(ptr, i32) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i32 @chmod.55(ptr, i32) #0 declare i32 @chmod.34(ptr, i32) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i32 @rename.56(ptr, ptr) #0 declare i32 @rename.35(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i1 @File.is_valid.57(ptr, ptr) #0 declare i1 @File.is_valid.36(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i1 @File.close.58(ptr, ptr) #0 declare i1 @File.close.37(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i64 @File.read.59(ptr, ptr, ptr) #0 declare i64 @File.read.38(ptr, ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i64 @File.write.60(ptr, ptr, ptr) #0 declare i64 @File.write.39(ptr, ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i64 @File.seek.61(ptr, ptr, i64, i64) #0 declare i64 @File.seek.40(ptr, ptr, i64, i64) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i32 @mode_to_flags.62(ptr, i64) #0 declare i32 @mode_to_flags.41(ptr, i64) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i64 @open_file.63(ptr, ptr, i64) #0 declare i64 @open_file.42(ptr, ptr, i64) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @read_file.64(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 declare void @read_file.43(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i1 @write_file.65(ptr, ptr, ptr) #0 declare i1 @write_file.44(ptr, ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i1 @append_file.66(ptr, ptr, ptr) #0 declare i1 @append_file.45(ptr, ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i1 @exists.67(ptr, ptr) #0 declare i1 @exists.46(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i1 @delete_file.68(ptr, ptr) #0 declare i1 @delete_file.47(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i1 @delete_dir.69(ptr, ptr) #0 declare i1 @delete_dir.48(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i1 @create_dir.70(ptr, ptr) #0 declare i1 @create_dir.49(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i1 @set_mode.71(ptr, ptr, i32) #0 declare i1 @set_mode.50(ptr, ptr, i32) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i1 @move.72(ptr, ptr, ptr) #0 declare i1 @move.51(ptr, ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i1 @create_dir_all.73(ptr, ptr) #0 declare i1 @create_dir_all.52(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i1 @copy_file.74(ptr, ptr, ptr) #0 declare i1 @copy_file.53(ptr, ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare ptr @basename.75(ptr, ptr) #0 declare ptr @basename.54(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare ptr @dirname.76(ptr, ptr) #0 declare ptr @dirname.55(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @Array.add(ptr, ptr, ptr, ptr) #0 declare void @Array.add(ptr, ptr, ptr, ptr) #0
@@ -1216,64 +1153,64 @@ declare ptr @BuildOptions.jni_main_java_source_at(i64, i64) #0
declare i64 @build_options() #0 declare i64 @build_options() #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare ptr @spaces.77(ptr, i32) #0 declare ptr @spaces.56(ptr, i32) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i32 @sx_trace_len.78() #0 declare i32 @sx_trace_len.57() #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i32 @sx_trace_truncated.79() #0 declare i32 @sx_trace_truncated.58() #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i64 @sx_trace_frame_at.80(i32) #0 declare i64 @sx_trace_frame_at.59(i32) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare ptr @to_string.81(ptr) #0 declare ptr @to_string.60(ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @print_current.82(ptr) #0 declare void @print_current.61(ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @print_interpreter_frames.83(ptr) #0 declare void @print_interpreter_frames.62(ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare ptr @popen.84(ptr, ptr) #0 declare ptr @popen.63(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i32 @pclose.85(ptr) #0 declare i32 @pclose.64(ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i64 @fread.86(ptr, i64, i64, ptr) #0 declare i64 @fread.65(ptr, i64, i64, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i32 @feof.87(ptr) #0 declare i32 @feof.66(ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare ptr @getenv.88(ptr) #0 declare ptr @getenv.67(ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i64 @strlen.89(ptr) #0 declare i64 @strlen.68(ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i32 @system.90(ptr) #0 declare i32 @system.69(ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @run.91(ptr sret({ { i32, { ptr, i64 } }, i1 }), ptr, ptr) #0 declare void @run.70(ptr sret({ { i32, { ptr, i64 } }, i1 }), ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @env.92(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 declare void @env.71(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @find_executable.93(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 declare void @find_executable.72(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @_exit.94(i32) #0 declare void @_exit.73(i32) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @exit.95(ptr, i8, ptr) #0 declare void @exit.74(ptr, i8, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @assert.96(ptr, i1, ptr, ptr) #0 declare void @assert.75(ptr, i1, ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare ptr @_NSGetArgv() #0 declare ptr @_NSGetArgv() #0
@@ -1303,97 +1240,97 @@ declare ptr @Parsed.value_of(ptr, ptr, ptr) #0
declare i1 @is_long_flag(ptr, ptr) #0 declare i1 @is_long_flag(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @parse.97(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.76(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 ; Function Attrs: nounwind
declare i32 @open.98(ptr, i32, ...) #0 declare i32 @open.77(ptr, i32, ...) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i32 @close.99(i32) #0 declare i32 @close.78(i32) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i64 @read.100(i32, ptr, i64) #0 declare i64 @read.79(i32, ptr, i64) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i64 @lseek.101(i32, i64, i32) #0 declare i64 @lseek.80(i32, i64, i32) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i32 @unlink.102(ptr) #0 declare i32 @unlink.81(ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i32 @rmdir.103(ptr) #0 declare i32 @rmdir.82(ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i32 @mkdir.104(ptr, i32) #0 declare i32 @mkdir.83(ptr, i32) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i32 @access.105(ptr, i32) #0 declare i32 @access.84(ptr, i32) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i32 @chmod.106(ptr, i32) #0 declare i32 @chmod.85(ptr, i32) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i32 @rename.107(ptr, ptr) #0 declare i32 @rename.86(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i1 @File.is_valid.108(ptr, ptr) #0 declare i1 @File.is_valid.87(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i1 @File.close.109(ptr, ptr) #0 declare i1 @File.close.88(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i64 @File.read.110(ptr, ptr, ptr) #0 declare i64 @File.read.89(ptr, ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i64 @File.write.111(ptr, ptr, ptr) #0 declare i64 @File.write.90(ptr, ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i64 @File.seek.112(ptr, ptr, i64, i64) #0 declare i64 @File.seek.91(ptr, ptr, i64, i64) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i32 @mode_to_flags.113(ptr, i64) #0 declare i32 @mode_to_flags.92(ptr, i64) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i64 @open_file.114(ptr, ptr, i64) #0 declare i64 @open_file.93(ptr, ptr, i64) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @read_file.115(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 declare void @read_file.94(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i1 @write_file.116(ptr, ptr, ptr) #0 declare i1 @write_file.95(ptr, ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i1 @append_file.117(ptr, ptr, ptr) #0 declare i1 @append_file.96(ptr, ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i1 @exists.118(ptr, ptr) #0 declare i1 @exists.97(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i1 @delete_file.119(ptr, ptr) #0 declare i1 @delete_file.98(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i1 @delete_dir.120(ptr, ptr) #0 declare i1 @delete_dir.99(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i1 @create_dir.121(ptr, ptr) #0 declare i1 @create_dir.100(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i1 @set_mode.122(ptr, ptr, i32) #0 declare i1 @set_mode.101(ptr, ptr, i32) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i1 @move.123(ptr, ptr, ptr) #0 declare i1 @move.102(ptr, ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i1 @create_dir_all.124(ptr, ptr) #0 declare i1 @create_dir_all.103(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i1 @copy_file.125(ptr, ptr, ptr) #0 declare i1 @copy_file.104(ptr, ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare ptr @basename.126(ptr, ptr) #0 declare ptr @basename.105(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare ptr @dirname.127(ptr, ptr) #0 declare ptr @dirname.106(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i64 @rotr(ptr, i64, i64) #0 declare i64 @rotr(ptr, i64, i64) #0
@@ -1432,7 +1369,7 @@ declare [64 x i8] @sha256_hex(ptr, ptr) #0
declare void @sha256_file(ptr sret({ [64 x i8], i1 }), ptr, ptr) #0 declare void @sha256_file(ptr sret({ [64 x i8], i1 }), ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @assert.128(ptr, i1) #0 declare void @assert.107(ptr, i1) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
define internal i32 @read_int(ptr %0, ptr %1, ptr %2) #0 { define internal i32 @read_int(ptr %0, ptr %1, ptr %2) #0 {
@@ -1460,7 +1397,7 @@ jni.miss: ; preds = %entry
store ptr %jni.global.cls, ptr @SX_JNI_CLS_getCount____I, align 8 store ptr %jni.global.cls, ptr @SX_JNI_CLS_getCount____I, align 8
%5 = getelementptr inbounds ptr, ptr %jni.ifs, i32 33 %5 = getelementptr inbounds ptr, ptr %jni.ifs, i32 33
%jni.GetMethodID = load ptr, ptr %5, align 8 %jni.GetMethodID = load ptr, ptr %5, align 8
%jni.fresh.mid = call ptr %jni.GetMethodID(ptr %load, ptr %jni.global.cls, ptr @str.144, ptr @str.145) %jni.fresh.mid = call ptr %jni.GetMethodID(ptr %load, ptr %jni.global.cls, ptr @str.123, ptr @str.124)
store ptr %jni.fresh.mid, ptr @SX_JNI_MID_getCount____I, align 8 store ptr %jni.fresh.mid, ptr @SX_JNI_MID_getCount____I, align 8
br label %jni.cont br label %jni.cont
@@ -1514,14 +1451,14 @@ declare void @sx_jni_env_tl_set(ptr) #0
define internal void @print__ct_sbdbafa1a5fe828c0__pack(ptr %0) #0 { define internal void @print__ct_sbdbafa1a5fe828c0__pack(ptr %0) #0 {
entry: entry:
%alloca = alloca { ptr, i64 }, align 8 %alloca = alloca { ptr, i64 }, align 8
store { ptr, i64 } { ptr @str.146, i64 3 }, ptr %alloca, align 8 store { ptr, i64 } { ptr @str.125, i64 3 }, ptr %alloca, align 8
%allocaN = alloca { ptr, i64 }, align 8 %allocaN = alloca { ptr, i64 }, align 8
%gep = getelementptr inbounds { ptr, i64 }, ptr %allocaN, i32 0, i32 0 %gep = getelementptr inbounds { ptr, i64 }, ptr %allocaN, i32 0, i32 0
store ptr null, ptr %gep, align 8 store ptr null, ptr %gep, align 8
%gepN = getelementptr inbounds { ptr, i64 }, ptr %allocaN, i32 0, i32 1 %gepN = getelementptr inbounds { ptr, i64 }, ptr %allocaN, i32 0, i32 1
store i64 0, ptr %gepN, align 8 store i64 0, ptr %gepN, align 8
%allocaN = alloca { ptr, i64 }, align 8 %allocaN = alloca { ptr, i64 }, align 8
store { ptr, i64 } { ptr @str.147, i64 0 }, ptr %allocaN, align 8 store { ptr, i64 } { ptr @str.126, i64 0 }, ptr %allocaN, align 8
%load = load { ptr, i64 }, ptr %allocaN, align 8 %load = load { ptr, i64 }, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %alloca, align 8 %loadN = load { ptr, i64 }, ptr %alloca, align 8
%call = call { ptr, i64 } @substr(ptr %0, { ptr, i64 } %loadN, i64 0, i64 3) %call = call { ptr, i64 } @substr(ptr %0, { ptr, i64 } %loadN, i64 0, i64 3)
@@ -1537,6 +1474,6 @@ entry:
; Function Attrs: nounwind ; Function Attrs: nounwind
define internal { ptr, i64 } @__insert_0(ptr %0) #0 { define internal { ptr, i64 } @__insert_0(ptr %0) #0 {
entry: entry:
%call = call { ptr, i64 } @build_format(ptr %0, { ptr, i64 } { ptr @str.148, i64 3 }) %call = call { ptr, i64 } @build_format(ptr %0, { ptr, i64 } { ptr @str.127, i64 3 })
ret { ptr, i64 } %call ret { ptr, i64 } %call
} }

View File

@@ -2,28 +2,28 @@
@g_should_call = internal global i1 false @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 } @__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 = private unnamed_addr constant [2 x i8] c"0\00", align 1
@str.129 = private unnamed_addr constant [15 x i8] c"result := \22\22; \00", align 1 @str.108 = private unnamed_addr constant [15 x i8] c"result := \22\22; \00", align 1
@str.130 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1 @str.109 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1
@str.131 = private unnamed_addr constant [3 x i8] c", \00", align 1 @str.110 = private unnamed_addr constant [3 x i8] c", \00", align 1
@str.132 = private unnamed_addr constant [5 x i8] c")); \00", align 1 @str.111 = private unnamed_addr constant [5 x i8] c")); \00", align 1
@str.133 = private unnamed_addr constant [44 x i8] c"result = concat(result, any_to_string(args[\00", align 1 @str.112 = private unnamed_addr constant [44 x i8] c"result = concat(result, any_to_string(args[\00", align 1
@str.134 = private unnamed_addr constant [6 x i8] c"])); \00", align 1 @str.113 = private unnamed_addr constant [6 x i8] c"])); \00", align 1
@str.135 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1 @str.114 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1
@str.136 = private unnamed_addr constant [3 x i8] c", \00", align 1 @str.115 = private unnamed_addr constant [3 x i8] c", \00", align 1
@str.137 = private unnamed_addr constant [5 x i8] c")); \00", align 1 @str.116 = private unnamed_addr constant [5 x i8] c")); \00", align 1
@str.138 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1 @str.117 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1
@str.139 = private unnamed_addr constant [3 x i8] c", \00", align 1 @str.118 = private unnamed_addr constant [3 x i8] c", \00", align 1
@str.140 = private unnamed_addr constant [5 x i8] c")); \00", align 1 @str.119 = private unnamed_addr constant [5 x i8] c")); \00", align 1
@str.141 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1 @str.120 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1
@str.142 = private unnamed_addr constant [3 x i8] c", \00", align 1 @str.121 = private unnamed_addr constant [3 x i8] c", \00", align 1
@str.143 = private unnamed_addr constant [5 x i8] c")); \00", align 1 @str.122 = private unnamed_addr constant [5 x i8] c")); \00", align 1
@str.144 = private unnamed_addr constant [18 x i8] c"currentTimeMillis\00", align 1 @str.123 = private unnamed_addr constant [18 x i8] c"currentTimeMillis\00", align 1
@str.145 = private unnamed_addr constant [4 x i8] c"()J\00", align 1 @str.124 = private unnamed_addr constant [4 x i8] c"()J\00", align 1
@SX_JNI_CLS_currentTimeMillis____J = internal global ptr null @SX_JNI_CLS_currentTimeMillis____J = internal global ptr null
@SX_JNI_MID_currentTimeMillis____J = internal global ptr null @SX_JNI_MID_currentTimeMillis____J = internal global ptr null
@str.146 = private unnamed_addr constant [4 x i8] c"ok\0A\00", align 1 @str.125 = 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.126 = 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 @str.127 = private unnamed_addr constant [4 x i8] c"ok\0A\00", align 1
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @out(ptr) #0 declare void @out(ptr) #0
@@ -253,7 +253,7 @@ entry:
%alloca = alloca { ptr, i64 }, align 8 %alloca = alloca { ptr, i64 }, align 8
store { ptr, i64 } %1, ptr %alloca, align 8 store { ptr, i64 } %1, ptr %alloca, align 8
%allocaN = alloca { ptr, i64 }, align 8 %allocaN = alloca { ptr, i64 }, align 8
store { ptr, i64 } { ptr @str.129, i64 14 }, ptr %allocaN, align 8 store { ptr, i64 } { ptr @str.108, i64 14 }, ptr %allocaN, align 8
%allocaN = alloca i64, align 8 %allocaN = alloca i64, align 8
store i64 0, ptr %allocaN, align 8 store i64 0, ptr %allocaN, align 8
%allocaN = alloca i64, align 8 %allocaN = alloca i64, align 8
@@ -349,7 +349,7 @@ if.merge.13: ; preds = %if.merge.27, %if.me
if.then.14: ; preds = %if.then.11 if.then.14: ; preds = %if.then.11
%loadN = load { ptr, i64 }, ptr %allocaN, align 8 %loadN = load { ptr, i64 }, ptr %allocaN, align 8
%call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.130, i64 36 }) %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.109, i64 36 })
store { ptr, i64 } %call, ptr %allocaN, align 8 store { ptr, i64 } %call, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %allocaN, align 8 %loadN = load { ptr, i64 }, ptr %allocaN, align 8
%loadN = load i64, ptr %allocaN, align 8 %loadN = load i64, ptr %allocaN, align 8
@@ -357,7 +357,7 @@ if.then.14: ; preds = %if.then.11
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN) %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN)
store { ptr, i64 } %callN, ptr %allocaN, align 8 store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, 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.131, i64 2 }) %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.110, i64 2 })
store { ptr, i64 } %callN, ptr %allocaN, align 8 store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %allocaN, align 8 %loadN = load { ptr, i64 }, ptr %allocaN, align 8
%loadN = load i64, ptr %allocaN, align 8 %loadN = load i64, ptr %allocaN, align 8
@@ -367,13 +367,13 @@ if.then.14: ; preds = %if.then.11
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN) %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN)
store { ptr, i64 } %callN, ptr %allocaN, align 8 store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, 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 4 }) %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.111, i64 4 })
store { ptr, i64 } %callN, ptr %allocaN, align 8 store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %if.merge.15 br label %if.merge.15
if.merge.15: ; preds = %if.then.14, %if.then.11 if.merge.15: ; preds = %if.then.14, %if.then.11
%loadN = load { ptr, i64 }, 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 43 }) %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.112, i64 43 })
store { ptr, i64 } %callN, ptr %allocaN, align 8 store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %allocaN, align 8 %loadN = load { ptr, i64 }, ptr %allocaN, align 8
%loadN = load i64, ptr %allocaN, align 8 %loadN = load i64, ptr %allocaN, align 8
@@ -381,7 +381,7 @@ if.merge.15: ; preds = %if.then.14, %if.the
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN) %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN)
store { ptr, i64 } %callN, ptr %allocaN, align 8 store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, 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.134, i64 5 }) %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.113, i64 5 })
store { ptr, i64 } %callN, ptr %allocaN, align 8 store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load i64, ptr %allocaN, align 8 %loadN = load i64, ptr %allocaN, align 8
%addN = add i64 %loadN, 1 %addN = add i64 %loadN, 1
@@ -395,7 +395,7 @@ if.merge.15: ; preds = %if.then.14, %if.the
if.then.25: ; preds = %if.else.12 if.then.25: ; preds = %if.else.12
%loadN = load { ptr, i64 }, 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 36 }) %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.114, i64 36 })
store { ptr, i64 } %callN, ptr %allocaN, align 8 store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %allocaN, align 8 %loadN = load { ptr, i64 }, ptr %allocaN, align 8
%loadN = load i64, ptr %allocaN, align 8 %loadN = load i64, ptr %allocaN, align 8
@@ -403,7 +403,7 @@ if.then.25: ; preds = %if.else.12
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN) %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN)
store { ptr, i64 } %callN, ptr %allocaN, align 8 store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, 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 2 }) %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.115, i64 2 })
store { ptr, i64 } %callN, ptr %allocaN, align 8 store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %allocaN, align 8 %loadN = load { ptr, i64 }, ptr %allocaN, align 8
%loadN = load i64, ptr %allocaN, align 8 %loadN = load i64, ptr %allocaN, align 8
@@ -414,7 +414,7 @@ if.then.25: ; preds = %if.else.12
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN) %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN)
store { ptr, i64 } %callN, ptr %allocaN, align 8 store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, 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.137, i64 4 }) %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.116, i64 4 })
store { ptr, i64 } %callN, ptr %allocaN, align 8 store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load i64, ptr %allocaN, align 8 %loadN = load i64, ptr %allocaN, align 8
%addN = add i64 %loadN, 2 %addN = add i64 %loadN, 2
@@ -471,7 +471,7 @@ if.merge.33: ; preds = %if.merge.36, %if.el
if.then.34: ; preds = %if.then.31 if.then.34: ; preds = %if.then.31
%loadN = load { ptr, i64 }, 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 36 }) %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.117, i64 36 })
store { ptr, i64 } %callN, ptr %allocaN, align 8 store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %allocaN, align 8 %loadN = load { ptr, i64 }, ptr %allocaN, align 8
%loadN = load i64, ptr %allocaN, align 8 %loadN = load i64, ptr %allocaN, align 8
@@ -479,7 +479,7 @@ if.then.34: ; preds = %if.then.31
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN) %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN)
store { ptr, i64 } %callN, ptr %allocaN, align 8 store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, 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 2 }) %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.118, i64 2 })
store { ptr, i64 } %callN, ptr %allocaN, align 8 store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %allocaN, align 8 %loadN = load { ptr, i64 }, ptr %allocaN, align 8
%loadN = load i64, ptr %allocaN, align 8 %loadN = load i64, ptr %allocaN, align 8
@@ -490,7 +490,7 @@ if.then.34: ; preds = %if.then.31
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN) %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN)
store { ptr, i64 } %callN, ptr %allocaN, align 8 store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, 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.140, i64 4 }) %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.119, i64 4 })
store { ptr, i64 } %callN, ptr %allocaN, align 8 store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load i64, ptr %allocaN, align 8 %loadN = load i64, ptr %allocaN, align 8
%addN = add i64 %loadN, 2 %addN = add i64 %loadN, 2
@@ -510,7 +510,7 @@ if.merge.36: ; preds = %if.else.35, %if.the
if.then.37: ; preds = %while.exit.4 if.then.37: ; preds = %while.exit.4
%loadN = load { ptr, i64 }, 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.141, i64 36 }) %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.120, i64 36 })
store { ptr, i64 } %callN, ptr %allocaN, align 8 store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %allocaN, align 8 %loadN = load { ptr, i64 }, ptr %allocaN, align 8
%loadN = load i64, ptr %allocaN, align 8 %loadN = load i64, ptr %allocaN, align 8
@@ -518,7 +518,7 @@ if.then.37: ; preds = %while.exit.4
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN) %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN)
store { ptr, i64 } %callN, ptr %allocaN, align 8 store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, 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.142, i64 2 }) %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.121, i64 2 })
store { ptr, i64 } %callN, ptr %allocaN, align 8 store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %allocaN, align 8 %loadN = load { ptr, i64 }, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %alloca, align 8 %loadN = load { ptr, i64 }, ptr %alloca, align 8
@@ -529,7 +529,7 @@ if.then.37: ; preds = %while.exit.4
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN) %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN)
store { ptr, i64 } %callN, ptr %allocaN, align 8 store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, 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.143, i64 4 }) %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.122, i64 4 })
store { ptr, i64 } %callN, ptr %allocaN, align 8 store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %if.merge.38 br label %if.merge.38
@@ -622,69 +622,6 @@ declare ptr @TrackingAllocator.alloc_bytes(ptr, ptr, i64) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @TrackingAllocator.dealloc_bytes(ptr, ptr, ptr) #0 declare void @TrackingAllocator.dealloc_bytes(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare ptr @mem_realloc.3(ptr, ptr, ptr, i64, i64, i64) #0
; Function Attrs: nounwind
declare ptr @CAllocator.alloc_bytes.4(ptr, ptr, i64) #0
; Function Attrs: nounwind
declare void @CAllocator.dealloc_bytes.5(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare i64 @GPA.init.6(ptr) #0
; Function Attrs: nounwind
declare ptr @GPA.alloc_bytes.7(ptr, ptr, i64) #0
; Function Attrs: nounwind
declare void @GPA.dealloc_bytes.8(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare void @Arena.add_chunk.9(ptr, ptr, i64) #0
; Function Attrs: nounwind
declare void @Arena.init.10(ptr sret({ ptr, i64, { ptr, ptr, ptr } }), ptr, ptr, i64) #0
; Function Attrs: nounwind
declare void @Arena.reset.11(ptr, ptr) #0
; Function Attrs: nounwind
declare void @Arena.deinit.12(ptr, ptr) #0
; Function Attrs: nounwind
declare ptr @Arena.alloc_bytes.13(ptr, ptr, i64) #0
; Function Attrs: nounwind
declare void @Arena.dealloc_bytes.14(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare void @BufAlloc.init.15(ptr sret({ ptr, i64, i64 }), ptr, ptr, i64) #0
; Function Attrs: nounwind
declare void @BufAlloc.reset.16(ptr, ptr) #0
; Function Attrs: nounwind
declare ptr @BufAlloc.alloc_bytes.17(ptr, ptr, i64) #0
; Function Attrs: nounwind
declare void @BufAlloc.dealloc_bytes.18(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare void @TrackingAllocator.init.19(ptr sret({ { ptr, ptr, ptr }, i64, i64, i64 }), ptr, ptr) #0
; Function Attrs: nounwind
declare i64 @TrackingAllocator.leak_count.20(ptr, ptr) #0
; Function Attrs: nounwind
declare void @TrackingAllocator.report.21(ptr, ptr) #0
; Function Attrs: nounwind
declare ptr @TrackingAllocator.alloc_bytes.22(ptr, ptr, i64) #0
; Function Attrs: nounwind
declare void @TrackingAllocator.dealloc_bytes.23(ptr, ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare ptr @escape(ptr, ptr) #0 declare ptr @escape(ptr, ptr) #0
@@ -859,166 +796,166 @@ declare i32 @listen(i32, i32) #0
declare i32 @accept(i32, ptr, ptr) #0 declare i32 @accept(i32, ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i64 @read.24(i32, ptr, i64) #0 declare i64 @read.3(i32, ptr, i64) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i32 @close.25(i32) #0 declare i32 @close.4(i32) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i16 @htons(ptr, i64) #0 declare i16 @htons(ptr, i64) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare ptr @mem_realloc.26(ptr, ptr, ptr, i64, i64, i64) #0 declare ptr @mem_realloc.5(ptr, ptr, ptr, i64, i64, i64) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare ptr @CAllocator.alloc_bytes.27(ptr, ptr, i64) #0 declare ptr @CAllocator.alloc_bytes.6(ptr, ptr, i64) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @CAllocator.dealloc_bytes.28(ptr, ptr, ptr) #0 declare void @CAllocator.dealloc_bytes.7(ptr, ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i64 @GPA.init.29(ptr) #0 declare i64 @GPA.init.8(ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare ptr @GPA.alloc_bytes.30(ptr, ptr, i64) #0 declare ptr @GPA.alloc_bytes.9(ptr, ptr, i64) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @GPA.dealloc_bytes.31(ptr, ptr, ptr) #0 declare void @GPA.dealloc_bytes.10(ptr, ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @Arena.add_chunk.32(ptr, ptr, i64) #0 declare void @Arena.add_chunk.11(ptr, ptr, i64) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @Arena.init.33(ptr sret({ ptr, i64, { ptr, ptr, ptr } }), ptr, ptr, i64) #0 declare void @Arena.init.12(ptr sret({ ptr, i64, { ptr, ptr, ptr } }), ptr, ptr, i64) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @Arena.reset.34(ptr, ptr) #0 declare void @Arena.reset.13(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @Arena.deinit.35(ptr, ptr) #0 declare void @Arena.deinit.14(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare ptr @Arena.alloc_bytes.36(ptr, ptr, i64) #0 declare ptr @Arena.alloc_bytes.15(ptr, ptr, i64) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @Arena.dealloc_bytes.37(ptr, ptr, ptr) #0 declare void @Arena.dealloc_bytes.16(ptr, ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @BufAlloc.init.38(ptr sret({ ptr, i64, i64 }), ptr, ptr, i64) #0 declare void @BufAlloc.init.17(ptr sret({ ptr, i64, i64 }), ptr, ptr, i64) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @BufAlloc.reset.39(ptr, ptr) #0 declare void @BufAlloc.reset.18(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare ptr @BufAlloc.alloc_bytes.40(ptr, ptr, i64) #0 declare ptr @BufAlloc.alloc_bytes.19(ptr, ptr, i64) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @BufAlloc.dealloc_bytes.41(ptr, ptr, ptr) #0 declare void @BufAlloc.dealloc_bytes.20(ptr, ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @TrackingAllocator.init.42(ptr sret({ { ptr, ptr, ptr }, i64, i64, i64 }), ptr, ptr) #0 declare void @TrackingAllocator.init.21(ptr sret({ { ptr, ptr, ptr }, i64, i64, i64 }), ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i64 @TrackingAllocator.leak_count.43(ptr, ptr) #0 declare i64 @TrackingAllocator.leak_count.22(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @TrackingAllocator.report.44(ptr, ptr) #0 declare void @TrackingAllocator.report.23(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare ptr @TrackingAllocator.alloc_bytes.45(ptr, ptr, i64) #0 declare ptr @TrackingAllocator.alloc_bytes.24(ptr, ptr, i64) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @TrackingAllocator.dealloc_bytes.46(ptr, ptr, ptr) #0 declare void @TrackingAllocator.dealloc_bytes.25(ptr, ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i32 @open.47(ptr, i32, ...) #0 declare i32 @open.26(ptr, i32, ...) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i32 @close.48(i32) #0 declare i32 @close.27(i32) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i64 @read.49(i32, ptr, i64) #0 declare i64 @read.28(i32, ptr, i64) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i64 @lseek.50(i32, i64, i32) #0 declare i64 @lseek.29(i32, i64, i32) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i32 @unlink.51(ptr) #0 declare i32 @unlink.30(ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i32 @rmdir.52(ptr) #0 declare i32 @rmdir.31(ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i32 @mkdir.53(ptr, i32) #0 declare i32 @mkdir.32(ptr, i32) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i32 @access.54(ptr, i32) #0 declare i32 @access.33(ptr, i32) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i32 @chmod.55(ptr, i32) #0 declare i32 @chmod.34(ptr, i32) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i32 @rename.56(ptr, ptr) #0 declare i32 @rename.35(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i1 @File.is_valid.57(ptr, ptr) #0 declare i1 @File.is_valid.36(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i1 @File.close.58(ptr, ptr) #0 declare i1 @File.close.37(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i64 @File.read.59(ptr, ptr, ptr) #0 declare i64 @File.read.38(ptr, ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i64 @File.write.60(ptr, ptr, ptr) #0 declare i64 @File.write.39(ptr, ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i64 @File.seek.61(ptr, ptr, i64, i64) #0 declare i64 @File.seek.40(ptr, ptr, i64, i64) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i32 @mode_to_flags.62(ptr, i64) #0 declare i32 @mode_to_flags.41(ptr, i64) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i64 @open_file.63(ptr, ptr, i64) #0 declare i64 @open_file.42(ptr, ptr, i64) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @read_file.64(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 declare void @read_file.43(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i1 @write_file.65(ptr, ptr, ptr) #0 declare i1 @write_file.44(ptr, ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i1 @append_file.66(ptr, ptr, ptr) #0 declare i1 @append_file.45(ptr, ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i1 @exists.67(ptr, ptr) #0 declare i1 @exists.46(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i1 @delete_file.68(ptr, ptr) #0 declare i1 @delete_file.47(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i1 @delete_dir.69(ptr, ptr) #0 declare i1 @delete_dir.48(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i1 @create_dir.70(ptr, ptr) #0 declare i1 @create_dir.49(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i1 @set_mode.71(ptr, ptr, i32) #0 declare i1 @set_mode.50(ptr, ptr, i32) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i1 @move.72(ptr, ptr, ptr) #0 declare i1 @move.51(ptr, ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i1 @create_dir_all.73(ptr, ptr) #0 declare i1 @create_dir_all.52(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i1 @copy_file.74(ptr, ptr, ptr) #0 declare i1 @copy_file.53(ptr, ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare ptr @basename.75(ptr, ptr) #0 declare ptr @basename.54(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare ptr @dirname.76(ptr, ptr) #0 declare ptr @dirname.55(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @Array.add(ptr, ptr, ptr, ptr) #0 declare void @Array.add(ptr, ptr, ptr, ptr) #0
@@ -1216,64 +1153,64 @@ declare ptr @BuildOptions.jni_main_java_source_at(i64, i64) #0
declare i64 @build_options() #0 declare i64 @build_options() #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare ptr @spaces.77(ptr, i32) #0 declare ptr @spaces.56(ptr, i32) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i32 @sx_trace_len.78() #0 declare i32 @sx_trace_len.57() #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i32 @sx_trace_truncated.79() #0 declare i32 @sx_trace_truncated.58() #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i64 @sx_trace_frame_at.80(i32) #0 declare i64 @sx_trace_frame_at.59(i32) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare ptr @to_string.81(ptr) #0 declare ptr @to_string.60(ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @print_current.82(ptr) #0 declare void @print_current.61(ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @print_interpreter_frames.83(ptr) #0 declare void @print_interpreter_frames.62(ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare ptr @popen.84(ptr, ptr) #0 declare ptr @popen.63(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i32 @pclose.85(ptr) #0 declare i32 @pclose.64(ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i64 @fread.86(ptr, i64, i64, ptr) #0 declare i64 @fread.65(ptr, i64, i64, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i32 @feof.87(ptr) #0 declare i32 @feof.66(ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare ptr @getenv.88(ptr) #0 declare ptr @getenv.67(ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i64 @strlen.89(ptr) #0 declare i64 @strlen.68(ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i32 @system.90(ptr) #0 declare i32 @system.69(ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @run.91(ptr sret({ { i32, { ptr, i64 } }, i1 }), ptr, ptr) #0 declare void @run.70(ptr sret({ { i32, { ptr, i64 } }, i1 }), ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @env.92(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 declare void @env.71(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @find_executable.93(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 declare void @find_executable.72(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @_exit.94(i32) #0 declare void @_exit.73(i32) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @exit.95(ptr, i8, ptr) #0 declare void @exit.74(ptr, i8, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @assert.96(ptr, i1, ptr, ptr) #0 declare void @assert.75(ptr, i1, ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare ptr @_NSGetArgv() #0 declare ptr @_NSGetArgv() #0
@@ -1303,97 +1240,97 @@ declare ptr @Parsed.value_of(ptr, ptr, ptr) #0
declare i1 @is_long_flag(ptr, ptr) #0 declare i1 @is_long_flag(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @parse.97(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.76(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 ; Function Attrs: nounwind
declare i32 @open.98(ptr, i32, ...) #0 declare i32 @open.77(ptr, i32, ...) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i32 @close.99(i32) #0 declare i32 @close.78(i32) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i64 @read.100(i32, ptr, i64) #0 declare i64 @read.79(i32, ptr, i64) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i64 @lseek.101(i32, i64, i32) #0 declare i64 @lseek.80(i32, i64, i32) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i32 @unlink.102(ptr) #0 declare i32 @unlink.81(ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i32 @rmdir.103(ptr) #0 declare i32 @rmdir.82(ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i32 @mkdir.104(ptr, i32) #0 declare i32 @mkdir.83(ptr, i32) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i32 @access.105(ptr, i32) #0 declare i32 @access.84(ptr, i32) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i32 @chmod.106(ptr, i32) #0 declare i32 @chmod.85(ptr, i32) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i32 @rename.107(ptr, ptr) #0 declare i32 @rename.86(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i1 @File.is_valid.108(ptr, ptr) #0 declare i1 @File.is_valid.87(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i1 @File.close.109(ptr, ptr) #0 declare i1 @File.close.88(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i64 @File.read.110(ptr, ptr, ptr) #0 declare i64 @File.read.89(ptr, ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i64 @File.write.111(ptr, ptr, ptr) #0 declare i64 @File.write.90(ptr, ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i64 @File.seek.112(ptr, ptr, i64, i64) #0 declare i64 @File.seek.91(ptr, ptr, i64, i64) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i32 @mode_to_flags.113(ptr, i64) #0 declare i32 @mode_to_flags.92(ptr, i64) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i64 @open_file.114(ptr, ptr, i64) #0 declare i64 @open_file.93(ptr, ptr, i64) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @read_file.115(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 declare void @read_file.94(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i1 @write_file.116(ptr, ptr, ptr) #0 declare i1 @write_file.95(ptr, ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i1 @append_file.117(ptr, ptr, ptr) #0 declare i1 @append_file.96(ptr, ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i1 @exists.118(ptr, ptr) #0 declare i1 @exists.97(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i1 @delete_file.119(ptr, ptr) #0 declare i1 @delete_file.98(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i1 @delete_dir.120(ptr, ptr) #0 declare i1 @delete_dir.99(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i1 @create_dir.121(ptr, ptr) #0 declare i1 @create_dir.100(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i1 @set_mode.122(ptr, ptr, i32) #0 declare i1 @set_mode.101(ptr, ptr, i32) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i1 @move.123(ptr, ptr, ptr) #0 declare i1 @move.102(ptr, ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i1 @create_dir_all.124(ptr, ptr) #0 declare i1 @create_dir_all.103(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i1 @copy_file.125(ptr, ptr, ptr) #0 declare i1 @copy_file.104(ptr, ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare ptr @basename.126(ptr, ptr) #0 declare ptr @basename.105(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare ptr @dirname.127(ptr, ptr) #0 declare ptr @dirname.106(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i64 @rotr(ptr, i64, i64) #0 declare i64 @rotr(ptr, i64, i64) #0
@@ -1432,7 +1369,7 @@ declare [64 x i8] @sha256_hex(ptr, ptr) #0
declare void @sha256_file(ptr sret({ [64 x i8], i1 }), ptr, ptr) #0 declare void @sha256_file(ptr sret({ [64 x i8], i1 }), ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @assert.128(ptr, i1) #0 declare void @assert.107(ptr, i1) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
define internal i64 @read_long(ptr %0, ptr %1, ptr %2) #0 { define internal i64 @read_long(ptr %0, ptr %1, ptr %2) #0 {
@@ -1460,7 +1397,7 @@ jni.miss: ; preds = %entry
store ptr %jni.global.cls, ptr @SX_JNI_CLS_currentTimeMillis____J, align 8 store ptr %jni.global.cls, ptr @SX_JNI_CLS_currentTimeMillis____J, align 8
%5 = getelementptr inbounds ptr, ptr %jni.ifs, i32 33 %5 = getelementptr inbounds ptr, ptr %jni.ifs, i32 33
%jni.GetMethodID = load ptr, ptr %5, align 8 %jni.GetMethodID = load ptr, ptr %5, align 8
%jni.fresh.mid = call ptr %jni.GetMethodID(ptr %load, ptr %jni.global.cls, ptr @str.144, ptr @str.145) %jni.fresh.mid = call ptr %jni.GetMethodID(ptr %load, ptr %jni.global.cls, ptr @str.123, ptr @str.124)
store ptr %jni.fresh.mid, ptr @SX_JNI_MID_currentTimeMillis____J, align 8 store ptr %jni.fresh.mid, ptr @SX_JNI_MID_currentTimeMillis____J, align 8
br label %jni.cont br label %jni.cont
@@ -1514,14 +1451,14 @@ declare void @sx_jni_env_tl_set(ptr) #0
define internal void @print__ct_sbdbafa1a5fe828c0__pack(ptr %0) #0 { define internal void @print__ct_sbdbafa1a5fe828c0__pack(ptr %0) #0 {
entry: entry:
%alloca = alloca { ptr, i64 }, align 8 %alloca = alloca { ptr, i64 }, align 8
store { ptr, i64 } { ptr @str.146, i64 3 }, ptr %alloca, align 8 store { ptr, i64 } { ptr @str.125, i64 3 }, ptr %alloca, align 8
%allocaN = alloca { ptr, i64 }, align 8 %allocaN = alloca { ptr, i64 }, align 8
%gep = getelementptr inbounds { ptr, i64 }, ptr %allocaN, i32 0, i32 0 %gep = getelementptr inbounds { ptr, i64 }, ptr %allocaN, i32 0, i32 0
store ptr null, ptr %gep, align 8 store ptr null, ptr %gep, align 8
%gepN = getelementptr inbounds { ptr, i64 }, ptr %allocaN, i32 0, i32 1 %gepN = getelementptr inbounds { ptr, i64 }, ptr %allocaN, i32 0, i32 1
store i64 0, ptr %gepN, align 8 store i64 0, ptr %gepN, align 8
%allocaN = alloca { ptr, i64 }, align 8 %allocaN = alloca { ptr, i64 }, align 8
store { ptr, i64 } { ptr @str.147, i64 0 }, ptr %allocaN, align 8 store { ptr, i64 } { ptr @str.126, i64 0 }, ptr %allocaN, align 8
%load = load { ptr, i64 }, ptr %allocaN, align 8 %load = load { ptr, i64 }, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %alloca, align 8 %loadN = load { ptr, i64 }, ptr %alloca, align 8
%call = call { ptr, i64 } @substr(ptr %0, { ptr, i64 } %loadN, i64 0, i64 3) %call = call { ptr, i64 } @substr(ptr %0, { ptr, i64 } %loadN, i64 0, i64 3)
@@ -1537,6 +1474,6 @@ entry:
; Function Attrs: nounwind ; Function Attrs: nounwind
define internal { ptr, i64 } @__insert_0(ptr %0) #0 { define internal { ptr, i64 } @__insert_0(ptr %0) #0 {
entry: entry:
%call = call { ptr, i64 } @build_format(ptr %0, { ptr, i64 } { ptr @str.148, i64 3 }) %call = call { ptr, i64 } @build_format(ptr %0, { ptr, i64 } { ptr @str.127, i64 3 })
ret { ptr, i64 } %call ret { ptr, i64 } %call
} }

View File

@@ -2,28 +2,28 @@
@g_should_call = internal global i1 false @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 } @__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 = private unnamed_addr constant [2 x i8] c"0\00", align 1
@str.129 = private unnamed_addr constant [15 x i8] c"result := \22\22; \00", align 1 @str.108 = private unnamed_addr constant [15 x i8] c"result := \22\22; \00", align 1
@str.130 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1 @str.109 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1
@str.131 = private unnamed_addr constant [3 x i8] c", \00", align 1 @str.110 = private unnamed_addr constant [3 x i8] c", \00", align 1
@str.132 = private unnamed_addr constant [5 x i8] c")); \00", align 1 @str.111 = private unnamed_addr constant [5 x i8] c")); \00", align 1
@str.133 = private unnamed_addr constant [44 x i8] c"result = concat(result, any_to_string(args[\00", align 1 @str.112 = private unnamed_addr constant [44 x i8] c"result = concat(result, any_to_string(args[\00", align 1
@str.134 = private unnamed_addr constant [6 x i8] c"])); \00", align 1 @str.113 = private unnamed_addr constant [6 x i8] c"])); \00", align 1
@str.135 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1 @str.114 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1
@str.136 = private unnamed_addr constant [3 x i8] c", \00", align 1 @str.115 = private unnamed_addr constant [3 x i8] c", \00", align 1
@str.137 = private unnamed_addr constant [5 x i8] c")); \00", align 1 @str.116 = private unnamed_addr constant [5 x i8] c")); \00", align 1
@str.138 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1 @str.117 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1
@str.139 = private unnamed_addr constant [3 x i8] c", \00", align 1 @str.118 = private unnamed_addr constant [3 x i8] c", \00", align 1
@str.140 = private unnamed_addr constant [5 x i8] c")); \00", align 1 @str.119 = private unnamed_addr constant [5 x i8] c")); \00", align 1
@str.141 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1 @str.120 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1
@str.142 = private unnamed_addr constant [3 x i8] c", \00", align 1 @str.121 = private unnamed_addr constant [3 x i8] c", \00", align 1
@str.143 = private unnamed_addr constant [5 x i8] c")); \00", align 1 @str.122 = private unnamed_addr constant [5 x i8] c")); \00", align 1
@str.144 = private unnamed_addr constant [9 x i8] c"getValue\00", align 1 @str.123 = private unnamed_addr constant [9 x i8] c"getValue\00", align 1
@str.145 = private unnamed_addr constant [4 x i8] c"()D\00", align 1 @str.124 = private unnamed_addr constant [4 x i8] c"()D\00", align 1
@SX_JNI_CLS_getValue____D = internal global ptr null @SX_JNI_CLS_getValue____D = internal global ptr null
@SX_JNI_MID_getValue____D = internal global ptr null @SX_JNI_MID_getValue____D = internal global ptr null
@str.146 = private unnamed_addr constant [4 x i8] c"ok\0A\00", align 1 @str.125 = 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.126 = 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 @str.127 = private unnamed_addr constant [4 x i8] c"ok\0A\00", align 1
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @out(ptr) #0 declare void @out(ptr) #0
@@ -253,7 +253,7 @@ entry:
%alloca = alloca { ptr, i64 }, align 8 %alloca = alloca { ptr, i64 }, align 8
store { ptr, i64 } %1, ptr %alloca, align 8 store { ptr, i64 } %1, ptr %alloca, align 8
%allocaN = alloca { ptr, i64 }, align 8 %allocaN = alloca { ptr, i64 }, align 8
store { ptr, i64 } { ptr @str.129, i64 14 }, ptr %allocaN, align 8 store { ptr, i64 } { ptr @str.108, i64 14 }, ptr %allocaN, align 8
%allocaN = alloca i64, align 8 %allocaN = alloca i64, align 8
store i64 0, ptr %allocaN, align 8 store i64 0, ptr %allocaN, align 8
%allocaN = alloca i64, align 8 %allocaN = alloca i64, align 8
@@ -349,7 +349,7 @@ if.merge.13: ; preds = %if.merge.27, %if.me
if.then.14: ; preds = %if.then.11 if.then.14: ; preds = %if.then.11
%loadN = load { ptr, i64 }, ptr %allocaN, align 8 %loadN = load { ptr, i64 }, ptr %allocaN, align 8
%call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.130, i64 36 }) %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.109, i64 36 })
store { ptr, i64 } %call, ptr %allocaN, align 8 store { ptr, i64 } %call, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %allocaN, align 8 %loadN = load { ptr, i64 }, ptr %allocaN, align 8
%loadN = load i64, ptr %allocaN, align 8 %loadN = load i64, ptr %allocaN, align 8
@@ -357,7 +357,7 @@ if.then.14: ; preds = %if.then.11
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN) %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN)
store { ptr, i64 } %callN, ptr %allocaN, align 8 store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, 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.131, i64 2 }) %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.110, i64 2 })
store { ptr, i64 } %callN, ptr %allocaN, align 8 store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %allocaN, align 8 %loadN = load { ptr, i64 }, ptr %allocaN, align 8
%loadN = load i64, ptr %allocaN, align 8 %loadN = load i64, ptr %allocaN, align 8
@@ -367,13 +367,13 @@ if.then.14: ; preds = %if.then.11
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN) %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN)
store { ptr, i64 } %callN, ptr %allocaN, align 8 store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, 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 4 }) %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.111, i64 4 })
store { ptr, i64 } %callN, ptr %allocaN, align 8 store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %if.merge.15 br label %if.merge.15
if.merge.15: ; preds = %if.then.14, %if.then.11 if.merge.15: ; preds = %if.then.14, %if.then.11
%loadN = load { ptr, i64 }, 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 43 }) %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.112, i64 43 })
store { ptr, i64 } %callN, ptr %allocaN, align 8 store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %allocaN, align 8 %loadN = load { ptr, i64 }, ptr %allocaN, align 8
%loadN = load i64, ptr %allocaN, align 8 %loadN = load i64, ptr %allocaN, align 8
@@ -381,7 +381,7 @@ if.merge.15: ; preds = %if.then.14, %if.the
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN) %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN)
store { ptr, i64 } %callN, ptr %allocaN, align 8 store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, 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.134, i64 5 }) %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.113, i64 5 })
store { ptr, i64 } %callN, ptr %allocaN, align 8 store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load i64, ptr %allocaN, align 8 %loadN = load i64, ptr %allocaN, align 8
%addN = add i64 %loadN, 1 %addN = add i64 %loadN, 1
@@ -395,7 +395,7 @@ if.merge.15: ; preds = %if.then.14, %if.the
if.then.25: ; preds = %if.else.12 if.then.25: ; preds = %if.else.12
%loadN = load { ptr, i64 }, 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 36 }) %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.114, i64 36 })
store { ptr, i64 } %callN, ptr %allocaN, align 8 store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %allocaN, align 8 %loadN = load { ptr, i64 }, ptr %allocaN, align 8
%loadN = load i64, ptr %allocaN, align 8 %loadN = load i64, ptr %allocaN, align 8
@@ -403,7 +403,7 @@ if.then.25: ; preds = %if.else.12
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN) %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN)
store { ptr, i64 } %callN, ptr %allocaN, align 8 store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, 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 2 }) %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.115, i64 2 })
store { ptr, i64 } %callN, ptr %allocaN, align 8 store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %allocaN, align 8 %loadN = load { ptr, i64 }, ptr %allocaN, align 8
%loadN = load i64, ptr %allocaN, align 8 %loadN = load i64, ptr %allocaN, align 8
@@ -414,7 +414,7 @@ if.then.25: ; preds = %if.else.12
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN) %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN)
store { ptr, i64 } %callN, ptr %allocaN, align 8 store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, 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.137, i64 4 }) %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.116, i64 4 })
store { ptr, i64 } %callN, ptr %allocaN, align 8 store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load i64, ptr %allocaN, align 8 %loadN = load i64, ptr %allocaN, align 8
%addN = add i64 %loadN, 2 %addN = add i64 %loadN, 2
@@ -471,7 +471,7 @@ if.merge.33: ; preds = %if.merge.36, %if.el
if.then.34: ; preds = %if.then.31 if.then.34: ; preds = %if.then.31
%loadN = load { ptr, i64 }, 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 36 }) %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.117, i64 36 })
store { ptr, i64 } %callN, ptr %allocaN, align 8 store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %allocaN, align 8 %loadN = load { ptr, i64 }, ptr %allocaN, align 8
%loadN = load i64, ptr %allocaN, align 8 %loadN = load i64, ptr %allocaN, align 8
@@ -479,7 +479,7 @@ if.then.34: ; preds = %if.then.31
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN) %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN)
store { ptr, i64 } %callN, ptr %allocaN, align 8 store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, 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 2 }) %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.118, i64 2 })
store { ptr, i64 } %callN, ptr %allocaN, align 8 store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %allocaN, align 8 %loadN = load { ptr, i64 }, ptr %allocaN, align 8
%loadN = load i64, ptr %allocaN, align 8 %loadN = load i64, ptr %allocaN, align 8
@@ -490,7 +490,7 @@ if.then.34: ; preds = %if.then.31
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN) %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN)
store { ptr, i64 } %callN, ptr %allocaN, align 8 store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, 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.140, i64 4 }) %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.119, i64 4 })
store { ptr, i64 } %callN, ptr %allocaN, align 8 store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load i64, ptr %allocaN, align 8 %loadN = load i64, ptr %allocaN, align 8
%addN = add i64 %loadN, 2 %addN = add i64 %loadN, 2
@@ -510,7 +510,7 @@ if.merge.36: ; preds = %if.else.35, %if.the
if.then.37: ; preds = %while.exit.4 if.then.37: ; preds = %while.exit.4
%loadN = load { ptr, i64 }, 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.141, i64 36 }) %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.120, i64 36 })
store { ptr, i64 } %callN, ptr %allocaN, align 8 store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %allocaN, align 8 %loadN = load { ptr, i64 }, ptr %allocaN, align 8
%loadN = load i64, ptr %allocaN, align 8 %loadN = load i64, ptr %allocaN, align 8
@@ -518,7 +518,7 @@ if.then.37: ; preds = %while.exit.4
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN) %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN)
store { ptr, i64 } %callN, ptr %allocaN, align 8 store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, 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.142, i64 2 }) %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.121, i64 2 })
store { ptr, i64 } %callN, ptr %allocaN, align 8 store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %allocaN, align 8 %loadN = load { ptr, i64 }, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %alloca, align 8 %loadN = load { ptr, i64 }, ptr %alloca, align 8
@@ -529,7 +529,7 @@ if.then.37: ; preds = %while.exit.4
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN) %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN)
store { ptr, i64 } %callN, ptr %allocaN, align 8 store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, 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.143, i64 4 }) %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.122, i64 4 })
store { ptr, i64 } %callN, ptr %allocaN, align 8 store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %if.merge.38 br label %if.merge.38
@@ -622,69 +622,6 @@ declare ptr @TrackingAllocator.alloc_bytes(ptr, ptr, i64) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @TrackingAllocator.dealloc_bytes(ptr, ptr, ptr) #0 declare void @TrackingAllocator.dealloc_bytes(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare ptr @mem_realloc.3(ptr, ptr, ptr, i64, i64, i64) #0
; Function Attrs: nounwind
declare ptr @CAllocator.alloc_bytes.4(ptr, ptr, i64) #0
; Function Attrs: nounwind
declare void @CAllocator.dealloc_bytes.5(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare i64 @GPA.init.6(ptr) #0
; Function Attrs: nounwind
declare ptr @GPA.alloc_bytes.7(ptr, ptr, i64) #0
; Function Attrs: nounwind
declare void @GPA.dealloc_bytes.8(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare void @Arena.add_chunk.9(ptr, ptr, i64) #0
; Function Attrs: nounwind
declare void @Arena.init.10(ptr sret({ ptr, i64, { ptr, ptr, ptr } }), ptr, ptr, i64) #0
; Function Attrs: nounwind
declare void @Arena.reset.11(ptr, ptr) #0
; Function Attrs: nounwind
declare void @Arena.deinit.12(ptr, ptr) #0
; Function Attrs: nounwind
declare ptr @Arena.alloc_bytes.13(ptr, ptr, i64) #0
; Function Attrs: nounwind
declare void @Arena.dealloc_bytes.14(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare void @BufAlloc.init.15(ptr sret({ ptr, i64, i64 }), ptr, ptr, i64) #0
; Function Attrs: nounwind
declare void @BufAlloc.reset.16(ptr, ptr) #0
; Function Attrs: nounwind
declare ptr @BufAlloc.alloc_bytes.17(ptr, ptr, i64) #0
; Function Attrs: nounwind
declare void @BufAlloc.dealloc_bytes.18(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare void @TrackingAllocator.init.19(ptr sret({ { ptr, ptr, ptr }, i64, i64, i64 }), ptr, ptr) #0
; Function Attrs: nounwind
declare i64 @TrackingAllocator.leak_count.20(ptr, ptr) #0
; Function Attrs: nounwind
declare void @TrackingAllocator.report.21(ptr, ptr) #0
; Function Attrs: nounwind
declare ptr @TrackingAllocator.alloc_bytes.22(ptr, ptr, i64) #0
; Function Attrs: nounwind
declare void @TrackingAllocator.dealloc_bytes.23(ptr, ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare ptr @escape(ptr, ptr) #0 declare ptr @escape(ptr, ptr) #0
@@ -859,166 +796,166 @@ declare i32 @listen(i32, i32) #0
declare i32 @accept(i32, ptr, ptr) #0 declare i32 @accept(i32, ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i64 @read.24(i32, ptr, i64) #0 declare i64 @read.3(i32, ptr, i64) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i32 @close.25(i32) #0 declare i32 @close.4(i32) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i16 @htons(ptr, i64) #0 declare i16 @htons(ptr, i64) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare ptr @mem_realloc.26(ptr, ptr, ptr, i64, i64, i64) #0 declare ptr @mem_realloc.5(ptr, ptr, ptr, i64, i64, i64) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare ptr @CAllocator.alloc_bytes.27(ptr, ptr, i64) #0 declare ptr @CAllocator.alloc_bytes.6(ptr, ptr, i64) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @CAllocator.dealloc_bytes.28(ptr, ptr, ptr) #0 declare void @CAllocator.dealloc_bytes.7(ptr, ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i64 @GPA.init.29(ptr) #0 declare i64 @GPA.init.8(ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare ptr @GPA.alloc_bytes.30(ptr, ptr, i64) #0 declare ptr @GPA.alloc_bytes.9(ptr, ptr, i64) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @GPA.dealloc_bytes.31(ptr, ptr, ptr) #0 declare void @GPA.dealloc_bytes.10(ptr, ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @Arena.add_chunk.32(ptr, ptr, i64) #0 declare void @Arena.add_chunk.11(ptr, ptr, i64) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @Arena.init.33(ptr sret({ ptr, i64, { ptr, ptr, ptr } }), ptr, ptr, i64) #0 declare void @Arena.init.12(ptr sret({ ptr, i64, { ptr, ptr, ptr } }), ptr, ptr, i64) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @Arena.reset.34(ptr, ptr) #0 declare void @Arena.reset.13(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @Arena.deinit.35(ptr, ptr) #0 declare void @Arena.deinit.14(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare ptr @Arena.alloc_bytes.36(ptr, ptr, i64) #0 declare ptr @Arena.alloc_bytes.15(ptr, ptr, i64) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @Arena.dealloc_bytes.37(ptr, ptr, ptr) #0 declare void @Arena.dealloc_bytes.16(ptr, ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @BufAlloc.init.38(ptr sret({ ptr, i64, i64 }), ptr, ptr, i64) #0 declare void @BufAlloc.init.17(ptr sret({ ptr, i64, i64 }), ptr, ptr, i64) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @BufAlloc.reset.39(ptr, ptr) #0 declare void @BufAlloc.reset.18(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare ptr @BufAlloc.alloc_bytes.40(ptr, ptr, i64) #0 declare ptr @BufAlloc.alloc_bytes.19(ptr, ptr, i64) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @BufAlloc.dealloc_bytes.41(ptr, ptr, ptr) #0 declare void @BufAlloc.dealloc_bytes.20(ptr, ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @TrackingAllocator.init.42(ptr sret({ { ptr, ptr, ptr }, i64, i64, i64 }), ptr, ptr) #0 declare void @TrackingAllocator.init.21(ptr sret({ { ptr, ptr, ptr }, i64, i64, i64 }), ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i64 @TrackingAllocator.leak_count.43(ptr, ptr) #0 declare i64 @TrackingAllocator.leak_count.22(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @TrackingAllocator.report.44(ptr, ptr) #0 declare void @TrackingAllocator.report.23(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare ptr @TrackingAllocator.alloc_bytes.45(ptr, ptr, i64) #0 declare ptr @TrackingAllocator.alloc_bytes.24(ptr, ptr, i64) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @TrackingAllocator.dealloc_bytes.46(ptr, ptr, ptr) #0 declare void @TrackingAllocator.dealloc_bytes.25(ptr, ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i32 @open.47(ptr, i32, ...) #0 declare i32 @open.26(ptr, i32, ...) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i32 @close.48(i32) #0 declare i32 @close.27(i32) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i64 @read.49(i32, ptr, i64) #0 declare i64 @read.28(i32, ptr, i64) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i64 @lseek.50(i32, i64, i32) #0 declare i64 @lseek.29(i32, i64, i32) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i32 @unlink.51(ptr) #0 declare i32 @unlink.30(ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i32 @rmdir.52(ptr) #0 declare i32 @rmdir.31(ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i32 @mkdir.53(ptr, i32) #0 declare i32 @mkdir.32(ptr, i32) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i32 @access.54(ptr, i32) #0 declare i32 @access.33(ptr, i32) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i32 @chmod.55(ptr, i32) #0 declare i32 @chmod.34(ptr, i32) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i32 @rename.56(ptr, ptr) #0 declare i32 @rename.35(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i1 @File.is_valid.57(ptr, ptr) #0 declare i1 @File.is_valid.36(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i1 @File.close.58(ptr, ptr) #0 declare i1 @File.close.37(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i64 @File.read.59(ptr, ptr, ptr) #0 declare i64 @File.read.38(ptr, ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i64 @File.write.60(ptr, ptr, ptr) #0 declare i64 @File.write.39(ptr, ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i64 @File.seek.61(ptr, ptr, i64, i64) #0 declare i64 @File.seek.40(ptr, ptr, i64, i64) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i32 @mode_to_flags.62(ptr, i64) #0 declare i32 @mode_to_flags.41(ptr, i64) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i64 @open_file.63(ptr, ptr, i64) #0 declare i64 @open_file.42(ptr, ptr, i64) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @read_file.64(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 declare void @read_file.43(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i1 @write_file.65(ptr, ptr, ptr) #0 declare i1 @write_file.44(ptr, ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i1 @append_file.66(ptr, ptr, ptr) #0 declare i1 @append_file.45(ptr, ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i1 @exists.67(ptr, ptr) #0 declare i1 @exists.46(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i1 @delete_file.68(ptr, ptr) #0 declare i1 @delete_file.47(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i1 @delete_dir.69(ptr, ptr) #0 declare i1 @delete_dir.48(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i1 @create_dir.70(ptr, ptr) #0 declare i1 @create_dir.49(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i1 @set_mode.71(ptr, ptr, i32) #0 declare i1 @set_mode.50(ptr, ptr, i32) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i1 @move.72(ptr, ptr, ptr) #0 declare i1 @move.51(ptr, ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i1 @create_dir_all.73(ptr, ptr) #0 declare i1 @create_dir_all.52(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i1 @copy_file.74(ptr, ptr, ptr) #0 declare i1 @copy_file.53(ptr, ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare ptr @basename.75(ptr, ptr) #0 declare ptr @basename.54(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare ptr @dirname.76(ptr, ptr) #0 declare ptr @dirname.55(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @Array.add(ptr, ptr, ptr, ptr) #0 declare void @Array.add(ptr, ptr, ptr, ptr) #0
@@ -1216,64 +1153,64 @@ declare ptr @BuildOptions.jni_main_java_source_at(i64, i64) #0
declare i64 @build_options() #0 declare i64 @build_options() #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare ptr @spaces.77(ptr, i32) #0 declare ptr @spaces.56(ptr, i32) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i32 @sx_trace_len.78() #0 declare i32 @sx_trace_len.57() #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i32 @sx_trace_truncated.79() #0 declare i32 @sx_trace_truncated.58() #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i64 @sx_trace_frame_at.80(i32) #0 declare i64 @sx_trace_frame_at.59(i32) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare ptr @to_string.81(ptr) #0 declare ptr @to_string.60(ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @print_current.82(ptr) #0 declare void @print_current.61(ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @print_interpreter_frames.83(ptr) #0 declare void @print_interpreter_frames.62(ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare ptr @popen.84(ptr, ptr) #0 declare ptr @popen.63(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i32 @pclose.85(ptr) #0 declare i32 @pclose.64(ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i64 @fread.86(ptr, i64, i64, ptr) #0 declare i64 @fread.65(ptr, i64, i64, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i32 @feof.87(ptr) #0 declare i32 @feof.66(ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare ptr @getenv.88(ptr) #0 declare ptr @getenv.67(ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i64 @strlen.89(ptr) #0 declare i64 @strlen.68(ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i32 @system.90(ptr) #0 declare i32 @system.69(ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @run.91(ptr sret({ { i32, { ptr, i64 } }, i1 }), ptr, ptr) #0 declare void @run.70(ptr sret({ { i32, { ptr, i64 } }, i1 }), ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @env.92(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 declare void @env.71(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @find_executable.93(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 declare void @find_executable.72(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @_exit.94(i32) #0 declare void @_exit.73(i32) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @exit.95(ptr, i8, ptr) #0 declare void @exit.74(ptr, i8, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @assert.96(ptr, i1, ptr, ptr) #0 declare void @assert.75(ptr, i1, ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare ptr @_NSGetArgv() #0 declare ptr @_NSGetArgv() #0
@@ -1303,97 +1240,97 @@ declare ptr @Parsed.value_of(ptr, ptr, ptr) #0
declare i1 @is_long_flag(ptr, ptr) #0 declare i1 @is_long_flag(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @parse.97(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.76(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 ; Function Attrs: nounwind
declare i32 @open.98(ptr, i32, ...) #0 declare i32 @open.77(ptr, i32, ...) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i32 @close.99(i32) #0 declare i32 @close.78(i32) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i64 @read.100(i32, ptr, i64) #0 declare i64 @read.79(i32, ptr, i64) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i64 @lseek.101(i32, i64, i32) #0 declare i64 @lseek.80(i32, i64, i32) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i32 @unlink.102(ptr) #0 declare i32 @unlink.81(ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i32 @rmdir.103(ptr) #0 declare i32 @rmdir.82(ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i32 @mkdir.104(ptr, i32) #0 declare i32 @mkdir.83(ptr, i32) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i32 @access.105(ptr, i32) #0 declare i32 @access.84(ptr, i32) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i32 @chmod.106(ptr, i32) #0 declare i32 @chmod.85(ptr, i32) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i32 @rename.107(ptr, ptr) #0 declare i32 @rename.86(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i1 @File.is_valid.108(ptr, ptr) #0 declare i1 @File.is_valid.87(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i1 @File.close.109(ptr, ptr) #0 declare i1 @File.close.88(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i64 @File.read.110(ptr, ptr, ptr) #0 declare i64 @File.read.89(ptr, ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i64 @File.write.111(ptr, ptr, ptr) #0 declare i64 @File.write.90(ptr, ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i64 @File.seek.112(ptr, ptr, i64, i64) #0 declare i64 @File.seek.91(ptr, ptr, i64, i64) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i32 @mode_to_flags.113(ptr, i64) #0 declare i32 @mode_to_flags.92(ptr, i64) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i64 @open_file.114(ptr, ptr, i64) #0 declare i64 @open_file.93(ptr, ptr, i64) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @read_file.115(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 declare void @read_file.94(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i1 @write_file.116(ptr, ptr, ptr) #0 declare i1 @write_file.95(ptr, ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i1 @append_file.117(ptr, ptr, ptr) #0 declare i1 @append_file.96(ptr, ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i1 @exists.118(ptr, ptr) #0 declare i1 @exists.97(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i1 @delete_file.119(ptr, ptr) #0 declare i1 @delete_file.98(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i1 @delete_dir.120(ptr, ptr) #0 declare i1 @delete_dir.99(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i1 @create_dir.121(ptr, ptr) #0 declare i1 @create_dir.100(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i1 @set_mode.122(ptr, ptr, i32) #0 declare i1 @set_mode.101(ptr, ptr, i32) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i1 @move.123(ptr, ptr, ptr) #0 declare i1 @move.102(ptr, ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i1 @create_dir_all.124(ptr, ptr) #0 declare i1 @create_dir_all.103(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i1 @copy_file.125(ptr, ptr, ptr) #0 declare i1 @copy_file.104(ptr, ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare ptr @basename.126(ptr, ptr) #0 declare ptr @basename.105(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare ptr @dirname.127(ptr, ptr) #0 declare ptr @dirname.106(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i64 @rotr(ptr, i64, i64) #0 declare i64 @rotr(ptr, i64, i64) #0
@@ -1432,7 +1369,7 @@ declare [64 x i8] @sha256_hex(ptr, ptr) #0
declare void @sha256_file(ptr sret({ [64 x i8], i1 }), ptr, ptr) #0 declare void @sha256_file(ptr sret({ [64 x i8], i1 }), ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @assert.128(ptr, i1) #0 declare void @assert.107(ptr, i1) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
define internal double @read_double(ptr %0, ptr %1, ptr %2) #0 { define internal double @read_double(ptr %0, ptr %1, ptr %2) #0 {
@@ -1460,7 +1397,7 @@ jni.miss: ; preds = %entry
store ptr %jni.global.cls, ptr @SX_JNI_CLS_getValue____D, align 8 store ptr %jni.global.cls, ptr @SX_JNI_CLS_getValue____D, align 8
%5 = getelementptr inbounds ptr, ptr %jni.ifs, i32 33 %5 = getelementptr inbounds ptr, ptr %jni.ifs, i32 33
%jni.GetMethodID = load ptr, ptr %5, align 8 %jni.GetMethodID = load ptr, ptr %5, align 8
%jni.fresh.mid = call ptr %jni.GetMethodID(ptr %load, ptr %jni.global.cls, ptr @str.144, ptr @str.145) %jni.fresh.mid = call ptr %jni.GetMethodID(ptr %load, ptr %jni.global.cls, ptr @str.123, ptr @str.124)
store ptr %jni.fresh.mid, ptr @SX_JNI_MID_getValue____D, align 8 store ptr %jni.fresh.mid, ptr @SX_JNI_MID_getValue____D, align 8
br label %jni.cont br label %jni.cont
@@ -1514,14 +1451,14 @@ declare void @sx_jni_env_tl_set(ptr) #0
define internal void @print__ct_sbdbafa1a5fe828c0__pack(ptr %0) #0 { define internal void @print__ct_sbdbafa1a5fe828c0__pack(ptr %0) #0 {
entry: entry:
%alloca = alloca { ptr, i64 }, align 8 %alloca = alloca { ptr, i64 }, align 8
store { ptr, i64 } { ptr @str.146, i64 3 }, ptr %alloca, align 8 store { ptr, i64 } { ptr @str.125, i64 3 }, ptr %alloca, align 8
%allocaN = alloca { ptr, i64 }, align 8 %allocaN = alloca { ptr, i64 }, align 8
%gep = getelementptr inbounds { ptr, i64 }, ptr %allocaN, i32 0, i32 0 %gep = getelementptr inbounds { ptr, i64 }, ptr %allocaN, i32 0, i32 0
store ptr null, ptr %gep, align 8 store ptr null, ptr %gep, align 8
%gepN = getelementptr inbounds { ptr, i64 }, ptr %allocaN, i32 0, i32 1 %gepN = getelementptr inbounds { ptr, i64 }, ptr %allocaN, i32 0, i32 1
store i64 0, ptr %gepN, align 8 store i64 0, ptr %gepN, align 8
%allocaN = alloca { ptr, i64 }, align 8 %allocaN = alloca { ptr, i64 }, align 8
store { ptr, i64 } { ptr @str.147, i64 0 }, ptr %allocaN, align 8 store { ptr, i64 } { ptr @str.126, i64 0 }, ptr %allocaN, align 8
%load = load { ptr, i64 }, ptr %allocaN, align 8 %load = load { ptr, i64 }, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %alloca, align 8 %loadN = load { ptr, i64 }, ptr %alloca, align 8
%call = call { ptr, i64 } @substr(ptr %0, { ptr, i64 } %loadN, i64 0, i64 3) %call = call { ptr, i64 } @substr(ptr %0, { ptr, i64 } %loadN, i64 0, i64 3)
@@ -1537,6 +1474,6 @@ entry:
; Function Attrs: nounwind ; Function Attrs: nounwind
define internal { ptr, i64 } @__insert_0(ptr %0) #0 { define internal { ptr, i64 } @__insert_0(ptr %0) #0 {
entry: entry:
%call = call { ptr, i64 } @build_format(ptr %0, { ptr, i64 } { ptr @str.148, i64 3 }) %call = call { ptr, i64 } @build_format(ptr %0, { ptr, i64 } { ptr @str.127, i64 3 })
ret { ptr, i64 } %call ret { ptr, i64 } %call
} }

View File

@@ -2,28 +2,28 @@
@g_should_call = internal global i1 false @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 } @__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 = private unnamed_addr constant [2 x i8] c"0\00", align 1
@str.129 = private unnamed_addr constant [15 x i8] c"result := \22\22; \00", align 1 @str.108 = private unnamed_addr constant [15 x i8] c"result := \22\22; \00", align 1
@str.130 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1 @str.109 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1
@str.131 = private unnamed_addr constant [3 x i8] c", \00", align 1 @str.110 = private unnamed_addr constant [3 x i8] c", \00", align 1
@str.132 = private unnamed_addr constant [5 x i8] c")); \00", align 1 @str.111 = private unnamed_addr constant [5 x i8] c")); \00", align 1
@str.133 = private unnamed_addr constant [44 x i8] c"result = concat(result, any_to_string(args[\00", align 1 @str.112 = private unnamed_addr constant [44 x i8] c"result = concat(result, any_to_string(args[\00", align 1
@str.134 = private unnamed_addr constant [6 x i8] c"])); \00", align 1 @str.113 = private unnamed_addr constant [6 x i8] c"])); \00", align 1
@str.135 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1 @str.114 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1
@str.136 = private unnamed_addr constant [3 x i8] c", \00", align 1 @str.115 = private unnamed_addr constant [3 x i8] c", \00", align 1
@str.137 = private unnamed_addr constant [5 x i8] c")); \00", align 1 @str.116 = private unnamed_addr constant [5 x i8] c")); \00", align 1
@str.138 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1 @str.117 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1
@str.139 = private unnamed_addr constant [3 x i8] c", \00", align 1 @str.118 = private unnamed_addr constant [3 x i8] c", \00", align 1
@str.140 = private unnamed_addr constant [5 x i8] c")); \00", align 1 @str.119 = private unnamed_addr constant [5 x i8] c")); \00", align 1
@str.141 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1 @str.120 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1
@str.142 = private unnamed_addr constant [3 x i8] c", \00", align 1 @str.121 = private unnamed_addr constant [3 x i8] c", \00", align 1
@str.143 = private unnamed_addr constant [5 x i8] c")); \00", align 1 @str.122 = private unnamed_addr constant [5 x i8] c")); \00", align 1
@str.144 = private unnamed_addr constant [8 x i8] c"isShown\00", align 1 @str.123 = private unnamed_addr constant [8 x i8] c"isShown\00", align 1
@str.145 = private unnamed_addr constant [4 x i8] c"()Z\00", align 1 @str.124 = private unnamed_addr constant [4 x i8] c"()Z\00", align 1
@SX_JNI_CLS_isShown____Z = internal global ptr null @SX_JNI_CLS_isShown____Z = internal global ptr null
@SX_JNI_MID_isShown____Z = internal global ptr null @SX_JNI_MID_isShown____Z = internal global ptr null
@str.146 = private unnamed_addr constant [4 x i8] c"ok\0A\00", align 1 @str.125 = 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.126 = 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 @str.127 = private unnamed_addr constant [4 x i8] c"ok\0A\00", align 1
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @out(ptr) #0 declare void @out(ptr) #0
@@ -253,7 +253,7 @@ entry:
%alloca = alloca { ptr, i64 }, align 8 %alloca = alloca { ptr, i64 }, align 8
store { ptr, i64 } %1, ptr %alloca, align 8 store { ptr, i64 } %1, ptr %alloca, align 8
%allocaN = alloca { ptr, i64 }, align 8 %allocaN = alloca { ptr, i64 }, align 8
store { ptr, i64 } { ptr @str.129, i64 14 }, ptr %allocaN, align 8 store { ptr, i64 } { ptr @str.108, i64 14 }, ptr %allocaN, align 8
%allocaN = alloca i64, align 8 %allocaN = alloca i64, align 8
store i64 0, ptr %allocaN, align 8 store i64 0, ptr %allocaN, align 8
%allocaN = alloca i64, align 8 %allocaN = alloca i64, align 8
@@ -349,7 +349,7 @@ if.merge.13: ; preds = %if.merge.27, %if.me
if.then.14: ; preds = %if.then.11 if.then.14: ; preds = %if.then.11
%loadN = load { ptr, i64 }, ptr %allocaN, align 8 %loadN = load { ptr, i64 }, ptr %allocaN, align 8
%call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.130, i64 36 }) %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.109, i64 36 })
store { ptr, i64 } %call, ptr %allocaN, align 8 store { ptr, i64 } %call, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %allocaN, align 8 %loadN = load { ptr, i64 }, ptr %allocaN, align 8
%loadN = load i64, ptr %allocaN, align 8 %loadN = load i64, ptr %allocaN, align 8
@@ -357,7 +357,7 @@ if.then.14: ; preds = %if.then.11
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN) %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN)
store { ptr, i64 } %callN, ptr %allocaN, align 8 store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, 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.131, i64 2 }) %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.110, i64 2 })
store { ptr, i64 } %callN, ptr %allocaN, align 8 store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %allocaN, align 8 %loadN = load { ptr, i64 }, ptr %allocaN, align 8
%loadN = load i64, ptr %allocaN, align 8 %loadN = load i64, ptr %allocaN, align 8
@@ -367,13 +367,13 @@ if.then.14: ; preds = %if.then.11
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN) %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN)
store { ptr, i64 } %callN, ptr %allocaN, align 8 store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, 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 4 }) %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.111, i64 4 })
store { ptr, i64 } %callN, ptr %allocaN, align 8 store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %if.merge.15 br label %if.merge.15
if.merge.15: ; preds = %if.then.14, %if.then.11 if.merge.15: ; preds = %if.then.14, %if.then.11
%loadN = load { ptr, i64 }, 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 43 }) %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.112, i64 43 })
store { ptr, i64 } %callN, ptr %allocaN, align 8 store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %allocaN, align 8 %loadN = load { ptr, i64 }, ptr %allocaN, align 8
%loadN = load i64, ptr %allocaN, align 8 %loadN = load i64, ptr %allocaN, align 8
@@ -381,7 +381,7 @@ if.merge.15: ; preds = %if.then.14, %if.the
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN) %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN)
store { ptr, i64 } %callN, ptr %allocaN, align 8 store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, 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.134, i64 5 }) %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.113, i64 5 })
store { ptr, i64 } %callN, ptr %allocaN, align 8 store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load i64, ptr %allocaN, align 8 %loadN = load i64, ptr %allocaN, align 8
%addN = add i64 %loadN, 1 %addN = add i64 %loadN, 1
@@ -395,7 +395,7 @@ if.merge.15: ; preds = %if.then.14, %if.the
if.then.25: ; preds = %if.else.12 if.then.25: ; preds = %if.else.12
%loadN = load { ptr, i64 }, 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 36 }) %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.114, i64 36 })
store { ptr, i64 } %callN, ptr %allocaN, align 8 store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %allocaN, align 8 %loadN = load { ptr, i64 }, ptr %allocaN, align 8
%loadN = load i64, ptr %allocaN, align 8 %loadN = load i64, ptr %allocaN, align 8
@@ -403,7 +403,7 @@ if.then.25: ; preds = %if.else.12
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN) %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN)
store { ptr, i64 } %callN, ptr %allocaN, align 8 store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, 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 2 }) %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.115, i64 2 })
store { ptr, i64 } %callN, ptr %allocaN, align 8 store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %allocaN, align 8 %loadN = load { ptr, i64 }, ptr %allocaN, align 8
%loadN = load i64, ptr %allocaN, align 8 %loadN = load i64, ptr %allocaN, align 8
@@ -414,7 +414,7 @@ if.then.25: ; preds = %if.else.12
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN) %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN)
store { ptr, i64 } %callN, ptr %allocaN, align 8 store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, 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.137, i64 4 }) %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.116, i64 4 })
store { ptr, i64 } %callN, ptr %allocaN, align 8 store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load i64, ptr %allocaN, align 8 %loadN = load i64, ptr %allocaN, align 8
%addN = add i64 %loadN, 2 %addN = add i64 %loadN, 2
@@ -471,7 +471,7 @@ if.merge.33: ; preds = %if.merge.36, %if.el
if.then.34: ; preds = %if.then.31 if.then.34: ; preds = %if.then.31
%loadN = load { ptr, i64 }, 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 36 }) %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.117, i64 36 })
store { ptr, i64 } %callN, ptr %allocaN, align 8 store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %allocaN, align 8 %loadN = load { ptr, i64 }, ptr %allocaN, align 8
%loadN = load i64, ptr %allocaN, align 8 %loadN = load i64, ptr %allocaN, align 8
@@ -479,7 +479,7 @@ if.then.34: ; preds = %if.then.31
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN) %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN)
store { ptr, i64 } %callN, ptr %allocaN, align 8 store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, 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 2 }) %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.118, i64 2 })
store { ptr, i64 } %callN, ptr %allocaN, align 8 store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %allocaN, align 8 %loadN = load { ptr, i64 }, ptr %allocaN, align 8
%loadN = load i64, ptr %allocaN, align 8 %loadN = load i64, ptr %allocaN, align 8
@@ -490,7 +490,7 @@ if.then.34: ; preds = %if.then.31
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN) %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN)
store { ptr, i64 } %callN, ptr %allocaN, align 8 store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, 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.140, i64 4 }) %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.119, i64 4 })
store { ptr, i64 } %callN, ptr %allocaN, align 8 store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load i64, ptr %allocaN, align 8 %loadN = load i64, ptr %allocaN, align 8
%addN = add i64 %loadN, 2 %addN = add i64 %loadN, 2
@@ -510,7 +510,7 @@ if.merge.36: ; preds = %if.else.35, %if.the
if.then.37: ; preds = %while.exit.4 if.then.37: ; preds = %while.exit.4
%loadN = load { ptr, i64 }, 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.141, i64 36 }) %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.120, i64 36 })
store { ptr, i64 } %callN, ptr %allocaN, align 8 store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %allocaN, align 8 %loadN = load { ptr, i64 }, ptr %allocaN, align 8
%loadN = load i64, ptr %allocaN, align 8 %loadN = load i64, ptr %allocaN, align 8
@@ -518,7 +518,7 @@ if.then.37: ; preds = %while.exit.4
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN) %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN)
store { ptr, i64 } %callN, ptr %allocaN, align 8 store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, 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.142, i64 2 }) %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.121, i64 2 })
store { ptr, i64 } %callN, ptr %allocaN, align 8 store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %allocaN, align 8 %loadN = load { ptr, i64 }, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %alloca, align 8 %loadN = load { ptr, i64 }, ptr %alloca, align 8
@@ -529,7 +529,7 @@ if.then.37: ; preds = %while.exit.4
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN) %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN)
store { ptr, i64 } %callN, ptr %allocaN, align 8 store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, 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.143, i64 4 }) %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.122, i64 4 })
store { ptr, i64 } %callN, ptr %allocaN, align 8 store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %if.merge.38 br label %if.merge.38
@@ -622,69 +622,6 @@ declare ptr @TrackingAllocator.alloc_bytes(ptr, ptr, i64) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @TrackingAllocator.dealloc_bytes(ptr, ptr, ptr) #0 declare void @TrackingAllocator.dealloc_bytes(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare ptr @mem_realloc.3(ptr, ptr, ptr, i64, i64, i64) #0
; Function Attrs: nounwind
declare ptr @CAllocator.alloc_bytes.4(ptr, ptr, i64) #0
; Function Attrs: nounwind
declare void @CAllocator.dealloc_bytes.5(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare i64 @GPA.init.6(ptr) #0
; Function Attrs: nounwind
declare ptr @GPA.alloc_bytes.7(ptr, ptr, i64) #0
; Function Attrs: nounwind
declare void @GPA.dealloc_bytes.8(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare void @Arena.add_chunk.9(ptr, ptr, i64) #0
; Function Attrs: nounwind
declare void @Arena.init.10(ptr sret({ ptr, i64, { ptr, ptr, ptr } }), ptr, ptr, i64) #0
; Function Attrs: nounwind
declare void @Arena.reset.11(ptr, ptr) #0
; Function Attrs: nounwind
declare void @Arena.deinit.12(ptr, ptr) #0
; Function Attrs: nounwind
declare ptr @Arena.alloc_bytes.13(ptr, ptr, i64) #0
; Function Attrs: nounwind
declare void @Arena.dealloc_bytes.14(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare void @BufAlloc.init.15(ptr sret({ ptr, i64, i64 }), ptr, ptr, i64) #0
; Function Attrs: nounwind
declare void @BufAlloc.reset.16(ptr, ptr) #0
; Function Attrs: nounwind
declare ptr @BufAlloc.alloc_bytes.17(ptr, ptr, i64) #0
; Function Attrs: nounwind
declare void @BufAlloc.dealloc_bytes.18(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare void @TrackingAllocator.init.19(ptr sret({ { ptr, ptr, ptr }, i64, i64, i64 }), ptr, ptr) #0
; Function Attrs: nounwind
declare i64 @TrackingAllocator.leak_count.20(ptr, ptr) #0
; Function Attrs: nounwind
declare void @TrackingAllocator.report.21(ptr, ptr) #0
; Function Attrs: nounwind
declare ptr @TrackingAllocator.alloc_bytes.22(ptr, ptr, i64) #0
; Function Attrs: nounwind
declare void @TrackingAllocator.dealloc_bytes.23(ptr, ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare ptr @escape(ptr, ptr) #0 declare ptr @escape(ptr, ptr) #0
@@ -859,166 +796,166 @@ declare i32 @listen(i32, i32) #0
declare i32 @accept(i32, ptr, ptr) #0 declare i32 @accept(i32, ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i64 @read.24(i32, ptr, i64) #0 declare i64 @read.3(i32, ptr, i64) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i32 @close.25(i32) #0 declare i32 @close.4(i32) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i16 @htons(ptr, i64) #0 declare i16 @htons(ptr, i64) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare ptr @mem_realloc.26(ptr, ptr, ptr, i64, i64, i64) #0 declare ptr @mem_realloc.5(ptr, ptr, ptr, i64, i64, i64) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare ptr @CAllocator.alloc_bytes.27(ptr, ptr, i64) #0 declare ptr @CAllocator.alloc_bytes.6(ptr, ptr, i64) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @CAllocator.dealloc_bytes.28(ptr, ptr, ptr) #0 declare void @CAllocator.dealloc_bytes.7(ptr, ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i64 @GPA.init.29(ptr) #0 declare i64 @GPA.init.8(ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare ptr @GPA.alloc_bytes.30(ptr, ptr, i64) #0 declare ptr @GPA.alloc_bytes.9(ptr, ptr, i64) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @GPA.dealloc_bytes.31(ptr, ptr, ptr) #0 declare void @GPA.dealloc_bytes.10(ptr, ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @Arena.add_chunk.32(ptr, ptr, i64) #0 declare void @Arena.add_chunk.11(ptr, ptr, i64) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @Arena.init.33(ptr sret({ ptr, i64, { ptr, ptr, ptr } }), ptr, ptr, i64) #0 declare void @Arena.init.12(ptr sret({ ptr, i64, { ptr, ptr, ptr } }), ptr, ptr, i64) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @Arena.reset.34(ptr, ptr) #0 declare void @Arena.reset.13(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @Arena.deinit.35(ptr, ptr) #0 declare void @Arena.deinit.14(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare ptr @Arena.alloc_bytes.36(ptr, ptr, i64) #0 declare ptr @Arena.alloc_bytes.15(ptr, ptr, i64) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @Arena.dealloc_bytes.37(ptr, ptr, ptr) #0 declare void @Arena.dealloc_bytes.16(ptr, ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @BufAlloc.init.38(ptr sret({ ptr, i64, i64 }), ptr, ptr, i64) #0 declare void @BufAlloc.init.17(ptr sret({ ptr, i64, i64 }), ptr, ptr, i64) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @BufAlloc.reset.39(ptr, ptr) #0 declare void @BufAlloc.reset.18(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare ptr @BufAlloc.alloc_bytes.40(ptr, ptr, i64) #0 declare ptr @BufAlloc.alloc_bytes.19(ptr, ptr, i64) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @BufAlloc.dealloc_bytes.41(ptr, ptr, ptr) #0 declare void @BufAlloc.dealloc_bytes.20(ptr, ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @TrackingAllocator.init.42(ptr sret({ { ptr, ptr, ptr }, i64, i64, i64 }), ptr, ptr) #0 declare void @TrackingAllocator.init.21(ptr sret({ { ptr, ptr, ptr }, i64, i64, i64 }), ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i64 @TrackingAllocator.leak_count.43(ptr, ptr) #0 declare i64 @TrackingAllocator.leak_count.22(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @TrackingAllocator.report.44(ptr, ptr) #0 declare void @TrackingAllocator.report.23(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare ptr @TrackingAllocator.alloc_bytes.45(ptr, ptr, i64) #0 declare ptr @TrackingAllocator.alloc_bytes.24(ptr, ptr, i64) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @TrackingAllocator.dealloc_bytes.46(ptr, ptr, ptr) #0 declare void @TrackingAllocator.dealloc_bytes.25(ptr, ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i32 @open.47(ptr, i32, ...) #0 declare i32 @open.26(ptr, i32, ...) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i32 @close.48(i32) #0 declare i32 @close.27(i32) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i64 @read.49(i32, ptr, i64) #0 declare i64 @read.28(i32, ptr, i64) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i64 @lseek.50(i32, i64, i32) #0 declare i64 @lseek.29(i32, i64, i32) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i32 @unlink.51(ptr) #0 declare i32 @unlink.30(ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i32 @rmdir.52(ptr) #0 declare i32 @rmdir.31(ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i32 @mkdir.53(ptr, i32) #0 declare i32 @mkdir.32(ptr, i32) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i32 @access.54(ptr, i32) #0 declare i32 @access.33(ptr, i32) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i32 @chmod.55(ptr, i32) #0 declare i32 @chmod.34(ptr, i32) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i32 @rename.56(ptr, ptr) #0 declare i32 @rename.35(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i1 @File.is_valid.57(ptr, ptr) #0 declare i1 @File.is_valid.36(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i1 @File.close.58(ptr, ptr) #0 declare i1 @File.close.37(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i64 @File.read.59(ptr, ptr, ptr) #0 declare i64 @File.read.38(ptr, ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i64 @File.write.60(ptr, ptr, ptr) #0 declare i64 @File.write.39(ptr, ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i64 @File.seek.61(ptr, ptr, i64, i64) #0 declare i64 @File.seek.40(ptr, ptr, i64, i64) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i32 @mode_to_flags.62(ptr, i64) #0 declare i32 @mode_to_flags.41(ptr, i64) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i64 @open_file.63(ptr, ptr, i64) #0 declare i64 @open_file.42(ptr, ptr, i64) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @read_file.64(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 declare void @read_file.43(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i1 @write_file.65(ptr, ptr, ptr) #0 declare i1 @write_file.44(ptr, ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i1 @append_file.66(ptr, ptr, ptr) #0 declare i1 @append_file.45(ptr, ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i1 @exists.67(ptr, ptr) #0 declare i1 @exists.46(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i1 @delete_file.68(ptr, ptr) #0 declare i1 @delete_file.47(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i1 @delete_dir.69(ptr, ptr) #0 declare i1 @delete_dir.48(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i1 @create_dir.70(ptr, ptr) #0 declare i1 @create_dir.49(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i1 @set_mode.71(ptr, ptr, i32) #0 declare i1 @set_mode.50(ptr, ptr, i32) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i1 @move.72(ptr, ptr, ptr) #0 declare i1 @move.51(ptr, ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i1 @create_dir_all.73(ptr, ptr) #0 declare i1 @create_dir_all.52(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i1 @copy_file.74(ptr, ptr, ptr) #0 declare i1 @copy_file.53(ptr, ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare ptr @basename.75(ptr, ptr) #0 declare ptr @basename.54(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare ptr @dirname.76(ptr, ptr) #0 declare ptr @dirname.55(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @Array.add(ptr, ptr, ptr, ptr) #0 declare void @Array.add(ptr, ptr, ptr, ptr) #0
@@ -1216,64 +1153,64 @@ declare ptr @BuildOptions.jni_main_java_source_at(i64, i64) #0
declare i64 @build_options() #0 declare i64 @build_options() #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare ptr @spaces.77(ptr, i32) #0 declare ptr @spaces.56(ptr, i32) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i32 @sx_trace_len.78() #0 declare i32 @sx_trace_len.57() #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i32 @sx_trace_truncated.79() #0 declare i32 @sx_trace_truncated.58() #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i64 @sx_trace_frame_at.80(i32) #0 declare i64 @sx_trace_frame_at.59(i32) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare ptr @to_string.81(ptr) #0 declare ptr @to_string.60(ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @print_current.82(ptr) #0 declare void @print_current.61(ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @print_interpreter_frames.83(ptr) #0 declare void @print_interpreter_frames.62(ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare ptr @popen.84(ptr, ptr) #0 declare ptr @popen.63(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i32 @pclose.85(ptr) #0 declare i32 @pclose.64(ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i64 @fread.86(ptr, i64, i64, ptr) #0 declare i64 @fread.65(ptr, i64, i64, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i32 @feof.87(ptr) #0 declare i32 @feof.66(ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare ptr @getenv.88(ptr) #0 declare ptr @getenv.67(ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i64 @strlen.89(ptr) #0 declare i64 @strlen.68(ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i32 @system.90(ptr) #0 declare i32 @system.69(ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @run.91(ptr sret({ { i32, { ptr, i64 } }, i1 }), ptr, ptr) #0 declare void @run.70(ptr sret({ { i32, { ptr, i64 } }, i1 }), ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @env.92(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 declare void @env.71(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @find_executable.93(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 declare void @find_executable.72(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @_exit.94(i32) #0 declare void @_exit.73(i32) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @exit.95(ptr, i8, ptr) #0 declare void @exit.74(ptr, i8, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @assert.96(ptr, i1, ptr, ptr) #0 declare void @assert.75(ptr, i1, ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare ptr @_NSGetArgv() #0 declare ptr @_NSGetArgv() #0
@@ -1303,97 +1240,97 @@ declare ptr @Parsed.value_of(ptr, ptr, ptr) #0
declare i1 @is_long_flag(ptr, ptr) #0 declare i1 @is_long_flag(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @parse.97(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.76(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 ; Function Attrs: nounwind
declare i32 @open.98(ptr, i32, ...) #0 declare i32 @open.77(ptr, i32, ...) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i32 @close.99(i32) #0 declare i32 @close.78(i32) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i64 @read.100(i32, ptr, i64) #0 declare i64 @read.79(i32, ptr, i64) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i64 @lseek.101(i32, i64, i32) #0 declare i64 @lseek.80(i32, i64, i32) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i32 @unlink.102(ptr) #0 declare i32 @unlink.81(ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i32 @rmdir.103(ptr) #0 declare i32 @rmdir.82(ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i32 @mkdir.104(ptr, i32) #0 declare i32 @mkdir.83(ptr, i32) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i32 @access.105(ptr, i32) #0 declare i32 @access.84(ptr, i32) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i32 @chmod.106(ptr, i32) #0 declare i32 @chmod.85(ptr, i32) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i32 @rename.107(ptr, ptr) #0 declare i32 @rename.86(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i1 @File.is_valid.108(ptr, ptr) #0 declare i1 @File.is_valid.87(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i1 @File.close.109(ptr, ptr) #0 declare i1 @File.close.88(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i64 @File.read.110(ptr, ptr, ptr) #0 declare i64 @File.read.89(ptr, ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i64 @File.write.111(ptr, ptr, ptr) #0 declare i64 @File.write.90(ptr, ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i64 @File.seek.112(ptr, ptr, i64, i64) #0 declare i64 @File.seek.91(ptr, ptr, i64, i64) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i32 @mode_to_flags.113(ptr, i64) #0 declare i32 @mode_to_flags.92(ptr, i64) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i64 @open_file.114(ptr, ptr, i64) #0 declare i64 @open_file.93(ptr, ptr, i64) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @read_file.115(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 declare void @read_file.94(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i1 @write_file.116(ptr, ptr, ptr) #0 declare i1 @write_file.95(ptr, ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i1 @append_file.117(ptr, ptr, ptr) #0 declare i1 @append_file.96(ptr, ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i1 @exists.118(ptr, ptr) #0 declare i1 @exists.97(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i1 @delete_file.119(ptr, ptr) #0 declare i1 @delete_file.98(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i1 @delete_dir.120(ptr, ptr) #0 declare i1 @delete_dir.99(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i1 @create_dir.121(ptr, ptr) #0 declare i1 @create_dir.100(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i1 @set_mode.122(ptr, ptr, i32) #0 declare i1 @set_mode.101(ptr, ptr, i32) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i1 @move.123(ptr, ptr, ptr) #0 declare i1 @move.102(ptr, ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i1 @create_dir_all.124(ptr, ptr) #0 declare i1 @create_dir_all.103(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i1 @copy_file.125(ptr, ptr, ptr) #0 declare i1 @copy_file.104(ptr, ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare ptr @basename.126(ptr, ptr) #0 declare ptr @basename.105(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare ptr @dirname.127(ptr, ptr) #0 declare ptr @dirname.106(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i64 @rotr(ptr, i64, i64) #0 declare i64 @rotr(ptr, i64, i64) #0
@@ -1432,7 +1369,7 @@ declare [64 x i8] @sha256_hex(ptr, ptr) #0
declare void @sha256_file(ptr sret({ [64 x i8], i1 }), ptr, ptr) #0 declare void @sha256_file(ptr sret({ [64 x i8], i1 }), ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @assert.128(ptr, i1) #0 declare void @assert.107(ptr, i1) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
define internal i1 @read_bool(ptr %0, ptr %1, ptr %2) #0 { define internal i1 @read_bool(ptr %0, ptr %1, ptr %2) #0 {
@@ -1460,7 +1397,7 @@ jni.miss: ; preds = %entry
store ptr %jni.global.cls, ptr @SX_JNI_CLS_isShown____Z, align 8 store ptr %jni.global.cls, ptr @SX_JNI_CLS_isShown____Z, align 8
%5 = getelementptr inbounds ptr, ptr %jni.ifs, i32 33 %5 = getelementptr inbounds ptr, ptr %jni.ifs, i32 33
%jni.GetMethodID = load ptr, ptr %5, align 8 %jni.GetMethodID = load ptr, ptr %5, align 8
%jni.fresh.mid = call ptr %jni.GetMethodID(ptr %load, ptr %jni.global.cls, ptr @str.144, ptr @str.145) %jni.fresh.mid = call ptr %jni.GetMethodID(ptr %load, ptr %jni.global.cls, ptr @str.123, ptr @str.124)
store ptr %jni.fresh.mid, ptr @SX_JNI_MID_isShown____Z, align 8 store ptr %jni.fresh.mid, ptr @SX_JNI_MID_isShown____Z, align 8
br label %jni.cont br label %jni.cont
@@ -1514,14 +1451,14 @@ declare void @sx_jni_env_tl_set(ptr) #0
define internal void @print__ct_sbdbafa1a5fe828c0__pack(ptr %0) #0 { define internal void @print__ct_sbdbafa1a5fe828c0__pack(ptr %0) #0 {
entry: entry:
%alloca = alloca { ptr, i64 }, align 8 %alloca = alloca { ptr, i64 }, align 8
store { ptr, i64 } { ptr @str.146, i64 3 }, ptr %alloca, align 8 store { ptr, i64 } { ptr @str.125, i64 3 }, ptr %alloca, align 8
%allocaN = alloca { ptr, i64 }, align 8 %allocaN = alloca { ptr, i64 }, align 8
%gep = getelementptr inbounds { ptr, i64 }, ptr %allocaN, i32 0, i32 0 %gep = getelementptr inbounds { ptr, i64 }, ptr %allocaN, i32 0, i32 0
store ptr null, ptr %gep, align 8 store ptr null, ptr %gep, align 8
%gepN = getelementptr inbounds { ptr, i64 }, ptr %allocaN, i32 0, i32 1 %gepN = getelementptr inbounds { ptr, i64 }, ptr %allocaN, i32 0, i32 1
store i64 0, ptr %gepN, align 8 store i64 0, ptr %gepN, align 8
%allocaN = alloca { ptr, i64 }, align 8 %allocaN = alloca { ptr, i64 }, align 8
store { ptr, i64 } { ptr @str.147, i64 0 }, ptr %allocaN, align 8 store { ptr, i64 } { ptr @str.126, i64 0 }, ptr %allocaN, align 8
%load = load { ptr, i64 }, ptr %allocaN, align 8 %load = load { ptr, i64 }, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %alloca, align 8 %loadN = load { ptr, i64 }, ptr %alloca, align 8
%call = call { ptr, i64 } @substr(ptr %0, { ptr, i64 } %loadN, i64 0, i64 3) %call = call { ptr, i64 } @substr(ptr %0, { ptr, i64 } %loadN, i64 0, i64 3)
@@ -1537,6 +1474,6 @@ entry:
; Function Attrs: nounwind ; Function Attrs: nounwind
define internal { ptr, i64 } @__insert_0(ptr %0) #0 { define internal { ptr, i64 } @__insert_0(ptr %0) #0 {
entry: entry:
%call = call { ptr, i64 } @build_format(ptr %0, { ptr, i64 } { ptr @str.148, i64 3 }) %call = call { ptr, i64 } @build_format(ptr %0, { ptr, i64 } { ptr @str.127, i64 3 })
ret { ptr, i64 } %call ret { ptr, i64 } %call
} }

View File

@@ -2,28 +2,28 @@
@g_should_call = internal global i1 false @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 } @__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 = private unnamed_addr constant [2 x i8] c"0\00", align 1
@str.129 = private unnamed_addr constant [15 x i8] c"result := \22\22; \00", align 1 @str.108 = private unnamed_addr constant [15 x i8] c"result := \22\22; \00", align 1
@str.130 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1 @str.109 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1
@str.131 = private unnamed_addr constant [3 x i8] c", \00", align 1 @str.110 = private unnamed_addr constant [3 x i8] c", \00", align 1
@str.132 = private unnamed_addr constant [5 x i8] c")); \00", align 1 @str.111 = private unnamed_addr constant [5 x i8] c")); \00", align 1
@str.133 = private unnamed_addr constant [44 x i8] c"result = concat(result, any_to_string(args[\00", align 1 @str.112 = private unnamed_addr constant [44 x i8] c"result = concat(result, any_to_string(args[\00", align 1
@str.134 = private unnamed_addr constant [6 x i8] c"])); \00", align 1 @str.113 = private unnamed_addr constant [6 x i8] c"])); \00", align 1
@str.135 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1 @str.114 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1
@str.136 = private unnamed_addr constant [3 x i8] c", \00", align 1 @str.115 = private unnamed_addr constant [3 x i8] c", \00", align 1
@str.137 = private unnamed_addr constant [5 x i8] c")); \00", align 1 @str.116 = private unnamed_addr constant [5 x i8] c")); \00", align 1
@str.138 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1 @str.117 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1
@str.139 = private unnamed_addr constant [3 x i8] c", \00", align 1 @str.118 = private unnamed_addr constant [3 x i8] c", \00", align 1
@str.140 = private unnamed_addr constant [5 x i8] c")); \00", align 1 @str.119 = private unnamed_addr constant [5 x i8] c")); \00", align 1
@str.141 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1 @str.120 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1
@str.142 = private unnamed_addr constant [3 x i8] c", \00", align 1 @str.121 = private unnamed_addr constant [3 x i8] c", \00", align 1
@str.143 = private unnamed_addr constant [5 x i8] c")); \00", align 1 @str.122 = private unnamed_addr constant [5 x i8] c")); \00", align 1
@str.144 = private unnamed_addr constant [10 x i8] c"getWindow\00", align 1 @str.123 = private unnamed_addr constant [10 x i8] c"getWindow\00", align 1
@str.145 = private unnamed_addr constant [24 x i8] c"()Landroid/view/Window;\00", align 1 @str.124 = 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_CLS_getWindow____Landroid_view_Window_ = internal global ptr null
@SX_JNI_MID_getWindow____Landroid_view_Window_ = internal global ptr null @SX_JNI_MID_getWindow____Landroid_view_Window_ = internal global ptr null
@str.146 = private unnamed_addr constant [4 x i8] c"ok\0A\00", align 1 @str.125 = 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.126 = 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 @str.127 = private unnamed_addr constant [4 x i8] c"ok\0A\00", align 1
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @out(ptr) #0 declare void @out(ptr) #0
@@ -253,7 +253,7 @@ entry:
%alloca = alloca { ptr, i64 }, align 8 %alloca = alloca { ptr, i64 }, align 8
store { ptr, i64 } %1, ptr %alloca, align 8 store { ptr, i64 } %1, ptr %alloca, align 8
%allocaN = alloca { ptr, i64 }, align 8 %allocaN = alloca { ptr, i64 }, align 8
store { ptr, i64 } { ptr @str.129, i64 14 }, ptr %allocaN, align 8 store { ptr, i64 } { ptr @str.108, i64 14 }, ptr %allocaN, align 8
%allocaN = alloca i64, align 8 %allocaN = alloca i64, align 8
store i64 0, ptr %allocaN, align 8 store i64 0, ptr %allocaN, align 8
%allocaN = alloca i64, align 8 %allocaN = alloca i64, align 8
@@ -349,7 +349,7 @@ if.merge.13: ; preds = %if.merge.27, %if.me
if.then.14: ; preds = %if.then.11 if.then.14: ; preds = %if.then.11
%loadN = load { ptr, i64 }, ptr %allocaN, align 8 %loadN = load { ptr, i64 }, ptr %allocaN, align 8
%call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.130, i64 36 }) %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.109, i64 36 })
store { ptr, i64 } %call, ptr %allocaN, align 8 store { ptr, i64 } %call, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %allocaN, align 8 %loadN = load { ptr, i64 }, ptr %allocaN, align 8
%loadN = load i64, ptr %allocaN, align 8 %loadN = load i64, ptr %allocaN, align 8
@@ -357,7 +357,7 @@ if.then.14: ; preds = %if.then.11
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN) %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN)
store { ptr, i64 } %callN, ptr %allocaN, align 8 store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, 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.131, i64 2 }) %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.110, i64 2 })
store { ptr, i64 } %callN, ptr %allocaN, align 8 store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %allocaN, align 8 %loadN = load { ptr, i64 }, ptr %allocaN, align 8
%loadN = load i64, ptr %allocaN, align 8 %loadN = load i64, ptr %allocaN, align 8
@@ -367,13 +367,13 @@ if.then.14: ; preds = %if.then.11
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN) %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN)
store { ptr, i64 } %callN, ptr %allocaN, align 8 store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, 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 4 }) %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.111, i64 4 })
store { ptr, i64 } %callN, ptr %allocaN, align 8 store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %if.merge.15 br label %if.merge.15
if.merge.15: ; preds = %if.then.14, %if.then.11 if.merge.15: ; preds = %if.then.14, %if.then.11
%loadN = load { ptr, i64 }, 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 43 }) %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.112, i64 43 })
store { ptr, i64 } %callN, ptr %allocaN, align 8 store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %allocaN, align 8 %loadN = load { ptr, i64 }, ptr %allocaN, align 8
%loadN = load i64, ptr %allocaN, align 8 %loadN = load i64, ptr %allocaN, align 8
@@ -381,7 +381,7 @@ if.merge.15: ; preds = %if.then.14, %if.the
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN) %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN)
store { ptr, i64 } %callN, ptr %allocaN, align 8 store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, 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.134, i64 5 }) %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.113, i64 5 })
store { ptr, i64 } %callN, ptr %allocaN, align 8 store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load i64, ptr %allocaN, align 8 %loadN = load i64, ptr %allocaN, align 8
%addN = add i64 %loadN, 1 %addN = add i64 %loadN, 1
@@ -395,7 +395,7 @@ if.merge.15: ; preds = %if.then.14, %if.the
if.then.25: ; preds = %if.else.12 if.then.25: ; preds = %if.else.12
%loadN = load { ptr, i64 }, 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 36 }) %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.114, i64 36 })
store { ptr, i64 } %callN, ptr %allocaN, align 8 store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %allocaN, align 8 %loadN = load { ptr, i64 }, ptr %allocaN, align 8
%loadN = load i64, ptr %allocaN, align 8 %loadN = load i64, ptr %allocaN, align 8
@@ -403,7 +403,7 @@ if.then.25: ; preds = %if.else.12
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN) %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN)
store { ptr, i64 } %callN, ptr %allocaN, align 8 store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, 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 2 }) %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.115, i64 2 })
store { ptr, i64 } %callN, ptr %allocaN, align 8 store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %allocaN, align 8 %loadN = load { ptr, i64 }, ptr %allocaN, align 8
%loadN = load i64, ptr %allocaN, align 8 %loadN = load i64, ptr %allocaN, align 8
@@ -414,7 +414,7 @@ if.then.25: ; preds = %if.else.12
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN) %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN)
store { ptr, i64 } %callN, ptr %allocaN, align 8 store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, 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.137, i64 4 }) %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.116, i64 4 })
store { ptr, i64 } %callN, ptr %allocaN, align 8 store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load i64, ptr %allocaN, align 8 %loadN = load i64, ptr %allocaN, align 8
%addN = add i64 %loadN, 2 %addN = add i64 %loadN, 2
@@ -471,7 +471,7 @@ if.merge.33: ; preds = %if.merge.36, %if.el
if.then.34: ; preds = %if.then.31 if.then.34: ; preds = %if.then.31
%loadN = load { ptr, i64 }, 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 36 }) %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.117, i64 36 })
store { ptr, i64 } %callN, ptr %allocaN, align 8 store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %allocaN, align 8 %loadN = load { ptr, i64 }, ptr %allocaN, align 8
%loadN = load i64, ptr %allocaN, align 8 %loadN = load i64, ptr %allocaN, align 8
@@ -479,7 +479,7 @@ if.then.34: ; preds = %if.then.31
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN) %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN)
store { ptr, i64 } %callN, ptr %allocaN, align 8 store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, 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 2 }) %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.118, i64 2 })
store { ptr, i64 } %callN, ptr %allocaN, align 8 store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %allocaN, align 8 %loadN = load { ptr, i64 }, ptr %allocaN, align 8
%loadN = load i64, ptr %allocaN, align 8 %loadN = load i64, ptr %allocaN, align 8
@@ -490,7 +490,7 @@ if.then.34: ; preds = %if.then.31
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN) %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN)
store { ptr, i64 } %callN, ptr %allocaN, align 8 store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, 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.140, i64 4 }) %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.119, i64 4 })
store { ptr, i64 } %callN, ptr %allocaN, align 8 store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load i64, ptr %allocaN, align 8 %loadN = load i64, ptr %allocaN, align 8
%addN = add i64 %loadN, 2 %addN = add i64 %loadN, 2
@@ -510,7 +510,7 @@ if.merge.36: ; preds = %if.else.35, %if.the
if.then.37: ; preds = %while.exit.4 if.then.37: ; preds = %while.exit.4
%loadN = load { ptr, i64 }, 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.141, i64 36 }) %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.120, i64 36 })
store { ptr, i64 } %callN, ptr %allocaN, align 8 store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %allocaN, align 8 %loadN = load { ptr, i64 }, ptr %allocaN, align 8
%loadN = load i64, ptr %allocaN, align 8 %loadN = load i64, ptr %allocaN, align 8
@@ -518,7 +518,7 @@ if.then.37: ; preds = %while.exit.4
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN) %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN)
store { ptr, i64 } %callN, ptr %allocaN, align 8 store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, 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.142, i64 2 }) %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.121, i64 2 })
store { ptr, i64 } %callN, ptr %allocaN, align 8 store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %allocaN, align 8 %loadN = load { ptr, i64 }, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %alloca, align 8 %loadN = load { ptr, i64 }, ptr %alloca, align 8
@@ -529,7 +529,7 @@ if.then.37: ; preds = %while.exit.4
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN) %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN)
store { ptr, i64 } %callN, ptr %allocaN, align 8 store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, 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.143, i64 4 }) %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.122, i64 4 })
store { ptr, i64 } %callN, ptr %allocaN, align 8 store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %if.merge.38 br label %if.merge.38
@@ -622,69 +622,6 @@ declare ptr @TrackingAllocator.alloc_bytes(ptr, ptr, i64) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @TrackingAllocator.dealloc_bytes(ptr, ptr, ptr) #0 declare void @TrackingAllocator.dealloc_bytes(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare ptr @mem_realloc.3(ptr, ptr, ptr, i64, i64, i64) #0
; Function Attrs: nounwind
declare ptr @CAllocator.alloc_bytes.4(ptr, ptr, i64) #0
; Function Attrs: nounwind
declare void @CAllocator.dealloc_bytes.5(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare i64 @GPA.init.6(ptr) #0
; Function Attrs: nounwind
declare ptr @GPA.alloc_bytes.7(ptr, ptr, i64) #0
; Function Attrs: nounwind
declare void @GPA.dealloc_bytes.8(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare void @Arena.add_chunk.9(ptr, ptr, i64) #0
; Function Attrs: nounwind
declare void @Arena.init.10(ptr sret({ ptr, i64, { ptr, ptr, ptr } }), ptr, ptr, i64) #0
; Function Attrs: nounwind
declare void @Arena.reset.11(ptr, ptr) #0
; Function Attrs: nounwind
declare void @Arena.deinit.12(ptr, ptr) #0
; Function Attrs: nounwind
declare ptr @Arena.alloc_bytes.13(ptr, ptr, i64) #0
; Function Attrs: nounwind
declare void @Arena.dealloc_bytes.14(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare void @BufAlloc.init.15(ptr sret({ ptr, i64, i64 }), ptr, ptr, i64) #0
; Function Attrs: nounwind
declare void @BufAlloc.reset.16(ptr, ptr) #0
; Function Attrs: nounwind
declare ptr @BufAlloc.alloc_bytes.17(ptr, ptr, i64) #0
; Function Attrs: nounwind
declare void @BufAlloc.dealloc_bytes.18(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare void @TrackingAllocator.init.19(ptr sret({ { ptr, ptr, ptr }, i64, i64, i64 }), ptr, ptr) #0
; Function Attrs: nounwind
declare i64 @TrackingAllocator.leak_count.20(ptr, ptr) #0
; Function Attrs: nounwind
declare void @TrackingAllocator.report.21(ptr, ptr) #0
; Function Attrs: nounwind
declare ptr @TrackingAllocator.alloc_bytes.22(ptr, ptr, i64) #0
; Function Attrs: nounwind
declare void @TrackingAllocator.dealloc_bytes.23(ptr, ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare ptr @escape(ptr, ptr) #0 declare ptr @escape(ptr, ptr) #0
@@ -859,166 +796,166 @@ declare i32 @listen(i32, i32) #0
declare i32 @accept(i32, ptr, ptr) #0 declare i32 @accept(i32, ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i64 @read.24(i32, ptr, i64) #0 declare i64 @read.3(i32, ptr, i64) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i32 @close.25(i32) #0 declare i32 @close.4(i32) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i16 @htons(ptr, i64) #0 declare i16 @htons(ptr, i64) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare ptr @mem_realloc.26(ptr, ptr, ptr, i64, i64, i64) #0 declare ptr @mem_realloc.5(ptr, ptr, ptr, i64, i64, i64) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare ptr @CAllocator.alloc_bytes.27(ptr, ptr, i64) #0 declare ptr @CAllocator.alloc_bytes.6(ptr, ptr, i64) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @CAllocator.dealloc_bytes.28(ptr, ptr, ptr) #0 declare void @CAllocator.dealloc_bytes.7(ptr, ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i64 @GPA.init.29(ptr) #0 declare i64 @GPA.init.8(ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare ptr @GPA.alloc_bytes.30(ptr, ptr, i64) #0 declare ptr @GPA.alloc_bytes.9(ptr, ptr, i64) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @GPA.dealloc_bytes.31(ptr, ptr, ptr) #0 declare void @GPA.dealloc_bytes.10(ptr, ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @Arena.add_chunk.32(ptr, ptr, i64) #0 declare void @Arena.add_chunk.11(ptr, ptr, i64) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @Arena.init.33(ptr sret({ ptr, i64, { ptr, ptr, ptr } }), ptr, ptr, i64) #0 declare void @Arena.init.12(ptr sret({ ptr, i64, { ptr, ptr, ptr } }), ptr, ptr, i64) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @Arena.reset.34(ptr, ptr) #0 declare void @Arena.reset.13(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @Arena.deinit.35(ptr, ptr) #0 declare void @Arena.deinit.14(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare ptr @Arena.alloc_bytes.36(ptr, ptr, i64) #0 declare ptr @Arena.alloc_bytes.15(ptr, ptr, i64) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @Arena.dealloc_bytes.37(ptr, ptr, ptr) #0 declare void @Arena.dealloc_bytes.16(ptr, ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @BufAlloc.init.38(ptr sret({ ptr, i64, i64 }), ptr, ptr, i64) #0 declare void @BufAlloc.init.17(ptr sret({ ptr, i64, i64 }), ptr, ptr, i64) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @BufAlloc.reset.39(ptr, ptr) #0 declare void @BufAlloc.reset.18(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare ptr @BufAlloc.alloc_bytes.40(ptr, ptr, i64) #0 declare ptr @BufAlloc.alloc_bytes.19(ptr, ptr, i64) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @BufAlloc.dealloc_bytes.41(ptr, ptr, ptr) #0 declare void @BufAlloc.dealloc_bytes.20(ptr, ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @TrackingAllocator.init.42(ptr sret({ { ptr, ptr, ptr }, i64, i64, i64 }), ptr, ptr) #0 declare void @TrackingAllocator.init.21(ptr sret({ { ptr, ptr, ptr }, i64, i64, i64 }), ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i64 @TrackingAllocator.leak_count.43(ptr, ptr) #0 declare i64 @TrackingAllocator.leak_count.22(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @TrackingAllocator.report.44(ptr, ptr) #0 declare void @TrackingAllocator.report.23(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare ptr @TrackingAllocator.alloc_bytes.45(ptr, ptr, i64) #0 declare ptr @TrackingAllocator.alloc_bytes.24(ptr, ptr, i64) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @TrackingAllocator.dealloc_bytes.46(ptr, ptr, ptr) #0 declare void @TrackingAllocator.dealloc_bytes.25(ptr, ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i32 @open.47(ptr, i32, ...) #0 declare i32 @open.26(ptr, i32, ...) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i32 @close.48(i32) #0 declare i32 @close.27(i32) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i64 @read.49(i32, ptr, i64) #0 declare i64 @read.28(i32, ptr, i64) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i64 @lseek.50(i32, i64, i32) #0 declare i64 @lseek.29(i32, i64, i32) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i32 @unlink.51(ptr) #0 declare i32 @unlink.30(ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i32 @rmdir.52(ptr) #0 declare i32 @rmdir.31(ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i32 @mkdir.53(ptr, i32) #0 declare i32 @mkdir.32(ptr, i32) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i32 @access.54(ptr, i32) #0 declare i32 @access.33(ptr, i32) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i32 @chmod.55(ptr, i32) #0 declare i32 @chmod.34(ptr, i32) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i32 @rename.56(ptr, ptr) #0 declare i32 @rename.35(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i1 @File.is_valid.57(ptr, ptr) #0 declare i1 @File.is_valid.36(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i1 @File.close.58(ptr, ptr) #0 declare i1 @File.close.37(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i64 @File.read.59(ptr, ptr, ptr) #0 declare i64 @File.read.38(ptr, ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i64 @File.write.60(ptr, ptr, ptr) #0 declare i64 @File.write.39(ptr, ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i64 @File.seek.61(ptr, ptr, i64, i64) #0 declare i64 @File.seek.40(ptr, ptr, i64, i64) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i32 @mode_to_flags.62(ptr, i64) #0 declare i32 @mode_to_flags.41(ptr, i64) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i64 @open_file.63(ptr, ptr, i64) #0 declare i64 @open_file.42(ptr, ptr, i64) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @read_file.64(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 declare void @read_file.43(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i1 @write_file.65(ptr, ptr, ptr) #0 declare i1 @write_file.44(ptr, ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i1 @append_file.66(ptr, ptr, ptr) #0 declare i1 @append_file.45(ptr, ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i1 @exists.67(ptr, ptr) #0 declare i1 @exists.46(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i1 @delete_file.68(ptr, ptr) #0 declare i1 @delete_file.47(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i1 @delete_dir.69(ptr, ptr) #0 declare i1 @delete_dir.48(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i1 @create_dir.70(ptr, ptr) #0 declare i1 @create_dir.49(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i1 @set_mode.71(ptr, ptr, i32) #0 declare i1 @set_mode.50(ptr, ptr, i32) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i1 @move.72(ptr, ptr, ptr) #0 declare i1 @move.51(ptr, ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i1 @create_dir_all.73(ptr, ptr) #0 declare i1 @create_dir_all.52(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i1 @copy_file.74(ptr, ptr, ptr) #0 declare i1 @copy_file.53(ptr, ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare ptr @basename.75(ptr, ptr) #0 declare ptr @basename.54(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare ptr @dirname.76(ptr, ptr) #0 declare ptr @dirname.55(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @Array.add(ptr, ptr, ptr, ptr) #0 declare void @Array.add(ptr, ptr, ptr, ptr) #0
@@ -1216,64 +1153,64 @@ declare ptr @BuildOptions.jni_main_java_source_at(i64, i64) #0
declare i64 @build_options() #0 declare i64 @build_options() #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare ptr @spaces.77(ptr, i32) #0 declare ptr @spaces.56(ptr, i32) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i32 @sx_trace_len.78() #0 declare i32 @sx_trace_len.57() #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i32 @sx_trace_truncated.79() #0 declare i32 @sx_trace_truncated.58() #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i64 @sx_trace_frame_at.80(i32) #0 declare i64 @sx_trace_frame_at.59(i32) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare ptr @to_string.81(ptr) #0 declare ptr @to_string.60(ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @print_current.82(ptr) #0 declare void @print_current.61(ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @print_interpreter_frames.83(ptr) #0 declare void @print_interpreter_frames.62(ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare ptr @popen.84(ptr, ptr) #0 declare ptr @popen.63(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i32 @pclose.85(ptr) #0 declare i32 @pclose.64(ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i64 @fread.86(ptr, i64, i64, ptr) #0 declare i64 @fread.65(ptr, i64, i64, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i32 @feof.87(ptr) #0 declare i32 @feof.66(ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare ptr @getenv.88(ptr) #0 declare ptr @getenv.67(ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i64 @strlen.89(ptr) #0 declare i64 @strlen.68(ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i32 @system.90(ptr) #0 declare i32 @system.69(ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @run.91(ptr sret({ { i32, { ptr, i64 } }, i1 }), ptr, ptr) #0 declare void @run.70(ptr sret({ { i32, { ptr, i64 } }, i1 }), ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @env.92(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 declare void @env.71(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @find_executable.93(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 declare void @find_executable.72(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @_exit.94(i32) #0 declare void @_exit.73(i32) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @exit.95(ptr, i8, ptr) #0 declare void @exit.74(ptr, i8, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @assert.96(ptr, i1, ptr, ptr) #0 declare void @assert.75(ptr, i1, ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare ptr @_NSGetArgv() #0 declare ptr @_NSGetArgv() #0
@@ -1303,97 +1240,97 @@ declare ptr @Parsed.value_of(ptr, ptr, ptr) #0
declare i1 @is_long_flag(ptr, ptr) #0 declare i1 @is_long_flag(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @parse.97(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.76(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 ; Function Attrs: nounwind
declare i32 @open.98(ptr, i32, ...) #0 declare i32 @open.77(ptr, i32, ...) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i32 @close.99(i32) #0 declare i32 @close.78(i32) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i64 @read.100(i32, ptr, i64) #0 declare i64 @read.79(i32, ptr, i64) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i64 @lseek.101(i32, i64, i32) #0 declare i64 @lseek.80(i32, i64, i32) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i32 @unlink.102(ptr) #0 declare i32 @unlink.81(ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i32 @rmdir.103(ptr) #0 declare i32 @rmdir.82(ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i32 @mkdir.104(ptr, i32) #0 declare i32 @mkdir.83(ptr, i32) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i32 @access.105(ptr, i32) #0 declare i32 @access.84(ptr, i32) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i32 @chmod.106(ptr, i32) #0 declare i32 @chmod.85(ptr, i32) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i32 @rename.107(ptr, ptr) #0 declare i32 @rename.86(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i1 @File.is_valid.108(ptr, ptr) #0 declare i1 @File.is_valid.87(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i1 @File.close.109(ptr, ptr) #0 declare i1 @File.close.88(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i64 @File.read.110(ptr, ptr, ptr) #0 declare i64 @File.read.89(ptr, ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i64 @File.write.111(ptr, ptr, ptr) #0 declare i64 @File.write.90(ptr, ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i64 @File.seek.112(ptr, ptr, i64, i64) #0 declare i64 @File.seek.91(ptr, ptr, i64, i64) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i32 @mode_to_flags.113(ptr, i64) #0 declare i32 @mode_to_flags.92(ptr, i64) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i64 @open_file.114(ptr, ptr, i64) #0 declare i64 @open_file.93(ptr, ptr, i64) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @read_file.115(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 declare void @read_file.94(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i1 @write_file.116(ptr, ptr, ptr) #0 declare i1 @write_file.95(ptr, ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i1 @append_file.117(ptr, ptr, ptr) #0 declare i1 @append_file.96(ptr, ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i1 @exists.118(ptr, ptr) #0 declare i1 @exists.97(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i1 @delete_file.119(ptr, ptr) #0 declare i1 @delete_file.98(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i1 @delete_dir.120(ptr, ptr) #0 declare i1 @delete_dir.99(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i1 @create_dir.121(ptr, ptr) #0 declare i1 @create_dir.100(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i1 @set_mode.122(ptr, ptr, i32) #0 declare i1 @set_mode.101(ptr, ptr, i32) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i1 @move.123(ptr, ptr, ptr) #0 declare i1 @move.102(ptr, ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i1 @create_dir_all.124(ptr, ptr) #0 declare i1 @create_dir_all.103(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i1 @copy_file.125(ptr, ptr, ptr) #0 declare i1 @copy_file.104(ptr, ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare ptr @basename.126(ptr, ptr) #0 declare ptr @basename.105(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare ptr @dirname.127(ptr, ptr) #0 declare ptr @dirname.106(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i64 @rotr(ptr, i64, i64) #0 declare i64 @rotr(ptr, i64, i64) #0
@@ -1432,7 +1369,7 @@ declare [64 x i8] @sha256_hex(ptr, ptr) #0
declare void @sha256_file(ptr sret({ [64 x i8], i1 }), ptr, ptr) #0 declare void @sha256_file(ptr sret({ [64 x i8], i1 }), ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @assert.128(ptr, i1) #0 declare void @assert.107(ptr, i1) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
define internal ptr @get_window(ptr %0, ptr %1, ptr %2) #0 { define internal ptr @get_window(ptr %0, ptr %1, ptr %2) #0 {
@@ -1460,7 +1397,7 @@ jni.miss: ; preds = %entry
store ptr %jni.global.cls, ptr @SX_JNI_CLS_getWindow____Landroid_view_Window_, align 8 store ptr %jni.global.cls, ptr @SX_JNI_CLS_getWindow____Landroid_view_Window_, align 8
%5 = getelementptr inbounds ptr, ptr %jni.ifs, i32 33 %5 = getelementptr inbounds ptr, ptr %jni.ifs, i32 33
%jni.GetMethodID = load ptr, ptr %5, align 8 %jni.GetMethodID = load ptr, ptr %5, align 8
%jni.fresh.mid = call ptr %jni.GetMethodID(ptr %load, ptr %jni.global.cls, ptr @str.144, ptr @str.145) %jni.fresh.mid = call ptr %jni.GetMethodID(ptr %load, ptr %jni.global.cls, ptr @str.123, ptr @str.124)
store ptr %jni.fresh.mid, ptr @SX_JNI_MID_getWindow____Landroid_view_Window_, align 8 store ptr %jni.fresh.mid, ptr @SX_JNI_MID_getWindow____Landroid_view_Window_, align 8
br label %jni.cont br label %jni.cont
@@ -1514,14 +1451,14 @@ declare void @sx_jni_env_tl_set(ptr) #0
define internal void @print__ct_sbdbafa1a5fe828c0__pack(ptr %0) #0 { define internal void @print__ct_sbdbafa1a5fe828c0__pack(ptr %0) #0 {
entry: entry:
%alloca = alloca { ptr, i64 }, align 8 %alloca = alloca { ptr, i64 }, align 8
store { ptr, i64 } { ptr @str.146, i64 3 }, ptr %alloca, align 8 store { ptr, i64 } { ptr @str.125, i64 3 }, ptr %alloca, align 8
%allocaN = alloca { ptr, i64 }, align 8 %allocaN = alloca { ptr, i64 }, align 8
%gep = getelementptr inbounds { ptr, i64 }, ptr %allocaN, i32 0, i32 0 %gep = getelementptr inbounds { ptr, i64 }, ptr %allocaN, i32 0, i32 0
store ptr null, ptr %gep, align 8 store ptr null, ptr %gep, align 8
%gepN = getelementptr inbounds { ptr, i64 }, ptr %allocaN, i32 0, i32 1 %gepN = getelementptr inbounds { ptr, i64 }, ptr %allocaN, i32 0, i32 1
store i64 0, ptr %gepN, align 8 store i64 0, ptr %gepN, align 8
%allocaN = alloca { ptr, i64 }, align 8 %allocaN = alloca { ptr, i64 }, align 8
store { ptr, i64 } { ptr @str.147, i64 0 }, ptr %allocaN, align 8 store { ptr, i64 } { ptr @str.126, i64 0 }, ptr %allocaN, align 8
%load = load { ptr, i64 }, ptr %allocaN, align 8 %load = load { ptr, i64 }, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %alloca, align 8 %loadN = load { ptr, i64 }, ptr %alloca, align 8
%call = call { ptr, i64 } @substr(ptr %0, { ptr, i64 } %loadN, i64 0, i64 3) %call = call { ptr, i64 } @substr(ptr %0, { ptr, i64 } %loadN, i64 0, i64 3)
@@ -1537,6 +1474,6 @@ entry:
; Function Attrs: nounwind ; Function Attrs: nounwind
define internal { ptr, i64 } @__insert_0(ptr %0) #0 { define internal { ptr, i64 } @__insert_0(ptr %0) #0 {
entry: entry:
%call = call { ptr, i64 } @build_format(ptr %0, { ptr, i64 } { ptr @str.148, i64 3 }) %call = call { ptr, i64 } @build_format(ptr %0, { ptr, i64 } { ptr @str.127, i64 3 })
ret { ptr, i64 } %call ret { ptr, i64 } %call
} }

View File

@@ -2,28 +2,28 @@
@g_should_call = internal global i1 false @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 } @__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 = private unnamed_addr constant [2 x i8] c"0\00", align 1
@str.129 = private unnamed_addr constant [15 x i8] c"result := \22\22; \00", align 1 @str.108 = private unnamed_addr constant [15 x i8] c"result := \22\22; \00", align 1
@str.130 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1 @str.109 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1
@str.131 = private unnamed_addr constant [3 x i8] c", \00", align 1 @str.110 = private unnamed_addr constant [3 x i8] c", \00", align 1
@str.132 = private unnamed_addr constant [5 x i8] c")); \00", align 1 @str.111 = private unnamed_addr constant [5 x i8] c")); \00", align 1
@str.133 = private unnamed_addr constant [44 x i8] c"result = concat(result, any_to_string(args[\00", align 1 @str.112 = private unnamed_addr constant [44 x i8] c"result = concat(result, any_to_string(args[\00", align 1
@str.134 = private unnamed_addr constant [6 x i8] c"])); \00", align 1 @str.113 = private unnamed_addr constant [6 x i8] c"])); \00", align 1
@str.135 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1 @str.114 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1
@str.136 = private unnamed_addr constant [3 x i8] c", \00", align 1 @str.115 = private unnamed_addr constant [3 x i8] c", \00", align 1
@str.137 = private unnamed_addr constant [5 x i8] c")); \00", align 1 @str.116 = private unnamed_addr constant [5 x i8] c")); \00", align 1
@str.138 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1 @str.117 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1
@str.139 = private unnamed_addr constant [3 x i8] c", \00", align 1 @str.118 = private unnamed_addr constant [3 x i8] c", \00", align 1
@str.140 = private unnamed_addr constant [5 x i8] c")); \00", align 1 @str.119 = private unnamed_addr constant [5 x i8] c")); \00", align 1
@str.141 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1 @str.120 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1
@str.142 = private unnamed_addr constant [3 x i8] c", \00", align 1 @str.121 = private unnamed_addr constant [3 x i8] c", \00", align 1
@str.143 = private unnamed_addr constant [5 x i8] c")); \00", align 1 @str.122 = private unnamed_addr constant [5 x i8] c")); \00", align 1
@str.144 = private unnamed_addr constant [4 x i8] c"max\00", align 1 @str.123 = private unnamed_addr constant [4 x i8] c"max\00", align 1
@str.145 = private unnamed_addr constant [6 x i8] c"(II)I\00", align 1 @str.124 = 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_CLS_max___II_I = internal global ptr null
@SX_JNI_MID_max___II_I = internal global ptr null @SX_JNI_MID_max___II_I = internal global ptr null
@str.146 = private unnamed_addr constant [4 x i8] c"ok\0A\00", align 1 @str.125 = 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.126 = 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 @str.127 = private unnamed_addr constant [4 x i8] c"ok\0A\00", align 1
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @out(ptr) #0 declare void @out(ptr) #0
@@ -253,7 +253,7 @@ entry:
%alloca = alloca { ptr, i64 }, align 8 %alloca = alloca { ptr, i64 }, align 8
store { ptr, i64 } %1, ptr %alloca, align 8 store { ptr, i64 } %1, ptr %alloca, align 8
%allocaN = alloca { ptr, i64 }, align 8 %allocaN = alloca { ptr, i64 }, align 8
store { ptr, i64 } { ptr @str.129, i64 14 }, ptr %allocaN, align 8 store { ptr, i64 } { ptr @str.108, i64 14 }, ptr %allocaN, align 8
%allocaN = alloca i64, align 8 %allocaN = alloca i64, align 8
store i64 0, ptr %allocaN, align 8 store i64 0, ptr %allocaN, align 8
%allocaN = alloca i64, align 8 %allocaN = alloca i64, align 8
@@ -349,7 +349,7 @@ if.merge.13: ; preds = %if.merge.27, %if.me
if.then.14: ; preds = %if.then.11 if.then.14: ; preds = %if.then.11
%loadN = load { ptr, i64 }, ptr %allocaN, align 8 %loadN = load { ptr, i64 }, ptr %allocaN, align 8
%call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.130, i64 36 }) %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.109, i64 36 })
store { ptr, i64 } %call, ptr %allocaN, align 8 store { ptr, i64 } %call, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %allocaN, align 8 %loadN = load { ptr, i64 }, ptr %allocaN, align 8
%loadN = load i64, ptr %allocaN, align 8 %loadN = load i64, ptr %allocaN, align 8
@@ -357,7 +357,7 @@ if.then.14: ; preds = %if.then.11
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN) %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN)
store { ptr, i64 } %callN, ptr %allocaN, align 8 store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, 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.131, i64 2 }) %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.110, i64 2 })
store { ptr, i64 } %callN, ptr %allocaN, align 8 store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %allocaN, align 8 %loadN = load { ptr, i64 }, ptr %allocaN, align 8
%loadN = load i64, ptr %allocaN, align 8 %loadN = load i64, ptr %allocaN, align 8
@@ -367,13 +367,13 @@ if.then.14: ; preds = %if.then.11
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN) %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN)
store { ptr, i64 } %callN, ptr %allocaN, align 8 store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, 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 4 }) %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.111, i64 4 })
store { ptr, i64 } %callN, ptr %allocaN, align 8 store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %if.merge.15 br label %if.merge.15
if.merge.15: ; preds = %if.then.14, %if.then.11 if.merge.15: ; preds = %if.then.14, %if.then.11
%loadN = load { ptr, i64 }, 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 43 }) %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.112, i64 43 })
store { ptr, i64 } %callN, ptr %allocaN, align 8 store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %allocaN, align 8 %loadN = load { ptr, i64 }, ptr %allocaN, align 8
%loadN = load i64, ptr %allocaN, align 8 %loadN = load i64, ptr %allocaN, align 8
@@ -381,7 +381,7 @@ if.merge.15: ; preds = %if.then.14, %if.the
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN) %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN)
store { ptr, i64 } %callN, ptr %allocaN, align 8 store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, 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.134, i64 5 }) %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.113, i64 5 })
store { ptr, i64 } %callN, ptr %allocaN, align 8 store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load i64, ptr %allocaN, align 8 %loadN = load i64, ptr %allocaN, align 8
%addN = add i64 %loadN, 1 %addN = add i64 %loadN, 1
@@ -395,7 +395,7 @@ if.merge.15: ; preds = %if.then.14, %if.the
if.then.25: ; preds = %if.else.12 if.then.25: ; preds = %if.else.12
%loadN = load { ptr, i64 }, 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 36 }) %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.114, i64 36 })
store { ptr, i64 } %callN, ptr %allocaN, align 8 store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %allocaN, align 8 %loadN = load { ptr, i64 }, ptr %allocaN, align 8
%loadN = load i64, ptr %allocaN, align 8 %loadN = load i64, ptr %allocaN, align 8
@@ -403,7 +403,7 @@ if.then.25: ; preds = %if.else.12
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN) %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN)
store { ptr, i64 } %callN, ptr %allocaN, align 8 store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, 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 2 }) %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.115, i64 2 })
store { ptr, i64 } %callN, ptr %allocaN, align 8 store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %allocaN, align 8 %loadN = load { ptr, i64 }, ptr %allocaN, align 8
%loadN = load i64, ptr %allocaN, align 8 %loadN = load i64, ptr %allocaN, align 8
@@ -414,7 +414,7 @@ if.then.25: ; preds = %if.else.12
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN) %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN)
store { ptr, i64 } %callN, ptr %allocaN, align 8 store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, 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.137, i64 4 }) %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.116, i64 4 })
store { ptr, i64 } %callN, ptr %allocaN, align 8 store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load i64, ptr %allocaN, align 8 %loadN = load i64, ptr %allocaN, align 8
%addN = add i64 %loadN, 2 %addN = add i64 %loadN, 2
@@ -471,7 +471,7 @@ if.merge.33: ; preds = %if.merge.36, %if.el
if.then.34: ; preds = %if.then.31 if.then.34: ; preds = %if.then.31
%loadN = load { ptr, i64 }, 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 36 }) %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.117, i64 36 })
store { ptr, i64 } %callN, ptr %allocaN, align 8 store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %allocaN, align 8 %loadN = load { ptr, i64 }, ptr %allocaN, align 8
%loadN = load i64, ptr %allocaN, align 8 %loadN = load i64, ptr %allocaN, align 8
@@ -479,7 +479,7 @@ if.then.34: ; preds = %if.then.31
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN) %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN)
store { ptr, i64 } %callN, ptr %allocaN, align 8 store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, 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 2 }) %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.118, i64 2 })
store { ptr, i64 } %callN, ptr %allocaN, align 8 store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %allocaN, align 8 %loadN = load { ptr, i64 }, ptr %allocaN, align 8
%loadN = load i64, ptr %allocaN, align 8 %loadN = load i64, ptr %allocaN, align 8
@@ -490,7 +490,7 @@ if.then.34: ; preds = %if.then.31
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN) %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN)
store { ptr, i64 } %callN, ptr %allocaN, align 8 store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, 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.140, i64 4 }) %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.119, i64 4 })
store { ptr, i64 } %callN, ptr %allocaN, align 8 store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load i64, ptr %allocaN, align 8 %loadN = load i64, ptr %allocaN, align 8
%addN = add i64 %loadN, 2 %addN = add i64 %loadN, 2
@@ -510,7 +510,7 @@ if.merge.36: ; preds = %if.else.35, %if.the
if.then.37: ; preds = %while.exit.4 if.then.37: ; preds = %while.exit.4
%loadN = load { ptr, i64 }, 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.141, i64 36 }) %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.120, i64 36 })
store { ptr, i64 } %callN, ptr %allocaN, align 8 store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %allocaN, align 8 %loadN = load { ptr, i64 }, ptr %allocaN, align 8
%loadN = load i64, ptr %allocaN, align 8 %loadN = load i64, ptr %allocaN, align 8
@@ -518,7 +518,7 @@ if.then.37: ; preds = %while.exit.4
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN) %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN)
store { ptr, i64 } %callN, ptr %allocaN, align 8 store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, 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.142, i64 2 }) %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.121, i64 2 })
store { ptr, i64 } %callN, ptr %allocaN, align 8 store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %allocaN, align 8 %loadN = load { ptr, i64 }, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %alloca, align 8 %loadN = load { ptr, i64 }, ptr %alloca, align 8
@@ -529,7 +529,7 @@ if.then.37: ; preds = %while.exit.4
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN) %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN)
store { ptr, i64 } %callN, ptr %allocaN, align 8 store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, 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.143, i64 4 }) %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.122, i64 4 })
store { ptr, i64 } %callN, ptr %allocaN, align 8 store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %if.merge.38 br label %if.merge.38
@@ -622,69 +622,6 @@ declare ptr @TrackingAllocator.alloc_bytes(ptr, ptr, i64) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @TrackingAllocator.dealloc_bytes(ptr, ptr, ptr) #0 declare void @TrackingAllocator.dealloc_bytes(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare ptr @mem_realloc.3(ptr, ptr, ptr, i64, i64, i64) #0
; Function Attrs: nounwind
declare ptr @CAllocator.alloc_bytes.4(ptr, ptr, i64) #0
; Function Attrs: nounwind
declare void @CAllocator.dealloc_bytes.5(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare i64 @GPA.init.6(ptr) #0
; Function Attrs: nounwind
declare ptr @GPA.alloc_bytes.7(ptr, ptr, i64) #0
; Function Attrs: nounwind
declare void @GPA.dealloc_bytes.8(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare void @Arena.add_chunk.9(ptr, ptr, i64) #0
; Function Attrs: nounwind
declare void @Arena.init.10(ptr sret({ ptr, i64, { ptr, ptr, ptr } }), ptr, ptr, i64) #0
; Function Attrs: nounwind
declare void @Arena.reset.11(ptr, ptr) #0
; Function Attrs: nounwind
declare void @Arena.deinit.12(ptr, ptr) #0
; Function Attrs: nounwind
declare ptr @Arena.alloc_bytes.13(ptr, ptr, i64) #0
; Function Attrs: nounwind
declare void @Arena.dealloc_bytes.14(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare void @BufAlloc.init.15(ptr sret({ ptr, i64, i64 }), ptr, ptr, i64) #0
; Function Attrs: nounwind
declare void @BufAlloc.reset.16(ptr, ptr) #0
; Function Attrs: nounwind
declare ptr @BufAlloc.alloc_bytes.17(ptr, ptr, i64) #0
; Function Attrs: nounwind
declare void @BufAlloc.dealloc_bytes.18(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare void @TrackingAllocator.init.19(ptr sret({ { ptr, ptr, ptr }, i64, i64, i64 }), ptr, ptr) #0
; Function Attrs: nounwind
declare i64 @TrackingAllocator.leak_count.20(ptr, ptr) #0
; Function Attrs: nounwind
declare void @TrackingAllocator.report.21(ptr, ptr) #0
; Function Attrs: nounwind
declare ptr @TrackingAllocator.alloc_bytes.22(ptr, ptr, i64) #0
; Function Attrs: nounwind
declare void @TrackingAllocator.dealloc_bytes.23(ptr, ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare ptr @escape(ptr, ptr) #0 declare ptr @escape(ptr, ptr) #0
@@ -859,166 +796,166 @@ declare i32 @listen(i32, i32) #0
declare i32 @accept(i32, ptr, ptr) #0 declare i32 @accept(i32, ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i64 @read.24(i32, ptr, i64) #0 declare i64 @read.3(i32, ptr, i64) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i32 @close.25(i32) #0 declare i32 @close.4(i32) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i16 @htons(ptr, i64) #0 declare i16 @htons(ptr, i64) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare ptr @mem_realloc.26(ptr, ptr, ptr, i64, i64, i64) #0 declare ptr @mem_realloc.5(ptr, ptr, ptr, i64, i64, i64) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare ptr @CAllocator.alloc_bytes.27(ptr, ptr, i64) #0 declare ptr @CAllocator.alloc_bytes.6(ptr, ptr, i64) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @CAllocator.dealloc_bytes.28(ptr, ptr, ptr) #0 declare void @CAllocator.dealloc_bytes.7(ptr, ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i64 @GPA.init.29(ptr) #0 declare i64 @GPA.init.8(ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare ptr @GPA.alloc_bytes.30(ptr, ptr, i64) #0 declare ptr @GPA.alloc_bytes.9(ptr, ptr, i64) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @GPA.dealloc_bytes.31(ptr, ptr, ptr) #0 declare void @GPA.dealloc_bytes.10(ptr, ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @Arena.add_chunk.32(ptr, ptr, i64) #0 declare void @Arena.add_chunk.11(ptr, ptr, i64) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @Arena.init.33(ptr sret({ ptr, i64, { ptr, ptr, ptr } }), ptr, ptr, i64) #0 declare void @Arena.init.12(ptr sret({ ptr, i64, { ptr, ptr, ptr } }), ptr, ptr, i64) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @Arena.reset.34(ptr, ptr) #0 declare void @Arena.reset.13(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @Arena.deinit.35(ptr, ptr) #0 declare void @Arena.deinit.14(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare ptr @Arena.alloc_bytes.36(ptr, ptr, i64) #0 declare ptr @Arena.alloc_bytes.15(ptr, ptr, i64) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @Arena.dealloc_bytes.37(ptr, ptr, ptr) #0 declare void @Arena.dealloc_bytes.16(ptr, ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @BufAlloc.init.38(ptr sret({ ptr, i64, i64 }), ptr, ptr, i64) #0 declare void @BufAlloc.init.17(ptr sret({ ptr, i64, i64 }), ptr, ptr, i64) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @BufAlloc.reset.39(ptr, ptr) #0 declare void @BufAlloc.reset.18(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare ptr @BufAlloc.alloc_bytes.40(ptr, ptr, i64) #0 declare ptr @BufAlloc.alloc_bytes.19(ptr, ptr, i64) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @BufAlloc.dealloc_bytes.41(ptr, ptr, ptr) #0 declare void @BufAlloc.dealloc_bytes.20(ptr, ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @TrackingAllocator.init.42(ptr sret({ { ptr, ptr, ptr }, i64, i64, i64 }), ptr, ptr) #0 declare void @TrackingAllocator.init.21(ptr sret({ { ptr, ptr, ptr }, i64, i64, i64 }), ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i64 @TrackingAllocator.leak_count.43(ptr, ptr) #0 declare i64 @TrackingAllocator.leak_count.22(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @TrackingAllocator.report.44(ptr, ptr) #0 declare void @TrackingAllocator.report.23(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare ptr @TrackingAllocator.alloc_bytes.45(ptr, ptr, i64) #0 declare ptr @TrackingAllocator.alloc_bytes.24(ptr, ptr, i64) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @TrackingAllocator.dealloc_bytes.46(ptr, ptr, ptr) #0 declare void @TrackingAllocator.dealloc_bytes.25(ptr, ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i32 @open.47(ptr, i32, ...) #0 declare i32 @open.26(ptr, i32, ...) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i32 @close.48(i32) #0 declare i32 @close.27(i32) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i64 @read.49(i32, ptr, i64) #0 declare i64 @read.28(i32, ptr, i64) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i64 @lseek.50(i32, i64, i32) #0 declare i64 @lseek.29(i32, i64, i32) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i32 @unlink.51(ptr) #0 declare i32 @unlink.30(ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i32 @rmdir.52(ptr) #0 declare i32 @rmdir.31(ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i32 @mkdir.53(ptr, i32) #0 declare i32 @mkdir.32(ptr, i32) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i32 @access.54(ptr, i32) #0 declare i32 @access.33(ptr, i32) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i32 @chmod.55(ptr, i32) #0 declare i32 @chmod.34(ptr, i32) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i32 @rename.56(ptr, ptr) #0 declare i32 @rename.35(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i1 @File.is_valid.57(ptr, ptr) #0 declare i1 @File.is_valid.36(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i1 @File.close.58(ptr, ptr) #0 declare i1 @File.close.37(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i64 @File.read.59(ptr, ptr, ptr) #0 declare i64 @File.read.38(ptr, ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i64 @File.write.60(ptr, ptr, ptr) #0 declare i64 @File.write.39(ptr, ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i64 @File.seek.61(ptr, ptr, i64, i64) #0 declare i64 @File.seek.40(ptr, ptr, i64, i64) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i32 @mode_to_flags.62(ptr, i64) #0 declare i32 @mode_to_flags.41(ptr, i64) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i64 @open_file.63(ptr, ptr, i64) #0 declare i64 @open_file.42(ptr, ptr, i64) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @read_file.64(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 declare void @read_file.43(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i1 @write_file.65(ptr, ptr, ptr) #0 declare i1 @write_file.44(ptr, ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i1 @append_file.66(ptr, ptr, ptr) #0 declare i1 @append_file.45(ptr, ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i1 @exists.67(ptr, ptr) #0 declare i1 @exists.46(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i1 @delete_file.68(ptr, ptr) #0 declare i1 @delete_file.47(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i1 @delete_dir.69(ptr, ptr) #0 declare i1 @delete_dir.48(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i1 @create_dir.70(ptr, ptr) #0 declare i1 @create_dir.49(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i1 @set_mode.71(ptr, ptr, i32) #0 declare i1 @set_mode.50(ptr, ptr, i32) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i1 @move.72(ptr, ptr, ptr) #0 declare i1 @move.51(ptr, ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i1 @create_dir_all.73(ptr, ptr) #0 declare i1 @create_dir_all.52(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i1 @copy_file.74(ptr, ptr, ptr) #0 declare i1 @copy_file.53(ptr, ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare ptr @basename.75(ptr, ptr) #0 declare ptr @basename.54(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare ptr @dirname.76(ptr, ptr) #0 declare ptr @dirname.55(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @Array.add(ptr, ptr, ptr, ptr) #0 declare void @Array.add(ptr, ptr, ptr, ptr) #0
@@ -1216,64 +1153,64 @@ declare ptr @BuildOptions.jni_main_java_source_at(i64, i64) #0
declare i64 @build_options() #0 declare i64 @build_options() #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare ptr @spaces.77(ptr, i32) #0 declare ptr @spaces.56(ptr, i32) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i32 @sx_trace_len.78() #0 declare i32 @sx_trace_len.57() #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i32 @sx_trace_truncated.79() #0 declare i32 @sx_trace_truncated.58() #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i64 @sx_trace_frame_at.80(i32) #0 declare i64 @sx_trace_frame_at.59(i32) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare ptr @to_string.81(ptr) #0 declare ptr @to_string.60(ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @print_current.82(ptr) #0 declare void @print_current.61(ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @print_interpreter_frames.83(ptr) #0 declare void @print_interpreter_frames.62(ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare ptr @popen.84(ptr, ptr) #0 declare ptr @popen.63(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i32 @pclose.85(ptr) #0 declare i32 @pclose.64(ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i64 @fread.86(ptr, i64, i64, ptr) #0 declare i64 @fread.65(ptr, i64, i64, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i32 @feof.87(ptr) #0 declare i32 @feof.66(ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare ptr @getenv.88(ptr) #0 declare ptr @getenv.67(ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i64 @strlen.89(ptr) #0 declare i64 @strlen.68(ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i32 @system.90(ptr) #0 declare i32 @system.69(ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @run.91(ptr sret({ { i32, { ptr, i64 } }, i1 }), ptr, ptr) #0 declare void @run.70(ptr sret({ { i32, { ptr, i64 } }, i1 }), ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @env.92(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 declare void @env.71(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @find_executable.93(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 declare void @find_executable.72(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @_exit.94(i32) #0 declare void @_exit.73(i32) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @exit.95(ptr, i8, ptr) #0 declare void @exit.74(ptr, i8, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @assert.96(ptr, i1, ptr, ptr) #0 declare void @assert.75(ptr, i1, ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare ptr @_NSGetArgv() #0 declare ptr @_NSGetArgv() #0
@@ -1303,97 +1240,97 @@ declare ptr @Parsed.value_of(ptr, ptr, ptr) #0
declare i1 @is_long_flag(ptr, ptr) #0 declare i1 @is_long_flag(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @parse.97(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.76(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 ; Function Attrs: nounwind
declare i32 @open.98(ptr, i32, ...) #0 declare i32 @open.77(ptr, i32, ...) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i32 @close.99(i32) #0 declare i32 @close.78(i32) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i64 @read.100(i32, ptr, i64) #0 declare i64 @read.79(i32, ptr, i64) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i64 @lseek.101(i32, i64, i32) #0 declare i64 @lseek.80(i32, i64, i32) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i32 @unlink.102(ptr) #0 declare i32 @unlink.81(ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i32 @rmdir.103(ptr) #0 declare i32 @rmdir.82(ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i32 @mkdir.104(ptr, i32) #0 declare i32 @mkdir.83(ptr, i32) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i32 @access.105(ptr, i32) #0 declare i32 @access.84(ptr, i32) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i32 @chmod.106(ptr, i32) #0 declare i32 @chmod.85(ptr, i32) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i32 @rename.107(ptr, ptr) #0 declare i32 @rename.86(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i1 @File.is_valid.108(ptr, ptr) #0 declare i1 @File.is_valid.87(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i1 @File.close.109(ptr, ptr) #0 declare i1 @File.close.88(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i64 @File.read.110(ptr, ptr, ptr) #0 declare i64 @File.read.89(ptr, ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i64 @File.write.111(ptr, ptr, ptr) #0 declare i64 @File.write.90(ptr, ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i64 @File.seek.112(ptr, ptr, i64, i64) #0 declare i64 @File.seek.91(ptr, ptr, i64, i64) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i32 @mode_to_flags.113(ptr, i64) #0 declare i32 @mode_to_flags.92(ptr, i64) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i64 @open_file.114(ptr, ptr, i64) #0 declare i64 @open_file.93(ptr, ptr, i64) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @read_file.115(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 declare void @read_file.94(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i1 @write_file.116(ptr, ptr, ptr) #0 declare i1 @write_file.95(ptr, ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i1 @append_file.117(ptr, ptr, ptr) #0 declare i1 @append_file.96(ptr, ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i1 @exists.118(ptr, ptr) #0 declare i1 @exists.97(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i1 @delete_file.119(ptr, ptr) #0 declare i1 @delete_file.98(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i1 @delete_dir.120(ptr, ptr) #0 declare i1 @delete_dir.99(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i1 @create_dir.121(ptr, ptr) #0 declare i1 @create_dir.100(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i1 @set_mode.122(ptr, ptr, i32) #0 declare i1 @set_mode.101(ptr, ptr, i32) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i1 @move.123(ptr, ptr, ptr) #0 declare i1 @move.102(ptr, ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i1 @create_dir_all.124(ptr, ptr) #0 declare i1 @create_dir_all.103(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i1 @copy_file.125(ptr, ptr, ptr) #0 declare i1 @copy_file.104(ptr, ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare ptr @basename.126(ptr, ptr) #0 declare ptr @basename.105(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare ptr @dirname.127(ptr, ptr) #0 declare ptr @dirname.106(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i64 @rotr(ptr, i64, i64) #0 declare i64 @rotr(ptr, i64, i64) #0
@@ -1432,7 +1369,7 @@ declare [64 x i8] @sha256_hex(ptr, ptr) #0
declare void @sha256_file(ptr sret({ [64 x i8], i1 }), ptr, ptr) #0 declare void @sha256_file(ptr sret({ [64 x i8], i1 }), ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @assert.128(ptr, i1) #0 declare void @assert.107(ptr, i1) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
define internal i32 @call_static_max(ptr %0, ptr %1, ptr %2) #0 { define internal i32 @call_static_max(ptr %0, ptr %1, ptr %2) #0 {
@@ -1457,7 +1394,7 @@ jni.miss: ; preds = %entry
store ptr %jni.global.cls, ptr @SX_JNI_CLS_max___II_I, align 8 store ptr %jni.global.cls, ptr @SX_JNI_CLS_max___II_I, align 8
%4 = getelementptr inbounds ptr, ptr %jni.ifs, i32 113 %4 = getelementptr inbounds ptr, ptr %jni.ifs, i32 113
%jni.GetStaticMethodID = load ptr, ptr %4, align 8 %jni.GetStaticMethodID = load ptr, ptr %4, align 8
%jni.fresh.mid = call ptr %jni.GetStaticMethodID(ptr %load, ptr %jni.global.cls, ptr @str.144, ptr @str.145) %jni.fresh.mid = call ptr %jni.GetStaticMethodID(ptr %load, ptr %jni.global.cls, ptr @str.123, ptr @str.124)
store ptr %jni.fresh.mid, ptr @SX_JNI_MID_max___II_I, align 8 store ptr %jni.fresh.mid, ptr @SX_JNI_MID_max___II_I, align 8
br label %jni.cont br label %jni.cont
@@ -1511,14 +1448,14 @@ declare void @sx_jni_env_tl_set(ptr) #0
define internal void @print__ct_sbdbafa1a5fe828c0__pack(ptr %0) #0 { define internal void @print__ct_sbdbafa1a5fe828c0__pack(ptr %0) #0 {
entry: entry:
%alloca = alloca { ptr, i64 }, align 8 %alloca = alloca { ptr, i64 }, align 8
store { ptr, i64 } { ptr @str.146, i64 3 }, ptr %alloca, align 8 store { ptr, i64 } { ptr @str.125, i64 3 }, ptr %alloca, align 8
%allocaN = alloca { ptr, i64 }, align 8 %allocaN = alloca { ptr, i64 }, align 8
%gep = getelementptr inbounds { ptr, i64 }, ptr %allocaN, i32 0, i32 0 %gep = getelementptr inbounds { ptr, i64 }, ptr %allocaN, i32 0, i32 0
store ptr null, ptr %gep, align 8 store ptr null, ptr %gep, align 8
%gepN = getelementptr inbounds { ptr, i64 }, ptr %allocaN, i32 0, i32 1 %gepN = getelementptr inbounds { ptr, i64 }, ptr %allocaN, i32 0, i32 1
store i64 0, ptr %gepN, align 8 store i64 0, ptr %gepN, align 8
%allocaN = alloca { ptr, i64 }, align 8 %allocaN = alloca { ptr, i64 }, align 8
store { ptr, i64 } { ptr @str.147, i64 0 }, ptr %allocaN, align 8 store { ptr, i64 } { ptr @str.126, i64 0 }, ptr %allocaN, align 8
%load = load { ptr, i64 }, ptr %allocaN, align 8 %load = load { ptr, i64 }, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %alloca, align 8 %loadN = load { ptr, i64 }, ptr %alloca, align 8
%call = call { ptr, i64 } @substr(ptr %0, { ptr, i64 } %loadN, i64 0, i64 3) %call = call { ptr, i64 } @substr(ptr %0, { ptr, i64 } %loadN, i64 0, i64 3)
@@ -1534,6 +1471,6 @@ entry:
; Function Attrs: nounwind ; Function Attrs: nounwind
define internal { ptr, i64 } @__insert_0(ptr %0) #0 { define internal { ptr, i64 } @__insert_0(ptr %0) #0 {
entry: entry:
%call = call { ptr, i64 } @build_format(ptr %0, { ptr, i64 } { ptr @str.148, i64 3 }) %call = call { ptr, i64 } @build_format(ptr %0, { ptr, i64 } { ptr @str.127, i64 3 })
ret { ptr, i64 } %call ret { ptr, i64 } %call
} }

View File

@@ -2,28 +2,28 @@
@g_should_call = internal global i1 false @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 } @__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 = private unnamed_addr constant [2 x i8] c"0\00", align 1
@str.129 = private unnamed_addr constant [15 x i8] c"result := \22\22; \00", align 1 @str.108 = private unnamed_addr constant [15 x i8] c"result := \22\22; \00", align 1
@str.130 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1 @str.109 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1
@str.131 = private unnamed_addr constant [3 x i8] c", \00", align 1 @str.110 = private unnamed_addr constant [3 x i8] c", \00", align 1
@str.132 = private unnamed_addr constant [5 x i8] c")); \00", align 1 @str.111 = private unnamed_addr constant [5 x i8] c")); \00", align 1
@str.133 = private unnamed_addr constant [44 x i8] c"result = concat(result, any_to_string(args[\00", align 1 @str.112 = private unnamed_addr constant [44 x i8] c"result = concat(result, any_to_string(args[\00", align 1
@str.134 = private unnamed_addr constant [6 x i8] c"])); \00", align 1 @str.113 = private unnamed_addr constant [6 x i8] c"])); \00", align 1
@str.135 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1 @str.114 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1
@str.136 = private unnamed_addr constant [3 x i8] c", \00", align 1 @str.115 = private unnamed_addr constant [3 x i8] c", \00", align 1
@str.137 = private unnamed_addr constant [5 x i8] c")); \00", align 1 @str.116 = private unnamed_addr constant [5 x i8] c")); \00", align 1
@str.138 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1 @str.117 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1
@str.139 = private unnamed_addr constant [3 x i8] c", \00", align 1 @str.118 = private unnamed_addr constant [3 x i8] c", \00", align 1
@str.140 = private unnamed_addr constant [5 x i8] c")); \00", align 1 @str.119 = private unnamed_addr constant [5 x i8] c")); \00", align 1
@str.141 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1 @str.120 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1
@str.142 = private unnamed_addr constant [3 x i8] c", \00", align 1 @str.121 = private unnamed_addr constant [3 x i8] c", \00", align 1
@str.143 = private unnamed_addr constant [5 x i8] c")); \00", align 1 @str.122 = private unnamed_addr constant [5 x i8] c")); \00", align 1
@str.144 = private unnamed_addr constant [10 x i8] c"getWindow\00", align 1 @str.123 = private unnamed_addr constant [10 x i8] c"getWindow\00", align 1
@str.145 = private unnamed_addr constant [21 x i8] c"()Ljava/lang/Object;\00", align 1 @str.124 = 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_CLS_getWindow____Ljava_lang_Object_ = internal global ptr null
@SX_JNI_MID_getWindow____Ljava_lang_Object_ = internal global ptr null @SX_JNI_MID_getWindow____Ljava_lang_Object_ = internal global ptr null
@str.146 = private unnamed_addr constant [4 x i8] c"ok\0A\00", align 1 @str.125 = 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.126 = 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 @str.127 = private unnamed_addr constant [4 x i8] c"ok\0A\00", align 1
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @out(ptr) #0 declare void @out(ptr) #0
@@ -253,7 +253,7 @@ entry:
%alloca = alloca { ptr, i64 }, align 8 %alloca = alloca { ptr, i64 }, align 8
store { ptr, i64 } %1, ptr %alloca, align 8 store { ptr, i64 } %1, ptr %alloca, align 8
%allocaN = alloca { ptr, i64 }, align 8 %allocaN = alloca { ptr, i64 }, align 8
store { ptr, i64 } { ptr @str.129, i64 14 }, ptr %allocaN, align 8 store { ptr, i64 } { ptr @str.108, i64 14 }, ptr %allocaN, align 8
%allocaN = alloca i64, align 8 %allocaN = alloca i64, align 8
store i64 0, ptr %allocaN, align 8 store i64 0, ptr %allocaN, align 8
%allocaN = alloca i64, align 8 %allocaN = alloca i64, align 8
@@ -349,7 +349,7 @@ if.merge.13: ; preds = %if.merge.27, %if.me
if.then.14: ; preds = %if.then.11 if.then.14: ; preds = %if.then.11
%loadN = load { ptr, i64 }, ptr %allocaN, align 8 %loadN = load { ptr, i64 }, ptr %allocaN, align 8
%call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.130, i64 36 }) %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.109, i64 36 })
store { ptr, i64 } %call, ptr %allocaN, align 8 store { ptr, i64 } %call, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %allocaN, align 8 %loadN = load { ptr, i64 }, ptr %allocaN, align 8
%loadN = load i64, ptr %allocaN, align 8 %loadN = load i64, ptr %allocaN, align 8
@@ -357,7 +357,7 @@ if.then.14: ; preds = %if.then.11
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN) %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN)
store { ptr, i64 } %callN, ptr %allocaN, align 8 store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, 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.131, i64 2 }) %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.110, i64 2 })
store { ptr, i64 } %callN, ptr %allocaN, align 8 store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %allocaN, align 8 %loadN = load { ptr, i64 }, ptr %allocaN, align 8
%loadN = load i64, ptr %allocaN, align 8 %loadN = load i64, ptr %allocaN, align 8
@@ -367,13 +367,13 @@ if.then.14: ; preds = %if.then.11
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN) %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN)
store { ptr, i64 } %callN, ptr %allocaN, align 8 store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, 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 4 }) %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.111, i64 4 })
store { ptr, i64 } %callN, ptr %allocaN, align 8 store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %if.merge.15 br label %if.merge.15
if.merge.15: ; preds = %if.then.14, %if.then.11 if.merge.15: ; preds = %if.then.14, %if.then.11
%loadN = load { ptr, i64 }, 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 43 }) %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.112, i64 43 })
store { ptr, i64 } %callN, ptr %allocaN, align 8 store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %allocaN, align 8 %loadN = load { ptr, i64 }, ptr %allocaN, align 8
%loadN = load i64, ptr %allocaN, align 8 %loadN = load i64, ptr %allocaN, align 8
@@ -381,7 +381,7 @@ if.merge.15: ; preds = %if.then.14, %if.the
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN) %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN)
store { ptr, i64 } %callN, ptr %allocaN, align 8 store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, 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.134, i64 5 }) %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.113, i64 5 })
store { ptr, i64 } %callN, ptr %allocaN, align 8 store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load i64, ptr %allocaN, align 8 %loadN = load i64, ptr %allocaN, align 8
%addN = add i64 %loadN, 1 %addN = add i64 %loadN, 1
@@ -395,7 +395,7 @@ if.merge.15: ; preds = %if.then.14, %if.the
if.then.25: ; preds = %if.else.12 if.then.25: ; preds = %if.else.12
%loadN = load { ptr, i64 }, 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 36 }) %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.114, i64 36 })
store { ptr, i64 } %callN, ptr %allocaN, align 8 store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %allocaN, align 8 %loadN = load { ptr, i64 }, ptr %allocaN, align 8
%loadN = load i64, ptr %allocaN, align 8 %loadN = load i64, ptr %allocaN, align 8
@@ -403,7 +403,7 @@ if.then.25: ; preds = %if.else.12
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN) %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN)
store { ptr, i64 } %callN, ptr %allocaN, align 8 store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, 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 2 }) %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.115, i64 2 })
store { ptr, i64 } %callN, ptr %allocaN, align 8 store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %allocaN, align 8 %loadN = load { ptr, i64 }, ptr %allocaN, align 8
%loadN = load i64, ptr %allocaN, align 8 %loadN = load i64, ptr %allocaN, align 8
@@ -414,7 +414,7 @@ if.then.25: ; preds = %if.else.12
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN) %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN)
store { ptr, i64 } %callN, ptr %allocaN, align 8 store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, 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.137, i64 4 }) %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.116, i64 4 })
store { ptr, i64 } %callN, ptr %allocaN, align 8 store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load i64, ptr %allocaN, align 8 %loadN = load i64, ptr %allocaN, align 8
%addN = add i64 %loadN, 2 %addN = add i64 %loadN, 2
@@ -471,7 +471,7 @@ if.merge.33: ; preds = %if.merge.36, %if.el
if.then.34: ; preds = %if.then.31 if.then.34: ; preds = %if.then.31
%loadN = load { ptr, i64 }, 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 36 }) %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.117, i64 36 })
store { ptr, i64 } %callN, ptr %allocaN, align 8 store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %allocaN, align 8 %loadN = load { ptr, i64 }, ptr %allocaN, align 8
%loadN = load i64, ptr %allocaN, align 8 %loadN = load i64, ptr %allocaN, align 8
@@ -479,7 +479,7 @@ if.then.34: ; preds = %if.then.31
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN) %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN)
store { ptr, i64 } %callN, ptr %allocaN, align 8 store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, 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 2 }) %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.118, i64 2 })
store { ptr, i64 } %callN, ptr %allocaN, align 8 store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %allocaN, align 8 %loadN = load { ptr, i64 }, ptr %allocaN, align 8
%loadN = load i64, ptr %allocaN, align 8 %loadN = load i64, ptr %allocaN, align 8
@@ -490,7 +490,7 @@ if.then.34: ; preds = %if.then.31
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN) %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN)
store { ptr, i64 } %callN, ptr %allocaN, align 8 store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, 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.140, i64 4 }) %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.119, i64 4 })
store { ptr, i64 } %callN, ptr %allocaN, align 8 store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load i64, ptr %allocaN, align 8 %loadN = load i64, ptr %allocaN, align 8
%addN = add i64 %loadN, 2 %addN = add i64 %loadN, 2
@@ -510,7 +510,7 @@ if.merge.36: ; preds = %if.else.35, %if.the
if.then.37: ; preds = %while.exit.4 if.then.37: ; preds = %while.exit.4
%loadN = load { ptr, i64 }, 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.141, i64 36 }) %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.120, i64 36 })
store { ptr, i64 } %callN, ptr %allocaN, align 8 store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %allocaN, align 8 %loadN = load { ptr, i64 }, ptr %allocaN, align 8
%loadN = load i64, ptr %allocaN, align 8 %loadN = load i64, ptr %allocaN, align 8
@@ -518,7 +518,7 @@ if.then.37: ; preds = %while.exit.4
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN) %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN)
store { ptr, i64 } %callN, ptr %allocaN, align 8 store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, 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.142, i64 2 }) %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.121, i64 2 })
store { ptr, i64 } %callN, ptr %allocaN, align 8 store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %allocaN, align 8 %loadN = load { ptr, i64 }, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %alloca, align 8 %loadN = load { ptr, i64 }, ptr %alloca, align 8
@@ -529,7 +529,7 @@ if.then.37: ; preds = %while.exit.4
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN) %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN)
store { ptr, i64 } %callN, ptr %allocaN, align 8 store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, 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.143, i64 4 }) %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.122, i64 4 })
store { ptr, i64 } %callN, ptr %allocaN, align 8 store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %if.merge.38 br label %if.merge.38
@@ -622,69 +622,6 @@ declare ptr @TrackingAllocator.alloc_bytes(ptr, ptr, i64) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @TrackingAllocator.dealloc_bytes(ptr, ptr, ptr) #0 declare void @TrackingAllocator.dealloc_bytes(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare ptr @mem_realloc.3(ptr, ptr, ptr, i64, i64, i64) #0
; Function Attrs: nounwind
declare ptr @CAllocator.alloc_bytes.4(ptr, ptr, i64) #0
; Function Attrs: nounwind
declare void @CAllocator.dealloc_bytes.5(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare i64 @GPA.init.6(ptr) #0
; Function Attrs: nounwind
declare ptr @GPA.alloc_bytes.7(ptr, ptr, i64) #0
; Function Attrs: nounwind
declare void @GPA.dealloc_bytes.8(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare void @Arena.add_chunk.9(ptr, ptr, i64) #0
; Function Attrs: nounwind
declare void @Arena.init.10(ptr sret({ ptr, i64, { ptr, ptr, ptr } }), ptr, ptr, i64) #0
; Function Attrs: nounwind
declare void @Arena.reset.11(ptr, ptr) #0
; Function Attrs: nounwind
declare void @Arena.deinit.12(ptr, ptr) #0
; Function Attrs: nounwind
declare ptr @Arena.alloc_bytes.13(ptr, ptr, i64) #0
; Function Attrs: nounwind
declare void @Arena.dealloc_bytes.14(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare void @BufAlloc.init.15(ptr sret({ ptr, i64, i64 }), ptr, ptr, i64) #0
; Function Attrs: nounwind
declare void @BufAlloc.reset.16(ptr, ptr) #0
; Function Attrs: nounwind
declare ptr @BufAlloc.alloc_bytes.17(ptr, ptr, i64) #0
; Function Attrs: nounwind
declare void @BufAlloc.dealloc_bytes.18(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare void @TrackingAllocator.init.19(ptr sret({ { ptr, ptr, ptr }, i64, i64, i64 }), ptr, ptr) #0
; Function Attrs: nounwind
declare i64 @TrackingAllocator.leak_count.20(ptr, ptr) #0
; Function Attrs: nounwind
declare void @TrackingAllocator.report.21(ptr, ptr) #0
; Function Attrs: nounwind
declare ptr @TrackingAllocator.alloc_bytes.22(ptr, ptr, i64) #0
; Function Attrs: nounwind
declare void @TrackingAllocator.dealloc_bytes.23(ptr, ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare ptr @escape(ptr, ptr) #0 declare ptr @escape(ptr, ptr) #0
@@ -859,166 +796,166 @@ declare i32 @listen(i32, i32) #0
declare i32 @accept(i32, ptr, ptr) #0 declare i32 @accept(i32, ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i64 @read.24(i32, ptr, i64) #0 declare i64 @read.3(i32, ptr, i64) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i32 @close.25(i32) #0 declare i32 @close.4(i32) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i16 @htons(ptr, i64) #0 declare i16 @htons(ptr, i64) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare ptr @mem_realloc.26(ptr, ptr, ptr, i64, i64, i64) #0 declare ptr @mem_realloc.5(ptr, ptr, ptr, i64, i64, i64) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare ptr @CAllocator.alloc_bytes.27(ptr, ptr, i64) #0 declare ptr @CAllocator.alloc_bytes.6(ptr, ptr, i64) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @CAllocator.dealloc_bytes.28(ptr, ptr, ptr) #0 declare void @CAllocator.dealloc_bytes.7(ptr, ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i64 @GPA.init.29(ptr) #0 declare i64 @GPA.init.8(ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare ptr @GPA.alloc_bytes.30(ptr, ptr, i64) #0 declare ptr @GPA.alloc_bytes.9(ptr, ptr, i64) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @GPA.dealloc_bytes.31(ptr, ptr, ptr) #0 declare void @GPA.dealloc_bytes.10(ptr, ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @Arena.add_chunk.32(ptr, ptr, i64) #0 declare void @Arena.add_chunk.11(ptr, ptr, i64) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @Arena.init.33(ptr sret({ ptr, i64, { ptr, ptr, ptr } }), ptr, ptr, i64) #0 declare void @Arena.init.12(ptr sret({ ptr, i64, { ptr, ptr, ptr } }), ptr, ptr, i64) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @Arena.reset.34(ptr, ptr) #0 declare void @Arena.reset.13(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @Arena.deinit.35(ptr, ptr) #0 declare void @Arena.deinit.14(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare ptr @Arena.alloc_bytes.36(ptr, ptr, i64) #0 declare ptr @Arena.alloc_bytes.15(ptr, ptr, i64) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @Arena.dealloc_bytes.37(ptr, ptr, ptr) #0 declare void @Arena.dealloc_bytes.16(ptr, ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @BufAlloc.init.38(ptr sret({ ptr, i64, i64 }), ptr, ptr, i64) #0 declare void @BufAlloc.init.17(ptr sret({ ptr, i64, i64 }), ptr, ptr, i64) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @BufAlloc.reset.39(ptr, ptr) #0 declare void @BufAlloc.reset.18(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare ptr @BufAlloc.alloc_bytes.40(ptr, ptr, i64) #0 declare ptr @BufAlloc.alloc_bytes.19(ptr, ptr, i64) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @BufAlloc.dealloc_bytes.41(ptr, ptr, ptr) #0 declare void @BufAlloc.dealloc_bytes.20(ptr, ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @TrackingAllocator.init.42(ptr sret({ { ptr, ptr, ptr }, i64, i64, i64 }), ptr, ptr) #0 declare void @TrackingAllocator.init.21(ptr sret({ { ptr, ptr, ptr }, i64, i64, i64 }), ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i64 @TrackingAllocator.leak_count.43(ptr, ptr) #0 declare i64 @TrackingAllocator.leak_count.22(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @TrackingAllocator.report.44(ptr, ptr) #0 declare void @TrackingAllocator.report.23(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare ptr @TrackingAllocator.alloc_bytes.45(ptr, ptr, i64) #0 declare ptr @TrackingAllocator.alloc_bytes.24(ptr, ptr, i64) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @TrackingAllocator.dealloc_bytes.46(ptr, ptr, ptr) #0 declare void @TrackingAllocator.dealloc_bytes.25(ptr, ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i32 @open.47(ptr, i32, ...) #0 declare i32 @open.26(ptr, i32, ...) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i32 @close.48(i32) #0 declare i32 @close.27(i32) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i64 @read.49(i32, ptr, i64) #0 declare i64 @read.28(i32, ptr, i64) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i64 @lseek.50(i32, i64, i32) #0 declare i64 @lseek.29(i32, i64, i32) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i32 @unlink.51(ptr) #0 declare i32 @unlink.30(ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i32 @rmdir.52(ptr) #0 declare i32 @rmdir.31(ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i32 @mkdir.53(ptr, i32) #0 declare i32 @mkdir.32(ptr, i32) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i32 @access.54(ptr, i32) #0 declare i32 @access.33(ptr, i32) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i32 @chmod.55(ptr, i32) #0 declare i32 @chmod.34(ptr, i32) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i32 @rename.56(ptr, ptr) #0 declare i32 @rename.35(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i1 @File.is_valid.57(ptr, ptr) #0 declare i1 @File.is_valid.36(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i1 @File.close.58(ptr, ptr) #0 declare i1 @File.close.37(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i64 @File.read.59(ptr, ptr, ptr) #0 declare i64 @File.read.38(ptr, ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i64 @File.write.60(ptr, ptr, ptr) #0 declare i64 @File.write.39(ptr, ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i64 @File.seek.61(ptr, ptr, i64, i64) #0 declare i64 @File.seek.40(ptr, ptr, i64, i64) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i32 @mode_to_flags.62(ptr, i64) #0 declare i32 @mode_to_flags.41(ptr, i64) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i64 @open_file.63(ptr, ptr, i64) #0 declare i64 @open_file.42(ptr, ptr, i64) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @read_file.64(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 declare void @read_file.43(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i1 @write_file.65(ptr, ptr, ptr) #0 declare i1 @write_file.44(ptr, ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i1 @append_file.66(ptr, ptr, ptr) #0 declare i1 @append_file.45(ptr, ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i1 @exists.67(ptr, ptr) #0 declare i1 @exists.46(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i1 @delete_file.68(ptr, ptr) #0 declare i1 @delete_file.47(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i1 @delete_dir.69(ptr, ptr) #0 declare i1 @delete_dir.48(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i1 @create_dir.70(ptr, ptr) #0 declare i1 @create_dir.49(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i1 @set_mode.71(ptr, ptr, i32) #0 declare i1 @set_mode.50(ptr, ptr, i32) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i1 @move.72(ptr, ptr, ptr) #0 declare i1 @move.51(ptr, ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i1 @create_dir_all.73(ptr, ptr) #0 declare i1 @create_dir_all.52(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i1 @copy_file.74(ptr, ptr, ptr) #0 declare i1 @copy_file.53(ptr, ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare ptr @basename.75(ptr, ptr) #0 declare ptr @basename.54(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare ptr @dirname.76(ptr, ptr) #0 declare ptr @dirname.55(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @Array.add(ptr, ptr, ptr, ptr) #0 declare void @Array.add(ptr, ptr, ptr, ptr) #0
@@ -1216,64 +1153,64 @@ declare ptr @BuildOptions.jni_main_java_source_at(i64, i64) #0
declare i64 @build_options() #0 declare i64 @build_options() #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare ptr @spaces.77(ptr, i32) #0 declare ptr @spaces.56(ptr, i32) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i32 @sx_trace_len.78() #0 declare i32 @sx_trace_len.57() #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i32 @sx_trace_truncated.79() #0 declare i32 @sx_trace_truncated.58() #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i64 @sx_trace_frame_at.80(i32) #0 declare i64 @sx_trace_frame_at.59(i32) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare ptr @to_string.81(ptr) #0 declare ptr @to_string.60(ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @print_current.82(ptr) #0 declare void @print_current.61(ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @print_interpreter_frames.83(ptr) #0 declare void @print_interpreter_frames.62(ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare ptr @popen.84(ptr, ptr) #0 declare ptr @popen.63(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i32 @pclose.85(ptr) #0 declare i32 @pclose.64(ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i64 @fread.86(ptr, i64, i64, ptr) #0 declare i64 @fread.65(ptr, i64, i64, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i32 @feof.87(ptr) #0 declare i32 @feof.66(ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare ptr @getenv.88(ptr) #0 declare ptr @getenv.67(ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i64 @strlen.89(ptr) #0 declare i64 @strlen.68(ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i32 @system.90(ptr) #0 declare i32 @system.69(ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @run.91(ptr sret({ { i32, { ptr, i64 } }, i1 }), ptr, ptr) #0 declare void @run.70(ptr sret({ { i32, { ptr, i64 } }, i1 }), ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @env.92(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 declare void @env.71(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @find_executable.93(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 declare void @find_executable.72(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @_exit.94(i32) #0 declare void @_exit.73(i32) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @exit.95(ptr, i8, ptr) #0 declare void @exit.74(ptr, i8, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @assert.96(ptr, i1, ptr, ptr) #0 declare void @assert.75(ptr, i1, ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare ptr @_NSGetArgv() #0 declare ptr @_NSGetArgv() #0
@@ -1303,97 +1240,97 @@ declare ptr @Parsed.value_of(ptr, ptr, ptr) #0
declare i1 @is_long_flag(ptr, ptr) #0 declare i1 @is_long_flag(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @parse.97(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.76(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 ; Function Attrs: nounwind
declare i32 @open.98(ptr, i32, ...) #0 declare i32 @open.77(ptr, i32, ...) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i32 @close.99(i32) #0 declare i32 @close.78(i32) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i64 @read.100(i32, ptr, i64) #0 declare i64 @read.79(i32, ptr, i64) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i64 @lseek.101(i32, i64, i32) #0 declare i64 @lseek.80(i32, i64, i32) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i32 @unlink.102(ptr) #0 declare i32 @unlink.81(ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i32 @rmdir.103(ptr) #0 declare i32 @rmdir.82(ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i32 @mkdir.104(ptr, i32) #0 declare i32 @mkdir.83(ptr, i32) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i32 @access.105(ptr, i32) #0 declare i32 @access.84(ptr, i32) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i32 @chmod.106(ptr, i32) #0 declare i32 @chmod.85(ptr, i32) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i32 @rename.107(ptr, ptr) #0 declare i32 @rename.86(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i1 @File.is_valid.108(ptr, ptr) #0 declare i1 @File.is_valid.87(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i1 @File.close.109(ptr, ptr) #0 declare i1 @File.close.88(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i64 @File.read.110(ptr, ptr, ptr) #0 declare i64 @File.read.89(ptr, ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i64 @File.write.111(ptr, ptr, ptr) #0 declare i64 @File.write.90(ptr, ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i64 @File.seek.112(ptr, ptr, i64, i64) #0 declare i64 @File.seek.91(ptr, ptr, i64, i64) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i32 @mode_to_flags.113(ptr, i64) #0 declare i32 @mode_to_flags.92(ptr, i64) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i64 @open_file.114(ptr, ptr, i64) #0 declare i64 @open_file.93(ptr, ptr, i64) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @read_file.115(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 declare void @read_file.94(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i1 @write_file.116(ptr, ptr, ptr) #0 declare i1 @write_file.95(ptr, ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i1 @append_file.117(ptr, ptr, ptr) #0 declare i1 @append_file.96(ptr, ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i1 @exists.118(ptr, ptr) #0 declare i1 @exists.97(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i1 @delete_file.119(ptr, ptr) #0 declare i1 @delete_file.98(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i1 @delete_dir.120(ptr, ptr) #0 declare i1 @delete_dir.99(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i1 @create_dir.121(ptr, ptr) #0 declare i1 @create_dir.100(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i1 @set_mode.122(ptr, ptr, i32) #0 declare i1 @set_mode.101(ptr, ptr, i32) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i1 @move.123(ptr, ptr, ptr) #0 declare i1 @move.102(ptr, ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i1 @create_dir_all.124(ptr, ptr) #0 declare i1 @create_dir_all.103(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i1 @copy_file.125(ptr, ptr, ptr) #0 declare i1 @copy_file.104(ptr, ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare ptr @basename.126(ptr, ptr) #0 declare ptr @basename.105(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare ptr @dirname.127(ptr, ptr) #0 declare ptr @dirname.106(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i64 @rotr(ptr, i64, i64) #0 declare i64 @rotr(ptr, i64, i64) #0
@@ -1432,7 +1369,7 @@ declare [64 x i8] @sha256_hex(ptr, ptr) #0
declare void @sha256_file(ptr sret({ [64 x i8], i1 }), ptr, ptr) #0 declare void @sha256_file(ptr sret({ [64 x i8], i1 }), ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @assert.128(ptr, i1) #0 declare void @assert.107(ptr, i1) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
define internal void @unused_jni(ptr %0, ptr %1, ptr %2) #0 { define internal void @unused_jni(ptr %0, ptr %1, ptr %2) #0 {
@@ -1461,7 +1398,7 @@ jni.miss: ; preds = %entry
store ptr %jni.global.cls, ptr @SX_JNI_CLS_getWindow____Ljava_lang_Object_, align 8 store ptr %jni.global.cls, ptr @SX_JNI_CLS_getWindow____Ljava_lang_Object_, align 8
%5 = getelementptr inbounds ptr, ptr %jni.ifs, i32 33 %5 = getelementptr inbounds ptr, ptr %jni.ifs, i32 33
%jni.GetMethodID = load ptr, ptr %5, align 8 %jni.GetMethodID = load ptr, ptr %5, align 8
%jni.fresh.mid = call ptr %jni.GetMethodID(ptr %load, ptr %jni.global.cls, ptr @str.144, ptr @str.145) %jni.fresh.mid = call ptr %jni.GetMethodID(ptr %load, ptr %jni.global.cls, ptr @str.123, ptr @str.124)
store ptr %jni.fresh.mid, ptr @SX_JNI_MID_getWindow____Ljava_lang_Object_, align 8 store ptr %jni.fresh.mid, ptr @SX_JNI_MID_getWindow____Ljava_lang_Object_, align 8
br label %jni.cont br label %jni.cont
@@ -1514,14 +1451,14 @@ declare void @sx_jni_env_tl_set(ptr) #0
define internal void @print__ct_sbdbafa1a5fe828c0__pack(ptr %0) #0 { define internal void @print__ct_sbdbafa1a5fe828c0__pack(ptr %0) #0 {
entry: entry:
%alloca = alloca { ptr, i64 }, align 8 %alloca = alloca { ptr, i64 }, align 8
store { ptr, i64 } { ptr @str.146, i64 3 }, ptr %alloca, align 8 store { ptr, i64 } { ptr @str.125, i64 3 }, ptr %alloca, align 8
%allocaN = alloca { ptr, i64 }, align 8 %allocaN = alloca { ptr, i64 }, align 8
%gep = getelementptr inbounds { ptr, i64 }, ptr %allocaN, i32 0, i32 0 %gep = getelementptr inbounds { ptr, i64 }, ptr %allocaN, i32 0, i32 0
store ptr null, ptr %gep, align 8 store ptr null, ptr %gep, align 8
%gepN = getelementptr inbounds { ptr, i64 }, ptr %allocaN, i32 0, i32 1 %gepN = getelementptr inbounds { ptr, i64 }, ptr %allocaN, i32 0, i32 1
store i64 0, ptr %gepN, align 8 store i64 0, ptr %gepN, align 8
%allocaN = alloca { ptr, i64 }, align 8 %allocaN = alloca { ptr, i64 }, align 8
store { ptr, i64 } { ptr @str.147, i64 0 }, ptr %allocaN, align 8 store { ptr, i64 } { ptr @str.126, i64 0 }, ptr %allocaN, align 8
%load = load { ptr, i64 }, ptr %allocaN, align 8 %load = load { ptr, i64 }, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %alloca, align 8 %loadN = load { ptr, i64 }, ptr %alloca, align 8
%call = call { ptr, i64 } @substr(ptr %0, { ptr, i64 } %loadN, i64 0, i64 3) %call = call { ptr, i64 } @substr(ptr %0, { ptr, i64 } %loadN, i64 0, i64 3)
@@ -1537,6 +1474,6 @@ entry:
; Function Attrs: nounwind ; Function Attrs: nounwind
define internal { ptr, i64 } @__insert_0(ptr %0) #0 { define internal { ptr, i64 } @__insert_0(ptr %0) #0 {
entry: entry:
%call = call { ptr, i64 } @build_format(ptr %0, { ptr, i64 } { ptr @str.148, i64 3 }) %call = call { ptr, i64 } @build_format(ptr %0, { ptr, i64 } { ptr @str.127, i64 3 })
ret { ptr, i64 } %call ret { ptr, i64 } %call
} }

View File

@@ -2,28 +2,28 @@
@g_should_call = internal global i1 false @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 } @__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 = private unnamed_addr constant [2 x i8] c"0\00", align 1
@str.129 = private unnamed_addr constant [15 x i8] c"result := \22\22; \00", align 1 @str.108 = private unnamed_addr constant [15 x i8] c"result := \22\22; \00", align 1
@str.130 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1 @str.109 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1
@str.131 = private unnamed_addr constant [3 x i8] c", \00", align 1 @str.110 = private unnamed_addr constant [3 x i8] c", \00", align 1
@str.132 = private unnamed_addr constant [5 x i8] c")); \00", align 1 @str.111 = private unnamed_addr constant [5 x i8] c")); \00", align 1
@str.133 = private unnamed_addr constant [44 x i8] c"result = concat(result, any_to_string(args[\00", align 1 @str.112 = private unnamed_addr constant [44 x i8] c"result = concat(result, any_to_string(args[\00", align 1
@str.134 = private unnamed_addr constant [6 x i8] c"])); \00", align 1 @str.113 = private unnamed_addr constant [6 x i8] c"])); \00", align 1
@str.135 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1 @str.114 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1
@str.136 = private unnamed_addr constant [3 x i8] c", \00", align 1 @str.115 = private unnamed_addr constant [3 x i8] c", \00", align 1
@str.137 = private unnamed_addr constant [5 x i8] c")); \00", align 1 @str.116 = private unnamed_addr constant [5 x i8] c")); \00", align 1
@str.138 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1 @str.117 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1
@str.139 = private unnamed_addr constant [3 x i8] c", \00", align 1 @str.118 = private unnamed_addr constant [3 x i8] c", \00", align 1
@str.140 = private unnamed_addr constant [5 x i8] c")); \00", align 1 @str.119 = private unnamed_addr constant [5 x i8] c")); \00", align 1
@str.141 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1 @str.120 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1
@str.142 = private unnamed_addr constant [3 x i8] c", \00", align 1 @str.121 = private unnamed_addr constant [3 x i8] c", \00", align 1
@str.143 = private unnamed_addr constant [5 x i8] c")); \00", align 1 @str.122 = private unnamed_addr constant [5 x i8] c")); \00", align 1
@str.144 = private unnamed_addr constant [5 x i8] c"noop\00", align 1 @str.123 = 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.124 = private unnamed_addr constant [4 x i8] c"()V\00", align 1
@SX_JNI_CLS_noop____V = internal global ptr null @SX_JNI_CLS_noop____V = internal global ptr null
@SX_JNI_MID_noop____V = internal global ptr null @SX_JNI_MID_noop____V = internal global ptr null
@str.146 = private unnamed_addr constant [4 x i8] c"ok\0A\00", align 1 @str.125 = 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.126 = 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 @str.127 = private unnamed_addr constant [4 x i8] c"ok\0A\00", align 1
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @out(ptr) #0 declare void @out(ptr) #0
@@ -253,7 +253,7 @@ entry:
%alloca = alloca { ptr, i64 }, align 8 %alloca = alloca { ptr, i64 }, align 8
store { ptr, i64 } %1, ptr %alloca, align 8 store { ptr, i64 } %1, ptr %alloca, align 8
%allocaN = alloca { ptr, i64 }, align 8 %allocaN = alloca { ptr, i64 }, align 8
store { ptr, i64 } { ptr @str.129, i64 14 }, ptr %allocaN, align 8 store { ptr, i64 } { ptr @str.108, i64 14 }, ptr %allocaN, align 8
%allocaN = alloca i64, align 8 %allocaN = alloca i64, align 8
store i64 0, ptr %allocaN, align 8 store i64 0, ptr %allocaN, align 8
%allocaN = alloca i64, align 8 %allocaN = alloca i64, align 8
@@ -349,7 +349,7 @@ if.merge.13: ; preds = %if.merge.27, %if.me
if.then.14: ; preds = %if.then.11 if.then.14: ; preds = %if.then.11
%loadN = load { ptr, i64 }, ptr %allocaN, align 8 %loadN = load { ptr, i64 }, ptr %allocaN, align 8
%call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.130, i64 36 }) %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.109, i64 36 })
store { ptr, i64 } %call, ptr %allocaN, align 8 store { ptr, i64 } %call, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %allocaN, align 8 %loadN = load { ptr, i64 }, ptr %allocaN, align 8
%loadN = load i64, ptr %allocaN, align 8 %loadN = load i64, ptr %allocaN, align 8
@@ -357,7 +357,7 @@ if.then.14: ; preds = %if.then.11
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN) %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN)
store { ptr, i64 } %callN, ptr %allocaN, align 8 store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, 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.131, i64 2 }) %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.110, i64 2 })
store { ptr, i64 } %callN, ptr %allocaN, align 8 store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %allocaN, align 8 %loadN = load { ptr, i64 }, ptr %allocaN, align 8
%loadN = load i64, ptr %allocaN, align 8 %loadN = load i64, ptr %allocaN, align 8
@@ -367,13 +367,13 @@ if.then.14: ; preds = %if.then.11
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN) %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN)
store { ptr, i64 } %callN, ptr %allocaN, align 8 store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, 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 4 }) %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.111, i64 4 })
store { ptr, i64 } %callN, ptr %allocaN, align 8 store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %if.merge.15 br label %if.merge.15
if.merge.15: ; preds = %if.then.14, %if.then.11 if.merge.15: ; preds = %if.then.14, %if.then.11
%loadN = load { ptr, i64 }, 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 43 }) %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.112, i64 43 })
store { ptr, i64 } %callN, ptr %allocaN, align 8 store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %allocaN, align 8 %loadN = load { ptr, i64 }, ptr %allocaN, align 8
%loadN = load i64, ptr %allocaN, align 8 %loadN = load i64, ptr %allocaN, align 8
@@ -381,7 +381,7 @@ if.merge.15: ; preds = %if.then.14, %if.the
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN) %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN)
store { ptr, i64 } %callN, ptr %allocaN, align 8 store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, 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.134, i64 5 }) %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.113, i64 5 })
store { ptr, i64 } %callN, ptr %allocaN, align 8 store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load i64, ptr %allocaN, align 8 %loadN = load i64, ptr %allocaN, align 8
%addN = add i64 %loadN, 1 %addN = add i64 %loadN, 1
@@ -395,7 +395,7 @@ if.merge.15: ; preds = %if.then.14, %if.the
if.then.25: ; preds = %if.else.12 if.then.25: ; preds = %if.else.12
%loadN = load { ptr, i64 }, 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 36 }) %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.114, i64 36 })
store { ptr, i64 } %callN, ptr %allocaN, align 8 store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %allocaN, align 8 %loadN = load { ptr, i64 }, ptr %allocaN, align 8
%loadN = load i64, ptr %allocaN, align 8 %loadN = load i64, ptr %allocaN, align 8
@@ -403,7 +403,7 @@ if.then.25: ; preds = %if.else.12
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN) %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN)
store { ptr, i64 } %callN, ptr %allocaN, align 8 store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, 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 2 }) %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.115, i64 2 })
store { ptr, i64 } %callN, ptr %allocaN, align 8 store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %allocaN, align 8 %loadN = load { ptr, i64 }, ptr %allocaN, align 8
%loadN = load i64, ptr %allocaN, align 8 %loadN = load i64, ptr %allocaN, align 8
@@ -414,7 +414,7 @@ if.then.25: ; preds = %if.else.12
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN) %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN)
store { ptr, i64 } %callN, ptr %allocaN, align 8 store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, 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.137, i64 4 }) %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.116, i64 4 })
store { ptr, i64 } %callN, ptr %allocaN, align 8 store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load i64, ptr %allocaN, align 8 %loadN = load i64, ptr %allocaN, align 8
%addN = add i64 %loadN, 2 %addN = add i64 %loadN, 2
@@ -471,7 +471,7 @@ if.merge.33: ; preds = %if.merge.36, %if.el
if.then.34: ; preds = %if.then.31 if.then.34: ; preds = %if.then.31
%loadN = load { ptr, i64 }, 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 36 }) %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.117, i64 36 })
store { ptr, i64 } %callN, ptr %allocaN, align 8 store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %allocaN, align 8 %loadN = load { ptr, i64 }, ptr %allocaN, align 8
%loadN = load i64, ptr %allocaN, align 8 %loadN = load i64, ptr %allocaN, align 8
@@ -479,7 +479,7 @@ if.then.34: ; preds = %if.then.31
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN) %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN)
store { ptr, i64 } %callN, ptr %allocaN, align 8 store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, 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 2 }) %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.118, i64 2 })
store { ptr, i64 } %callN, ptr %allocaN, align 8 store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %allocaN, align 8 %loadN = load { ptr, i64 }, ptr %allocaN, align 8
%loadN = load i64, ptr %allocaN, align 8 %loadN = load i64, ptr %allocaN, align 8
@@ -490,7 +490,7 @@ if.then.34: ; preds = %if.then.31
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN) %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN)
store { ptr, i64 } %callN, ptr %allocaN, align 8 store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, 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.140, i64 4 }) %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.119, i64 4 })
store { ptr, i64 } %callN, ptr %allocaN, align 8 store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load i64, ptr %allocaN, align 8 %loadN = load i64, ptr %allocaN, align 8
%addN = add i64 %loadN, 2 %addN = add i64 %loadN, 2
@@ -510,7 +510,7 @@ if.merge.36: ; preds = %if.else.35, %if.the
if.then.37: ; preds = %while.exit.4 if.then.37: ; preds = %while.exit.4
%loadN = load { ptr, i64 }, 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.141, i64 36 }) %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.120, i64 36 })
store { ptr, i64 } %callN, ptr %allocaN, align 8 store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %allocaN, align 8 %loadN = load { ptr, i64 }, ptr %allocaN, align 8
%loadN = load i64, ptr %allocaN, align 8 %loadN = load i64, ptr %allocaN, align 8
@@ -518,7 +518,7 @@ if.then.37: ; preds = %while.exit.4
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN) %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN)
store { ptr, i64 } %callN, ptr %allocaN, align 8 store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, 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.142, i64 2 }) %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.121, i64 2 })
store { ptr, i64 } %callN, ptr %allocaN, align 8 store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %allocaN, align 8 %loadN = load { ptr, i64 }, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %alloca, align 8 %loadN = load { ptr, i64 }, ptr %alloca, align 8
@@ -529,7 +529,7 @@ if.then.37: ; preds = %while.exit.4
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN) %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN)
store { ptr, i64 } %callN, ptr %allocaN, align 8 store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, 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.143, i64 4 }) %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.122, i64 4 })
store { ptr, i64 } %callN, ptr %allocaN, align 8 store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %if.merge.38 br label %if.merge.38
@@ -622,69 +622,6 @@ declare ptr @TrackingAllocator.alloc_bytes(ptr, ptr, i64) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @TrackingAllocator.dealloc_bytes(ptr, ptr, ptr) #0 declare void @TrackingAllocator.dealloc_bytes(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare ptr @mem_realloc.3(ptr, ptr, ptr, i64, i64, i64) #0
; Function Attrs: nounwind
declare ptr @CAllocator.alloc_bytes.4(ptr, ptr, i64) #0
; Function Attrs: nounwind
declare void @CAllocator.dealloc_bytes.5(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare i64 @GPA.init.6(ptr) #0
; Function Attrs: nounwind
declare ptr @GPA.alloc_bytes.7(ptr, ptr, i64) #0
; Function Attrs: nounwind
declare void @GPA.dealloc_bytes.8(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare void @Arena.add_chunk.9(ptr, ptr, i64) #0
; Function Attrs: nounwind
declare void @Arena.init.10(ptr sret({ ptr, i64, { ptr, ptr, ptr } }), ptr, ptr, i64) #0
; Function Attrs: nounwind
declare void @Arena.reset.11(ptr, ptr) #0
; Function Attrs: nounwind
declare void @Arena.deinit.12(ptr, ptr) #0
; Function Attrs: nounwind
declare ptr @Arena.alloc_bytes.13(ptr, ptr, i64) #0
; Function Attrs: nounwind
declare void @Arena.dealloc_bytes.14(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare void @BufAlloc.init.15(ptr sret({ ptr, i64, i64 }), ptr, ptr, i64) #0
; Function Attrs: nounwind
declare void @BufAlloc.reset.16(ptr, ptr) #0
; Function Attrs: nounwind
declare ptr @BufAlloc.alloc_bytes.17(ptr, ptr, i64) #0
; Function Attrs: nounwind
declare void @BufAlloc.dealloc_bytes.18(ptr, ptr, ptr) #0
; Function Attrs: nounwind
declare void @TrackingAllocator.init.19(ptr sret({ { ptr, ptr, ptr }, i64, i64, i64 }), ptr, ptr) #0
; Function Attrs: nounwind
declare i64 @TrackingAllocator.leak_count.20(ptr, ptr) #0
; Function Attrs: nounwind
declare void @TrackingAllocator.report.21(ptr, ptr) #0
; Function Attrs: nounwind
declare ptr @TrackingAllocator.alloc_bytes.22(ptr, ptr, i64) #0
; Function Attrs: nounwind
declare void @TrackingAllocator.dealloc_bytes.23(ptr, ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare ptr @escape(ptr, ptr) #0 declare ptr @escape(ptr, ptr) #0
@@ -859,166 +796,166 @@ declare i32 @listen(i32, i32) #0
declare i32 @accept(i32, ptr, ptr) #0 declare i32 @accept(i32, ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i64 @read.24(i32, ptr, i64) #0 declare i64 @read.3(i32, ptr, i64) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i32 @close.25(i32) #0 declare i32 @close.4(i32) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i16 @htons(ptr, i64) #0 declare i16 @htons(ptr, i64) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare ptr @mem_realloc.26(ptr, ptr, ptr, i64, i64, i64) #0 declare ptr @mem_realloc.5(ptr, ptr, ptr, i64, i64, i64) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare ptr @CAllocator.alloc_bytes.27(ptr, ptr, i64) #0 declare ptr @CAllocator.alloc_bytes.6(ptr, ptr, i64) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @CAllocator.dealloc_bytes.28(ptr, ptr, ptr) #0 declare void @CAllocator.dealloc_bytes.7(ptr, ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i64 @GPA.init.29(ptr) #0 declare i64 @GPA.init.8(ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare ptr @GPA.alloc_bytes.30(ptr, ptr, i64) #0 declare ptr @GPA.alloc_bytes.9(ptr, ptr, i64) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @GPA.dealloc_bytes.31(ptr, ptr, ptr) #0 declare void @GPA.dealloc_bytes.10(ptr, ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @Arena.add_chunk.32(ptr, ptr, i64) #0 declare void @Arena.add_chunk.11(ptr, ptr, i64) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @Arena.init.33(ptr sret({ ptr, i64, { ptr, ptr, ptr } }), ptr, ptr, i64) #0 declare void @Arena.init.12(ptr sret({ ptr, i64, { ptr, ptr, ptr } }), ptr, ptr, i64) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @Arena.reset.34(ptr, ptr) #0 declare void @Arena.reset.13(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @Arena.deinit.35(ptr, ptr) #0 declare void @Arena.deinit.14(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare ptr @Arena.alloc_bytes.36(ptr, ptr, i64) #0 declare ptr @Arena.alloc_bytes.15(ptr, ptr, i64) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @Arena.dealloc_bytes.37(ptr, ptr, ptr) #0 declare void @Arena.dealloc_bytes.16(ptr, ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @BufAlloc.init.38(ptr sret({ ptr, i64, i64 }), ptr, ptr, i64) #0 declare void @BufAlloc.init.17(ptr sret({ ptr, i64, i64 }), ptr, ptr, i64) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @BufAlloc.reset.39(ptr, ptr) #0 declare void @BufAlloc.reset.18(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare ptr @BufAlloc.alloc_bytes.40(ptr, ptr, i64) #0 declare ptr @BufAlloc.alloc_bytes.19(ptr, ptr, i64) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @BufAlloc.dealloc_bytes.41(ptr, ptr, ptr) #0 declare void @BufAlloc.dealloc_bytes.20(ptr, ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @TrackingAllocator.init.42(ptr sret({ { ptr, ptr, ptr }, i64, i64, i64 }), ptr, ptr) #0 declare void @TrackingAllocator.init.21(ptr sret({ { ptr, ptr, ptr }, i64, i64, i64 }), ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i64 @TrackingAllocator.leak_count.43(ptr, ptr) #0 declare i64 @TrackingAllocator.leak_count.22(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @TrackingAllocator.report.44(ptr, ptr) #0 declare void @TrackingAllocator.report.23(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare ptr @TrackingAllocator.alloc_bytes.45(ptr, ptr, i64) #0 declare ptr @TrackingAllocator.alloc_bytes.24(ptr, ptr, i64) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @TrackingAllocator.dealloc_bytes.46(ptr, ptr, ptr) #0 declare void @TrackingAllocator.dealloc_bytes.25(ptr, ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i32 @open.47(ptr, i32, ...) #0 declare i32 @open.26(ptr, i32, ...) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i32 @close.48(i32) #0 declare i32 @close.27(i32) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i64 @read.49(i32, ptr, i64) #0 declare i64 @read.28(i32, ptr, i64) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i64 @lseek.50(i32, i64, i32) #0 declare i64 @lseek.29(i32, i64, i32) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i32 @unlink.51(ptr) #0 declare i32 @unlink.30(ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i32 @rmdir.52(ptr) #0 declare i32 @rmdir.31(ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i32 @mkdir.53(ptr, i32) #0 declare i32 @mkdir.32(ptr, i32) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i32 @access.54(ptr, i32) #0 declare i32 @access.33(ptr, i32) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i32 @chmod.55(ptr, i32) #0 declare i32 @chmod.34(ptr, i32) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i32 @rename.56(ptr, ptr) #0 declare i32 @rename.35(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i1 @File.is_valid.57(ptr, ptr) #0 declare i1 @File.is_valid.36(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i1 @File.close.58(ptr, ptr) #0 declare i1 @File.close.37(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i64 @File.read.59(ptr, ptr, ptr) #0 declare i64 @File.read.38(ptr, ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i64 @File.write.60(ptr, ptr, ptr) #0 declare i64 @File.write.39(ptr, ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i64 @File.seek.61(ptr, ptr, i64, i64) #0 declare i64 @File.seek.40(ptr, ptr, i64, i64) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i32 @mode_to_flags.62(ptr, i64) #0 declare i32 @mode_to_flags.41(ptr, i64) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i64 @open_file.63(ptr, ptr, i64) #0 declare i64 @open_file.42(ptr, ptr, i64) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @read_file.64(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 declare void @read_file.43(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i1 @write_file.65(ptr, ptr, ptr) #0 declare i1 @write_file.44(ptr, ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i1 @append_file.66(ptr, ptr, ptr) #0 declare i1 @append_file.45(ptr, ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i1 @exists.67(ptr, ptr) #0 declare i1 @exists.46(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i1 @delete_file.68(ptr, ptr) #0 declare i1 @delete_file.47(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i1 @delete_dir.69(ptr, ptr) #0 declare i1 @delete_dir.48(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i1 @create_dir.70(ptr, ptr) #0 declare i1 @create_dir.49(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i1 @set_mode.71(ptr, ptr, i32) #0 declare i1 @set_mode.50(ptr, ptr, i32) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i1 @move.72(ptr, ptr, ptr) #0 declare i1 @move.51(ptr, ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i1 @create_dir_all.73(ptr, ptr) #0 declare i1 @create_dir_all.52(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i1 @copy_file.74(ptr, ptr, ptr) #0 declare i1 @copy_file.53(ptr, ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare ptr @basename.75(ptr, ptr) #0 declare ptr @basename.54(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare ptr @dirname.76(ptr, ptr) #0 declare ptr @dirname.55(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @Array.add(ptr, ptr, ptr, ptr) #0 declare void @Array.add(ptr, ptr, ptr, ptr) #0
@@ -1216,64 +1153,64 @@ declare ptr @BuildOptions.jni_main_java_source_at(i64, i64) #0
declare i64 @build_options() #0 declare i64 @build_options() #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare ptr @spaces.77(ptr, i32) #0 declare ptr @spaces.56(ptr, i32) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i32 @sx_trace_len.78() #0 declare i32 @sx_trace_len.57() #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i32 @sx_trace_truncated.79() #0 declare i32 @sx_trace_truncated.58() #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i64 @sx_trace_frame_at.80(i32) #0 declare i64 @sx_trace_frame_at.59(i32) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare ptr @to_string.81(ptr) #0 declare ptr @to_string.60(ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @print_current.82(ptr) #0 declare void @print_current.61(ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @print_interpreter_frames.83(ptr) #0 declare void @print_interpreter_frames.62(ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare ptr @popen.84(ptr, ptr) #0 declare ptr @popen.63(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i32 @pclose.85(ptr) #0 declare i32 @pclose.64(ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i64 @fread.86(ptr, i64, i64, ptr) #0 declare i64 @fread.65(ptr, i64, i64, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i32 @feof.87(ptr) #0 declare i32 @feof.66(ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare ptr @getenv.88(ptr) #0 declare ptr @getenv.67(ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i64 @strlen.89(ptr) #0 declare i64 @strlen.68(ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i32 @system.90(ptr) #0 declare i32 @system.69(ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @run.91(ptr sret({ { i32, { ptr, i64 } }, i1 }), ptr, ptr) #0 declare void @run.70(ptr sret({ { i32, { ptr, i64 } }, i1 }), ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @env.92(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 declare void @env.71(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @find_executable.93(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 declare void @find_executable.72(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @_exit.94(i32) #0 declare void @_exit.73(i32) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @exit.95(ptr, i8, ptr) #0 declare void @exit.74(ptr, i8, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @assert.96(ptr, i1, ptr, ptr) #0 declare void @assert.75(ptr, i1, ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare ptr @_NSGetArgv() #0 declare ptr @_NSGetArgv() #0
@@ -1303,97 +1240,97 @@ declare ptr @Parsed.value_of(ptr, ptr, ptr) #0
declare i1 @is_long_flag(ptr, ptr) #0 declare i1 @is_long_flag(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @parse.97(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.76(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 ; Function Attrs: nounwind
declare i32 @open.98(ptr, i32, ...) #0 declare i32 @open.77(ptr, i32, ...) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i32 @close.99(i32) #0 declare i32 @close.78(i32) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i64 @read.100(i32, ptr, i64) #0 declare i64 @read.79(i32, ptr, i64) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i64 @lseek.101(i32, i64, i32) #0 declare i64 @lseek.80(i32, i64, i32) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i32 @unlink.102(ptr) #0 declare i32 @unlink.81(ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i32 @rmdir.103(ptr) #0 declare i32 @rmdir.82(ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i32 @mkdir.104(ptr, i32) #0 declare i32 @mkdir.83(ptr, i32) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i32 @access.105(ptr, i32) #0 declare i32 @access.84(ptr, i32) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i32 @chmod.106(ptr, i32) #0 declare i32 @chmod.85(ptr, i32) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i32 @rename.107(ptr, ptr) #0 declare i32 @rename.86(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i1 @File.is_valid.108(ptr, ptr) #0 declare i1 @File.is_valid.87(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i1 @File.close.109(ptr, ptr) #0 declare i1 @File.close.88(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i64 @File.read.110(ptr, ptr, ptr) #0 declare i64 @File.read.89(ptr, ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i64 @File.write.111(ptr, ptr, ptr) #0 declare i64 @File.write.90(ptr, ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i64 @File.seek.112(ptr, ptr, i64, i64) #0 declare i64 @File.seek.91(ptr, ptr, i64, i64) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i32 @mode_to_flags.113(ptr, i64) #0 declare i32 @mode_to_flags.92(ptr, i64) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i64 @open_file.114(ptr, ptr, i64) #0 declare i64 @open_file.93(ptr, ptr, i64) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @read_file.115(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 declare void @read_file.94(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i1 @write_file.116(ptr, ptr, ptr) #0 declare i1 @write_file.95(ptr, ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i1 @append_file.117(ptr, ptr, ptr) #0 declare i1 @append_file.96(ptr, ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i1 @exists.118(ptr, ptr) #0 declare i1 @exists.97(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i1 @delete_file.119(ptr, ptr) #0 declare i1 @delete_file.98(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i1 @delete_dir.120(ptr, ptr) #0 declare i1 @delete_dir.99(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i1 @create_dir.121(ptr, ptr) #0 declare i1 @create_dir.100(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i1 @set_mode.122(ptr, ptr, i32) #0 declare i1 @set_mode.101(ptr, ptr, i32) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i1 @move.123(ptr, ptr, ptr) #0 declare i1 @move.102(ptr, ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i1 @create_dir_all.124(ptr, ptr) #0 declare i1 @create_dir_all.103(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i1 @copy_file.125(ptr, ptr, ptr) #0 declare i1 @copy_file.104(ptr, ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare ptr @basename.126(ptr, ptr) #0 declare ptr @basename.105(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare ptr @dirname.127(ptr, ptr) #0 declare ptr @dirname.106(ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare i64 @rotr(ptr, i64, i64) #0 declare i64 @rotr(ptr, i64, i64) #0
@@ -1432,7 +1369,7 @@ declare [64 x i8] @sha256_hex(ptr, ptr) #0
declare void @sha256_file(ptr sret({ [64 x i8], i1 }), ptr, ptr) #0 declare void @sha256_file(ptr sret({ [64 x i8], i1 }), ptr, ptr) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
declare void @assert.128(ptr, i1) #0 declare void @assert.107(ptr, i1) #0
; Function Attrs: nounwind ; Function Attrs: nounwind
define internal void @unused_jni(ptr %0, ptr %1, ptr %2) #0 { define internal void @unused_jni(ptr %0, ptr %1, ptr %2) #0 {
@@ -1460,7 +1397,7 @@ jni.miss: ; preds = %entry
store ptr %jni.global.cls, ptr @SX_JNI_CLS_noop____V, align 8 store ptr %jni.global.cls, ptr @SX_JNI_CLS_noop____V, align 8
%5 = getelementptr inbounds ptr, ptr %jni.ifs, i32 33 %5 = getelementptr inbounds ptr, ptr %jni.ifs, i32 33
%jni.GetMethodID = load ptr, ptr %5, align 8 %jni.GetMethodID = load ptr, ptr %5, align 8
%jni.fresh.mid = call ptr %jni.GetMethodID(ptr %load, ptr %jni.global.cls, ptr @str.144, ptr @str.145) %jni.fresh.mid = call ptr %jni.GetMethodID(ptr %load, ptr %jni.global.cls, ptr @str.123, ptr @str.124)
store ptr %jni.fresh.mid, ptr @SX_JNI_MID_noop____V, align 8 store ptr %jni.fresh.mid, ptr @SX_JNI_MID_noop____V, align 8
br label %jni.cont br label %jni.cont
@@ -1512,14 +1449,14 @@ declare void @sx_jni_env_tl_set(ptr) #0
define internal void @print__ct_sbdbafa1a5fe828c0__pack(ptr %0) #0 { define internal void @print__ct_sbdbafa1a5fe828c0__pack(ptr %0) #0 {
entry: entry:
%alloca = alloca { ptr, i64 }, align 8 %alloca = alloca { ptr, i64 }, align 8
store { ptr, i64 } { ptr @str.146, i64 3 }, ptr %alloca, align 8 store { ptr, i64 } { ptr @str.125, i64 3 }, ptr %alloca, align 8
%allocaN = alloca { ptr, i64 }, align 8 %allocaN = alloca { ptr, i64 }, align 8
%gep = getelementptr inbounds { ptr, i64 }, ptr %allocaN, i32 0, i32 0 %gep = getelementptr inbounds { ptr, i64 }, ptr %allocaN, i32 0, i32 0
store ptr null, ptr %gep, align 8 store ptr null, ptr %gep, align 8
%gepN = getelementptr inbounds { ptr, i64 }, ptr %allocaN, i32 0, i32 1 %gepN = getelementptr inbounds { ptr, i64 }, ptr %allocaN, i32 0, i32 1
store i64 0, ptr %gepN, align 8 store i64 0, ptr %gepN, align 8
%allocaN = alloca { ptr, i64 }, align 8 %allocaN = alloca { ptr, i64 }, align 8
store { ptr, i64 } { ptr @str.147, i64 0 }, ptr %allocaN, align 8 store { ptr, i64 } { ptr @str.126, i64 0 }, ptr %allocaN, align 8
%load = load { ptr, i64 }, ptr %allocaN, align 8 %load = load { ptr, i64 }, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %alloca, align 8 %loadN = load { ptr, i64 }, ptr %alloca, align 8
%call = call { ptr, i64 } @substr(ptr %0, { ptr, i64 } %loadN, i64 0, i64 3) %call = call { ptr, i64 } @substr(ptr %0, { ptr, i64 } %loadN, i64 0, i64 3)
@@ -1535,6 +1472,6 @@ entry:
; Function Attrs: nounwind ; Function Attrs: nounwind
define internal { ptr, i64 } @__insert_0(ptr %0) #0 { define internal { ptr, i64 } @__insert_0(ptr %0) #0 {
entry: entry:
%call = call { ptr, i64 } @build_format(ptr %0, { ptr, i64 } { ptr @str.148, i64 3 }) %call = call { ptr, i64 } @build_format(ptr %0, { ptr, i64 } { ptr @str.127, i64 3 })
ret { ptr, i64 } %call ret { ptr, i64 } %call
} }

View File

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

View File

@@ -11,8 +11,6 @@ core :: #import "modules/std/core.sx";
fmt :: #import "modules/std/fmt.sx"; fmt :: #import "modules/std/fmt.sx";
list :: #import "modules/std/list.sx"; list :: #import "modules/std/list.sx";
#import "modules/std/mem.sx";
// --- core: builtins, libc escape hatch, compiler-resolved types --- // --- core: builtins, libc escape hatch, compiler-resolved types ---
// (`string` has no alias here: it is a reserved type name — its #builtin // (`string` has no alias here: it is a reserved type name — its #builtin
// declaration in core.sx resolves program-wide and cannot be re-bound.) // declaration in core.sx resolves program-wide and cannot be re-bound.)