Ryan Prichard
928c2492a3
Remove an unused code path
...
A static analyzer is complaining that num_valid_bits could be 64, and if
it were 64, then two later accesses would be out-of-bounds. is_nul_u64
can't be zero, though, because we only exit the loop when part of is_nul
is non-zero.
Bug: none
Test: manual
Change-Id: I75c3f70b600aa5478cb32fdf4ca0ae1173b69524
2020-01-22 13:59:15 -08:00
Ryan Prichard
129f7a1d8e
Neon-optimized version of the GNU symbol calculation
...
On 64-bit walleye, improves the linker relocation benchmark from 71.9ms to
70.7ms (1.7% of the run-time).
On a 32-bit device, it improves the linker relocation benchmark from
205.5ms to 201.2ms (2.1% of the run-time).
$ adb shell taskset 10 /data/benchmarktest64/linker-benchmarks/linker-benchmarks --benchmark_repetitions=100 --benchmark_display_aggregates_only
--------------------------------------------------------------------
Benchmark Time CPU Iterations
--------------------------------------------------------------------
BM_gnu_hash_simple_mean 15232 ns 15212 ns 100
BM_gnu_hash_simple_median 15176 ns 15159 ns 100
BM_gnu_hash_simple_stddev 111 ns 110 ns 100
BM_gnu_hash_neon_mean 10265 ns 10252 ns 100
BM_gnu_hash_neon_median 10261 ns 10249 ns 100
BM_gnu_hash_neon_stddev 28.1 ns 23.9 ns 100
Bug: none
Test: linker-unit-tests
Test: linker-benchmarks
Change-Id: I3983bca1dddc9241bb70290ad3651d895f046660
2020-01-13 13:29:25 -08:00