authorgravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2021-04-19 16:23:05-07:00
committergravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2021-04-19 16:23:05-07:00
loga136c093bf7a48398e36a73e91213f93a4efc503
treefa26c8e4b0449fd03d3e4b9df92481aae0eb9b66
parent7f931a75229b4d6b9d07a7485bfc1726a92fc591

zig astgen: print instruction counts and byte sizes


1 files changed, 23 insertions(+), 0 deletions(-)

src/main.zig+23
...@@ -3560,6 +3560,29 @@ pub fn cmdAstgen(...@@ -3560,6 +3560,29 @@ pub fn cmdAstgen(
3560 file.zir_loaded = true;3560 file.zir_loaded = true;
3561 defer file.zir.deinit(gpa);3561 defer file.zir.deinit(gpa);
35623562
3563 {
3564 const instruction_bytes = file.zir.instructions.len *
3565 (@sizeOf(Zir.Inst.Tag) + @sizeOf(Zir.Inst.Data));
3566 const extra_bytes = file.zir.extra.len * @sizeOf(u32);
3567 const total_bytes = @sizeOf(Zir) + instruction_bytes + extra_bytes +
3568 file.zir.string_bytes.len * @sizeOf(u8);
3569 const stdout = io.getStdOut();
3570 try stdout.writer().print(
3571 \\# Total bytes: {}
3572 \\# Instructions: {d} ({})
3573 \\# String Table Bytes: {}
3574 \\# Extra Data Items: {d} ({})
3575 \\
3576 , .{
3577 std.fmt.fmtIntSizeBin(total_bytes),
3578 file.zir.instructions.len,
3579 std.fmt.fmtIntSizeBin(instruction_bytes),
3580 std.fmt.fmtIntSizeBin(file.zir.string_bytes.len),
3581 file.zir.extra.len,
3582 std.fmt.fmtIntSizeBin(extra_bytes),
3583 });
3584 }
3585
3563 if (file.zir.hasCompileErrors()) {3586 if (file.zir.hasCompileErrors()) {
3564 var errors = std.ArrayList(Compilation.AllErrors.Message).init(arena);3587 var errors = std.ArrayList(Compilation.AllErrors.Message).init(arena);
3565 try Compilation.AllErrors.addZir(arena, &errors, &file, source);3588 try Compilation.AllErrors.addZir(arena, &errors, &file, source);