authorgravatar for koachan@protonmail.comKoakuma <koachan@protonmail.com> 2022-04-21 20:02:27+07:00
committergravatar for kubkon@jakubkonka.comJakub Konka <kubkon@jakubkonka.com> 2022-05-05 19:34:05+02:00
loge76d52c74dbb7566af75baf7184b04f131d26d5f
tree3d8e3aeffa73854598e3aaa4ca95eb1ab46a43d2
parentae201807f52077709b46ab7d2adfe5178ce138af

stage2: sparcv9: Remove dbg_arg instruction


3 files changed, 1 insertions(+), 38 deletions(-)

src/arch/sparcv9/CodeGen.zig-12
......@@ -780,16 +780,6 @@ fn airArg(self: *Self, inst: Air.Inst.Index) !void {
780780 // TODO Copy registers to the stack
781781 const mcv = result;
782782
783 _ = try self.addInst(.{
784 .tag = .dbg_arg,
785 .data = .{
786 .dbg_arg_info = .{
787 .air_inst = inst,
788 .arg_index = arg_index,
789 },
790 },
791 });
792
793783 if (self.liveness.isUnused(inst))
794784 return self.finishAirBookkeeping();
795785
......@@ -1050,9 +1040,7 @@ fn airSwitch(self: *Self, inst: Air.Inst.Index) !void {
10501040
10511041fn addInst(self: *Self, inst: Mir.Inst) error{OutOfMemory}!Mir.Inst.Index {
10521042 const gpa = self.gpa;
1053
10541043 try self.mir_instructions.ensureUnusedCapacity(gpa, 1);
1055
10561044 const result_index = @intCast(Air.Inst.Index, self.mir_instructions.len);
10571045 self.mir_instructions.appendAssumeCapacity(inst);
10581046 return result_index;
src/arch/sparcv9/Emit.zig-12
......@@ -45,7 +45,6 @@ pub fn emitMir(
4545 for (mir_tags) |tag, index| {
4646 const inst = @intCast(u32, index);
4747 switch (tag) {
48 .dbg_arg => try emit.mirDbgArg(inst),
4948 .dbg_line => try emit.mirDbgLine(inst),
5049 .dbg_prologue_end => try emit.mirDebugPrologueEnd(),
5150 .dbg_epilogue_begin => try emit.mirDebugEpilogueBegin(),
......@@ -92,17 +91,6 @@ pub fn deinit(emit: *Emit) void {
9291 emit.* = undefined;
9392}
9493
95fn mirDbgArg(emit: *Emit, inst: Mir.Inst.Index) !void {
96 const tag = emit.mir.instructions.items(.tag)[inst];
97 const dbg_arg_info = emit.mir.instructions.items(.data)[inst].dbg_arg_info;
98 _ = dbg_arg_info;
99
100 switch (tag) {
101 .dbg_arg => {}, // TODO try emit.genArgDbgInfo(dbg_arg_info.air_inst, dbg_arg_info.arg_index),
102 else => unreachable,
103 }
104}
105
10694fn mirDbgLine(emit: *Emit, inst: Mir.Inst.Index) !void {
10795 const tag = emit.mir.instructions.items(.tag)[inst];
10896 const dbg_line_column = emit.mir.instructions.items(.data)[inst].dbg_line_column;
src/arch/sparcv9/Mir.zig+1-14
......@@ -28,8 +28,6 @@ pub const Inst = struct {
2828 data: Data,
2929
3030 pub const Tag = enum(u16) {
31 /// Pseudo-instruction: Argument
32 dbg_arg,
3331 /// Pseudo-instruction: End of prologue
3432 dbg_prologue_end,
3533 /// Pseudo-instruction: Beginning of epilogue
......@@ -122,14 +120,6 @@ pub const Inst = struct {
122120 /// how to interpret the data within.
123121 // TODO this is a quick-n-dirty solution that needs to be cleaned up.
124122 pub const Data = union {
125 /// Debug info: argument
126 ///
127 /// Used by e.g. dbg_arg
128 dbg_arg_info: struct {
129 air_inst: Air.Inst.Index,
130 arg_index: usize,
131 },
132
133123 /// Debug info: line and column
134124 ///
135125 /// Used by e.g. dbg_line
......@@ -234,10 +224,7 @@ pub const Inst = struct {
234224 // Note that in Debug builds, Zig is allowed to insert a secret field for safety checks.
235225 comptime {
236226 if (builtin.mode != .Debug) {
237 // TODO clean up the definition of Data before enabling this.
238 // I'll do that after the PoC backend can produce usable binaries.
239
240 // assert(@sizeOf(Data) == 8);
227 assert(@sizeOf(Data) == 8);
241228 }
242229 }
243230};