[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