diff options
author | Orlando Cazalet-Hyams <orlando.hyams@sony.com> | 2024-07-12 08:28:36 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-07-12 08:28:36 +0100 |
commit | 7a7d370742dff82caa6a713bc2b1e2c0c51a9f30 (patch) | |
tree | 51323d61f47a84964537ed2118afe5b488b3011d /llvm/lib/CodeGen/MachineSink.cpp | |
parent | ce9035f5bd3aa09cbd899489cdbc7f6c18acf1e3 (diff) | |
download | llvm-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