| author | |
| committer | |
| log | a89d242891270885bf8cb138d40d860315d02bb3 |
| tree | 7e33d8dfba4bb019d65e4a2551e6155bf28dedb8 |
| parent | 5ede6a167eef1835f6fb6c768a82d977269dafe5 |
Closes #351944 files changed, 19 insertions(+), 43 deletions(-)
src/codegen/x86_64/CodeGen.zig+19-28| ... | @@ -1224,9 +1224,7 @@ fn formatWipMir(data: FormatWipMirData, w: *Writer) Writer.Error!void { | ... | @@ -1224,9 +1224,7 @@ fn formatWipMir(data: FormatWipMirData, w: *Writer) Writer.Error!void { |
| 1224 | .pseudo_dbg_enter_block_none, | 1224 | .pseudo_dbg_enter_block_none, |
| 1225 | .pseudo_dbg_leave_block_none, | 1225 | .pseudo_dbg_leave_block_none, |
| 1226 | .pseudo_dbg_end_none, | 1226 | .pseudo_dbg_end_none, |
| 1227 | .pseudo_dbg_arg_none, | ||
| 1228 | .pseudo_dbg_var_args_none, | 1227 | .pseudo_dbg_var_args_none, |
| 1229 | .pseudo_dbg_var_none, | ||
| 1230 | .pseudo_dead_none, | 1228 | .pseudo_dead_none, |
| 1231 | => {}, | 1229 | => {}, |
| 1232 | .pseudo_dbg_line_stmt_line_column, | 1230 | .pseudo_dbg_line_stmt_line_column, |
| ... | @@ -2318,39 +2316,32 @@ fn genMainBody( | ... | @@ -2318,39 +2316,32 @@ fn genMainBody( |
| 2318 | }; | 2316 | }; |
| 2319 | defer zir_param_index += 1; | 2317 | defer zir_param_index += 1; |
| 2320 | 2318 | ||
| 2321 | if (comptime_args.len > 0) switch (comptime_args.get(ip)[zir_param_index]) { | 2319 | const arg_ty: Type, const arg_val: ?Value = arg: switch (if (comptime_args.len > 0) |
| 2322 | .none => {}, | 2320 | comptime_args.get(ip)[zir_param_index] |
| 2323 | else => |comptime_arg| { | 2321 | else |
| 2324 | try cg.mir_locals.append(cg.gpa, .{ .name = name, .type = ip.typeOf(comptime_arg) }); | 2322 | .none) { |
| 2325 | _ = try cg.addInst(.{ | 2323 | else => |arg_val| .{ .fromInterned(ip.typeOf(arg_val)), .fromInterned(arg_val) }, |
| 2326 | .tag = .pseudo, | 2324 | .none => { |
| 2327 | .ops = .pseudo_dbg_arg_val, | 2325 | const arg_ty: Type = .fromInterned(fn_info.param_types.get(ip)[fn_param_index]); |
| 2328 | .data = .{ .ip_index = comptime_arg }, | 2326 | fn_param_index += 1; |
| 2329 | }); | 2327 | break :arg .{ arg_ty, try arg_ty.onePossibleValue(pt) }; |
| 2330 | continue; | ||
| 2331 | }, | 2328 | }, |
| 2332 | }; | 2329 | }; |
| 2333 | 2330 | try cg.mir_locals.append(cg.gpa, .{ .name = name, .type = arg_ty.toIntern() }); | |
| 2334 | const arg_ty = fn_info.param_types.get(ip)[fn_param_index]; | 2331 | if (arg_val) |val| { |
| 2335 | try cg.mir_locals.append(cg.gpa, .{ .name = name, .type = arg_ty }); | 2332 | _ = try cg.addInst(.{ |
| 2336 | fn_param_index += 1; | 2333 | .tag = .pseudo, |
| 2337 | 2334 | .ops = .pseudo_dbg_arg_val, | |
| 2338 | if (air_arg_index == air_args_body.len) { | 2335 | .data = .{ .ip_index = val.toIntern() }, |
| 2339 | try cg.asmPseudo(.pseudo_dbg_arg_none); | 2336 | }); |
| 2340 | continue; | 2337 | continue; |
| 2341 | } | 2338 | } |
| 2339 | |||
| 2342 | const air_arg_inst = air_args_body[air_arg_index]; | 2340 | const air_arg_inst = air_args_body[air_arg_index]; |
| 2343 | const air_arg_data = cg.air.instructions.items(.data)[air_arg_index].arg; | 2341 | const air_arg_data = cg.air.instructions.items(.data)[air_arg_index].arg; |
| 2344 | if (air_arg_data.zir_param_index != zir_param_index) { | ||
| 2345 | try cg.asmPseudo(.pseudo_dbg_arg_none); | ||
| 2346 | continue; | ||
| 2347 | } | ||
| 2348 | air_arg_index += 1; | 2342 | air_arg_index += 1; |
| 2349 | try cg.genLocalDebugInfo( | 2343 | assert(air_arg_data.zir_param_index == zir_param_index); |
| 2350 | .arg, | 2344 | try cg.genLocalDebugInfo(.arg, arg_ty, cg.getResolvedInstValue(air_arg_inst).short); |
| 2351 | .fromInterned(arg_ty), | ||
| 2352 | cg.getResolvedInstValue(air_arg_inst).short, | ||
| 2353 | ); | ||
| 2354 | } | 2345 | } |
| 2355 | if (fn_info.is_var_args) try cg.asmPseudo(.pseudo_dbg_var_args_none); | 2346 | if (fn_info.is_var_args) try cg.asmPseudo(.pseudo_dbg_var_args_none); |
| 2356 | } | 2347 | } |
src/codegen/x86_64/Emit.zig-7| ... | @@ -536,14 +536,12 @@ pub fn emitMir(emit: *Emit) Error!void { | ... | @@ -536,14 +536,12 @@ pub fn emitMir(emit: *Emit) Error!void { |
| 536 | .column = emit.prev_di_loc.column, | 536 | .column = emit.prev_di_loc.column, |
| 537 | .end = true, | 537 | .end = true, |
| 538 | }), | 538 | }), |
| 539 | .pseudo_dbg_arg_none, | ||
| 540 | .pseudo_dbg_arg_i_s, | 539 | .pseudo_dbg_arg_i_s, |
| 541 | .pseudo_dbg_arg_i_u, | 540 | .pseudo_dbg_arg_i_u, |
| 542 | .pseudo_dbg_arg_i_64, | 541 | .pseudo_dbg_arg_i_64, |
| 543 | .pseudo_dbg_arg_ro, | 542 | .pseudo_dbg_arg_ro, |
| 544 | .pseudo_dbg_arg_fa, | 543 | .pseudo_dbg_arg_fa, |
| 545 | .pseudo_dbg_arg_m, | 544 | .pseudo_dbg_arg_m, |
| 546 | .pseudo_dbg_var_none, | ||
| 547 | .pseudo_dbg_var_i_s, | 545 | .pseudo_dbg_var_i_s, |
| 548 | .pseudo_dbg_var_i_u, | 546 | .pseudo_dbg_var_i_u, |
| 549 | .pseudo_dbg_var_i_64, | 547 | .pseudo_dbg_var_i_64, |
| ... | @@ -560,7 +558,6 @@ pub fn emitMir(emit: *Emit) Error!void { | ... | @@ -560,7 +558,6 @@ pub fn emitMir(emit: *Emit) Error!void { |
| 560 | var loc_buf: [2]DwarfLoc = undefined; | 558 | var loc_buf: [2]DwarfLoc = undefined; |
| 561 | const loc: DwarfLoc = loc: switch (mir_inst.ops) { | 559 | const loc: DwarfLoc = loc: switch (mir_inst.ops) { |
| 562 | else => unreachable, | 560 | else => unreachable, |
| 563 | .pseudo_dbg_arg_none, .pseudo_dbg_var_none => .empty, | ||
| 564 | .pseudo_dbg_arg_i_s, | 561 | .pseudo_dbg_arg_i_s, |
| 565 | .pseudo_dbg_arg_i_u, | 562 | .pseudo_dbg_arg_i_u, |
| 566 | .pseudo_dbg_var_i_s, | 563 | .pseudo_dbg_var_i_s, |
| ... | @@ -632,23 +629,19 @@ pub fn emitMir(emit: *Emit) Error!void { | ... | @@ -632,23 +629,19 @@ pub fn emitMir(emit: *Emit) Error!void { |
| 632 | try dwarf.genLocalVarDebugInfo( | 629 | try dwarf.genLocalVarDebugInfo( |
| 633 | switch (mir_inst.ops) { | 630 | switch (mir_inst.ops) { |
| 634 | else => unreachable, | 631 | else => unreachable, |
| 635 | .pseudo_dbg_arg_none, | ||
| 636 | .pseudo_dbg_arg_i_s, | 632 | .pseudo_dbg_arg_i_s, |
| 637 | .pseudo_dbg_arg_i_u, | 633 | .pseudo_dbg_arg_i_u, |
| 638 | .pseudo_dbg_arg_i_64, | 634 | .pseudo_dbg_arg_i_64, |
| 639 | .pseudo_dbg_arg_ro, | 635 | .pseudo_dbg_arg_ro, |
| 640 | .pseudo_dbg_arg_fa, | 636 | .pseudo_dbg_arg_fa, |
| 641 | .pseudo_dbg_arg_m, | 637 | .pseudo_dbg_arg_m, |
| 642 | .pseudo_dbg_arg_val, | ||
| 643 | => .arg, | 638 | => .arg, |
| 644 | .pseudo_dbg_var_none, | ||
| 645 | .pseudo_dbg_var_i_s, | 639 | .pseudo_dbg_var_i_s, |
| 646 | .pseudo_dbg_var_i_u, | 640 | .pseudo_dbg_var_i_u, |
| 647 | .pseudo_dbg_var_i_64, | 641 | .pseudo_dbg_var_i_64, |
| 648 | .pseudo_dbg_var_ro, | 642 | .pseudo_dbg_var_ro, |
| 649 | .pseudo_dbg_var_fa, | 643 | .pseudo_dbg_var_fa, |
| 650 | .pseudo_dbg_var_m, | 644 | .pseudo_dbg_var_m, |
| 651 | .pseudo_dbg_var_val, | ||
| 652 | => .local_var, | 645 | => .local_var, |
| 653 | }, | 646 | }, |
| 654 | local.name.toSlice(&emit.lower.mir), | 647 | local.name.toSlice(&emit.lower.mir), |
src/codegen/x86_64/Lower.zig-2| ... | @@ -320,7 +320,6 @@ pub fn lowerMir(lower: *Lower, index: Mir.Inst.Index) Error!struct { | ... | @@ -320,7 +320,6 @@ pub fn lowerMir(lower: *Lower, index: Mir.Inst.Index) Error!struct { |
| 320 | .pseudo_dbg_enter_inline_func, | 320 | .pseudo_dbg_enter_inline_func, |
| 321 | .pseudo_dbg_leave_inline_func, | 321 | .pseudo_dbg_leave_inline_func, |
| 322 | .pseudo_dbg_end_none, | 322 | .pseudo_dbg_end_none, |
| 323 | .pseudo_dbg_arg_none, | ||
| 324 | .pseudo_dbg_arg_i_s, | 323 | .pseudo_dbg_arg_i_s, |
| 325 | .pseudo_dbg_arg_i_u, | 324 | .pseudo_dbg_arg_i_u, |
| 326 | .pseudo_dbg_arg_i_64, | 325 | .pseudo_dbg_arg_i_64, |
| ... | @@ -329,7 +328,6 @@ pub fn lowerMir(lower: *Lower, index: Mir.Inst.Index) Error!struct { | ... | @@ -329,7 +328,6 @@ pub fn lowerMir(lower: *Lower, index: Mir.Inst.Index) Error!struct { |
| 329 | .pseudo_dbg_arg_m, | 328 | .pseudo_dbg_arg_m, |
| 330 | .pseudo_dbg_arg_val, | 329 | .pseudo_dbg_arg_val, |
| 331 | .pseudo_dbg_var_args_none, | 330 | .pseudo_dbg_var_args_none, |
| 332 | .pseudo_dbg_var_none, | ||
| 333 | .pseudo_dbg_var_i_s, | 331 | .pseudo_dbg_var_i_s, |
| 334 | .pseudo_dbg_var_i_u, | 332 | .pseudo_dbg_var_i_u, |
| 335 | .pseudo_dbg_var_i_64, | 333 | .pseudo_dbg_var_i_64, |
src/codegen/x86_64/Mir.zig-6| ... | @@ -1547,9 +1547,6 @@ pub const Inst = struct { | ... | @@ -1547,9 +1547,6 @@ pub const Inst = struct { |
| 1547 | /// Uses `none` payload. | 1547 | /// Uses `none` payload. |
| 1548 | pseudo_dbg_end_none, | 1548 | pseudo_dbg_end_none, |
| 1549 | /// Local argument. | 1549 | /// Local argument. |
| 1550 | /// Uses `none` payload. | ||
| 1551 | pseudo_dbg_arg_none, | ||
| 1552 | /// Local argument. | ||
| 1553 | /// Uses `i` payload. | 1550 | /// Uses `i` payload. |
| 1554 | pseudo_dbg_arg_i_s, | 1551 | pseudo_dbg_arg_i_s, |
| 1555 | /// Local argument. | 1552 | /// Local argument. |
| ... | @@ -1573,9 +1570,6 @@ pub const Inst = struct { | ... | @@ -1573,9 +1570,6 @@ pub const Inst = struct { |
| 1573 | /// Remaining arguments are varargs. | 1570 | /// Remaining arguments are varargs. |
| 1574 | pseudo_dbg_var_args_none, | 1571 | pseudo_dbg_var_args_none, |
| 1575 | /// Local variable. | 1572 | /// Local variable. |
| 1576 | /// Uses `none` payload. | ||
| 1577 | pseudo_dbg_var_none, | ||
| 1578 | /// Local variable. | ||
| 1579 | /// Uses `i` payload. | 1573 | /// Uses `i` payload. |
| 1580 | pseudo_dbg_var_i_s, | 1574 | pseudo_dbg_var_i_s, |
| 1581 | /// Local variable. | 1575 | /// Local variable. |