diff options
author | Jeremy Morse <jeremy.morse@sony.com> | 2023-11-20 16:56:31 +0000 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-11-20 16:56:31 +0000 |
commit | 80d3a4c39f5065ef620d7b3e73935cf491f0c394 (patch) | |
tree | 825064129e77f64a99f59c38c0cf1657eb2310dd /clang/lib/CodeGen/CodeGenModule.cpp | |
parent | 6e547ce1c072f6f086a4f44fb8168df23413f597 (diff) | |
download | llvm-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