diff options
author | Vedant Kumar <vsk@apple.com> | 2018-07-06 17:32:39 +0000 |
---|---|---|
committer | Vedant Kumar <vsk@apple.com> | 2018-07-06 17:32:39 +0000 |
commit | 6379a62250cc49a9eb6f7a403eb868c08478bc87 (patch) | |
tree | cc7aca68de3e1ebc68ad24593e6a988e8c8acf58 /llvm/tools/llvm-objcopy/llvm-objcopy.cpp | |
parent | a212b0bc18c9095d6580de6a85740114d1e94916 (diff) | |
download | bcm5719-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/llvm-objcopy.cpp')
0 files changed, 0 insertions, 0 deletions