[clang] 70ec8cd - Revert "[libLTO] Set data-sections by default in libLTO."

Quinn Pham via cfe-commits cfe-commits at lists.llvm.org
Wed Jul 27 06:47:20 PDT 2022


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"
-
- at 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"
-
- at var = global i32 0
-
-; CHECK:                  0000000000000000 g O .bss.var [[#%x,]] var
-
-; CHECK-NO-DATA-SECTIONS: 0000000000000000 g O .bss [[#%x,]] var


        


More information about the cfe-commits mailing list