[Assignment Tracking] Fix fragment error for some DSE-shortened stores
`shortenAssignment` inserts dbg.assigns with fragments describing the dead part of a shortened store after each dbg.assign linked to the store. Without this patch it doesn't take into account that the dead part of a shortened store may be outside the bounds of a variable of a linked dbg.assign. It also doesn't correctly account for a non-zero offset in the address modifying `DIExpression` of the dbg.assign (which is possible for fragments now even though whole variables currently cannot have a non-zero offset in their alloca). Fix this by moving the dead slice into variable-space and performing an intersect of that adjusted slice with the existing fragment. This fixes a verifier error reported when building fuchsia with assignment tracking enabled: https://ci.chromium.org/ui/p/fuchsia/builders/ci/ clang_toolchain.ci.core.x64-release/b8784000953022145169/overview Reviewed By: jmorse Differential Revision: https://reviews.llvm.org/D148536
Loading
Please sign in to comment