6fbb8bc806
Certain collators and subject strings may take this new fast path without calling into the (slow) ICU comparison functions. This CL can be roughly split into three topics: 1. The fast path check, precomputed and implemented as a whitelist on the current locale string. 2. The actual fast path, which checks subject string eligibility and performs L1 and L3 collation weight comparisons all in one pass. 3. Resuming from an aborted fast-path into the generic path. A longer overview is available at https://docs.google.com/document/d/1oyDwjYn2JyHsx2YnJJKhjX0WMNQXb8ao86-DRzqiYNg/edit?usp=sharing JetStream2/cdjs scores improve by roughly 40%. Bug: v8:12196 Change-Id: I5e1bbd731a36c361af9667f9104d6fa15c42e117 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3149463 Reviewed-by: Toon Verwaest <verwaest@chromium.org> Commit-Queue: Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/main@{#77284}
92 lines
3.6 KiB
Plaintext
92 lines
3.6 KiB
Plaintext
# Copyright 2013 the V8 project authors. All rights reserved.
|
|
# Redistribution and use in source and binary forms, with or without
|
|
# modification, are permitted provided that the following conditions are
|
|
# met:
|
|
#
|
|
# * Redistributions of source code must retain the above copyright
|
|
# notice, this list of conditions and the following disclaimer.
|
|
# * Redistributions in binary form must reproduce the above
|
|
# copyright notice, this list of conditions and the following
|
|
# disclaimer in the documentation and/or other materials provided
|
|
# with the distribution.
|
|
# * Neither the name of Google Inc. nor the names of its
|
|
# contributors may be used to endorse or promote products derived
|
|
# from this software without specific prior written permission.
|
|
#
|
|
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
|
# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
|
# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
|
# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
|
# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
|
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
|
# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
|
# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
|
# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
|
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
|
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
|
|
[
|
|
################################################################################
|
|
[ALWAYS, {
|
|
# TODO(jochen): The following test is flaky.
|
|
'overrides/caching': [PASS, FAIL],
|
|
}], # ALWAYS
|
|
|
|
################################################################################
|
|
['mode == debug', {
|
|
# Skip slow tests in debug mode.
|
|
'general/empty-handle': [SKIP],
|
|
}], # mode == debug
|
|
|
|
##############################################################################
|
|
['no_i18n', {
|
|
'string-localecompare': [SKIP],
|
|
}], # no_i18n
|
|
|
|
################################################################################
|
|
['gc_stress', {
|
|
# Push limit of stack, too flaky with machine with more memory.
|
|
'regress-1130489': [SKIP],
|
|
}], # gc_stress
|
|
|
|
################################################################################
|
|
['variant == no_wasm_traps', {
|
|
'*': [SKIP],
|
|
}], # variant == no_wasm_traps
|
|
|
|
################################################################################
|
|
['system == windows', {
|
|
# noi18n cannot turn on ICU backend for Date.
|
|
'relative-time-format/default-locale-fr-CA': [SKIP],
|
|
'relative-time-format/default-locale-pt-BR': [SKIP],
|
|
|
|
# Unable to change locale on Windows:
|
|
'default_locale': [SKIP],
|
|
|
|
# Unable to change locale and TZ on Windows:
|
|
'regress-7770': [SKIP],
|
|
}], # system == windows'
|
|
|
|
################################################################################
|
|
['system == android', {
|
|
# Android's ICU data file does not have the Chinese/Japanese dictionary
|
|
# required for the test to pass.
|
|
'break-iterator/zh-break': [SKIP],
|
|
'segmenter/word-containing': [SKIP],
|
|
# Unable to change locale on Android:
|
|
'relative-time-format/default-locale-fr-CA': [SKIP],
|
|
'relative-time-format/default-locale-pt-BR': [SKIP],
|
|
'default_locale': [SKIP],
|
|
# Unable to change locale and TZ on Android:
|
|
'regress-7770': [SKIP],
|
|
# Bug(v8:11922)
|
|
'localematcher/bestfit-supplemental-files': [SKIP],
|
|
}], # 'system == android'
|
|
|
|
################################################################################
|
|
['variant == stress_snapshot', {
|
|
'*': [SKIP], # only relevant for mjsunit tests.
|
|
}],
|
|
|
|
]
|