summaryrefslogtreecommitdiffstats
path: root/llvm/tools/llvm-objcopy/Object.cpp
diff options
context:
space:
mode:
authorVedant Kumar <vsk@apple.com>2018-07-06 17:32:39 +0000
committerVedant Kumar <vsk@apple.com>2018-07-06 17:32:39 +0000
commit6379a62250cc49a9eb6f7a403eb868c08478bc87 (patch)
treecc7aca68de3e1ebc68ad24593e6a988e8c8acf58 /llvm/tools/llvm-objcopy/Object.cpp
parenta212b0bc18c9095d6580de6a85740114d1e94916 (diff)
downloadbcm5719-llvm-6379a62250cc49a9eb6f7a403eb868c08478bc87.tar.gz
bcm5719-llvm-6379a62250cc49a9eb6f7a403eb868c08478bc87.zip
[Local] replaceAllDbgUsesWith: Update debug values before RAUW
The replaceAllDbgUsesWith utility helps passes preserve debug info when replacing one value with another. This improves upon the existing insertReplacementDbgValues API by: - Updating debug intrinsics in-place, while preventing use-before-def of the replacement value. - Falling back to salvageDebugInfo when a replacement can't be made. - Moving the responsibiliy for rewriting llvm.dbg.* DIExpressions into common utility code. Along with the API change, this teaches replaceAllDbgUsesWith how to create DIExpressions for three basic integer and pointer conversions: - The no-op conversion. Applies when the values have the same width, or have bit-for-bit compatible pointer representations. - Truncation. Applies when the new value is wider than the old one. - Zero/sign extension. Applies when the new value is narrower than the old one. Testing: - check-llvm, check-clang, a stage2 `-g -O3` build of clang, regression/unit testing. - This resolves a number of mis-sized dbg.value diagnostics from Debugify. Differential Revision: https://reviews.llvm.org/D48676 llvm-svn: 336451
Diffstat (limited to 'llvm/tools/llvm-objcopy/Object.cpp')
0 files changed, 0 insertions, 0 deletions
OpenPOWER on IntegriCloud