forked from OSchip/llvm-project
[WebAssembly] Enable -ffunction-sections and -fdata-sections by default.
These remain user-overridable with -fno-function-sections and -fno-data-sections. llvm-svn: 257005
This commit is contained in:
parent
4e480206b2
commit
a5b804be61
|
@ -4176,8 +4176,11 @@ void Clang::ConstructJob(Compilation &C, const JobAction &JA,
|
|||
CmdArgs.push_back("-generate-type-units");
|
||||
}
|
||||
|
||||
// CloudABI uses -ffunction-sections and -fdata-sections by default.
|
||||
bool UseSeparateSections = Triple.getOS() == llvm::Triple::CloudABI;
|
||||
// CloudABI and WebAssembly use -ffunction-sections and -fdata-sections by
|
||||
// default.
|
||||
bool UseSeparateSections = Triple.getOS() == llvm::Triple::CloudABI ||
|
||||
Triple.getArch() == llvm::Triple::wasm32 ||
|
||||
Triple.getArch() == llvm::Triple::wasm64;
|
||||
|
||||
if (Args.hasFlag(options::OPT_ffunction_sections,
|
||||
options::OPT_fno_function_sections, UseSeparateSections)) {
|
||||
|
@ -6536,7 +6539,9 @@ void wasm::Linker::ConstructJob(Compilation &C, const JobAction &JA,
|
|||
CmdArgs.push_back("ld");
|
||||
|
||||
// Enable garbage collection of unused input sections by default, since code
|
||||
// size is of particular importance.
|
||||
// size is of particular importance. This is significantly facilitated by
|
||||
// the enabling of -ffunction-sections and -fdata-sections in
|
||||
// Clang::ConstructJob.
|
||||
if (areOptimizationsEnabled(Args))
|
||||
CmdArgs.push_back("--gc-sections");
|
||||
|
||||
|
|
|
@ -1,7 +1,19 @@
|
|||
// A basic clang -cc1 command-line.
|
||||
|
||||
// RUN: %clang %s -### -target wasm32-unknown-unknown 2>&1 | FileCheck -check-prefix=CC1 %s
|
||||
// CC1: clang{{.*}} "-cc1" "-triple" "wasm32-unknown-unknown" {{.*}}
|
||||
// CC1: clang{{.*}} "-cc1" "-triple" "wasm32-unknown-unknown" {{.*}} "-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
|
||||
|
||||
// A basic C link command-line.
|
||||
|
||||
|
|
Loading…
Reference in New Issue