This patch makes InstrRefBasedLDV "safe" to work with DBG_VALUE_LISTs. It doesn't actually interpret them, but it recognises that they specify variable locations and avoids propagating false locations, which is better than the current state. Observe the attached test:
- We avoid propagating DBG_VALUE_LISTs into successor blocks, as they're not "currently" supported,
- We don't propagate other variable locations across DBG_VALUE_LISTs, because we know that the variable location is terminated by the DBG_VALUE_LIST.
I'd like to get this patch into the llvm-13 branch, so that anyone experimenting with this in the meantime gets safe variable locations. Then we can get on to properly supporting DBG_VALUE_LISTs.