aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/CodeGen/MachineSink.cpp
diff options
context:
space:
mode:
authorOrlando Cazalet-Hyams <orlando.hyams@sony.com>2024-07-12 08:28:36 +0100
committerGitHub <noreply@github.com>2024-07-12 08:28:36 +0100
commit7a7d370742dff82caa6a713bc2b1e2c0c51a9f30 (patch)
tree51323d61f47a84964537ed2118afe5b488b3011d /llvm/lib/CodeGen/MachineSink.cpp
parentce9035f5bd3aa09cbd899489cdbc7f6c18acf1e3 (diff)
downloadllvm-7a7d370742dff82caa6a713bc2b1e2c0c51a9f30.zip
llvm-7a7d370742dff82caa6a713bc2b1e2c0c51a9f30.tar.gz
llvm-7a7d370742dff82caa6a713bc2b1e2c0c51a9f30.tar.bz2
[NFC] Add DIExpression::calculateFragmentIntersect (#97738)
Patch [3/x] to fix structured bindings debug info in SROA. This function computes a fragment, bit-extract operation if needed, and new constant offset to describe a part of a variable covered by some memory. This generalises, simplifies, and replaces at::calculateFragmentIntersect. That version is still used as a wrapper for now though to keep this change NFC. The new version takes doesn't have a DbgRecord parameter, instead using an explicit address and address offset. The old version only operates on dbg_assigns and this change means it can also operate on dbg_declare records easily, which it will do in a subsequent patch. The new version has a new out-param OffsetFromLocationInBits which is set to the difference between the first bit of the variable location and the first bit of the memory slice. This will be used in a subsequent patch in SROA to determine the new offset to use in the address expression after splitting an alloca.
Diffstat (limited to 'llvm/lib/CodeGen/MachineSink.cpp')
0 files changed, 0 insertions, 0 deletions