[Assignment Tracking] Fix fragments for assignments to variables smaller than the alloca
Prior to this patch the trackAssignments function would attribute all stores to an alloca to all variables linked to the alloca. This is wrong in the case where the alloca contains variables which are smaller than the alloca, and caused erroneous fragment information to be generated. Now stores outside the variable bounds are discarded, and we check whether a fragment is needed based on whether the store covers the entire variable as opposed to whether it covers the entire alloca (except for variables of unknown size). Note that trackAssignments doesn't yet understand whole variables sitting at anything other than offset 0 in an alloca - those variables are still tracked using dbg.declares. Fixes https://lab.llvm.org/buildbot/#/builders/70/builds/36007 Reviewed By: jmorse Differential Revision: https://reviews.llvm.org/D147777
Loading
Please sign in to comment