[llvm] c6c5413 - Revert "[InlineAdvisor] Restructure advisor plugin unittest cmake"
Jake Egan via llvm-commits
llvm-commits at lists.llvm.org
Wed Jan 4 17:42:09 PST 2023
Author: Jake Egan
Date: 2023-01-04T20:41:36-05:00
New Revision: c6c54132b762a29bb6c9a24738c110113e3b66c7
URL: https://github.com/llvm/llvm-project/commit/c6c54132b762a29bb6c9a24738c110113e3b66c7
DIFF: https://github.com/llvm/llvm-project/commit/c6c54132b762a29bb6c9a24738c110113e3b66c7.diff
LOG: Revert "[InlineAdvisor] Restructure advisor plugin unittest cmake"
This reverts commit f29cfab55d1fd806f827b832832b196c10558680.
Added:
llvm/unittests/Analysis/InlineAdvisorPlugin.cpp
Modified:
llvm/unittests/Analysis/CMakeLists.txt
Removed:
llvm/unittests/Analysis/InlineAdvisorPlugin/InlineAdvisorPlugin.cpp
################################################################################
diff --git a/llvm/unittests/Analysis/CMakeLists.txt b/llvm/unittests/Analysis/CMakeLists.txt
index 48a2e03e21ca3..02b59789660c4 100644
--- a/llvm/unittests/Analysis/CMakeLists.txt
+++ b/llvm/unittests/Analysis/CMakeLists.txt
@@ -52,6 +52,11 @@ set(ANALYSIS_TEST_SOURCES
VectorUtilsTest.cpp
)
+# The unit tests target does not use InlineAdvisorPlugin.cpp
+# so if not added to LLVM_OPTIONAL_SOURCES, FileCheck will
+# complain about unused file.
+set(LLVM_OPTIONAL_SOURCES InlineAdvisorPlugin.cpp)
+
set(MLGO_TESTS TFUtilsTest.cpp TrainingLoggerTest.cpp)
if (LLVM_HAVE_TFLITE)
LIST(APPEND ANALYSIS_TEST_SOURCES ${MLGO_TESTS})
@@ -65,4 +70,35 @@ add_llvm_unittest_with_input_files(AnalysisTests
target_link_libraries(AnalysisTests PRIVATE LLVMTestingSupport)
-add_subdirectory(InlineAdvisorPlugin)
+# The advisor plugin expects to not link against the Analysis, Support and Core
+# libraries, but expects them to exist in the process loading the plugin. This
+# doesn't work with DLLs on Windows (where a shared library can't have undefined
+# references), so just skip this testcase on Windows.
+if (NOT WIN32)
+ # On AIX, enable run-time linking to allow symbols from the plugins shared
+ # objects to be properly bound.
+ if(CMAKE_SYSTEM_NAME STREQUAL "AIX")
+ set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -Wl,-brtl")
+ endif()
+
+ # This plugin is built as a stand-alone plugin, so since we don't use the
+ # ANALYSIS_TEST_SOURCES files, we have to add them to LLVM_OPTIONAL_SOURCES
+ # so that FileCheck doesn't complain about unsued files.
+ LIST(APPEND LLVM_OPTIONAL_SOURCES ${ANALYSIS_TEST_SOURCES})
+
+ unset(LLVM_LINK_COMPONENTS)
+ add_llvm_library(InlineAdvisorPlugin MODULE BUILDTREE_ONLY InlineAdvisorPlugin.cpp)
+ # Put PLUGIN next to the unit test executable.
+ set_output_directory(InlineAdvisorPlugin
+ BINARY_DIR ${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}
+ LIBRARY_DIR ${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}
+ )
+ set_target_properties(InlineAdvisorPlugin PROPERTIES FOLDER "Tests")
+
+ export_executable_symbols_for_plugins(AnalysisTests)
+ # The plugin depends on some of the output files of intrinsics_gen, so make sure
+ # it is built before the plugin.
+ add_dependencies(InlineAdvisorPlugin intrinsics_gen)
+ add_dependencies(AnalysisTests InlineAdvisorPlugin)
+ set_property(TARGET InlineAdvisorPlugin PROPERTY FOLDER "Tests/UnitTests/AnalysisTests")
+endif()
diff --git a/llvm/unittests/Analysis/InlineAdvisorPlugin/InlineAdvisorPlugin.cpp b/llvm/unittests/Analysis/InlineAdvisorPlugin.cpp
similarity index 100%
rename from llvm/unittests/Analysis/InlineAdvisorPlugin/InlineAdvisorPlugin.cpp
rename to llvm/unittests/Analysis/InlineAdvisorPlugin.cpp
More information about the llvm-commits
mailing list