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