This is an archive of the discontinued LLVM Phabricator instance.

PR26055: [WIP] Speed up LiveDebugValues::transferRegisterDef()
AbandonedPublic

Authored by aprantl on May 26 2016, 10:53 AM.

Details

Reviewers
friss
dberlin
Summary

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.

Diff Detail

Event Timeline

aprantl updated this revision to Diff 58646.May 26 2016, 10:53 AM
aprantl retitled this revision from to PR26055: [WIP] Speed up LiveDebugValues::transferRegisterDef().
aprantl updated this object.
aprantl added reviewers: dberlin, friss.
aprantl set the repository for this revision to rL LLVM.
aprantl updated this revision to Diff 58701.May 26 2016, 3:04 PM
aprantl removed rL LLVM as the repository for this revision.

Rebased on trunk.

aprantl abandoned this revision.Oct 27 2016, 7:39 PM

This makes the code harder to read and does not improve performance significantly. Abandoning for now.