[cleanup] Remove flag for Wasm threads & atomics

It's been enabled everywhere since Chrome 88, and the related
Chromium flag was removed in https://crrev.com/c/2886421.

Bug: v8:6532
Change-Id: I987a5761f9453d4e7d77d16199e8f0b3a659c70a
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3956131
Commit-Queue: Adam Klein <adamk@chromium.org>
Reviewed-by: Clemens Backes <clemensb@chromium.org>
Reviewed-by: Deepti Gandluri <gdeepti@chromium.org>
Auto-Submit: Adam Klein <adamk@chromium.org>
Cr-Commit-Position: refs/heads/main@{#83809}
This commit is contained in:
Adam Klein 2022-10-14 17:05:36 -07:00 committed by V8 LUCI CQ
parent 272843757d
commit fafd7c5d22
36 changed files with 31 additions and 172 deletions

View File

@ -616,13 +616,8 @@ Maybe<bool> ValueSerializer::WriteJSReceiver(Handle<JSReceiver> receiver) {
#if V8_ENABLE_WEBASSEMBLY
case WASM_MODULE_OBJECT_TYPE:
return WriteWasmModule(Handle<WasmModuleObject>::cast(receiver));
case WASM_MEMORY_OBJECT_TYPE: {
auto enabled_features = wasm::WasmFeatures::FromIsolate(isolate_);
if (enabled_features.has_threads()) {
return WriteWasmMemory(Handle<WasmMemoryObject>::cast(receiver));
}
break;
}
case WASM_MEMORY_OBJECT_TYPE:
return WriteWasmMemory(Handle<WasmMemoryObject>::cast(receiver));
#endif // V8_ENABLE_WEBASSEMBLY
default:
break;
@ -2228,11 +2223,6 @@ MaybeHandle<JSObject> ValueDeserializer::ReadWasmModuleTransfer() {
MaybeHandle<WasmMemoryObject> ValueDeserializer::ReadWasmMemory() {
uint32_t id = next_id_++;
auto enabled_features = wasm::WasmFeatures::FromIsolate(isolate_);
if (!enabled_features.has_threads()) {
return MaybeHandle<WasmMemoryObject>();
}
int32_t maximum_pages;
if (!ReadZigZag<int32_t>().To(&maximum_pages)) {
return MaybeHandle<WasmMemoryObject>();

View File

@ -3815,7 +3815,7 @@ class WasmFullDecoder : public WasmDecoder<validate, decoding_mode> {
}
DECODE(Atomic) {
CHECK_PROTOTYPE_OPCODE(threads);
this->detected_->Add(kFeature_threads);
uint32_t opcode_length = 0;
WasmOpcode full_opcode = this->template read_prefixed_opcode<validate>(
this->pc_, &opcode_length, "atomic index");

View File

@ -1937,12 +1937,6 @@ class ModuleDecoderTemplate : public Decoder {
break;
case kSharedNoMaximum:
case kSharedWithMaximum:
if (!enabled_features_.has_threads()) {
errorf(pc() - 1,
"invalid memory limits flags 0x%x (enable via "
"--experimental-wasm-threads)",
flags);
}
*has_shared_memory = true;
// V8 does not support shared memory without a maximum.
if (flags == kSharedNoMaximum) {

View File

@ -1737,9 +1737,8 @@ bool InstanceBuilder::AllocateMemory() {
int maximum_pages = module_->has_maximum_pages
? static_cast<int>(module_->maximum_pages)
: WasmMemoryObject::kNoMaximum;
auto shared = (module_->has_shared_memory && enabled_.has_threads())
? SharedFlag::kShared
: SharedFlag::kNotShared;
auto shared =
module_->has_shared_memory ? SharedFlag::kShared : SharedFlag::kNotShared;
auto mem_type = module_->is_memory64 ? WasmMemoryFlag::kWasmMemory64
: WasmMemoryFlag::kWasmMemory32;

View File

@ -108,17 +108,6 @@
/* Shipped in v9.1 * */ \
V(simd, "SIMD opcodes", true) \
\
/* Threads proposal. */ \
/* https://github.com/webassembly/threads */ \
/* NOTE: This is enabled via chromium flag on desktop systems since v7.4, */ \
/* and on android from 9.1. Threads are only available when */ \
/* SharedArrayBuffers are enabled as well, and are gated by COOP/COEP */ \
/* headers, more fine grained control is in the chromium codebase */ \
/* ITS: https://groups.google.com/a/chromium.org/d/msg/blink-dev/ */ \
/* tD6np-OG2PU/rcNGROOMFQAJ */ \
/* V8 side owner: gdeepti */ \
V(threads, "thread opcodes", true) \
\
/* Exception handling proposal. */ \
/* https://github.com/WebAssembly/exception-handling */ \
/* V8 side owner: thibaudm */ \

View File

@ -15,8 +15,9 @@
#include "src/wasm/wasm-feature-flags.h"
// Features that are always enabled and do not have a flag.
#define FOREACH_WASM_NON_FLAG_FEATURE(V) \
V(reftypes, "reference type opcodes", true)
#define FOREACH_WASM_NON_FLAG_FEATURE(V) \
V(reftypes, "reference type opcodes", true) \
V(threads, "thread opcodes", true)
// All features, including features that do not have flags.
#define FOREACH_WASM_FEATURE(V) \

View File

@ -1293,27 +1293,22 @@ void WebAssemblyMemory(const v8::FunctionCallbackInfo<v8::Value>& args) {
}
auto shared = i::SharedFlag::kNotShared;
auto enabled_features = i::wasm::WasmFeatures::FromIsolate(i_isolate);
if (enabled_features.has_threads()) {
// Shared property of descriptor
Local<String> shared_key = v8_str(isolate, "shared");
v8::MaybeLocal<v8::Value> maybe_value =
descriptor->Get(context, shared_key);
v8::Local<v8::Value> value;
if (maybe_value.ToLocal(&value)) {
shared = value->BooleanValue(isolate) ? i::SharedFlag::kShared
: i::SharedFlag::kNotShared;
} else {
DCHECK(i_isolate->has_scheduled_exception());
return;
}
// Shared property of descriptor
Local<String> shared_key = v8_str(isolate, "shared");
v8::MaybeLocal<v8::Value> maybe_value = descriptor->Get(context, shared_key);
v8::Local<v8::Value> value;
if (maybe_value.ToLocal(&value)) {
shared = value->BooleanValue(isolate) ? i::SharedFlag::kShared
: i::SharedFlag::kNotShared;
} else {
DCHECK(i_isolate->has_scheduled_exception());
return;
}
// Throw TypeError if shared is true, and the descriptor has no "maximum"
if (shared == i::SharedFlag::kShared && maximum == -1) {
thrower.TypeError(
"If shared is true, maximum property should be defined.");
return;
}
// Throw TypeError if shared is true, and the descriptor has no "maximum"
if (shared == i::SharedFlag::kShared && maximum == -1) {
thrower.TypeError("If shared is true, maximum property should be defined.");
return;
}
i::Handle<i::JSObject> memory_obj;

View File

@ -26748,8 +26748,6 @@ namespace v8 {
namespace internal {
namespace wasm {
TEST(WasmI32AtomicWaitCallback) {
FlagScope<bool> wasm_threads_flag(&i::v8_flags.experimental_wasm_threads,
true);
WasmRunner<int32_t, int32_t, int32_t, double> r(TestExecutionTier::kTurbofan);
r.builder().AddMemory(kWasmPageSize, SharedFlag::kShared);
r.builder().SetHasSharedMemory();
@ -26785,8 +26783,6 @@ TEST(WasmI32AtomicWaitCallback) {
}
TEST(WasmI64AtomicWaitCallback) {
FlagScope<bool> wasm_threads_flag(&i::v8_flags.experimental_wasm_threads,
true);
WasmRunner<int32_t, int32_t, double, double> r(TestExecutionTier::kTurbofan);
r.builder().AddMemory(kWasmPageSize, SharedFlag::kShared);
r.builder().SetHasSharedMemory();

View File

@ -12,7 +12,6 @@ namespace test_run_wasm_atomics {
void RunU32BinOp(TestExecutionTier execution_tier, WasmOpcode wasm_op,
Uint32BinOp expected_op) {
EXPERIMENTAL_FLAG_SCOPE(threads);
WasmRunner<uint32_t, uint32_t> r(execution_tier);
uint32_t* memory =
r.builder().AddMemoryElems<uint32_t>(kWasmPageSize / sizeof(uint32_t));
@ -41,7 +40,6 @@ WASM_ATOMIC_OPERATION_LIST(TEST_OPERATION)
void RunU16BinOp(TestExecutionTier tier, WasmOpcode wasm_op,
Uint16BinOp expected_op) {
EXPERIMENTAL_FLAG_SCOPE(threads);
WasmRunner<uint32_t, uint32_t> r(tier);
r.builder().SetHasSharedMemory();
uint16_t* memory =
@ -70,7 +68,6 @@ WASM_ATOMIC_OPERATION_LIST(TEST_OPERATION)
void RunU8BinOp(TestExecutionTier execution_tier, WasmOpcode wasm_op,
Uint8BinOp expected_op) {
EXPERIMENTAL_FLAG_SCOPE(threads);
WasmRunner<uint32_t, uint32_t> r(execution_tier);
r.builder().SetHasSharedMemory();
uint8_t* memory = r.builder().AddMemoryElems<uint8_t>(kWasmPageSize);
@ -97,7 +94,6 @@ WASM_ATOMIC_OPERATION_LIST(TEST_OPERATION)
#undef TEST_OPERATION
WASM_EXEC_TEST(I32AtomicCompareExchange) {
EXPERIMENTAL_FLAG_SCOPE(threads);
WasmRunner<uint32_t, uint32_t, uint32_t> r(execution_tier);
r.builder().SetHasSharedMemory();
uint32_t* memory =
@ -118,7 +114,6 @@ WASM_EXEC_TEST(I32AtomicCompareExchange) {
}
WASM_EXEC_TEST(I32AtomicCompareExchange16U) {
EXPERIMENTAL_FLAG_SCOPE(threads);
WasmRunner<uint32_t, uint32_t, uint32_t> r(execution_tier);
r.builder().SetHasSharedMemory();
uint16_t* memory =
@ -140,7 +135,6 @@ WASM_EXEC_TEST(I32AtomicCompareExchange16U) {
}
WASM_EXEC_TEST(I32AtomicCompareExchange8U) {
EXPERIMENTAL_FLAG_SCOPE(threads);
WasmRunner<uint32_t, uint32_t, uint32_t> r(execution_tier);
r.builder().SetHasSharedMemory();
uint8_t* memory = r.builder().AddMemoryElems<uint8_t>(kWasmPageSize);
@ -161,7 +155,6 @@ WASM_EXEC_TEST(I32AtomicCompareExchange8U) {
}
WASM_EXEC_TEST(I32AtomicCompareExchange_fail) {
EXPERIMENTAL_FLAG_SCOPE(threads);
WasmRunner<uint32_t, uint32_t, uint32_t> r(execution_tier);
r.builder().SetHasSharedMemory();
uint32_t* memory =
@ -183,7 +176,6 @@ WASM_EXEC_TEST(I32AtomicCompareExchange_fail) {
}
WASM_EXEC_TEST(I32AtomicLoad) {
EXPERIMENTAL_FLAG_SCOPE(threads);
WasmRunner<uint32_t> r(execution_tier);
r.builder().SetHasSharedMemory();
uint32_t* memory =
@ -199,7 +191,6 @@ WASM_EXEC_TEST(I32AtomicLoad) {
}
WASM_EXEC_TEST(I32AtomicLoad16U) {
EXPERIMENTAL_FLAG_SCOPE(threads);
WasmRunner<uint32_t> r(execution_tier);
r.builder().SetHasSharedMemory();
uint16_t* memory =
@ -215,7 +206,6 @@ WASM_EXEC_TEST(I32AtomicLoad16U) {
}
WASM_EXEC_TEST(I32AtomicLoad8U) {
EXPERIMENTAL_FLAG_SCOPE(threads);
WasmRunner<uint32_t> r(execution_tier);
r.builder().SetHasSharedMemory();
uint8_t* memory = r.builder().AddMemoryElems<uint8_t>(kWasmPageSize);
@ -230,7 +220,6 @@ WASM_EXEC_TEST(I32AtomicLoad8U) {
}
WASM_EXEC_TEST(I32AtomicStoreLoad) {
EXPERIMENTAL_FLAG_SCOPE(threads);
WasmRunner<uint32_t, uint32_t> r(execution_tier);
r.builder().SetHasSharedMemory();
uint32_t* memory =
@ -250,7 +239,6 @@ WASM_EXEC_TEST(I32AtomicStoreLoad) {
}
WASM_EXEC_TEST(I32AtomicStoreLoad16U) {
EXPERIMENTAL_FLAG_SCOPE(threads);
WasmRunner<uint32_t, uint32_t> r(execution_tier);
r.builder().SetHasSharedMemory();
uint16_t* memory =
@ -271,7 +259,6 @@ WASM_EXEC_TEST(I32AtomicStoreLoad16U) {
}
WASM_EXEC_TEST(I32AtomicStoreLoad8U) {
EXPERIMENTAL_FLAG_SCOPE(threads);
WasmRunner<uint32_t, uint32_t> r(execution_tier);
r.builder().SetHasSharedMemory();
uint8_t* memory = r.builder().AddMemoryElems<uint8_t>(kWasmPageSize);
@ -290,7 +277,6 @@ WASM_EXEC_TEST(I32AtomicStoreLoad8U) {
}
WASM_EXEC_TEST(I32AtomicStoreParameter) {
EXPERIMENTAL_FLAG_SCOPE(threads);
WasmRunner<uint32_t, uint32_t> r(execution_tier);
uint32_t* memory =
r.builder().AddMemoryElems<uint32_t>(kWasmPageSize / sizeof(uint32_t));
@ -306,7 +292,6 @@ WASM_EXEC_TEST(I32AtomicStoreParameter) {
}
WASM_EXEC_TEST(AtomicFence) {
EXPERIMENTAL_FLAG_SCOPE(threads);
WasmRunner<uint32_t> r(execution_tier);
// Note that this test specifically doesn't use a shared memory, as the fence
// instruction does not target a particular linear memory. It may occur in
@ -318,7 +303,6 @@ WASM_EXEC_TEST(AtomicFence) {
}
WASM_EXEC_TEST(AtomicStoreNoConsideredEffectful) {
EXPERIMENTAL_FLAG_SCOPE(threads);
// Use {Load} instead of {ProtectedLoad}.
FLAG_SCOPE(wasm_enforce_bounds_checks);
WasmRunner<uint32_t> r(execution_tier);
@ -332,7 +316,6 @@ WASM_EXEC_TEST(AtomicStoreNoConsideredEffectful) {
}
void RunNoEffectTest(TestExecutionTier execution_tier, WasmOpcode wasm_op) {
EXPERIMENTAL_FLAG_SCOPE(threads);
// Use {Load} instead of {ProtectedLoad}.
FLAG_SCOPE(wasm_enforce_bounds_checks);
WasmRunner<uint32_t> r(execution_tier);
@ -354,7 +337,6 @@ WASM_EXEC_TEST(AtomicExchangeNoConsideredEffectful) {
}
WASM_EXEC_TEST(AtomicCompareExchangeNoConsideredEffectful) {
EXPERIMENTAL_FLAG_SCOPE(threads);
// Use {Load} instead of {ProtectedLoad}.
FLAG_SCOPE(wasm_enforce_bounds_checks);
WasmRunner<uint32_t> r(execution_tier);
@ -369,7 +351,6 @@ WASM_EXEC_TEST(AtomicCompareExchangeNoConsideredEffectful) {
}
WASM_EXEC_TEST(I32AtomicLoad_trap) {
EXPERIMENTAL_FLAG_SCOPE(threads);
WasmRunner<uint32_t> r(execution_tier);
r.builder().SetHasSharedMemory();
r.builder().AddMemory(kWasmPageSize);
@ -379,7 +360,6 @@ WASM_EXEC_TEST(I32AtomicLoad_trap) {
}
WASM_EXEC_TEST(I64AtomicLoad_trap) {
EXPERIMENTAL_FLAG_SCOPE(threads);
WasmRunner<uint64_t> r(execution_tier);
r.builder().SetHasSharedMemory();
r.builder().AddMemory(kWasmPageSize);
@ -389,7 +369,6 @@ WASM_EXEC_TEST(I64AtomicLoad_trap) {
}
WASM_EXEC_TEST(I32AtomicStore_trap) {
EXPERIMENTAL_FLAG_SCOPE(threads);
WasmRunner<uint32_t> r(execution_tier);
r.builder().SetHasSharedMemory();
r.builder().AddMemory(kWasmPageSize);
@ -401,7 +380,6 @@ WASM_EXEC_TEST(I32AtomicStore_trap) {
}
WASM_EXEC_TEST(I64AtomicStore_trap) {
EXPERIMENTAL_FLAG_SCOPE(threads);
WasmRunner<uint32_t> r(execution_tier);
r.builder().SetHasSharedMemory();
r.builder().AddMemory(kWasmPageSize);
@ -413,7 +391,6 @@ WASM_EXEC_TEST(I64AtomicStore_trap) {
}
WASM_EXEC_TEST(I32AtomicLoad_NotOptOut) {
EXPERIMENTAL_FLAG_SCOPE(threads);
WasmRunner<uint32_t> r(execution_tier);
r.builder().SetHasSharedMemory();
r.builder().AddMemory(kWasmPageSize);
@ -425,7 +402,6 @@ WASM_EXEC_TEST(I32AtomicLoad_NotOptOut) {
}
void RunU32BinOp_OOB(TestExecutionTier execution_tier, WasmOpcode wasm_op) {
EXPERIMENTAL_FLAG_SCOPE(threads);
WasmRunner<uint32_t> r(execution_tier);
r.builder().AddMemory(kWasmPageSize);
r.builder().SetHasSharedMemory();
@ -444,7 +420,6 @@ WASM_ATOMIC_OPERATION_LIST(TEST_OPERATION)
#undef TEST_OPERATION
void RunU64BinOp_OOB(TestExecutionTier execution_tier, WasmOpcode wasm_op) {
EXPERIMENTAL_FLAG_SCOPE(threads);
WasmRunner<uint64_t> r(execution_tier);
r.builder().AddMemory(kWasmPageSize);
r.builder().SetHasSharedMemory();
@ -463,7 +438,6 @@ WASM_ATOMIC_OPERATION_LIST(TEST_OPERATION)
#undef TEST_OPERATION
WASM_EXEC_TEST(I32AtomicCompareExchange_trap) {
EXPERIMENTAL_FLAG_SCOPE(threads);
WasmRunner<uint32_t, uint32_t, uint32_t> r(execution_tier);
r.builder().SetHasSharedMemory();
uint32_t* memory =
@ -483,7 +457,6 @@ WASM_EXEC_TEST(I32AtomicCompareExchange_trap) {
}
WASM_EXEC_TEST(I64AtomicCompareExchange_trap) {
EXPERIMENTAL_FLAG_SCOPE(threads);
WasmRunner<uint64_t> r(execution_tier);
r.builder().SetHasSharedMemory();
r.builder().AddMemory(kWasmPageSize);

View File

@ -12,7 +12,6 @@ namespace test_run_wasm_atomics_64 {
void RunU64BinOp(TestExecutionTier execution_tier, WasmOpcode wasm_op,
Uint64BinOp expected_op) {
EXPERIMENTAL_FLAG_SCOPE(threads);
WasmRunner<uint64_t, uint64_t> r(execution_tier);
uint64_t* memory =
r.builder().AddMemoryElems<uint64_t>(kWasmPageSize / sizeof(uint64_t));
@ -41,7 +40,6 @@ WASM_ATOMIC_OPERATION_LIST(TEST_OPERATION)
void RunU32BinOp(TestExecutionTier execution_tier, WasmOpcode wasm_op,
Uint32BinOp expected_op) {
EXPERIMENTAL_FLAG_SCOPE(threads);
WasmRunner<uint64_t, uint64_t> r(execution_tier);
uint32_t* memory =
r.builder().AddMemoryElems<uint32_t>(kWasmPageSize / sizeof(uint32_t));
@ -70,7 +68,6 @@ WASM_ATOMIC_OPERATION_LIST(TEST_OPERATION)
void RunU16BinOp(TestExecutionTier tier, WasmOpcode wasm_op,
Uint16BinOp expected_op) {
EXPERIMENTAL_FLAG_SCOPE(threads);
WasmRunner<uint64_t, uint64_t> r(tier);
r.builder().SetHasSharedMemory();
uint16_t* memory =
@ -99,7 +96,6 @@ WASM_ATOMIC_OPERATION_LIST(TEST_OPERATION)
void RunU8BinOp(TestExecutionTier execution_tier, WasmOpcode wasm_op,
Uint8BinOp expected_op) {
EXPERIMENTAL_FLAG_SCOPE(threads);
WasmRunner<uint64_t, uint64_t> r(execution_tier);
r.builder().SetHasSharedMemory();
uint8_t* memory = r.builder().AddMemoryElems<uint8_t>(kWasmPageSize);
@ -126,7 +122,6 @@ WASM_ATOMIC_OPERATION_LIST(TEST_OPERATION)
#undef TEST_OPERATION
WASM_EXEC_TEST(I64AtomicCompareExchange) {
EXPERIMENTAL_FLAG_SCOPE(threads);
WasmRunner<uint64_t, uint64_t, uint64_t> r(execution_tier);
r.builder().SetHasSharedMemory();
uint64_t* memory =
@ -147,7 +142,6 @@ WASM_EXEC_TEST(I64AtomicCompareExchange) {
}
WASM_EXEC_TEST(I64AtomicCompareExchange32U) {
EXPERIMENTAL_FLAG_SCOPE(threads);
WasmRunner<uint64_t, uint64_t, uint64_t> r(execution_tier);
r.builder().SetHasSharedMemory();
uint32_t* memory =
@ -169,7 +163,6 @@ WASM_EXEC_TEST(I64AtomicCompareExchange32U) {
}
WASM_EXEC_TEST(I64AtomicCompareExchange16U) {
EXPERIMENTAL_FLAG_SCOPE(threads);
WasmRunner<uint64_t, uint64_t, uint64_t> r(execution_tier);
r.builder().SetHasSharedMemory();
uint16_t* memory =
@ -191,7 +184,6 @@ WASM_EXEC_TEST(I64AtomicCompareExchange16U) {
}
WASM_EXEC_TEST(I32AtomicCompareExchange8U) {
EXPERIMENTAL_FLAG_SCOPE(threads);
WasmRunner<uint64_t, uint64_t, uint64_t> r(execution_tier);
r.builder().SetHasSharedMemory();
uint8_t* memory = r.builder().AddMemoryElems<uint8_t>(kWasmPageSize);
@ -211,7 +203,6 @@ WASM_EXEC_TEST(I32AtomicCompareExchange8U) {
}
WASM_EXEC_TEST(I64AtomicLoad) {
EXPERIMENTAL_FLAG_SCOPE(threads);
WasmRunner<uint64_t> r(execution_tier);
r.builder().SetHasSharedMemory();
uint64_t* memory =
@ -227,7 +218,6 @@ WASM_EXEC_TEST(I64AtomicLoad) {
}
WASM_EXEC_TEST(I64AtomicLoad32U) {
EXPERIMENTAL_FLAG_SCOPE(threads);
WasmRunner<uint64_t> r(execution_tier);
r.builder().SetHasSharedMemory();
uint32_t* memory =
@ -243,7 +233,6 @@ WASM_EXEC_TEST(I64AtomicLoad32U) {
}
WASM_EXEC_TEST(I64AtomicLoad16U) {
EXPERIMENTAL_FLAG_SCOPE(threads);
WasmRunner<uint64_t> r(execution_tier);
r.builder().SetHasSharedMemory();
uint16_t* memory =
@ -259,7 +248,6 @@ WASM_EXEC_TEST(I64AtomicLoad16U) {
}
WASM_EXEC_TEST(I64AtomicLoad8U) {
EXPERIMENTAL_FLAG_SCOPE(threads);
WasmRunner<uint64_t> r(execution_tier);
r.builder().SetHasSharedMemory();
uint8_t* memory = r.builder().AddMemoryElems<uint8_t>(kWasmPageSize);
@ -274,7 +262,6 @@ WASM_EXEC_TEST(I64AtomicLoad8U) {
}
WASM_EXEC_TEST(I64AtomicStoreLoad) {
EXPERIMENTAL_FLAG_SCOPE(threads);
WasmRunner<uint64_t, uint64_t> r(execution_tier);
r.builder().SetHasSharedMemory();
uint64_t* memory =
@ -294,7 +281,6 @@ WASM_EXEC_TEST(I64AtomicStoreLoad) {
}
WASM_EXEC_TEST(I64AtomicStoreLoad32U) {
EXPERIMENTAL_FLAG_SCOPE(threads);
WasmRunner<uint64_t, uint64_t> r(execution_tier);
r.builder().SetHasSharedMemory();
uint32_t* memory =
@ -315,7 +301,6 @@ WASM_EXEC_TEST(I64AtomicStoreLoad32U) {
}
WASM_EXEC_TEST(I64AtomicStoreLoad16U) {
EXPERIMENTAL_FLAG_SCOPE(threads);
WasmRunner<uint64_t, uint64_t> r(execution_tier);
r.builder().SetHasSharedMemory();
uint16_t* memory =
@ -336,7 +321,6 @@ WASM_EXEC_TEST(I64AtomicStoreLoad16U) {
}
WASM_EXEC_TEST(I64AtomicStoreLoad8U) {
EXPERIMENTAL_FLAG_SCOPE(threads);
WasmRunner<uint64_t, uint64_t> r(execution_tier);
r.builder().SetHasSharedMemory();
uint8_t* memory = r.builder().AddMemoryElems<uint8_t>(kWasmPageSize);
@ -358,7 +342,6 @@ WASM_EXEC_TEST(I64AtomicStoreLoad8U) {
// entire 64-bit output is optimized out
void RunDropTest(TestExecutionTier execution_tier, WasmOpcode wasm_op,
Uint64BinOp op) {
EXPERIMENTAL_FLAG_SCOPE(threads);
WasmRunner<uint64_t, uint64_t> r(execution_tier);
uint64_t* memory =
r.builder().AddMemoryElems<uint64_t>(kWasmPageSize / sizeof(uint64_t));
@ -384,7 +367,6 @@ WASM_ATOMIC_OPERATION_LIST(TEST_OPERATION)
#undef TEST_OPERATION
WASM_EXEC_TEST(I64AtomicSub16UDrop) {
EXPERIMENTAL_FLAG_SCOPE(threads);
WasmRunner<uint64_t, uint64_t> r(execution_tier);
uint16_t* memory =
r.builder().AddMemoryElems<uint16_t>(kWasmPageSize / sizeof(uint16_t));
@ -403,7 +385,6 @@ WASM_EXEC_TEST(I64AtomicSub16UDrop) {
}
WASM_EXEC_TEST(I64AtomicCompareExchangeDrop) {
EXPERIMENTAL_FLAG_SCOPE(threads);
WasmRunner<uint64_t, uint64_t, uint64_t> r(execution_tier);
r.builder().SetHasSharedMemory();
uint64_t* memory =
@ -422,7 +403,6 @@ WASM_EXEC_TEST(I64AtomicCompareExchangeDrop) {
}
WASM_EXEC_TEST(I64AtomicStoreLoadDrop) {
EXPERIMENTAL_FLAG_SCOPE(threads);
WasmRunner<uint64_t, uint64_t, uint64_t> r(execution_tier);
r.builder().SetHasSharedMemory();
uint64_t* memory =
@ -441,7 +421,6 @@ WASM_EXEC_TEST(I64AtomicStoreLoadDrop) {
}
WASM_EXEC_TEST(I64AtomicAddConvertDrop) {
EXPERIMENTAL_FLAG_SCOPE(threads);
WasmRunner<uint64_t, uint64_t> r(execution_tier);
uint64_t* memory =
r.builder().AddMemoryElems<uint64_t>(kWasmPageSize / sizeof(uint64_t));
@ -460,7 +439,6 @@ WASM_EXEC_TEST(I64AtomicAddConvertDrop) {
}
WASM_EXEC_TEST(I64AtomicLoadConvertDrop) {
EXPERIMENTAL_FLAG_SCOPE(threads);
WasmRunner<uint32_t, uint64_t> r(execution_tier);
uint64_t* memory =
r.builder().AddMemoryElems<uint64_t>(kWasmPageSize / sizeof(uint64_t));
@ -478,7 +456,6 @@ WASM_EXEC_TEST(I64AtomicLoadConvertDrop) {
// upper half of the 64-bit output is optimized out
void RunConvertTest(TestExecutionTier execution_tier, WasmOpcode wasm_op,
Uint64BinOp op) {
EXPERIMENTAL_FLAG_SCOPE(threads);
WasmRunner<uint32_t, uint64_t> r(execution_tier);
uint64_t* memory =
r.builder().AddMemoryElems<uint64_t>(kWasmPageSize / sizeof(uint64_t));
@ -503,7 +480,6 @@ WASM_ATOMIC_OPERATION_LIST(TEST_OPERATION)
#undef TEST_OPERATION
WASM_EXEC_TEST(I64AtomicConvertCompareExchange) {
EXPERIMENTAL_FLAG_SCOPE(threads);
WasmRunner<uint32_t, uint64_t, uint64_t> r(execution_tier);
uint64_t* memory =
r.builder().AddMemoryElems<uint64_t>(kWasmPageSize / sizeof(uint64_t));
@ -524,7 +500,6 @@ WASM_EXEC_TEST(I64AtomicConvertCompareExchange) {
// is lowered correctly.
void RunNonConstIndexTest(TestExecutionTier execution_tier, WasmOpcode wasm_op,
Uint64BinOp op) {
EXPERIMENTAL_FLAG_SCOPE(threads);
WasmRunner<uint32_t, uint64_t> r(execution_tier);
uint64_t* memory =
r.builder().AddMemoryElems<uint64_t>(kWasmPageSize / sizeof(uint64_t));
@ -558,7 +533,6 @@ WASM_ATOMIC_OPERATION_LIST(TEST_OPERATION)
#undef TEST_OPERATION
WASM_EXEC_TEST(I64AtomicNonConstIndexCompareExchangeNarrow) {
EXPERIMENTAL_FLAG_SCOPE(threads);
WasmRunner<uint32_t, uint64_t, uint64_t> r(execution_tier);
uint64_t* memory =
r.builder().AddMemoryElems<uint64_t>(kWasmPageSize / sizeof(uint64_t));
@ -577,7 +551,6 @@ WASM_EXEC_TEST(I64AtomicNonConstIndexCompareExchangeNarrow) {
}
WASM_EXEC_TEST(I64AtomicNonConstIndexCompareExchange) {
EXPERIMENTAL_FLAG_SCOPE(threads);
WasmRunner<uint32_t, uint64_t, uint64_t> r(execution_tier);
uint64_t* memory =
r.builder().AddMemoryElems<uint64_t>(kWasmPageSize / sizeof(uint64_t));
@ -596,7 +569,6 @@ WASM_EXEC_TEST(I64AtomicNonConstIndexCompareExchange) {
}
WASM_EXEC_TEST(I64AtomicNonConstIndexLoad8U) {
EXPERIMENTAL_FLAG_SCOPE(threads);
WasmRunner<uint32_t> r(execution_tier);
r.builder().SetHasSharedMemory();
uint64_t* memory =
@ -611,7 +583,6 @@ WASM_EXEC_TEST(I64AtomicNonConstIndexLoad8U) {
}
WASM_EXEC_TEST(I64AtomicCompareExchangeFail) {
EXPERIMENTAL_FLAG_SCOPE(threads);
WasmRunner<uint64_t, uint64_t, uint64_t> r(execution_tier);
r.builder().SetHasSharedMemory();
uint64_t* memory =
@ -629,7 +600,6 @@ WASM_EXEC_TEST(I64AtomicCompareExchangeFail) {
}
WASM_EXEC_TEST(I64AtomicCompareExchange32UFail) {
EXPERIMENTAL_FLAG_SCOPE(threads);
WasmRunner<uint64_t, uint64_t, uint64_t> r(execution_tier);
r.builder().SetHasSharedMemory();
uint64_t* memory =
@ -647,7 +617,6 @@ WASM_EXEC_TEST(I64AtomicCompareExchange32UFail) {
}
WASM_EXEC_TEST(AtomicStoreNoConsideredEffectful) {
EXPERIMENTAL_FLAG_SCOPE(threads);
// Use {Load} instead of {ProtectedLoad}.
FLAG_SCOPE(wasm_enforce_bounds_checks);
WasmRunner<uint32_t> r(execution_tier);
@ -661,7 +630,6 @@ WASM_EXEC_TEST(AtomicStoreNoConsideredEffectful) {
}
void RunNoEffectTest(TestExecutionTier execution_tier, WasmOpcode wasm_op) {
EXPERIMENTAL_FLAG_SCOPE(threads);
// Use {Load} instead of {ProtectedLoad}.
FLAG_SCOPE(wasm_enforce_bounds_checks);
WasmRunner<uint32_t> r(execution_tier);
@ -683,7 +651,6 @@ WASM_EXEC_TEST(AtomicExchangeNoConsideredEffectful) {
}
WASM_EXEC_TEST(AtomicCompareExchangeNoConsideredEffectful) {
EXPERIMENTAL_FLAG_SCOPE(threads);
// Use {Load} instead of {ProtectedLoad}.
FLAG_SCOPE(wasm_enforce_bounds_checks);
WasmRunner<uint32_t> r(execution_tier);
@ -698,7 +665,6 @@ WASM_EXEC_TEST(AtomicCompareExchangeNoConsideredEffectful) {
}
WASM_EXEC_TEST(I64AtomicLoadUseOnlyLowWord) {
EXPERIMENTAL_FLAG_SCOPE(threads);
WasmRunner<uint32_t> r(execution_tier);
uint64_t* memory =
r.builder().AddMemoryElems<uint64_t>(kWasmPageSize / sizeof(uint64_t));
@ -713,7 +679,6 @@ WASM_EXEC_TEST(I64AtomicLoadUseOnlyLowWord) {
}
WASM_EXEC_TEST(I64AtomicLoadUseOnlyHighWord) {
EXPERIMENTAL_FLAG_SCOPE(threads);
WasmRunner<uint32_t> r(execution_tier);
uint64_t* memory =
r.builder().AddMemoryElems<uint64_t>(kWasmPageSize / sizeof(uint64_t));
@ -729,7 +694,6 @@ WASM_EXEC_TEST(I64AtomicLoadUseOnlyHighWord) {
}
WASM_EXEC_TEST(I64AtomicAddUseOnlyLowWord) {
EXPERIMENTAL_FLAG_SCOPE(threads);
WasmRunner<uint32_t> r(execution_tier);
uint64_t* memory =
r.builder().AddMemoryElems<uint64_t>(kWasmPageSize / sizeof(uint64_t));
@ -744,7 +708,6 @@ WASM_EXEC_TEST(I64AtomicAddUseOnlyLowWord) {
}
WASM_EXEC_TEST(I64AtomicAddUseOnlyHighWord) {
EXPERIMENTAL_FLAG_SCOPE(threads);
WasmRunner<uint32_t> r(execution_tier);
uint64_t* memory =
r.builder().AddMemoryElems<uint64_t>(kWasmPageSize / sizeof(uint64_t));
@ -760,7 +723,6 @@ WASM_EXEC_TEST(I64AtomicAddUseOnlyHighWord) {
}
WASM_EXEC_TEST(I64AtomicCompareExchangeUseOnlyLowWord) {
EXPERIMENTAL_FLAG_SCOPE(threads);
WasmRunner<uint32_t> r(execution_tier);
uint64_t* memory =
r.builder().AddMemoryElems<uint64_t>(kWasmPageSize / sizeof(uint64_t));
@ -775,7 +737,6 @@ WASM_EXEC_TEST(I64AtomicCompareExchangeUseOnlyLowWord) {
}
WASM_EXEC_TEST(I64AtomicCompareExchangeUseOnlyHighWord) {
EXPERIMENTAL_FLAG_SCOPE(threads);
WasmRunner<uint32_t> r(execution_tier);
uint64_t* memory =
r.builder().AddMemoryElems<uint64_t>(kWasmPageSize / sizeof(uint64_t));
@ -792,7 +753,6 @@ WASM_EXEC_TEST(I64AtomicCompareExchangeUseOnlyHighWord) {
}
WASM_EXEC_TEST(I64AtomicExchangeUseOnlyLowWord) {
EXPERIMENTAL_FLAG_SCOPE(threads);
WasmRunner<uint32_t> r(execution_tier);
uint64_t* memory =
r.builder().AddMemoryElems<uint64_t>(kWasmPageSize / sizeof(uint64_t));
@ -807,7 +767,6 @@ WASM_EXEC_TEST(I64AtomicExchangeUseOnlyLowWord) {
}
WASM_EXEC_TEST(I64AtomicExchangeUseOnlyHighWord) {
EXPERIMENTAL_FLAG_SCOPE(threads);
WasmRunner<uint32_t> r(execution_tier);
uint64_t* memory =
r.builder().AddMemoryElems<uint64_t>(kWasmPageSize / sizeof(uint64_t));
@ -823,7 +782,6 @@ WASM_EXEC_TEST(I64AtomicExchangeUseOnlyHighWord) {
}
WASM_EXEC_TEST(I64AtomicCompareExchange32UZeroExtended) {
EXPERIMENTAL_FLAG_SCOPE(threads);
WasmRunner<uint32_t> r(execution_tier);
uint64_t* memory =
r.builder().AddMemoryElems<uint64_t>(kWasmPageSize / sizeof(uint64_t));

View File

@ -2,7 +2,7 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
// Flags: --wasm-grow-shared-memory --experimental-wasm-threads
// Flags: --wasm-grow-shared-memory
const kNumWorkers = 100;
const kNumMessages = 50;

View File

@ -2,8 +2,6 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
// Flags: --experimental-wasm-threads
d8.file.execute('test/mjsunit/wasm/wasm-module-builder.js');
const kNumberOfWorker = 4;

View File

@ -2,8 +2,6 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
// Flags: --experimental-wasm-threads
d8.file.execute("test/mjsunit/wasm/wasm-module-builder.js");
let memory = new WebAssembly.Memory({

View File

@ -3,7 +3,6 @@
// found in the LICENSE file.
// Flags: --expose-wasm --liftoff --no-wasm-tier-up --print-code --wasm-staging
// Flags: --experimental-wasm-threads
d8.file.execute("test/mjsunit/wasm/wasm-module-builder.js");

View File

@ -2,7 +2,7 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
//
// Flags: --no-liftoff --experimental-wasm-return-call --experimental-wasm-threads
// Flags: --no-liftoff --experimental-wasm-return-call
d8.file.execute("test/mjsunit/wasm/wasm-module-builder.js");

View File

@ -2,8 +2,6 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
// Flags: --experimental-wasm-threads
d8.file.execute('test/mjsunit/wasm/wasm-module-builder.js');
const builder = new WasmModuleBuilder();

View File

@ -2,7 +2,7 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
// Flags: --experimental-wasm-gc --experimental-wasm-threads
// Flags: --experimental-wasm-gc
// During Turbofan optimizations, when a TrapIf/Unless node is found to always
// trap, its uses need to be marked as dead. However, in the case that one of

View File

@ -2,7 +2,7 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
// Flags: --allow-natives-syntax --experimental-wasm-threads
// Flags: --allow-natives-syntax
d8.file.execute('test/mjsunit/wasm/wasm-module-builder.js');

View File

@ -2,8 +2,6 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
// Flags: --experimental-wasm-threads
assertThrows(() => new WebAssembly.Module(
new Uint8Array([
0x00, 0x61, 0x73, 0x6d, // wasm magic

View File

@ -1,7 +1,6 @@
// Copyright 2019 the V8 project authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
// Flags: --experimental-wasm-threads
d8.file.execute('test/mjsunit/wasm/wasm-module-builder.js');

View File

@ -2,7 +2,7 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
// Flags: --experimental-wasm-eh --experimental-wasm-threads
// Flags: --experimental-wasm-eh
d8.file.execute("test/mjsunit/wasm/wasm-module-builder.js");

View File

@ -2,8 +2,6 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
// Flags: --experimental-wasm-threads
d8.file.execute("test/mjsunit/wasm/wasm-module-builder.js");
// TODO(gdeepti): If non-shared atomics are moving forward, ensure that

View File

@ -2,8 +2,6 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
// Flags: --experimental-wasm-threads
// This test might time out if the search space for a sequential
// interleaving becomes to large. However, it should never fail.
// Note that results of this test are flaky by design. While the test is

View File

@ -2,8 +2,6 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
// Flags: --experimental-wasm-threads
d8.file.execute("test/mjsunit/wasm/wasm-module-builder.js");
const kMemtypeSize32 = 4;

View File

@ -2,8 +2,6 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
// Flags: --experimental-wasm-threads
// This test might time out if the search space for a sequential
// interleaving becomes to large. However, it should never fail.
// Note that results of this test are flaky by design. While the test is

View File

@ -2,8 +2,6 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
// Flags: --experimental-wasm-threads
d8.file.execute("test/mjsunit/wasm/wasm-module-builder.js");
const kSequenceLength = 8192;

View File

@ -2,8 +2,6 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
// Flags: --experimental-wasm-threads
d8.file.execute("test/mjsunit/wasm/wasm-module-builder.js");
const kSequenceLength = 8192;

View File

@ -3,7 +3,6 @@
// found in the LICENSE file.
// Flags: --allow-natives-syntax --harmony-sharedarraybuffer
// Flags: --experimental-wasm-threads
'use strict';

View File

@ -2,7 +2,7 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
// Flags: --experimental-wasm-threads --expose-gc
// Flags: --expose-gc
d8.file.execute("test/mjsunit/worker-ping-test.js");

View File

@ -2,8 +2,6 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
// Flags: --experimental-wasm-threads
d8.file.execute("test/mjsunit/worker-ping-test.js");
let kDisabledAbort = false; // TODO(9380): enable abort for this test

View File

@ -2,7 +2,7 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
// Flags: --experimental-wasm-threads --expose-gc
// Flags: --expose-gc
const kNumMessages = 1000;

View File

@ -2,7 +2,7 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
// Flags: --experimental-wasm-threads --expose-gc
// Flags: --expose-gc
const kNumIterations = 10;

View File

@ -2,8 +2,6 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
// Flags: --experimental-wasm-threads
d8.file.execute("test/mjsunit/worker-ping-test.js");
// TODO(v8:9380): increase {numThings} and {numWorkers} when stress-opt mode

View File

@ -2,8 +2,6 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
// Flags: --experimental-wasm-threads
d8.file.execute("test/mjsunit/wasm/wasm-module-builder.js");
function assertMemoryIsValid(memory, shared) {

View File

@ -2,8 +2,6 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
// Flags: --experimental-wasm-threads
(function TestPostMessageUnsharedMemory() {
let worker = new Worker('', {type: 'string'});
let memory = new WebAssembly.Memory({initial: 1, maximum: 2});

View File

@ -2608,9 +2608,6 @@ TEST_F(ValueSerializerTestWithSharedArrayBufferClone,
#if V8_ENABLE_WEBASSEMBLY
TEST_F(ValueSerializerTestWithSharedArrayBufferClone,
RoundTripWebAssemblyMemory) {
bool flag_was_enabled = i::v8_flags.experimental_wasm_threads;
i::v8_flags.experimental_wasm_threads = true;
std::vector<uint8_t> data = {0x00, 0x01, 0x80, 0xFF};
data.resize(65536);
InitializeData(data, true);
@ -2635,8 +2632,6 @@ TEST_F(ValueSerializerTestWithSharedArrayBufferClone,
ExpectScriptTrue("result.buffer.byteLength === 65536");
ExpectScriptTrue(
"new Uint8Array(result.buffer, 0, 4).toString() === '0,1,128,255'");
i::v8_flags.experimental_wasm_threads = flag_was_enabled;
}
#endif // V8_ENABLE_WEBASSEMBLY