extern struct CompileResult [src]
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)
Fields
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)
Members
Source
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,
};
};
}