(Context: this thread http://lists.llvm.org/pipermail/llvm-dev/2020-June/142368.html )
This patch imports the instruction-referencing implementation of LiveDebugValues from the linked RFC, and adds it to the build system, but doesn't make it accessible at runtime yet -- that's the next patch.
The linked RFC contains the rationale behind this new implementation; the file comment provides a high level summary of the algorithm(s) behind it. This isn't an incremental change, so I'm not sure what the review criteria are, but at the very least I guess this needs to meet the code guidelines and be documented.
(This matches 1a20684b66339 on my public-github work, plus a few comment cleanups).
From the RFC [0]:
Have you disabled the Debug Entry Values feature (in the original LideDebugValues) when comparing new and old implementations?
It adds a lot of extra inputs with location lists, so it may be interesting to see the comparison without it.
[0] http://lists.llvm.org/pipermail/llvm-dev/2020-June/142368.html