summaryrefslogtreecommitdiffstats
path: root/lldb/packages/Python/lldbsuite/test/python_api/process/main.cpp
diff options
context:
space:
mode:
authorJeremy Morse <jeremy.morse@sony.com>2019-12-05 15:03:33 +0000
committerJeremy Morse <jmorse+git@studentrobotics.org>2019-12-05 15:52:20 +0000
commite4cdd6263175f7289cfb61608944892d8c76b6ff (patch)
treee86dbb86d1583dc6f37645f17fa176c5bc5b6cd2 /lldb/packages/Python/lldbsuite/test/python_api/process/main.cpp
parentfca41001963cb473182c7b3b665ea1f03f94203a (diff)
downloadbcm5719-llvm-e4cdd6263175f7289cfb61608944892d8c76b6ff.tar.gz
bcm5719-llvm-e4cdd6263175f7289cfb61608944892d8c76b6ff.zip
[DebugInfo] Don't reorder DBG_VALUEs when sunk
Fix part of PR43855, resolving a problem that comes from the reapplication in 001574938e5. If we have two DBG_VALUE insts in a block that specify the location of the same variable, for example: %0 = someinst DBG_VALUE %0, !123, !DIExpression() %1 = anotherinst DBG_VALUE %1, !123, !DIExpression() if %0 were to sink, the corresponding DBG_VALUE would sink too, past the next DBG_VALUE, effectively re-ordering assignments. To fix this, I've added a SeenDbgVars set recording what variable locations have been seen in a block already (working bottom up), and now flag DBG_VALUEs that would pass a later DBG_VALUE for the same variable. NB, this only works for repeated DBG_VALUEs in the same basic block, the general case involving control flow is much harder, which I've written up in PR44117. Differential revision: https://reviews.llvm.org/D70672
Diffstat (limited to 'lldb/packages/Python/lldbsuite/test/python_api/process/main.cpp')
0 files changed, 0 insertions, 0 deletions
OpenPOWER on IntegriCloud