aboutsummaryrefslogtreecommitdiff
path: root/clang/lib/CodeGen/CodeGenModule.cpp
diff options
context:
space:
mode:
authorJeremy Morse <jeremy.morse@sony.com>2023-11-20 16:56:31 +0000
committerGitHub <noreply@github.com>2023-11-20 16:56:31 +0000
commit80d3a4c39f5065ef620d7b3e73935cf491f0c394 (patch)
tree825064129e77f64a99f59c38c0cf1657eb2310dd /clang/lib/CodeGen/CodeGenModule.cpp
parent6e547ce1c072f6f086a4f44fb8168df23413f597 (diff)
downloadllvm-80d3a4c39f5065ef620d7b3e73935cf491f0c394.zip
llvm-80d3a4c39f5065ef620d7b3e73935cf491f0c394.tar.gz
llvm-80d3a4c39f5065ef620d7b3e73935cf491f0c394.tar.bz2
[DebugInfo][RemoveDIs] Add local-utility plumbing for DPValues (#72276)
This patch re-implements a variety of debug-info maintenence functions to use DPValues instead of DbgValueInst's: supporting the "new" non-intrinsic representation of debug-info. As per [0], we need to have parallel implementations of various utilities for a time, and these are the most fundamental utilities used throughout the compiler. I've added --try-experimental-debuginfo-iterators to a variety of RUN lines: this is a flag that turns on "new debug-info" if it's built into LLVM, and not otherwise. This should ensure that we have the same behaviour for the same IR inputs, but using a different internal representation. For the most part these changes affect SROA/Mem2Reg promotion of dbg.declares into dbg.value intrinsics (now DPValues), we're leaving dbg.declares as instructions until later in the day. There's also some salvaging changes made. I believe the tests that I've added cover almost all the code being updated here. The only thing I'm not confident about is SimplifyCFG, which calls rewriteDebugUsers down a variety of code paths. Those changes can't immediately get full coverage as an additional patch is needed that updates handling of Unreachable instructions, will upload that shortly. [0] https://discourse.llvm.org/t/rfc-instruction-api-changes-needed-to-eliminate-debug-intrinsics-from-ir/68939/9
Diffstat (limited to 'clang/lib/CodeGen/CodeGenModule.cpp')
0 files changed, 0 insertions, 0 deletions