[all-commits] [llvm/llvm-project] 3a61bf: [DomTree] Use SmallVector<DomTreeNodeBase *, 4> in...

Florian Hahn via All-commits all-commits at lists.llvm.org
Wed Sep 9 03:20:56 PDT 2020


  Branch: refs/heads/master
  Home:   https://github.com/llvm/llvm-project
  Commit: 3a61bfb027a623807a30adb496ab62203c9b4ba5
      https://github.com/llvm/llvm-project/commit/3a61bfb027a623807a30adb496ab62203c9b4ba5
  Author: Florian Hahn <flo at fhahn.com>
  Date:   2020-09-09 (Wed, 09 Sep 2020)

  Changed paths:
    M llvm/include/llvm/Support/GenericDomTree.h

  Log Message:
  -----------
  [DomTree] Use SmallVector<DomTreeNodeBase *, 4> instead of std::vector.

Currentl DomTreeNodeBase is using std::vectot to store it's children.
Using SmallVector should be more efficient in terms of compile-time.

A size of 4 seems to be the sweet-spot in terms of compile-time,
according to

http://llvm-compile-time-tracker.com/compare.php?from=9933188c90615c9c264ebb69117f09726e909a25&to=d7a801d027648877b20f0e00e822a7a64c58d976&stat=instructions

This results in the following geomean improvements

```
                       geomean insts     max rss
O3                          -0.31 %       +0.02 %
ReleaseThinLTO              -0.35 %       -0.12 %
ReleaseLTO                  -0.28 %       -0.12 %
O0                          -0.06 %       -0.02 %
NewPM O3                    -0.36 %       +0.05 %
ReleaseThinLTO (link only)  -0.44 %       -0.10 %
ReleaseLTO-g (link only):   -0.32 %       -0.03 %
```

I am not sure if there's any other benefits of using std::vector over
SmallVector.

Reviewed By: kuhar, asbirlea

Differential Revision: https://reviews.llvm.org/D87319




More information about the All-commits mailing list