Files
sx/examples/expected/1425-ffi-jni-main-03-ctor.ir
agra 330c3aeef7 std: full namespace tail — fs/process/socket/json/cli/hash/test
With 0115's own-wins globals landed, the remaining tail modules join
std.sx: every '#import "modules/std.sx"' now carries mem/xml/log/fs/
process/socket/json/cli/hash/test as namespaces (trace stays a direct
import).

Enablers in the same change:
- emit: dead-global elimination — a plain-data global no instruction
  references is not emitted, so tail modules' data (hash's 64-entry K
  table, OS/ARCH/POINTER_SIZE) stays out of binaries that don't use it.
  Comptime-backed globals keep their #run evaluation. 37 pinned IR
  snapshots regenerated (dead globals dropped + string renumbering from
  the larger module).
- 1055/1056 stop pinning the global error-tag ordinal (it shifts with
  program composition); they assert nonzero + tag identity + name.
- specs/readme/CLAUDE.md tail docs updated.
2026-06-11 10:49:39 +03:00

1120 lines
29 KiB
Plaintext

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