forked from OSchip/llvm-project
6379a62250
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 |
||
---|---|---|
.. | ||
ASanStackFrameLayoutTest.cpp | ||
BasicBlockUtils.cpp | ||
CMakeLists.txt | ||
Cloning.cpp | ||
CodeExtractor.cpp | ||
FunctionComparator.cpp | ||
IntegerDivision.cpp | ||
Local.cpp | ||
OrderedInstructions.cpp | ||
SSAUpdaterBulk.cpp | ||
ValueMapperTest.cpp |