aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/Support/SmallVector.cpp
diff options
context:
space:
mode:
authorDjordje Todorovic <djordje.todorovic@syrmia.com>2021-08-30 14:00:36 +0200
committerDjordje Todorovic <djordje.todorovic@syrmia.com>2021-08-30 14:00:41 +0200
commit86f5288eae4a27fd2f497ac45ad087d643ad73a8 (patch)
treec325dfd449bc6b7f9e112f4dfd27dc1c6c695754 /llvm/lib/Support/SmallVector.cpp
parent58e1a5e4c29325dc985ad4976d65fab53f05e946 (diff)
downloadllvm-86f5288eae4a27fd2f497ac45ad087d643ad73a8.zip
llvm-86f5288eae4a27fd2f497ac45ad087d643ad73a8.tar.gz
llvm-86f5288eae4a27fd2f497ac45ad087d643ad73a8.tar.bz2
[LiveDebugValues] Cleanup Transfers when removing Entry Value
If we encounter a new debug value, describing the same parameter, we should stop tracking the parameter's Entry Value. At that point, in some cases, the Transfer which uses the parameter's Entry Value, is already emitted. Thanks to the RemoveRedundantDebugValues pass, many problems with incorrect instruction order and number of DBG_VALUEs are fixed. However, we still cannot rely on the rule that each new debug value is set by the previous non-debug instruction in Machine Basic Block. When new parameter debug value triggers removal of Backup Entry Value for the same parameter, do the cleanup of Transfers emitted from Backup Entry Values. Get the Transfer Instruction which created the new debug value and search for debug values already emitted from the to-be-deleted Backup Entry Value and attached to the Transfer Instruction. If found, delete the Transfer and remove "primary" Entry Value Var Loc from OpenRanges. This patch fixes PR47628. Patch by Nikola Tesic. Differential revision: https://reviews.llvm.org/D106856
Diffstat (limited to 'llvm/lib/Support/SmallVector.cpp')
0 files changed, 0 insertions, 0 deletions