[libcxx-commits] [libcxx] [libc++] Reduce the compilation time required by SIMD tests (PR #72602)
Louis Dionne via libcxx-commits
libcxx-commits at lists.llvm.org
Thu Nov 16 18:53:35 PST 2023
ldionne wrote:
CC @EricWF @philnik777 @joy2myself
FWIW I get the following times after:
```
$ libcxx-lit build/default -sv libcxx/test/std/experimental/simd/ --param std=c++20 --time-tests
Slowest Tests:
--------------------------------------------------------------------------
11.61s: llvm-libc++-shared.cfg.in :: std/experimental/simd/simd.reference/reference_assignment.pass.cpp
2.66s: llvm-libc++-shared.cfg.in :: std/experimental/simd/simd.class/simd_ctor_default.pass.cpp
2.27s: llvm-libc++-shared.cfg.in :: std/experimental/simd/simd.class/simd_ctor_broadcast.pass.cpp
1.49s: llvm-libc++-shared.cfg.in :: std/experimental/simd/simd.class/simd_subscr.pass.cpp
1.30s: llvm-libc++-shared.cfg.in :: std/experimental/simd/simd.class/simd_ctor_generator.pass.cpp
1.24s: llvm-libc++-shared.cfg.in :: std/experimental/simd/simd.reference/reference_value_type.pass.cpp
1.17s: llvm-libc++-shared.cfg.in :: std/experimental/simd/simd.mask.class/simd_mask_ctor_default.pass.cpp
0.90s: llvm-libc++-shared.cfg.in :: std/experimental/simd/simd.mask.class/simd_mask_subscr.pass.cpp
0.84s: llvm-libc++-shared.cfg.in :: std/experimental/simd/simd.traits/memory_alignment.pass.cpp
0.83s: llvm-libc++-shared.cfg.in :: std/experimental/simd/simd.mask.class/simd_mask_ctor_broadcast.pass.cpp
0.76s: llvm-libc++-shared.cfg.in :: std/experimental/simd/simd.mask.class/simd_mask_width.pass.cpp
0.72s: llvm-libc++-shared.cfg.in :: std/experimental/simd/simd.traits/is_abi_tag.pass.cpp
0.69s: llvm-libc++-shared.cfg.in :: std/experimental/simd/simd.class/simd_alias.pass.cpp
0.69s: llvm-libc++-shared.cfg.in :: std/experimental/simd/simd.reference/reference_alias.pass.cpp
0.68s: llvm-libc++-shared.cfg.in :: std/experimental/simd/simd.traits/simd_size.pass.cpp
0.63s: llvm-libc++-shared.cfg.in :: std/experimental/simd/simd.traits/is_simd.pass.cpp
0.60s: llvm-libc++-shared.cfg.in :: std/experimental/simd/simd.traits/is_simd_mask.pass.cpp
0.57s: llvm-libc++-shared.cfg.in :: std/experimental/simd/simd.mask.class/simd_mask_alias.pass.cpp
0.57s: llvm-libc++-shared.cfg.in :: std/experimental/simd/simd.traits/is_simd_flag_type.pass.cpp
0.54s: llvm-libc++-shared.cfg.in :: std/experimental/simd/simd.class/simd_width.pass.cpp
```
And before:
```
$ libcxx-lit build/default -sv libcxx/test/std/experimental/simd/ --param std=c++20 --time-tests
Slowest Tests:
--------------------------------------------------------------------------
45.70s: llvm-libc++-shared.cfg.in :: std/experimental/simd/simd.reference/reference_assignment.pass.cpp
9.15s: llvm-libc++-shared.cfg.in :: std/experimental/simd/simd.class/simd_ctor_default.pass.cpp
7.09s: llvm-libc++-shared.cfg.in :: std/experimental/simd/simd.class/simd_ctor_broadcast.pass.cpp
4.51s: llvm-libc++-shared.cfg.in :: std/experimental/simd/simd.class/simd_subscr.pass.cpp
3.64s: llvm-libc++-shared.cfg.in :: std/experimental/simd/simd.class/simd_ctor_generator.pass.cpp
3.52s: llvm-libc++-shared.cfg.in :: std/experimental/simd/simd.reference/reference_value_type.pass.cpp
3.02s: llvm-libc++-shared.cfg.in :: std/experimental/simd/simd.mask.class/simd_mask_ctor_default.pass.cpp
1.75s: llvm-libc++-shared.cfg.in :: std/experimental/simd/simd.mask.class/simd_mask_subscr.pass.cpp
1.28s: llvm-libc++-shared.cfg.in :: std/experimental/simd/simd.mask.class/simd_mask_ctor_broadcast.pass.cpp
1.14s: llvm-libc++-shared.cfg.in :: std/experimental/simd/simd.traits/memory_alignment.pass.cpp
1.08s: llvm-libc++-shared.cfg.in :: std/experimental/simd/simd.reference/reference_alias.pass.cpp
1.04s: llvm-libc++-shared.cfg.in :: std/experimental/simd/simd.class/simd_alias.pass.cpp
0.96s: llvm-libc++-shared.cfg.in :: std/experimental/simd/simd.class/simd_width.pass.cpp
0.95s: llvm-libc++-shared.cfg.in :: std/experimental/simd/simd.mask.class/simd_mask_width.pass.cpp
0.88s: llvm-libc++-shared.cfg.in :: std/experimental/simd/simd.mask.class/simd_mask_alias.pass.cpp
0.79s: llvm-libc++-shared.cfg.in :: std/experimental/simd/simd.traits/is_simd_flag_type.pass.cpp
0.76s: llvm-libc++-shared.cfg.in :: std/experimental/simd/simd.traits/is_simd.pass.cpp
0.73s: llvm-libc++-shared.cfg.in :: std/experimental/simd/simd.traits/is_abi_tag.pass.cpp
0.66s: llvm-libc++-shared.cfg.in :: std/experimental/simd/simd.traits/is_simd_mask.pass.cpp
0.62s: llvm-libc++-shared.cfg.in :: std/experimental/simd/simd.traits/simd_size.pass.cpp
```
`reference_assignment.pass.cpp` is still kinda beefy after the change so we should probably still look into improving that one specifically, but this is a first easy step.
https://github.com/llvm/llvm-project/pull/72602
More information about the libcxx-commits
mailing list