[PATCH] D20636: PR26055: Speed up LiveDebugValues::transferDebugValue()
David Blaikie via llvm-commits
llvm-commits at lists.llvm.org
Wed May 25 16:25:38 PDT 2016
Given this is a time/space tradeoff, it might be worth having the space
numbers as well just to demonstrate that it's a good tradeoff?
On Wed, May 25, 2016 at 11:42 AM, Adrian Prantl via llvm-commits <
llvm-commits at lists.llvm.org> wrote:
> aprantl created this revision.
> aprantl added reviewers: dberlin, friss.
> aprantl added subscribers: zaks.anna, llvm-commits, wolfgangp.
> aprantl set the repository for this revision to rL LLVM.
> This patch builds upon http://reviews.llvm.org/D20178 and speeds up
> LiveDebugValues::transferDebugValue() by adding an index that maps each
> DebugVariable to its open VarLoc.
> The transferDebugValue() function needs to close all open ranges for a
> given DebugVariable. Iterating over the set bits of OpenRanges is
> prohibitively slow in practice. I experimented with using the sorted map of
> VarLocs in the UniqueVector to iterate only over the range of VarLocs with
> a given DebugVariable, but the binary search turned out to be even more
> expensive than just iterating over the set bits in OpenRanges.
> Instead, this patch exploits the fact that there can only be one open
> location for each DebugVariable and redundantly stores this location in a
> bench1: The ASAN -O3 example I've been testing with.
> bench2: The bitcode from PR26055 at -O0.
> Baseline (D20178):
> bench1: user 2m43.600s
> bench2: user 1m0.948s
> This patch:
> bench1: user 1m6.725s
> bench2: user 0m21.452s
> rL LLVM
> llvm-commits mailing list
> llvm-commits at lists.llvm.org
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the llvm-commits