std: the prelude becomes a pure re-export facade — implementations move to std/core.sx, std/fmt.sx, std/list.sx

std.sx now contains only alias declarations (the re-export mechanism:
own decls carry one flat-import level) over three part-files: core.sx
(builtins, libc escape hatch, Source_Location/Allocator/Context/Into,
the reserved `string` decl — which needs and permits no alias), fmt.sx
(print/format/any_to_string/string ops/cstring/alloc_slice), list.sx
(List). The namespace tail is unchanged; the part-file namespaces
(core/fmt/list) carry alongside it. Consumer surface is byte-identical
— every bare prelude name resolves through the aliases (0120/0121
machinery). 37 .ir snapshots re-pinned: pure string-constant
renumbering from the changed import graph (digit-normalized diff is
empty). Gates: zig build test 426/426, suite 588/588, m3te 23/23,
game SxChess builds + bundles.
This commit is contained in:
agra
2026-06-11 19:25:49 +03:00
parent 340be402a5
commit 49a36bb492
43 changed files with 35649 additions and 35322 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

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

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load Diff

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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