[PATCH] D74633: [LiveDebugValues] Visit open var locs just once in transferRegisterDef, NFC

Vedant Kumar via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Mon Feb 17 13:33:57 PST 2020


vsk marked an inline comment as done.
vsk added a comment.

In D74633#1878889 <https://reviews.llvm.org/D74633#1878889>, @jmorse wrote:

> LGTM,
>
> /me rustles around some drawers,
>
> I've uploaded D74706 <https://reviews.llvm.org/D74706> which might be relevant to your interests. We've run into similar performance problems, but caused by hoards of DBG_VALUEs rather than by many clobbered registers, and indexing VarMap by machine location gave a significant compile-time performance improvement at the expense of some memory. I can prioritise getting it landed if you think it'd be useful.


This is very interesting, thank you for sharing. I think I explored a substantially similar approach, and decided that it wouldn't really work until we make iterating over VarLocSet /much/ faster. I've left comments in D74706 <https://reviews.llvm.org/D74706>.



================
Comment at: llvm/lib/CodeGen/LiveDebugValues.cpp:935
   SparseBitVector<> KillSet;
+  // Reducing the number of inline elements in `DeadRegs` can regress compile
+  // time significantly, as we fall back to more expensive std::set::count()
----------------
jmorse wrote:
> Could we replace "inline" with "statically allocated" or something similar? Seeing "inline" here immediately makes me think of function-inlining (which is a relevant topic in LiveDebugValues), and confused me for a bit.
Yes, I'll fix this before committing.


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

https://reviews.llvm.org/D74633





More information about the llvm-commits mailing list