[PATCH] D74706: [WIP][DebugInfo][LiveDebugValues] Index variable location IDs by machine location

Jeremy Morse via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Mon Apr 6 09:12:07 PDT 2020


jmorse abandoned this revision.
jmorse added a comment.
Herald added a subscriber: danielkiss.

Hi Vedant,

Sorry for the complete blank, the usual distractions and some illness (but not the dreaded lurgi!) to blame.

For the record, on the massive-blocks-full-of-debug-instrs inputs we've been seeing, this particular patch got LiveDebugValues to about eight seconds from >100, but your coalescing bitvector implementation got it down to 0.3 seconds, many thanks for that!

In the meantime I've been kicking around ideas for different ways of doing LiveDebugValues' job -- I get the feeling that we artificially increase the N-size of the problem by pairing up variables and registers too early, where we might instead be able to keep the analysis proportionate to the number of DBG_VALUEs in a function. I'm looking at various inputs, but would you be able to point out what parts of WebKit were producing the pathological behaviour? (Assuming it's part of an open source release). It'd greatly help settling on a solution that's acceptable to all.

(I think the number of VarLocs for a function would be even larger than today if these [0, 1] transfer-bailout returns didn't exist. I don't know why they do).

[0] https://github.com/llvm/llvm-project/blob/ddd2f4b96f9f3967a66e744a98b6ecec25c55de8/llvm/lib/CodeGen/LiveDebugValues.cpp#L1371
[1] https://github.com/llvm/llvm-project/blob/ddd2f4b96f9f3967a66e744a98b6ecec25c55de8/llvm/lib/CodeGen/LiveDebugValues.cpp#L1301


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D74706





More information about the llvm-commits mailing list