[all-commits] [llvm/llvm-project] f108c7: [GlobalISel] Allow DBG_VALUE to use undefined vreg...
Jack Andersen via All-commits
all-commits at lists.llvm.org
Sun Dec 5 12:56:45 PST 2021
Branch: refs/heads/main
Home: https://github.com/llvm/llvm-project
Commit: f108c7f59dfae5fafbb00fbdef7a0cd31826dcfc
https://github.com/llvm/llvm-project/commit/f108c7f59dfae5fafbb00fbdef7a0cd31826dcfc
Author: Jack Andersen <jackoalan at gmail.com>
Date: 2021-12-05 (Sun, 05 Dec 2021)
Changed paths:
M llvm/include/llvm/CodeGen/GlobalISel/LegalizationArtifactCombiner.h
M llvm/include/llvm/CodeGen/MIRYamlMapping.h
M llvm/include/llvm/CodeGen/MachineFunction.h
M llvm/include/llvm/CodeGen/MachineInstr.h
M llvm/lib/CodeGen/DeadMachineInstructionElim.cpp
M llvm/lib/CodeGen/GlobalISel/Combiner.cpp
M llvm/lib/CodeGen/GlobalISel/CombinerHelper.cpp
M llvm/lib/CodeGen/GlobalISel/InstructionSelect.cpp
M llvm/lib/CodeGen/GlobalISel/Utils.cpp
M llvm/lib/CodeGen/LiveDebugVariables.cpp
M llvm/lib/CodeGen/LiveDebugVariables.h
M llvm/lib/CodeGen/MIRParser/MIRParser.cpp
M llvm/lib/CodeGen/MIRPrinter.cpp
M llvm/lib/CodeGen/MachineCombiner.cpp
M llvm/lib/CodeGen/MachineFunction.cpp
M llvm/lib/CodeGen/MachineInstr.cpp
M llvm/lib/CodeGen/MachineVerifier.cpp
M llvm/lib/Target/AMDGPU/SIFoldOperands.cpp
M llvm/lib/Target/NVPTX/NVPTXPeephole.cpp
M llvm/test/CodeGen/AArch64/GlobalISel/select-dbg-value.mir
M llvm/test/CodeGen/AArch64/GlobalISel/uaddo-8-16-bits.mir
M llvm/test/CodeGen/AMDGPU/fold-readlane.mir
A llvm/test/CodeGen/Generic/live-debug-vars-undef-use.mir
A llvm/test/CodeGen/X86/GlobalISel/x86-calllowering-dbg-trunc.ll
A llvm/test/MachineVerifier/verify-regbankselected-dbg-undef-use.mir
A llvm/test/MachineVerifier/verify-selected-dbg-undef-use.mir
Log Message:
-----------
[GlobalISel] Allow DBG_VALUE to use undefined vregs before LiveDebugValues.
Expanding on D109750.
Since `DBG_VALUE` instructions have final register validity determined in
`LDVImpl::handleDebugValue`, there is no apparent reason to immediately prune
unused register operands as their defs are erased. Consequently, this renders
`MachineInstr::eraseFromParentAndMarkDBGValuesForRemoval` moot; gaining a
substantial performance improvement.
The only necessary changes involve making relevant passes consider invalid
DBG_VALUE vregs uses as valid.
Reviewed By: MatzeB
Differential Revision: https://reviews.llvm.org/D112852
More information about the All-commits
mailing list