Commit b342cbb2 authored by Clemens Backes's avatar Clemens Backes Committed by Commit Bot

Revert "[flags] warn about contradictory flags"

This reverts commit b8f91666.

Reason for revert: Fails gc-stress (https://ci.chromium.org/p/v8/builders/ci/V8%20Linux%20-%20gc%20stress/28341).

Original change's description:
> [flags] warn about contradictory flags
> 
> Design Doc: https://docs.google.com/document/d/1lkvu8crkK7Ei39qjkPCFijpNyxWXsOktG9GB-7K34jM/
> 
> Bug: v8:10577
> Change-Id: Ib9cfdffa401c48c895bf31caed5ee03545beddab
> Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2154792
> Reviewed-by: Clemens Backes <clemensb@chromium.org>
> Reviewed-by: Michael Achenbach <machenbach@chromium.org>
> Reviewed-by: Georg Neis <neis@chromium.org>
> Reviewed-by: Tamer Tas <tmrts@chromium.org>
> Commit-Queue: Tobias Tebbi <tebbi@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#68168}

TBR=machenbach@chromium.org,neis@chromium.org,clemensb@chromium.org,tebbi@chromium.org,tmrts@chromium.org

Change-Id: Ia1e3373fbb4c369594ceb98eb560e3ccf2cb8780
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: v8:10577
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2230523Reviewed-by: 's avatarClemens Backes <clemensb@chromium.org>
Commit-Queue: Clemens Backes <clemensb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#68169}
parent b8f91666
...@@ -3172,7 +3172,6 @@ bool Shell::SetOptions(int argc, char* argv[]) { ...@@ -3172,7 +3172,6 @@ bool Shell::SetOptions(int argc, char* argv[]) {
} }
} }
i::FLAG_abort_on_contradictory_flags = true;
v8::V8::SetFlagsFromCommandLine(&argc, argv, true); v8::V8::SetFlagsFromCommandLine(&argc, argv, true);
options.mock_arraybuffer_allocator = i::FLAG_mock_arraybuffer_allocator; options.mock_arraybuffer_allocator = i::FLAG_mock_arraybuffer_allocator;
options.mock_arraybuffer_allocator_limit = options.mock_arraybuffer_allocator_limit =
...@@ -3619,11 +3618,12 @@ class D8Testing { ...@@ -3619,11 +3618,12 @@ class D8Testing {
"--max-inlined-bytecode-size=999999 " "--max-inlined-bytecode-size=999999 "
"--max-inlined-bytecode-size-cumulative=999999 " "--max-inlined-bytecode-size-cumulative=999999 "
"--noalways-opt"; "--noalways-opt";
static const char* kForcedOptimizations = "--always-opt";
if (run < GetStressRuns() - 1) { if (run == GetStressRuns() - 1) {
V8::SetFlagsFromString(kLazyOptimizations); V8::SetFlagsFromString(kForcedOptimizations);
} else { } else {
i::FLAG_always_opt = true; V8::SetFlagsFromString(kLazyOptimizations);
} }
} }
......
...@@ -15,11 +15,6 @@ ...@@ -15,11 +15,6 @@
#define DEFINE_IMPLICATION(whenflag, thenflag) \ #define DEFINE_IMPLICATION(whenflag, thenflag) \
DEFINE_VALUE_IMPLICATION(whenflag, thenflag, true) DEFINE_VALUE_IMPLICATION(whenflag, thenflag, true)
// A weak implication will be overwritten by a normal implication or by an
// explicit flag.
#define DEFINE_WEAK_IMPLICATION(whenflag, thenflag) \
DEFINE_WEAK_VALUE_IMPLICATION(whenflag, thenflag, true)
#define DEFINE_NEG_IMPLICATION(whenflag, thenflag) \ #define DEFINE_NEG_IMPLICATION(whenflag, thenflag) \
DEFINE_VALUE_IMPLICATION(whenflag, thenflag, false) DEFINE_VALUE_IMPLICATION(whenflag, thenflag, false)
...@@ -64,22 +59,14 @@ ...@@ -64,22 +59,14 @@
// We produce the code to set flags when it is implied by another flag. // We produce the code to set flags when it is implied by another flag.
#elif defined(FLAG_MODE_DEFINE_IMPLICATIONS) #elif defined(FLAG_MODE_DEFINE_IMPLICATIONS)
#define DEFINE_VALUE_IMPLICATION(whenflag, thenflag, value) \ #define DEFINE_VALUE_IMPLICATION(whenflag, thenflag, value) \
changed |= TriggerImplication(FLAG_##whenflag, #whenflag, &FLAG_##thenflag, \ if (FLAG_##whenflag) FLAG_##thenflag = value;
value, false);
// A weak implication will be overwritten by a normal implication or by an
// explicit flag.
#define DEFINE_WEAK_VALUE_IMPLICATION(whenflag, thenflag, value) \
changed |= TriggerImplication(FLAG_##whenflag, #whenflag, &FLAG_##thenflag, \
value, true);
#define DEFINE_GENERIC_IMPLICATION(whenflag, statement) \ #define DEFINE_GENERIC_IMPLICATION(whenflag, statement) \
if (FLAG_##whenflag) statement; if (FLAG_##whenflag) statement;
#define DEFINE_NEG_VALUE_IMPLICATION(whenflag, thenflag, value) \ #define DEFINE_NEG_VALUE_IMPLICATION(whenflag, thenflag, value) \
changed |= TriggerImplication(!FLAG_##whenflag, #whenflag, &FLAG_##thenflag, \ if (!FLAG_##whenflag) FLAG_##thenflag = value;
value, false);
// We apply a generic macro to the flags. // We apply a generic macro to the flags.
#elif defined(FLAG_MODE_APPLY) #elif defined(FLAG_MODE_APPLY)
...@@ -107,10 +94,6 @@ ...@@ -107,10 +94,6 @@
#define DEFINE_VALUE_IMPLICATION(whenflag, thenflag, value) #define DEFINE_VALUE_IMPLICATION(whenflag, thenflag, value)
#endif #endif
#ifndef DEFINE_WEAK_VALUE_IMPLICATION
#define DEFINE_WEAK_VALUE_IMPLICATION(whenflag, thenflag, value)
#endif
#ifndef DEFINE_GENERIC_IMPLICATION #ifndef DEFINE_GENERIC_IMPLICATION
#define DEFINE_GENERIC_IMPLICATION(whenflag, statement) #define DEFINE_GENERIC_IMPLICATION(whenflag, statement)
#endif #endif
...@@ -220,14 +203,6 @@ struct MaybeBoolFlag { ...@@ -220,14 +203,6 @@ struct MaybeBoolFlag {
// //
#define FLAG FLAG_FULL #define FLAG FLAG_FULL
// ATTENTION: This is set to true by default in d8. But For API compatibility,
// it generally defaults to false.
DEFINE_BOOL(abort_on_contradictory_flags, false,
"Disallow flags or implications overriding each other.")
// This implication is also hard-coded into the flags processing to make sure it
// becomes active before we even process subsequent flags.
DEFINE_NEG_IMPLICATION(fuzzing, abort_on_contradictory_flags)
// Flags for language modes and experimental language features. // Flags for language modes and experimental language features.
DEFINE_BOOL(use_strict, false, "enforce strict mode") DEFINE_BOOL(use_strict, false, "enforce strict mode")
...@@ -398,23 +373,8 @@ DEFINE_BOOL(future, FUTURE_BOOL, ...@@ -398,23 +373,8 @@ DEFINE_BOOL(future, FUTURE_BOOL,
"Implies all staged features that we want to ship in the " "Implies all staged features that we want to ship in the "
"not-too-far future") "not-too-far future")
DEFINE_WEAK_IMPLICATION(future, write_protect_code_memory) DEFINE_IMPLICATION(future, write_protect_code_memory)
DEFINE_WEAK_IMPLICATION(future, finalize_streaming_on_background) DEFINE_IMPLICATION(future, finalize_streaming_on_background)
// Flags for jitless
DEFINE_BOOL(jitless, V8_LITE_BOOL,
"Disable runtime allocation of executable memory.")
// Jitless V8 has a few implications:
DEFINE_NEG_IMPLICATION(jitless, opt)
// Field representation tracking is only used by TurboFan.
DEFINE_NEG_IMPLICATION(jitless, track_field_types)
DEFINE_NEG_IMPLICATION(jitless, track_heap_object_fields)
// Regexps are interpreted.
DEFINE_IMPLICATION(jitless, regexp_interpret_all)
// asm.js validation is disabled since it triggers wasm code generation.
DEFINE_NEG_IMPLICATION(jitless, validate_asm)
// --jitless also implies --no-expose-wasm, see InitializeOncePerProcessImpl.
DEFINE_BOOL(assert_types, false, DEFINE_BOOL(assert_types, false,
"generate runtime type assertions to test the typer") "generate runtime type assertions to test the typer")
...@@ -467,6 +427,21 @@ DEFINE_BOOL_READONLY(string_slices, true, "use string slices") ...@@ -467,6 +427,21 @@ DEFINE_BOOL_READONLY(string_slices, true, "use string slices")
DEFINE_INT(interrupt_budget, 144 * KB, DEFINE_INT(interrupt_budget, 144 * KB,
"interrupt budget which should be used for the profiler counter") "interrupt budget which should be used for the profiler counter")
// Flags for jitless
DEFINE_BOOL(jitless, V8_LITE_BOOL,
"Disable runtime allocation of executable memory.")
// Jitless V8 has a few implications:
DEFINE_NEG_IMPLICATION(jitless, opt)
// Field representation tracking is only used by TurboFan.
DEFINE_NEG_IMPLICATION(jitless, track_field_types)
DEFINE_NEG_IMPLICATION(jitless, track_heap_object_fields)
// Regexps are interpreted.
DEFINE_IMPLICATION(jitless, regexp_interpret_all)
// asm.js validation is disabled since it triggers wasm code generation.
DEFINE_NEG_IMPLICATION(jitless, validate_asm)
// --jitless also implies --no-expose-wasm, see InitializeOncePerProcessImpl.
// Flags for inline caching and feedback vectors. // Flags for inline caching and feedback vectors.
DEFINE_BOOL(use_ic, true, "use inline caching") DEFINE_BOOL(use_ic, true, "use inline caching")
DEFINE_INT(budget_for_feedback_vector_allocation, 1 * KB, DEFINE_INT(budget_for_feedback_vector_allocation, 1 * KB,
...@@ -539,7 +514,7 @@ DEFINE_BOOL(concurrent_inlining, false, ...@@ -539,7 +514,7 @@ DEFINE_BOOL(concurrent_inlining, false,
"run optimizing compiler's inlining phase on a separate thread") "run optimizing compiler's inlining phase on a separate thread")
DEFINE_INT(max_serializer_nesting, 25, DEFINE_INT(max_serializer_nesting, 25,
"maximum levels for nesting child serializers") "maximum levels for nesting child serializers")
DEFINE_WEAK_IMPLICATION(future, concurrent_inlining) DEFINE_IMPLICATION(future, concurrent_inlining)
DEFINE_BOOL(trace_heap_broker_verbose, false, DEFINE_BOOL(trace_heap_broker_verbose, false,
"trace the heap broker verbosely (all reports)") "trace the heap broker verbosely (all reports)")
DEFINE_BOOL(trace_heap_broker_memory, false, DEFINE_BOOL(trace_heap_broker_memory, false,
...@@ -751,7 +726,7 @@ DEFINE_BOOL(liftoff, true, ...@@ -751,7 +726,7 @@ DEFINE_BOOL(liftoff, true,
#else #else
DEFINE_BOOL(liftoff, false, DEFINE_BOOL(liftoff, false,
"enable Liftoff, the baseline compiler for WebAssembly") "enable Liftoff, the baseline compiler for WebAssembly")
DEFINE_WEAK_IMPLICATION(future, liftoff) DEFINE_IMPLICATION(future, liftoff)
#endif #endif
// We can't tier up (from Liftoff to TurboFan) in single-threaded mode, hence // We can't tier up (from Liftoff to TurboFan) in single-threaded mode, hence
// disable Liftoff in that configuration for now. The alternative is disabling // disable Liftoff in that configuration for now. The alternative is disabling
...@@ -1838,11 +1813,9 @@ DEFINE_IMPLICATION(unbox_double_fields, track_double_fields) ...@@ -1838,11 +1813,9 @@ DEFINE_IMPLICATION(unbox_double_fields, track_double_fields)
#undef DEFINE_STRING #undef DEFINE_STRING
#undef DEFINE_FLOAT #undef DEFINE_FLOAT
#undef DEFINE_IMPLICATION #undef DEFINE_IMPLICATION
#undef DEFINE_WEAK_IMPLICATION
#undef DEFINE_NEG_IMPLICATION #undef DEFINE_NEG_IMPLICATION
#undef DEFINE_NEG_VALUE_IMPLICATION #undef DEFINE_NEG_VALUE_IMPLICATION
#undef DEFINE_VALUE_IMPLICATION #undef DEFINE_VALUE_IMPLICATION
#undef DEFINE_WEAK_VALUE_IMPLICATION
#undef DEFINE_GENERIC_IMPLICATION #undef DEFINE_GENERIC_IMPLICATION
#undef DEFINE_ALIAS_BOOL #undef DEFINE_ALIAS_BOOL
#undef DEFINE_ALIAS_INT #undef DEFINE_ALIAS_INT
......
This diff is collapsed.
...@@ -1056,7 +1056,6 @@ int main(int argc, char* argv[]) { ...@@ -1056,7 +1056,6 @@ int main(int argc, char* argv[]) {
v8::V8::InitializeICUDefaultLocation(argv[0]); v8::V8::InitializeICUDefaultLocation(argv[0]);
std::unique_ptr<v8::Platform> platform(v8::platform::NewDefaultPlatform()); std::unique_ptr<v8::Platform> platform(v8::platform::NewDefaultPlatform());
v8::V8::InitializePlatform(platform.get()); v8::V8::InitializePlatform(platform.get());
v8::internal::FLAG_abort_on_contradictory_flags = true;
v8::V8::SetFlagsFromCommandLine(&argc, argv, true); v8::V8::SetFlagsFromCommandLine(&argc, argv, true);
v8::V8::InitializeExternalStartupData(argv[0]); v8::V8::InitializeExternalStartupData(argv[0]);
v8::V8::Initialize(); v8::V8::Initialize();
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
// Use of this source code is governed by a BSD-style license that can be // Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file. // found in the LICENSE file.
// Flags: --no-stress-opt --trace-wasm-memory --liftoff // Flags: --no-stress-opt --trace-wasm-memory --liftoff --no-future
// Flags: --no-wasm-tier-up --experimental-wasm-simd // Flags: --no-wasm-tier-up --experimental-wasm-simd
// Flags: --enable-sse3 --enable-sse4-1 // Flags: --enable-sse3 --enable-sse4-1
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
// Use of this source code is governed by a BSD-style license that can be // Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file. // found in the LICENSE file.
// Flags: --no-stress-opt --trace-wasm-memory --no-liftoff // Flags: --no-stress-opt --trace-wasm-memory --no-liftoff --no-future
// Flags: --experimental-wasm-simd // Flags: --experimental-wasm-simd
load("test/mjsunit/wasm/wasm-module-builder.js"); load("test/mjsunit/wasm/wasm-module-builder.js");
......
...@@ -2,15 +2,8 @@ ...@@ -2,15 +2,8 @@
// Use of this source code is governed by a BSD-style license that can be // Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file. // found in the LICENSE file.
// The flags are processed left to right. --no-abort-on-contradictory-flags // Flags: --allow-natives-syntax --noverify-heap --noenable-slow-asserts
// disables the checking for conflicts, then we process --noverify-heap and // Flags: --opt --no-always-opt
// --noenable-slow-asserts, which the test runner already set to true before.
// This causes the flags to be overwritten while silencing the error. Then we
// re-enable --abort-on-contradictory-flags to make sure that the processing of
// other flags and flag implications, which happens later, still produces
// errors.
// Flags: --no-abort-on-contradictory-flags --noverify-heap --noenable-slow-asserts --abort-on-contradictory-flags
// Flags: --allow-natives-syntax --opt --no-always-opt
// --noverify-heap and --noenable-slow-asserts are set because the test is too // --noverify-heap and --noenable-slow-asserts are set because the test is too
// slow with it on. // slow with it on.
......
...@@ -367,6 +367,17 @@ ...@@ -367,6 +367,17 @@
'regexp-tier-up-multiple': [SKIP], 'regexp-tier-up-multiple': [SKIP],
'regress/regress-996234': [SKIP], 'regress/regress-996234': [SKIP],
# Tests that depend on optimization (beyond doing assertOptimized).
'compiler/is-being-interpreted-*': [SKIP],
'compiler/serializer-accessors': [SKIP],
'compiler/serializer-apply': [SKIP],
'compiler/serializer-call': [SKIP],
'compiler/serializer-dead-after-jump': [SKIP],
'compiler/serializer-dead-after-return': [SKIP],
'compiler/serializer-transition-propagation': [SKIP],
'regress/regress-1049982-1': [SKIP],
'regress/regress-1049982-2': [SKIP],
# These tests check that we can trace the compiler. # These tests check that we can trace the compiler.
'tools/compiler-trace-flags': [SKIP], 'tools/compiler-trace-flags': [SKIP],
'tools/compiler-trace-flags-wasm': [SKIP], 'tools/compiler-trace-flags-wasm': [SKIP],
...@@ -1142,6 +1153,10 @@ ...@@ -1142,6 +1153,10 @@
'regress/regress-1049982-2': [SKIP], 'regress/regress-1049982-2': [SKIP],
'es6/iterator-eager-deopt': [SKIP], 'es6/iterator-eager-deopt': [SKIP],
# interrupt_budget overrides don't work with TurboProp.
'interrupt-budget-override': [SKIP],
'never-optimize': [SKIP],
# In turboprop we reuse the optimized code on soft deopt. The following tests # In turboprop we reuse the optimized code on soft deopt. The following tests
# test for a soft deopt and they won't work in TurboProp. # test for a soft deopt and they won't work in TurboProp.
'deopt-recursive-soft-once': [SKIP], 'deopt-recursive-soft-once': [SKIP],
......
...@@ -2,15 +2,7 @@ ...@@ -2,15 +2,7 @@
// Use of this source code is governed by a BSD-style license that can be // Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file. // found in the LICENSE file.
// Overwrite the random seed provided by the test runner to make this test less // Flags: --random-seed=20 --nostress-opt --noalways-opt --predictable
// flaky.
// The flags are processed left to right. --no-abort-on-contradictory-flags
// disables the checking for conflicts, then we process --random-seed=20 to
// overwrite the value the test runner already set before. Then we re-enable
// --abort-on-contradictory-flags to make sure that the processing of other
// flags and flag implications, which happens later, still produces errors.
// Flags: --no-abort-on-contradictory-flags --random-seed=20 --abort-on-contradictory-flags
// Flags: --nostress-opt --noalways-opt --predictable
(function() { (function() {
var kHistory = 2; var kHistory = 2;
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
// Use of this source code is governed by a BSD-style license that can be // Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file. // found in the LICENSE file.
// Flags: --expose-gc --allow-natives-syntax // Flags: --noconcurrent-recompilation --expose-gc --allow-natives-syntax
// Flags: --concurrent-recompilation --block-concurrent-recompilation // Flags: --concurrent-recompilation --block-concurrent-recompilation
gc(); gc();
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
// Use of this source code is governed by a BSD-style license that can be // Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file. // found in the LICENSE file.
// Flags: --allow-natives-syntax --gc-interval=439 // Flags: --allow-natives-syntax --gc-interval=439 --random-seed=-423594851
var __v_3; var __v_3;
function __f_2() { function __f_2() {
......
...@@ -4,7 +4,7 @@ ...@@ -4,7 +4,7 @@
// Flags: --allow-natives-syntax --stress-compaction // Flags: --allow-natives-syntax --stress-compaction
// To reliably reproduce the crash use --verify-heap // To reliably reproduce the crash use --verify-heap --random-seed=-133185440
function __f_2(o) { function __f_2(o) {
return o.field.b.x; return o.field.b.x;
......
...@@ -2,6 +2,8 @@ ...@@ -2,6 +2,8 @@
// Use of this source code is governed by a BSD-style license that can be // Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file. // found in the LICENSE file.
// Flags: --random-seed=1
for (let i = 0; i < 54; ++i) Math.random(); for (let i = 0; i < 54; ++i) Math.random();
let sum = 0; let sum = 0;
for (let i = 0; i < 10; ++i) for (let i = 0; i < 10; ++i)
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
// Use of this source code is governed by a BSD-style license that can be // Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file. // found in the LICENSE file.
// Flags: --no-liftoff --debug-code // Flags: --no-liftoff --no-future --debug-code
load('test/mjsunit/wasm/wasm-module-builder.js'); load('test/mjsunit/wasm/wasm-module-builder.js');
......
...@@ -2,6 +2,6 @@ ...@@ -2,6 +2,6 @@
// Use of this source code is governed by a BSD-style license that can be // Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file. // found in the LICENSE file.
// Flags: --disable-in-process-stack-traces --no-lazy // Flags: --random-seed=-1595876594 --disable-in-process-stack-traces --no-lazy
var __v_47 = ({[__v_46]: __f_52}) => { var __v_46 = 'b'; return __f_52; }; var __v_47 = ({[__v_46]: __f_52}) => { var __v_46 = 'b'; return __f_52; };
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
// Use of this source code is governed by a BSD-style license that can be // Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file. // found in the LICENSE file.
// Flags: --expose-gc --predictable // Flags: --expose-gc --predictable --random-seed=-1109634722
gc(); gc();
gc(); gc();
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
// Use of this source code is governed by a BSD-style license that can be // Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file. // found in the LICENSE file.
// //
// Flags: --expose-gc --allow-natives-syntax // Flags: --random-seed=891196975 --expose-gc --allow-natives-syntax
// Flags: --gc-interval=207 --stress-compaction --validate-asm // Flags: --gc-interval=207 --stress-compaction --validate-asm
// Flags: --opt --no-always-opt // Flags: --opt --no-always-opt
// //
......
...@@ -2,8 +2,9 @@ ...@@ -2,8 +2,9 @@
// Use of this source code is governed by a BSD-style license that can be // Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file. // found in the LICENSE file.
// //
// Flags: --expose-gc --allow-natives-syntax --gc-interval=207 // Flags: --random-seed=891196975 --expose-gc --allow-natives-syntax
// Flags: --stress-compaction --validate-asm --opt --no-always-opt // Flags: --gc-interval=207 --stress-compaction --validate-asm
// Flags: --opt --no-always-opt
// //
// /v8/test/mjsunit/wasm/grow-memory.js // /v8/test/mjsunit/wasm/grow-memory.js
// /v8/test/mjsunit/regress/regress-540.js // /v8/test/mjsunit/regress/regress-540.js
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
// Use of this source code is governed by a BSD-style license that can be // Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file. // found in the LICENSE file.
// Flags: --expose-gc --invoke-weak-callbacks --omit-quit --gc-interval=469 --validate-asm // Flags: --random-seed=1557792826 --expose-gc --invoke-weak-callbacks --omit-quit --gc-interval=469 --validate-asm
function nop() {} function nop() {}
var __v_42 = {}; var __v_42 = {};
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
// Use of this source code is governed by a BSD-style license that can be // Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file. // found in the LICENSE file.
// //
// Flags: --enable-slow-asserts --expose-wasm // Flags: --random-seed=-1101427159 --enable-slow-asserts --expose-wasm
(function __f_7() { (function __f_7() {
assertThrows(() => new WebAssembly.Memory({initial: 59199}), RangeError); assertThrows(() => new WebAssembly.Memory({initial: 59199}), RangeError);
......
...@@ -25,7 +25,8 @@ ...@@ -25,7 +25,8 @@
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
// Flags: --allow-natives-syntax --expose-externalize-string // Flags: --random-seed=17 --allow-natives-syntax
// Flags: --expose-externalize-string
assertEquals("ΚΟΣΜΟΣ ΚΟΣΜΟΣ".toLowerCase(), "κοσμος κοσμος"); assertEquals("ΚΟΣΜΟΣ ΚΟΣΜΟΣ".toLowerCase(), "κοσμος κοσμος");
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
// Use of this source code is governed by a BSD-style license that can be // Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file. // found in the LICENSE file.
// Flags: --allow-natives-syntax --liftoff --no-wasm-tier-up // Flags: --allow-natives-syntax --liftoff --no-future --no-wasm-tier-up
// Compile functions 0 and 2 with Turbofan, the rest with Liftoff: // Compile functions 0 and 2 with Turbofan, the rest with Liftoff:
// Flags: --wasm-tier-mask-for-testing=5 // Flags: --wasm-tier-mask-for-testing=5
......
...@@ -24,7 +24,8 @@ ALL_VARIANT_FLAGS = { ...@@ -24,7 +24,8 @@ ALL_VARIANT_FLAGS = {
# independent of JS optimizations, so we can combine those configs. # independent of JS optimizations, so we can combine those configs.
"nooptimization": [["--no-opt", "--liftoff", "--no-wasm-tier-up"]], "nooptimization": [["--no-opt", "--liftoff", "--no-wasm-tier-up"]],
"slow_path": [["--force-slow-path"]], "slow_path": [["--force-slow-path"]],
"stress": [["--stress-opt", "--no-liftoff", "--stress-lazy-source-positions"]], "stress": [["--stress-opt", "--always-opt", "--no-liftoff",
"--stress-lazy-source-positions"]],
"stress_js_bg_compile_wasm_code_gc": [["--stress-background-compile", "stress_js_bg_compile_wasm_code_gc": [["--stress-background-compile",
"--stress-wasm-code-gc"]], "--stress-wasm-code-gc"]],
"stress_incremental_marking": [["--stress-incremental-marking"]], "stress_incremental_marking": [["--stress-incremental-marking"]],
...@@ -39,21 +40,6 @@ ALL_VARIANT_FLAGS = { ...@@ -39,21 +40,6 @@ ALL_VARIANT_FLAGS = {
"top_level_await": [["--harmony-top-level-await"]], "top_level_await": [["--harmony-top-level-await"]],
} }
# Flags that lead to a contradiction with the flags provided by the respective
# variant. This depends on the flags specified in ALL_VARIANT_FLAGS and on the
# implications defined in flag-definitions.h
INCOMPATIBLE_FLAGS_PER_VARIANT = {
"assert_types": ["--no-assert-types"],
"jitless": ["--opt", "--liftoff", "--track-field-types", "--validate-asm"],
"no_wasm_traps": ["--wasm-trap-handler"],
"nooptimization": ["--opt", "--no-liftoff", "--predictable", "--wasm-tier-up"],
"slow_path": ["--no-force-slow-path"],
"stress_incremental_marking": ["--no-stress-incremental-marking"],
"stress_js_bg_compile_wasm_code_gc": ["--no-stress-background-compile"],
"stress": ["--always-opt", "--liftoff"],
"turboprop": ["--turbo-inlining", "--interrupt-budget=*", "--no-turboprop"],
}
SLOW_VARIANTS = set([ SLOW_VARIANTS = set([
'stress', 'stress',
'stress_snapshot', 'stress_snapshot',
......
...@@ -34,7 +34,6 @@ from ..outproc import base as outproc ...@@ -34,7 +34,6 @@ from ..outproc import base as outproc
from ..local import command from ..local import command
from ..local import statusfile from ..local import statusfile
from ..local import utils from ..local import utils
from ..local.variants import INCOMPATIBLE_FLAGS_PER_VARIANT
FLAGS_PATTERN = re.compile(r"//\s+Flags:(.*)") FLAGS_PATTERN = re.compile(r"//\s+Flags:(.*)")
...@@ -85,8 +84,7 @@ class TestCase(object): ...@@ -85,8 +84,7 @@ class TestCase(object):
# Outcomes # Outcomes
self._statusfile_outcomes = None self._statusfile_outcomes = None
self._expected_outcomes = None self.expected_outcomes = None
self._checked_flag_contradictions = False
self._statusfile_flags = None self._statusfile_flags = None
self._prepare_outcomes() self._prepare_outcomes()
...@@ -118,7 +116,7 @@ class TestCase(object): ...@@ -118,7 +116,7 @@ class TestCase(object):
outcomes = self.suite.statusfile.get_outcomes(self.name, self.variant) outcomes = self.suite.statusfile.get_outcomes(self.name, self.variant)
self._statusfile_outcomes = filter(not_flag, outcomes) self._statusfile_outcomes = filter(not_flag, outcomes)
self._statusfile_flags = filter(is_flag, outcomes) self._statusfile_flags = filter(is_flag, outcomes)
self._expected_outcomes = ( self.expected_outcomes = (
self._parse_status_file_outcomes(self._statusfile_outcomes)) self._parse_status_file_outcomes(self._statusfile_outcomes))
def _parse_status_file_outcomes(self, outcomes): def _parse_status_file_outcomes(self, outcomes):
...@@ -143,30 +141,6 @@ class TestCase(object): ...@@ -143,30 +141,6 @@ class TestCase(object):
return outproc.OUTCOMES_FAIL return outproc.OUTCOMES_FAIL
return expected_outcomes or outproc.OUTCOMES_PASS return expected_outcomes or outproc.OUTCOMES_PASS
@property
def expected_outcomes(self):
if not self._checked_flag_contradictions:
self._checked_flag_contradictions = True
def normalize_flag(flag):
return flag.replace("_", "-").replace("--no-", "--no")
all_flags = [normalize_flag(flag) for flag in self._get_cmd_params()]
def has_flag(conflicting_flag):
conflicting_flag = normalize_flag(conflicting_flag)
if conflicting_flag in all_flags:
return True
if conflicting_flag.endswith("*"):
return any(flag.startswith(conflicting_flag[:-1]) for flag in all_flags)
return False
if self.variant in INCOMPATIBLE_FLAGS_PER_VARIANT:
for conflicting_flag in INCOMPATIBLE_FLAGS_PER_VARIANT[self.variant]:
if has_flag(conflicting_flag):
self._expected_outcomes = outproc.OUTCOMES_FAIL
return self._expected_outcomes
@property @property
def do_skip(self): def do_skip(self):
return (statusfile.SKIP in self._statusfile_outcomes and return (statusfile.SKIP in self._statusfile_outcomes and
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment