[PATCH] D114588: [DebugInfo][InstrRef] "Final" test cleanup switching x86 tests to instruction referencing
Jeremy Morse via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Fri Nov 26 03:12:56 PST 2021
jmorse added inline comments.
================
Comment at: llvm/test/CodeGen/X86/2010-05-26-DotDebugLoc.ll:62
; CHECK: movq
+; CHECK: movl
; CHECK-NEXT: [[LABEL:Ltmp[0-9]*]]
----------------
djtodoro wrote:
> why this? Is this a code change?
It's not a code change, instead the position at which a variable location changes has moved. With DBG_VALUEs it's:
DBG_VALUE $rdi
....
$rbx = MOV64rr $rdi
DBG_VALUE $rbx, $noreg, !18, !DIExpression(),
renamable $edi = MOV32rm $rdi, 1, $noreg, 0, $noreg, ...
But with instruction referencing it's:
DBG_VALUE $rdi
...
$rbx = MOV64rr $rdi
renamable $edi = MOV32rm $rdi, 1, $noreg, 0, $noreg,
DBG_VALUE $rbx, $noreg, !18, !DIExpression(),
The reason why is that VarLocBasedLDV will follow the COPY from a volatile register to a non-volatile immediately, but InstrRefBasedLDV waits until $rdi is clobbered before moving the variable location. That moves the ".Ltmp" symbol for where the variable changes location to be one instruction later.
Looking at it again, it needs the comment above to be updated.
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D114588/new/
https://reviews.llvm.org/D114588
More information about the llvm-commits
mailing list