diff options
author | Filip Kastl <fkastl@suse.cz> | 2025-05-01 15:30:52 +0200 |
---|---|---|
committer | Filip Kastl <fkastl@suse.cz> | 2025-05-02 11:51:22 +0200 |
commit | 5274db0c9b8c0e2d2879b237eb2ab576543b6c37 (patch) | |
tree | 76863f1676c31ef9731378c9a017ce816585a13d /gcc/fortran/coarray.cc | |
parent | 02fa088f5b61fb5ddfff9e2dc0c0404450e7c6a4 (diff) | |
download | gcc-5274db0c9b8c0e2d2879b237eb2ab576543b6c37.zip gcc-5274db0c9b8c0e2d2879b237eb2ab576543b6c37.tar.gz gcc-5274db0c9b8c0e2d2879b237eb2ab576543b6c37.tar.bz2 |
gimple: Merge slow and fast bit-test switch lowering [PR117091]
PR117091 showed that bit-test switch lowering can take a lot of time.
The algorithm was O(n^2). We therefore came up with a faster algorithm
(O(n * BITS_IN_WORD)) and made GCC choose between the slow and the fast
algorithm based on how big the switch is.
Here I combine the algorithms so that we get the results of the slower
algorithm in the faster asymptotic time.
PR middle-end/117091
gcc/ChangeLog:
* tree-switch-conversion.cc (bit_test_cluster::find_bit_tests_fast):
Remove function.
(bit_test_cluster::find_bit_tests_slow): Remove function.
(bit_test_cluster::find_bit_tests): We don't need to decide
between slow and fast so just put the modified (no longer) slow
algorithm here.
Signed-off-by: Filip Kastl <fkastl@suse.cz>
Diffstat (limited to 'gcc/fortran/coarray.cc')
0 files changed, 0 insertions, 0 deletions