aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorJakub Konka <kubkon@jakubkonka.com>2022-09-02 20:49:37 +0200
committerJakub Konka <kubkon@jakubkonka.com>2022-09-07 22:42:56 +0200
commit1d57b347e9aeddc2de33b1b77b331d36e4900425 (patch)
treec4ffa0e8511a99767813e3174b9690f52d468e15 /src
parentb9c31a8703fdd8297673aa65a1bdefd56cd13b77 (diff)
downloadzig-1d57b347e9aeddc2de33b1b77b331d36e4900425.tar.gz
zig-1d57b347e9aeddc2de33b1b77b331d36e4900425.zip
x86_64: clean up logging
Diffstat (limited to 'src')
-rw-r--r--src/arch/x86_64/CodeGen.zig20
1 files changed, 12 insertions, 8 deletions
diff --git a/src/arch/x86_64/CodeGen.zig b/src/arch/x86_64/CodeGen.zig
index 1164df4b19..bb6191af06 100644
--- a/src/arch/x86_64/CodeGen.zig
+++ b/src/arch/x86_64/CodeGen.zig
@@ -222,6 +222,14 @@ const Branch = struct {
try writer.writeAll("}");
}
+ fn format(branch: Branch, comptime unused_format_string: []const u8, options: std.fmt.FormatOptions, writer: anytype) !void {
+ _ = branch;
+ _ = unused_format_string;
+ _ = options;
+ _ = writer;
+ @compileError("do not format Branch directly; use ty.fmtDebug()");
+ }
+
fn fmtDebug(self: @This()) std.fmt.Formatter(fmt) {
return .{ .data = .{
.insts = self.inst_table.keys(),
@@ -823,7 +831,7 @@ fn genBody(self: *Self, body: []const Air.Inst.Index) InnerError!void {
fn processDeath(self: *Self, inst: Air.Inst.Index) void {
const air_tags = self.air.instructions.items(.tag);
if (air_tags[inst] == .constant) return; // Constants are immortal.
- log.debug(" (processing death of %{d})", .{inst});
+ log.debug("%{d} => {}", .{ inst, MCValue.dead });
// When editing this function, note that the logic must synchronize with `reuseOperand`.
const prev_value = self.getResolvedInstValue(inst);
const branch = &self.branch_stack.items[self.branch_stack.items.len - 1];
@@ -851,10 +859,8 @@ fn finishAirBookkeeping(self: *Self) void {
}
fn finishAir(self: *Self, inst: Air.Inst.Index, result: MCValue, operands: [Liveness.bpi - 1]Air.Inst.Ref) void {
- log.debug("finishAir: %{d}, {}, {any}", .{ inst, result, operands });
var tomb_bits = self.liveness.getTombBits(inst);
for (operands) |op| {
- log.debug(" (processing {})", .{op});
const dies = @truncate(u1, tomb_bits) != 0;
tomb_bits >>= 1;
if (!dies) continue;
@@ -865,7 +871,7 @@ fn finishAir(self: *Self, inst: Air.Inst.Index, result: MCValue, operands: [Live
}
const is_used = @truncate(u1, tomb_bits) == 0;
if (is_used) {
- log.debug(" (saving %{d} => {})", .{ inst, result });
+ log.debug("%{d} => {}", .{ inst, result });
const branch = &self.branch_stack.items[self.branch_stack.items.len - 1];
branch.inst_table.putAssumeCapacityNoClobber(inst, result);
@@ -4678,8 +4684,6 @@ fn airCondBr(self: *Self, inst: Air.Inst.Index) !void {
const reloc = try self.genCondBrMir(cond_ty, cond);
- log.debug("airCondBr: %{d}", .{inst});
-
// If the condition dies here in this condbr instruction, process
// that death now instead of later as this has an effect on
// whether it needs to be spilled in the branches
@@ -4736,6 +4740,7 @@ fn airCondBr(self: *Self, inst: Air.Inst.Index) !void {
// that we can use all the code emitting abstractions. This is why at the bottom we
// assert that parent_branch.free_registers equals the saved_then_branch.free_registers
// rather than assigning it.
+ log.debug("airCondBr: %{d}", .{inst});
log.debug("Upper branches:", .{});
for (self.branch_stack.items) |bs| {
log.debug("{}", .{bs.fmtDebug()});
@@ -5119,8 +5124,6 @@ fn airSwitch(self: *Self, inst: Air.Inst.Index) !void {
);
defer self.gpa.free(liveness.deaths);
- log.debug("airSwitch: %{d}", .{inst});
-
// If the condition dies here in this switch instruction, process
// that death now instead of later as this has an effect on
// whether it needs to be spilled in the branches
@@ -5207,6 +5210,7 @@ fn airSwitch(self: *Self, inst: Air.Inst.Index) !void {
// Consolidate returned MCValues between prongs and else branch like we do
// in airCondBr.
+ log.debug("airSwitch: %{d}", .{inst});
log.debug("Upper branches:", .{});
for (self.branch_stack.items) |bs| {
log.debug("{}", .{bs.fmtDebug()});