struct time_report [src]

ABI bits specifically relating to the time report interface.

Members

Source

pub const time_report = struct { /// WebSocket server->client. /// /// Sent after a `Step` finishes, providing the time taken to execute the step. pub const GenericResult = extern struct { tag: ToClientTag = .time_report_generic_result, step_idx: u32 align(1), ns_total: u64 align(1), }; /// WebSocket server->client. /// /// Sent after a `Step.Compile` finishes, providing the step's time report. /// /// Trailing: /// * `llvm_pass_timings: [llvm_pass_timings_len]u8` (ASCII-encoded) /// * for each `files_len`: /// * `name` (null-terminated UTF-8 string) /// * for each `decls_len`: /// * `name` (null-terminated UTF-8 string) /// * `file: u32` (index of file this decl is in) /// * `sema_ns: u64` (nanoseconds spent semantically analyzing this decl) /// * `codegen_ns: u64` (nanoseconds spent semantically analyzing this decl) /// * `link_ns: u64` (nanoseconds spent semantically analyzing this decl) pub const CompileResult = extern struct { tag: ToClientTag = .time_report_compile_result, step_idx: u32 align(1), flags: Flags, stats: Stats align(1), ns_total: u64 align(1), llvm_pass_timings_len: u32 align(1), files_len: u32 align(1), decls_len: u32 align(1), pub const Flags = packed struct(u8) { use_llvm: bool, _: u7 = 0, }; pub const Stats = extern struct { n_reachable_files: u32, n_imported_files: u32, n_generic_instances: u32, n_inline_calls: u32, cpu_ns_parse: u64, cpu_ns_astgen: u64, cpu_ns_sema: u64, cpu_ns_codegen: u64, cpu_ns_link: u64, real_ns_files: u64, real_ns_decls: u64, real_ns_llvm_emit: u64, real_ns_link_flush: u64, pub const init: Stats = .{ .n_reachable_files = 0, .n_imported_files = 0, .n_generic_instances = 0, .n_inline_calls = 0, .cpu_ns_parse = 0, .cpu_ns_astgen = 0, .cpu_ns_sema = 0, .cpu_ns_codegen = 0, .cpu_ns_link = 0, .real_ns_files = 0, .real_ns_decls = 0, .real_ns_llvm_emit = 0, .real_ns_link_flush = 0, }; }; }; }