llvm-mirror/lib
Vedant Kumar 7e4e253821 [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
2018-07-06 17:32:39 +00:00
..
Analysis CallGraphSCCPass: iterate over all functions. 2018-07-06 08:04:47 +00:00
AsmParser [ThinLTO] Parse module summary index from assembly 2018-06-26 13:56:49 +00:00
BinaryFormat [WebAssembly] Move toString helpers to BinaryFormat 2018-05-14 22:42:07 +00:00
Bitcode [ThinLTO] Parse module summary index from assembly 2018-06-26 13:56:49 +00:00
CodeGen [Local] replaceAllDbgUsesWith: Update debug values before RAUW 2018-07-06 17:32:39 +00:00
DebugInfo [PDB] Sort globals symbols by name in GSI hash buckets. 2018-07-06 02:33:58 +00:00
Demangle [demangler] Avoid alignment warning 2018-07-05 06:22:39 +00:00
ExecutionEngine [ORC] Add BitReader/BitWriter to target_link_libraries 2018-07-05 21:23:15 +00:00
Fuzzer
FuzzMutate [llvm-opt-fuzzer] Add irce to the fuzzing options 2018-03-20 11:32:13 +00:00
IR [Local] replaceAllDbgUsesWith: Update debug values before RAUW 2018-07-06 17:32:39 +00:00
IRReader
LineEditor
Linker IRMover: Account for matching types present across modules 2018-06-20 16:50:56 +00:00
LTO [ThinLTO] Update ThinLTO cache file atimes when on Windows 2018-07-04 14:17:10 +00:00
MC [MC] Error on a .zerofill directive in a non-virtual section 2018-07-02 17:29:43 +00:00
Object [llvm-objdump] Add --file-headers (-f) option 2018-07-04 15:25:03 +00:00
ObjectYAML [llvm-readobj] Add experimental support for SHT_RELR sections 2018-06-28 21:07:34 +00:00
Option Re-revert "[Option] Fix PR37006 prefix choice in findNearest" 2018-05-19 16:21:01 +00:00
Passes [UnrollAndJam] New Unroll and Jam pass 2018-07-01 12:47:30 +00:00
ProfileData [NFC] Change sample profile format enum name SPF_Raw_Binary to SPF_Binary. 2018-06-12 05:53:49 +00:00
Support [OpenEmbedded] Add OpenEmbedded vendor 2018-07-05 23:41:17 +00:00
TableGen [TableGen] Use WithColor for printing errors/warnings 2018-06-23 16:48:03 +00:00
Target AMDGPU: Fix UBSan error caused by r335942 2018-07-06 17:16:17 +00:00
Testing [LLVMTestingSupport] Add explicit linkage to LLVMSupport 2018-04-08 06:49:17 +00:00
ToolDrivers [COFF] Improve correctness of def parsing for GNU features 2018-05-09 09:21:53 +00:00
Transforms [Local] replaceAllDbgUsesWith: Update debug values before RAUW 2018-07-06 17:32:39 +00:00
WindowsManifest Convert line endings of lib/WindowsManifest/CMakeLists.txt to unix. 2018-04-07 04:28:08 +00:00
XRay
CMakeLists.txt
LLVMBuild.txt