[PATCH] D20692: PR26055: [WIP] Speed up LiveDebugValues::transferRegisterDef()

Adrian Prantl via llvm-commits llvm-commits at lists.llvm.org
Thu May 26 10:53:19 PDT 2016


aprantl created this revision.
aprantl added reviewers: dberlin, friss.
aprantl added subscribers: tvvikram, wolfgangp, dblaikie, llvm-commits.
aprantl set the repository for this revision to rL LLVM.

This is a work-in-progress that I wanted to throw it out there to solicit opinions.

This patch builds upon http://reviews.llvm.org/D20178 + http://reviews.llvm.org/D20636 and improves LiveDebugValues::transferRegisterDef() by adding a BitVector tracking the registers holding DebugVariables.
Note that even though we can efficiently calculate the set of clobbered registers, we are still iterating over all OpenRanges to find which VarLocs are associated with these registers.

This has no dramatic impact on the overall runtime. In my large ASAN benchmark we get a 500ms improvement on LiveDebugValues::runOnMachineFunction() out of ~7s total. However, all benchmarks are now dominated by the subsequent run of DbgValueHistoryCalculator, which takes ~55s in the same benchmark.

Repository:
  rL LLVM

http://reviews.llvm.org/D20692

Files:
  lib/CodeGen/LiveDebugValues.cpp

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D20692.58646.patch
Type: text/x-patch
Size: 4411 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20160526/be7f07e7/attachment.bin>


More information about the llvm-commits mailing list