[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