[PATCH] D91722: [DebugInfo] Use variadic debug values to salvage BinOps and GEP instrs with non-const operands

Stephen Tozer via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Thu Dec 3 06:43:23 PST 2020


StephenTozer added a comment.

In D91722#2404937 <https://reviews.llvm.org/D91722#2404937>, @djtodoro wrote:

> Thanks!! So, this should be the most important one :) I would really like to see some measurements (e.g. llvm-locstats) before/after this patch.
> Have you tried building llvm-project itself with this?

So far I've tested this with the benchmarks from the llvm test suite (specifically the CTMark projects, since we're looking for compilation metrics only). I'll post a more complete set of stats soon, but the summary is that there is a small increase in compile time for most projects; <1% or outright negligible in most cases. In terms of locstats, the change looks to add a modest 1-2% increase in overall variable coverage for most projects, although a notable exception is tramp3d-v4 which saw variable coverage change from 53%=>66% - a fairly substantial improvement.

I'm optimistic about further improvements to the locstats following from this work; the current patch doesn't update any of the existing salvaging in Instruction Selection to support variadic locations (they require some specific changes which aren't complicated but require a separate patch), and also enable some new salvaging opportunities in Instruction Selection and the loop passes (such as Loop Strength Reduce).


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D91722/new/

https://reviews.llvm.org/D91722



More information about the llvm-commits mailing list