[PATCH] D20178: Fix PR26055 - LiveDebugValues is very slow

Daniel Berlin via llvm-commits llvm-commits at lists.llvm.org
Wed May 11 12:52:47 PDT 2016


Thanks for taking on this work!

I'm curious:
Does your new patch + correctness fixes take > 2 iterations to converge on
the .ll file?
(If so, something is still wrong :P)


On Wed, May 11, 2016 at 11:58 AM, Adrian Prantl <aprantl at apple.com> wrote:

> aprantl updated this revision to Diff 56947.
> aprantl added a comment.
>
> This fixes the remaining bugs in the original patch and adds some cleanups.
>
> - [Correctness] The VarLoc::operator<() implementation now takes semantic
> equality between two VarLocs (that have different MI pointers in them) into
> account.
> - [Correctness] Both operator<() implementations now check for equality of
> the first pointer before comparing the second pointer.
> - In join(), I'm using an in-place llvm::set_intersect().
> - [Debuggability] printVarLocInMBB() now sorts the output in BB order
> - The order of the DEBUG_VALUEs is different when they come from a set, so
> I needed to update two of our testcases.
>
> Before this patch, a particularly nasty ASANified testcase that I had took
>
>   user  9m20.248s
>
> After this patch, the same testcase compiles in
>
>   user  3m12.294s
>
> Definitely a big win! I'll look into the Bitvectors next, but I think we
> can also land this version of the patch meanwhile.
>
>
> http://reviews.llvm.org/D20178
>
> Files:
>   lib/CodeGen/LiveDebugValues.cpp
>   test/DebugInfo/COFF/register-variables.ll
>   test/DebugInfo/MIR/X86/live-debug-values-3preds.mir
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20160511/fc0183ba/attachment.html>


More information about the llvm-commits mailing list