Author: Quinn Pham Date: 2022-07-27T08:47:00-05:00 New Revision: 70ec8cd024f3313962878bf68e89a0687c79ad05
URL: https://github.com/llvm/llvm-project/commit/70ec8cd024f3313962878bf68e89a0687c79ad05 DIFF: https://github.com/llvm/llvm-project/commit/70ec8cd024f3313962878bf68e89a0687c79ad05.diff LOG: Revert "[libLTO] Set data-sections by default in libLTO." This reverts commit f565444b486d49f84297c3a279ca24d785961ea8. Added: clang/test/Driver/gold-lto-sections.c Modified: clang/lib/Driver/ToolChains/CommonArgs.cpp clang/test/Driver/function-sections.c llvm/lib/LTO/LTOCodeGenerator.cpp Removed: llvm/test/LTO/PowerPC/data-sections-aix.ll llvm/test/LTO/PowerPC/data-sections-linux.ll ################################################################################ diff --git a/clang/lib/Driver/ToolChains/CommonArgs.cpp b/clang/lib/Driver/ToolChains/CommonArgs.cpp index 05afa712a809c..1d2c085d683e1 100644 --- a/clang/lib/Driver/ToolChains/CommonArgs.cpp +++ b/clang/lib/Driver/ToolChains/CommonArgs.cpp @@ -567,16 +567,14 @@ void tools::addLTOOptions(const ToolChain &ToolChain, const ArgList &Args, isUseSeparateSections(ToolChain.getEffectiveTriple()); if (Args.hasFlag(options::OPT_ffunction_sections, - options::OPT_fno_function_sections, UseSeparateSections)) - CmdArgs.push_back("-plugin-opt=-function-sections=1"); - else if (Args.hasArg(options::OPT_fno_function_sections)) - CmdArgs.push_back("-plugin-opt=-function-sections=0"); + options::OPT_fno_function_sections, UseSeparateSections)) { + CmdArgs.push_back("-plugin-opt=-function-sections"); + } if (Args.hasFlag(options::OPT_fdata_sections, options::OPT_fno_data_sections, - UseSeparateSections)) - CmdArgs.push_back("-plugin-opt=-data-sections=1"); - else if (Args.hasArg(options::OPT_fno_data_sections)) - CmdArgs.push_back("-plugin-opt=-data-sections=0"); + UseSeparateSections)) { + CmdArgs.push_back("-plugin-opt=-data-sections"); + } // Pass an option to enable split machine functions. if (auto *A = Args.getLastArg(options::OPT_fsplit_machine_functions, diff --git a/clang/test/Driver/function-sections.c b/clang/test/Driver/function-sections.c index 4d206ad150291..bfb6cc6920bd4 100644 --- a/clang/test/Driver/function-sections.c +++ b/clang/test/Driver/function-sections.c @@ -6,12 +6,6 @@ // CHECK-NODS-NOT: -fdata-sections // CHECK-US-NOT: -fno-unique-section-names // CHECK-NOUS: -fno-unique-section-names -// CHECK-PLUGIN-DEFAULT-NOT: "-plugin-opt=-function-sections -// CHECK-PLUGIN-DEFAULT-NOT: "-plugin-opt=-data-sections -// CHECK-PLUGIN-SECTIONS: "-plugin-opt=-function-sections=1" -// CHECK-PLUGIN-SECTIONS: "-plugin-opt=-data-sections=1" -// CHECK-PLUGIN-NO-SECTIONS: "-plugin-opt=-function-sections=0" -// CHECK-PLUGIN-NO-SECTIONS: "-plugin-opt=-data-sections=0" // RUN: %clang -### %s -fsyntax-only 2>&1 \ // RUN: --target=i386-unknown-linux \ @@ -78,18 +72,3 @@ // RUN: --target=i386-unknown-linux \ // RUN: -fno-unique-section-names \ // RUN: | FileCheck --check-prefix=CHECK-NOUS %s - - -// RUN: %clang -### %s -flto 2>&1 \ -// RUN: --target=x86_64-unknown-linux \ -// RUN: | FileCheck --check-prefix=CHECK-PLUGIN-DEFAULT %s - -// RUN: %clang -### %s -flto 2>&1 \ -// RUN: --target=x86_64-unknown-linux \ -// RUN: -ffunction-sections -fdata-sections \ -// RUN: | FileCheck --check-prefix=CHECK-PLUGIN-SECTIONS %s - -// RUN: %clang -### %s -flto 2>&1 \ -// RUN: --target=x86_64-unknown-linux \ -// RUN: -fno-function-sections -fno-data-sections \ -// RUN: | FileCheck --check-prefix=CHECK-PLUGIN-NO-SECTIONS %s diff --git a/clang/test/Driver/gold-lto-sections.c b/clang/test/Driver/gold-lto-sections.c new file mode 100644 index 0000000000000..83d72cf7f97b8 --- /dev/null +++ b/clang/test/Driver/gold-lto-sections.c @@ -0,0 +1,8 @@ +// RUN: touch %t.o +// +// RUN: %clang -target x86_64-unknown-linux -### %t.o -flto 2>&1 \ +// RUN: -Wl,-plugin-opt=foo -O3 \ +// RUN: -ffunction-sections -fdata-sections \ +// RUN: | FileCheck %s +// CHECK: "-plugin-opt=-function-sections" +// CHECK: "-plugin-opt=-data-sections" diff --git a/llvm/lib/LTO/LTOCodeGenerator.cpp b/llvm/lib/LTO/LTOCodeGenerator.cpp index 8c374e0f2f858..2f7c485b9fc8f 100644 --- a/llvm/lib/LTO/LTOCodeGenerator.cpp +++ b/llvm/lib/LTO/LTOCodeGenerator.cpp @@ -19,7 +19,6 @@ #include "llvm/Analysis/TargetLibraryInfo.h" #include "llvm/Analysis/TargetTransformInfo.h" #include "llvm/Bitcode/BitcodeWriter.h" -#include "llvm/CodeGen/CommandFlags.h" #include "llvm/CodeGen/ParallelCG.h" #include "llvm/CodeGen/TargetSubtargetInfo.h" #include "llvm/Config/config.h" @@ -345,11 +344,6 @@ bool LTOCodeGenerator::determineTarget() { Config.CPU = "cyclone"; } - // If data-sections is not explicitly set or unset, set data-sections by - // default to match the behaviour of lld and gold plugin. - if (!codegen::getExplicitDataSections()) - Config.Options.DataSections = true; - TargetMach = createTargetMachine(); assert(TargetMach && "Unable to create target machine"); diff --git a/llvm/test/LTO/PowerPC/data-sections-aix.ll b/llvm/test/LTO/PowerPC/data-sections-aix.ll deleted file mode 100644 index 98d7e094dd4a2..0000000000000 --- a/llvm/test/LTO/PowerPC/data-sections-aix.ll +++ /dev/null @@ -1,20 +0,0 @@ -; RUN: rm -rf %t -; RUN: mkdir %t -; RUN: llvm-as %s -o %t/bc.bc -; RUN: llvm-lto -exported-symbol var -O0 %t/bc.bc -o %t/default.o -; RUN: llvm-lto -exported-symbol var -O0 --data-sections=1 %t/bc.bc -o \ -; RUN: %t/data-sections.o -; RUN: llvm-lto -exported-symbol var -O0 --data-sections=0 %t/bc.bc -o \ -; RUN: %t/no-data-sections.o -; RUN: llvm-objdump -t %t/default.o | FileCheck %s -; RUN: llvm-objdump -t %t/data-sections.o | FileCheck %s -; RUN: llvm-objdump -t %t/no-data-sections.o | FileCheck --check-prefix \ -; RUN: CHECK-NO-DATA-SECTIONS %s - -target triple = "powerpc-ibm-aix7.2.0.0" - -@var = global i32 0 - -; CHECK-NOT: 00000000 g O .data (csect: .data) [[#%x,]] var - -; CHECK-NO-DATA-SECTIONS: 00000000 g O .data (csect: .data) [[#%x,]] var diff --git a/llvm/test/LTO/PowerPC/data-sections-linux.ll b/llvm/test/LTO/PowerPC/data-sections-linux.ll deleted file mode 100644 index 2ece3c3c90fae..0000000000000 --- a/llvm/test/LTO/PowerPC/data-sections-linux.ll +++ /dev/null @@ -1,20 +0,0 @@ -; RUN: rm -rf %t -; RUN: mkdir %t -; RUN: llvm-as %s -o %t/bc.bc -; RUN: llvm-lto -exported-symbol var -O0 %t/bc.bc -o %t/default.o -; RUN: llvm-lto -exported-symbol var -O0 --data-sections=1 %t/bc.bc -o \ -; RUN: %t/data-sections.o -; RUN: llvm-lto -exported-symbol var -O0 --data-sections=0 %t/bc.bc -o \ -; RUN: %t/no-data-sections.o -; RUN: llvm-objdump -t %t/default.o | FileCheck %s -; RUN: llvm-objdump -t %t/data-sections.o | FileCheck %s -; RUN: llvm-objdump -t %t/no-data-sections.o | FileCheck --check-prefix \ -; RUN: CHECK-NO-DATA-SECTIONS %s - -target triple = "powerpc64le-unknown-linux-gnu" - -@var = global i32 0 - -; CHECK: 0000000000000000 g O .bss.var [[#%x,]] var - -; CHECK-NO-DATA-SECTIONS: 0000000000000000 g O .bss [[#%x,]] var _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits