Skip to content

Commit

Permalink
[WebAssembly] Temporarily disable bulk-memory with -pthread
Browse files Browse the repository at this point in the history
Summary:
To prevent the instability of bulk-memory in the wasm backend from
blocking separate pthread testing, temporarily remove the logic that
adds -mbulk-memory in the presence of -pthread. Since browsers will
ship bulk memory before or alongside threads, this change will be
reverted as soon as bulk memory has stabilized in the backend.

Reviewers: sbc100

Subscribers: dschuff, jgravelle-google, aheejin, sunfish, jfb, cfe-commits

Tags: #clang

Differential Revision: https://reviews.llvm.org/D58854

llvm-svn: 355248
  • Loading branch information
tlively committed Mar 2, 2019
1 parent f5a8c28 commit 70f5fc1
Show file tree
Hide file tree
Showing 3 changed files with 5 additions and 35 deletions.
22 changes: 1 addition & 21 deletions clang/lib/Driver/ToolChains/WebAssembly.cpp
Expand Up @@ -124,36 +124,16 @@ void WebAssembly::addClangTargetOptions(const ArgList &DriverArgs,
options::OPT_fno_use_init_array, true))
CC1Args.push_back("-fuse-init-array");

// '-pthread' implies '-target-feature +atomics' and
// '-target-feature +bulk-memory'
// '-pthread' implies '-target-feature +atomics'
if (DriverArgs.hasFlag(options::OPT_pthread, options::OPT_no_pthread,
false)) {
if (DriverArgs.hasFlag(options::OPT_mno_atomics, options::OPT_matomics,
false))
getDriver().Diag(diag::err_drv_argument_not_allowed_with)
<< "-pthread"
<< "-mno-atomics";
if (DriverArgs.hasFlag(options::OPT_mno_bulk_memory,
options::OPT_mbulk_memory, false))
getDriver().Diag(diag::err_drv_argument_not_allowed_with)
<< "-pthread"
<< "-mno-bulk-memory";
CC1Args.push_back("-target-feature");
CC1Args.push_back("+atomics");
CC1Args.push_back("-target-feature");
CC1Args.push_back("+bulk-memory");
}

// '-matomics' implies '-mbulk-memory'
if (DriverArgs.hasFlag(options::OPT_matomics, options::OPT_mno_atomics,
false)) {
if (DriverArgs.hasFlag(options::OPT_mno_bulk_memory,
options::OPT_mbulk_memory, false))
getDriver().Diag(diag::err_drv_argument_not_allowed_with)
<< "-matomics"
<< "-mno-bulk-memory";
CC1Args.push_back("-target-feature");
CC1Args.push_back("+bulk-memory");
}
}

Expand Down
12 changes: 2 additions & 10 deletions clang/test/Driver/wasm-toolchain.c
Expand Up @@ -41,18 +41,10 @@

// Thread-related command line tests.

// '-pthread' sets '-target-feature +atomics' and '-target-feature +bulk-memory'
// '-pthread' sets '-target-feature +atomics'
// RUN: %clang -### -no-canonical-prefixes -target wasm32-unknown-unknown --sysroot=/foo %s -pthread 2>&1 | FileCheck -check-prefix=PTHREAD %s
// PTHREAD: clang{{.*}}" "-cc1" {{.*}} "-target-feature" "+atomics" "-target-feature" "+bulk-memory"
// PTHREAD: clang{{.*}}" "-cc1" {{.*}} "-target-feature" "+atomics"

// '-pthread' not allowed with '-mno-atomics'
// RUN: %clang -### -no-canonical-prefixes -target wasm32-unknown-unknown --sysroot=/foo %s -pthread -mno-atomics 2>&1 | FileCheck -check-prefix=PTHREAD_NO_ATOMICS %s
// PTHREAD_NO_ATOMICS: invalid argument '-pthread' not allowed with '-mno-atomics'

// '-pthread' not allowed with '-mno-bulk-memory'
// RUN: %clang -### -no-canonical-prefixes -target wasm32-unknown-unknown --sysroot=/foo %s -pthread -mno-bulk-memory 2>&1 | FileCheck -check-prefix=PTHREAD_NO_BULKMEM %s
// PTHREAD_NO_BULKMEM: invalid argument '-pthread' not allowed with '-mno-bulk-memory'

// '-matomics' not allowed with '-mno-bulk-memory'
// RUN: %clang -### -no-canonical-prefixes -target wasm32-unknown-unknown --sysroot=/foo %s -matomics -mno-bulk-memory 2>&1 | FileCheck -check-prefix=ATOMICS_NO_BULKMEM %s
// ATOMICS_NO_BULKMEM: invalid argument '-matomics' not allowed with '-mno-bulk-memory'
6 changes: 2 additions & 4 deletions clang/test/Preprocessor/wasm-target-features.c
Expand Up @@ -59,8 +59,7 @@
// RUN: -target wasm64-unknown-unknown -matomics \
// RUN: | FileCheck %s -check-prefix=ATOMICS
//
// ATOMICS-DAG:#define __wasm_atomics__ 1{{$}}
// ATOMICS-DAG:#define __wasm_bulk_memory__ 1{{$}}
// ATOMICS:#define __wasm_atomics__ 1{{$}}

// RUN: %clang -E -dM %s -o - 2>&1 \
// RUN: -target wasm32-unknown-unknown -pthread \
Expand All @@ -69,8 +68,7 @@
// RUN: -target wasm64-unknown-unknown -pthread \
// RUN: | FileCheck %s -check-prefix=PTHREAD
//
// PTHREAD-DAG:#define __wasm_atomics__ 1{{$}}
// PTHREAD-DAG:#define __wasm_bulk_memory__ 1{{$}}
// PTHREAD:#define __wasm_atomics__ 1{{$}}

// RUN: %clang -E -dM %s -o - 2>&1 \
// RUN: -target wasm32-unknown-unknown -mcpu=mvp \
Expand Down

0 comments on commit 70f5fc1

Please sign in to comment.