forked from OSchip/llvm-project
[WebAssembly] Fix debug locations for ExplicitLocals pass
Differential Revision: https://reviews.llvm.org/D112487
This commit is contained in:
parent
f7f430c913
commit
a66451ebbe
|
@ -379,8 +379,13 @@ bool WebAssemblyExplicitLocals::runOnMachineFunction(MachineFunction &MF) {
|
|||
const TargetRegisterClass *RC = MRI.getRegClass(OldReg);
|
||||
Register NewReg = MRI.createVirtualRegister(RC);
|
||||
unsigned Opc = getLocalGetOpcode(RC);
|
||||
// Use a blank DebugLoc, because InsertPt may be discontinuous from
|
||||
// the usage of this value, causing non-linear stepping in the
|
||||
// debugger or function entry points where variables aren't live yet.
|
||||
// See crbug.com/1251909, crbug.com/1249745
|
||||
DebugLoc DL;
|
||||
InsertPt =
|
||||
BuildMI(MBB, InsertPt, MI.getDebugLoc(), TII->get(Opc), NewReg)
|
||||
BuildMI(MBB, InsertPt, DL, TII->get(Opc), NewReg)
|
||||
.addImm(LocalId);
|
||||
MO.setReg(NewReg);
|
||||
MFI.stackifyVReg(MRI, NewReg);
|
||||
|
|
|
@ -101,8 +101,8 @@ attributes #2 = { nounwind }
|
|||
; CHECK-NEXT: DW_AT_type (0x00000073 "int")
|
||||
|
||||
; CHECK-LABEL: DW_TAG_lexical_block
|
||||
; CHECK-NEXT: DW_AT_low_pc (0x0000001c)
|
||||
; CHECK-NEXT: DW_AT_high_pc (0x0000002d)
|
||||
; CHECK-NEXT: DW_AT_low_pc (0x0000001e)
|
||||
; CHECK-NEXT: DW_AT_high_pc (0x0000002f)
|
||||
|
||||
; CHECK-LABEL: DW_TAG_variable
|
||||
; CHECK-NEXT: DW_AT_location (DW_OP_fbreg +4)
|
||||
|
|
Loading…
Reference in New Issue