summaryrefslogtreecommitdiffstats
path: root/clang/lib/Basic
diff options
context:
space:
mode:
authorJeremy Morse <jeremy.morse.llvm@gmail.com>2019-08-16 10:04:17 +0000
committerJeremy Morse <jeremy.morse.llvm@gmail.com>2019-08-16 10:04:17 +0000
commit8b593480d33f8e8f5c4ec1f921a2c692bd0b7f45 (patch)
tree741faaa26c7e9e099459d1dc1d852670ccf3c9b5 /clang/lib/Basic
parent22970d66be7856693ea56e7395909351d0885e57 (diff)
downloadbcm5719-llvm-8b593480d33f8e8f5c4ec1f921a2c692bd0b7f45.tar.gz
bcm5719-llvm-8b593480d33f8e8f5c4ec1f921a2c692bd0b7f45.zip
[DebugInfo] Handle complex expressions with spills in LiveDebugValues
In r369026 we disabled spill-recognition in LiveDebugValues for anything that has a complex expression. This is because it's hard to recover the complex expression once the spill location is baked into it. This patch re-enables spill-recognition and slightly adjusts the DBG_VALUE insts that LiveDebugValues tracks: instead of tracking the last DBG_VALUE for a variable, it tracks the last _unspilt_ DBG_VALUE. The spill-restore code is then able to access and copy the original complex expression; but the rest of LiveDebugValues has to be aware of the slight semantic shift, and produce a new spilt location if a spilt location is propagated between blocks. The test added produces an incorrect variable location (see FIXME), which will be the subject of future work. Differential Revision: https://reviews.llvm.org/D65368 llvm-svn: 369092
Diffstat (limited to 'clang/lib/Basic')
0 files changed, 0 insertions, 0 deletions
OpenPOWER on IntegriCloud