[all-commits] [llvm/llvm-project] 2ecaf9: [LiveDebugValues] Speed up removeEntryValue, NFC
Vedant Kumar via All-commits
all-commits at lists.llvm.org
Mon Jun 1 11:02:57 PDT 2020
Branch: refs/heads/master
Home: https://github.com/llvm/llvm-project
Commit: 2ecaf93525fe4b271117d3932118ecaccdacaa03
https://github.com/llvm/llvm-project/commit/2ecaf93525fe4b271117d3932118ecaccdacaa03
Author: Vedant Kumar <vsk at apple.com>
Date: 2020-06-01 (Mon, 01 Jun 2020)
Changed paths:
M llvm/include/llvm/ADT/CoalescingBitVector.h
M llvm/lib/CodeGen/LiveDebugValues.cpp
M llvm/test/DebugInfo/MIR/X86/entry-values-diamond-bbs.mir
M llvm/unittests/ADT/CoalescingBitVectorTest.cpp
Log Message:
-----------
[LiveDebugValues] Speed up removeEntryValue, NFC
Summary:
Instead of iterating over all VarLoc IDs in removeEntryValue(), just
iterate over the interval reserved for entry value VarLocs. This changes
the iteration order, hence the test update -- otherwise this is NFC.
This appears to give an ~8.5x wall time speed-up for LiveDebugValues when
compiling sqlite3.c 3.30.1 with a Release clang (on my machine):
```
---User Time--- --System Time-- --User+System-- ---Wall Time--- --- Name ---
Before: 2.5402 ( 18.8%) 0.0050 ( 0.4%) 2.5452 ( 17.3%) 2.5452 ( 17.3%) Live DEBUG_VALUE analysis
After: 0.2364 ( 2.1%) 0.0034 ( 0.3%) 0.2399 ( 2.0%) 0.2398 ( 2.0%) Live DEBUG_VALUE analysis
```
The change in removeEntryValue() is the only one that appears to affect
wall time, but for consistency (and to resolve a pending TODO), I made
the analogous changes for iterating over SpillLocKind VarLocs.
Reviewers: nikic, aprantl, jmorse, djtodoro
Subscribers: hiraditya, dexonsmith, llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D80684
Commit: 11c617c417766c7ff36a8fefb9bd2b608c971e19
https://github.com/llvm/llvm-project/commit/11c617c417766c7ff36a8fefb9bd2b608c971e19
Author: Vedant Kumar <vsk at apple.com>
Date: 2020-06-01 (Mon, 01 Jun 2020)
Changed paths:
M llvm/lib/CodeGen/LiveDebugValues.cpp
Log Message:
-----------
[LiveDebugValues] Add LocIndex::u32_{location,index}_t types for readability, NFC
This is per Adrian's suggestion in https://reviews.llvm.org/D80684.
Compare: https://github.com/llvm/llvm-project/compare/836c7dcf1238...11c617c41776
More information about the All-commits
mailing list