diff options
author | Nikolas Klauser <nikolasklauser@berlin.de> | 2025-09-25 20:16:27 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2025-09-25 20:16:27 +0200 |
commit | 1b0553c9fa8d61010a43b1a2dcb649d1aab7d8ae (patch) | |
tree | ebc08a5618cf4a77f8fd3b120b0e342923e0f87b /llvm/unittests/Support/CommandLineTest.cpp | |
parent | 1685a6a602c529d3615e2c2d98b7ef060f192eb7 (diff) | |
download | llvm-1b0553c9fa8d61010a43b1a2dcb649d1aab7d8ae.zip llvm-1b0553c9fa8d61010a43b1a2dcb649d1aab7d8ae.tar.gz llvm-1b0553c9fa8d61010a43b1a2dcb649d1aab7d8ae.tar.bz2 |
[libc++] Use _BitInt and __builtin_popcountg in bitset::count() (#160679)
This has multiple benefits:
1) The compiler has to do way less work to figure out things fold into a
simple `popcount`, improving compile times quite a bit
2) The compiler inlines better, since the compile doesn't have to do
complicated optimizations to get to the same point. Looking at the
pipeline, it seems that without this, LLVM has to go all the way to GVN
to get to the same code as there is after the first InstCombine pass
with this change.
Currently this applies only to `bitset`s with at most 64 bits, but that
is by far the most common case.
Diffstat (limited to 'llvm/unittests/Support/CommandLineTest.cpp')
0 files changed, 0 insertions, 0 deletions