[clang] 896335b - Don't export symbols from clang/opt/llc if plugins are disabled.

Eli Friedman via cfe-commits cfe-commits at lists.llvm.org
Mon Mar 23 12:17:40 PDT 2020


Author: Eli Friedman
Date: 2020-03-23T12:17:09-07:00
New Revision: 896335bfb8ea2c09c361c4f1e5a9aa6fb78caf88

URL: https://github.com/llvm/llvm-project/commit/896335bfb8ea2c09c361c4f1e5a9aa6fb78caf88
DIFF: https://github.com/llvm/llvm-project/commit/896335bfb8ea2c09c361c4f1e5a9aa6fb78caf88.diff

LOG: Don't export symbols from clang/opt/llc if plugins are disabled.

The only reason we export symbols from these tools is to support
plugins; if we don't have plugins, exporting symbols just bloats the
executable and makes LTO less effective.

See review of D75879 for the discussion that led to this patch.

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

Added: 
    

Modified: 
    clang/tools/driver/CMakeLists.txt
    llvm/cmake/modules/AddLLVM.cmake
    llvm/tools/bugpoint/CMakeLists.txt
    llvm/tools/llc/CMakeLists.txt
    llvm/tools/llvm-stress/CMakeLists.txt
    llvm/tools/opt/CMakeLists.txt
    llvm/unittests/Passes/CMakeLists.txt

Removed: 
    


################################################################################
diff  --git a/clang/tools/driver/CMakeLists.txt b/clang/tools/driver/CMakeLists.txt
index 2b783cff0955..c53485ef1957 100644
--- a/clang/tools/driver/CMakeLists.txt
+++ b/clang/tools/driver/CMakeLists.txt
@@ -57,7 +57,7 @@ endif()
 
 # Support plugins.
 if(CLANG_PLUGIN_SUPPORT)
-  export_executable_symbols(clang)
+  export_executable_symbols_for_plugins(clang)
 endif()
 
 add_dependencies(clang clang-resource-headers)

diff  --git a/llvm/cmake/modules/AddLLVM.cmake b/llvm/cmake/modules/AddLLVM.cmake
index 7b95d8be1b60..8cd71eef2332 100644
--- a/llvm/cmake/modules/AddLLVM.cmake
+++ b/llvm/cmake/modules/AddLLVM.cmake
@@ -1029,6 +1029,13 @@ function(export_executable_symbols target)
   endif()
 endfunction()
 
+# Export symbols if LLVM plugins are enabled.
+function(export_executable_symbols_for_plugins target)
+  if(LLVM_ENABLE_PLUGINS)
+    export_executable_symbols(${target})
+  endif()
+endfunction()
+
 if(NOT LLVM_TOOLCHAIN_TOOLS)
   set (LLVM_TOOLCHAIN_TOOLS
     llvm-ar

diff  --git a/llvm/tools/bugpoint/CMakeLists.txt b/llvm/tools/bugpoint/CMakeLists.txt
index 0b5998e181eb..8d2d5a06e664 100644
--- a/llvm/tools/bugpoint/CMakeLists.txt
+++ b/llvm/tools/bugpoint/CMakeLists.txt
@@ -38,4 +38,4 @@ add_llvm_tool(bugpoint
   intrinsics_gen
   SUPPORT_PLUGINS
   )
-export_executable_symbols(bugpoint)
+export_executable_symbols_for_plugins(bugpoint)

diff  --git a/llvm/tools/llc/CMakeLists.txt b/llvm/tools/llc/CMakeLists.txt
index 479bc6b55b27..2eecfca2e075 100644
--- a/llvm/tools/llc/CMakeLists.txt
+++ b/llvm/tools/llc/CMakeLists.txt
@@ -27,4 +27,4 @@ add_llvm_tool(llc
   SUPPORT_PLUGINS
   )
 
-export_executable_symbols(llc)
+export_executable_symbols_for_plugins(llc)

diff  --git a/llvm/tools/llvm-stress/CMakeLists.txt b/llvm/tools/llvm-stress/CMakeLists.txt
index 139ab9e0d8f9..e4d1ae65ee76 100644
--- a/llvm/tools/llvm-stress/CMakeLists.txt
+++ b/llvm/tools/llvm-stress/CMakeLists.txt
@@ -10,4 +10,3 @@ add_llvm_tool(llvm-stress
   DEPENDS
   intrinsics_gen
   )
-export_executable_symbols(llvm-stress)

diff  --git a/llvm/tools/opt/CMakeLists.txt b/llvm/tools/opt/CMakeLists.txt
index 79613c836c53..8caa1b78b729 100644
--- a/llvm/tools/opt/CMakeLists.txt
+++ b/llvm/tools/opt/CMakeLists.txt
@@ -39,7 +39,7 @@ add_llvm_tool(opt
   intrinsics_gen
   SUPPORT_PLUGINS
   )
-export_executable_symbols(opt)
+export_executable_symbols_for_plugins(opt)
 
 if(LLVM_BUILD_EXAMPLES)
     target_link_libraries(opt PRIVATE ExampleIRTransforms)

diff  --git a/llvm/unittests/Passes/CMakeLists.txt b/llvm/unittests/Passes/CMakeLists.txt
index c04aa9f84458..823bc56851fa 100644
--- a/llvm/unittests/Passes/CMakeLists.txt
+++ b/llvm/unittests/Passes/CMakeLists.txt
@@ -16,7 +16,7 @@ if (NOT WIN32)
   add_llvm_unittest(PluginsTests
     PluginsTest.cpp
     )
-  export_executable_symbols(PluginsTests)
+  export_executable_symbols_for_plugins(PluginsTests)
   target_link_libraries(PluginsTests PRIVATE LLVMTestingSupport)
 
   set(LLVM_LINK_COMPONENTS)


        


More information about the cfe-commits mailing list