summaryrefslogtreecommitdiffstats
path: root/clang/lib/CodeGen/CodeGenPGO.cpp
diff options
context:
space:
mode:
authorDavid Stenberg <david.stenberg@ericsson.com>2019-11-13 10:37:53 +0100
committerDavid Stenberg <david.stenberg@ericsson.com>2019-11-13 11:10:47 +0100
commit5e646ff53052c5d8694f2da14b9a094202fee729 (patch)
treee767d26ec7c9bc4240218cffcd262fc8b7d59c32 /clang/lib/CodeGen/CodeGenPGO.cpp
parent4fec44cd61517cda16f94067a34982628bda34f7 (diff)
downloadbcm5719-llvm-5e646ff53052c5d8694f2da14b9a094202fee729.tar.gz
bcm5719-llvm-5e646ff53052c5d8694f2da14b9a094202fee729.zip
[DebugInfo] Avoid creating entry values for clobbered registers
Summary: Entry values are considered for parameters that have register-described DBG_VALUEs in the entry block (along with other conditions). If a parameter's value has been propagated from the caller to the callee, then the parameter's DBG_VALUE in the entry block may be described using a register defined by some instruction, and entry values should not be emitted for the parameter, which can currently occur. One such case was seen in the attached test case, in which the second parameter, which is described by a redefinition of the first parameter's register, would incorrectly get an entry value using the first parameter's register. This commit intends to solve such cases by keeping track of register defines, and ignoring DBG_VALUEs in the entry block that are described by such registers. In a RelWithDebInfo build of clang-8, the average size of the set was 27, and in a RelWithDebInfo+ASan build it was 30. Reviewers: djtodoro, NikolaPrica, aprantl, vsk Reviewed By: djtodoro, vsk Subscribers: hiraditya, llvm-commits Tags: #debug-info, #llvm Differential Revision: https://reviews.llvm.org/D69889
Diffstat (limited to 'clang/lib/CodeGen/CodeGenPGO.cpp')
0 files changed, 0 insertions, 0 deletions
OpenPOWER on IntegriCloud