Skip to content

Commit

Permalink
[WebAssembly] Don't pass -ffunction-section/-fdata-sections
Browse files Browse the repository at this point in the history
llvm currently forces both of these to true to passing them
is redundant.

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

llvm-svn: 323897
  • Loading branch information
sbc100 committed Jan 31, 2018
1 parent 07df4ff commit 7892ae4
Show file tree
Hide file tree
Showing 3 changed files with 6 additions and 35 deletions.
7 changes: 2 additions & 5 deletions clang/lib/Driver/ToolChains/CommonArgs.cpp
Expand Up @@ -363,12 +363,9 @@ unsigned tools::getLTOParallelism(const ArgList &Args, const Driver &D) {
return Parallelism;
}

// CloudABI and WebAssembly use -ffunction-sections and -fdata-sections by
// default.
// CloudABI uses -ffunction-sections and -fdata-sections by default.
bool tools::isUseSeparateSections(const llvm::Triple &Triple) {
return Triple.getOS() == llvm::Triple::CloudABI ||
Triple.getArch() == llvm::Triple::wasm32 ||
Triple.getArch() == llvm::Triple::wasm64;
return Triple.getOS() == llvm::Triple::CloudABI;
}

void tools::AddGoldPlugin(const ToolChain &ToolChain, const ArgList &Args,
Expand Down
17 changes: 2 additions & 15 deletions clang/test/Driver/wasm-toolchain.c
@@ -1,21 +1,8 @@
// A basic clang -cc1 command-line. WebAssembly is somewhat special in
// enabling -ffunction-sections, -fdata-sections, and -fvisibility=hidden by
// default.
// enabling -fvisibility=hidden by default.

// RUN: %clang %s -### -no-canonical-prefixes -target wasm32-unknown-unknown 2>&1 | FileCheck -check-prefix=CC1 %s
// CC1: clang{{.*}} "-cc1" "-triple" "wasm32-unknown-unknown" {{.*}} "-fvisibility" "hidden" {{.*}} "-ffunction-sections" "-fdata-sections"

// Ditto, but ensure that a user -fno-function-sections disables the
// default -ffunction-sections.

// RUN: %clang %s -### -target wasm32-unknown-unknown -fno-function-sections 2>&1 | FileCheck -check-prefix=NO_FUNCTION_SECTIONS %s
// NO_FUNCTION_SECTIONS-NOT: function-sections

// Ditto, but ensure that a user -fno-data-sections disables the
// default -fdata-sections.

// RUN: %clang %s -### -target wasm32-unknown-unknown -fno-data-sections 2>&1 | FileCheck -check-prefix=NO_DATA_SECTIONS %s
// NO_DATA_SECTIONS-NOT: data-sections
// CC1: clang{{.*}} "-cc1" "-triple" "wasm32-unknown-unknown" {{.*}} "-fvisibility" "hidden" {{.*}}

// Ditto, but ensure that a user -fvisibility=default disables the default
// -fvisibility=hidden.
Expand Down
17 changes: 2 additions & 15 deletions clang/test/Driver/wasm-toolchain.cpp
@@ -1,21 +1,8 @@
// A basic clang -cc1 command-line. WebAssembly is somewhat special in
// enabling -ffunction-sections, -fdata-sections, and -fvisibility=hidden by
// default.
// enabling -fvisibility=hidden by default.

// RUN: %clangxx %s -### -no-canonical-prefixes -target wasm32-unknown-unknown 2>&1 | FileCheck -check-prefix=CC1 %s
// CC1: clang{{.*}} "-cc1" "-triple" "wasm32-unknown-unknown" {{.*}} "-fvisibility" "hidden" {{.*}} "-ffunction-sections" "-fdata-sections"

// Ditto, but ensure that a user -fno-function-sections disables the
// default -ffunction-sections.

// RUN: %clangxx %s -### -target wasm32-unknown-unknown -fno-function-sections 2>&1 | FileCheck -check-prefix=NO_FUNCTION_SECTIONS %s
// NO_FUNCTION_SECTIONS-NOT: function-sections

// Ditto, but ensure that a user -fno-data-sections disables the
// default -fdata-sections.

// RUN: %clangxx %s -### -target wasm32-unknown-unknown -fno-data-sections 2>&1 | FileCheck -check-prefix=NO_DATA_SECTIONS %s
// NO_DATA_SECTIONS-NOT: data-sections
// CC1: clang{{.*}} "-cc1" "-triple" "wasm32-unknown-unknown" {{.*}} "-fvisibility" "hidden" {{.*}}

// Ditto, but ensure that a user -fvisibility=default disables the default
// -fvisibility=hidden.
Expand Down

0 comments on commit 7892ae4

Please sign in to comment.