[all-commits] [llvm/llvm-project] 2325e0: [DebugInfo][InstrRef] Instrument x86 CMOV conversi...
Jeremy Morse via All-commits
all-commits at lists.llvm.org
Tue Jun 27 07:38:30 PDT 2023
Branch: refs/heads/main
Home: https://github.com/llvm/llvm-project
Commit: 2325e0112ae7ef47244277da81920ba90ffadd89
https://github.com/llvm/llvm-project/commit/2325e0112ae7ef47244277da81920ba90ffadd89
Author: Jeremy Morse <jeremy.morse at sony.com>
Date: 2023-06-27 (Tue, 27 Jun 2023)
Changed paths:
M llvm/lib/Target/X86/X86CmovConversion.cpp
A llvm/test/DebugInfo/MIR/InstrRef/x86-cmov-converter.mir
Log Message:
-----------
[DebugInfo][InstrRef] Instrument x86 CMOV conversion to preserve variable values
X86's CMOV conversion transforms CMOV instructions into control flow between
blocks, meaning the value is computed by a PHI rather than a "real" machine
instruction. In instruction-referencing mode, we need to transfer the
instruction label between the old CMOV and the new PHI instruction to mark
where the variable value is computed.
There's an extra complication in that memory operands can be unfolded from the
CMOV and sunk into the new blocks -- the test checks both scenarios where the
instruction number has to hop between instructions.
This omission exposed by Dexter testing.
Reviewed By: Orlando
Differential Revision: https://reviews.llvm.org/D145565
More information about the All-commits
mailing list