diff --git a/llvm/unittests/Analysis/CMakeLists.txt b/llvm/unittests/Analysis/CMakeLists.txt --- a/llvm/unittests/Analysis/CMakeLists.txt +++ b/llvm/unittests/Analysis/CMakeLists.txt @@ -52,11 +52,6 @@ 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}) @@ -70,35 +65,4 @@ target_link_libraries(AnalysisTests PRIVATE LLVMTestingSupport) -# 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() +add_subdirectory(InlineAdvisorPlugin) \ No newline at end of file diff --git a/llvm/unittests/Analysis/InlineAdvisorPlugin/CMakeLists.txt b/llvm/unittests/Analysis/InlineAdvisorPlugin/CMakeLists.txt new file mode 100644 --- /dev/null +++ b/llvm/unittests/Analysis/InlineAdvisorPlugin/CMakeLists.txt @@ -0,0 +1,27 @@ +# 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() + + 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() \ No newline at end of file diff --git a/llvm/unittests/Analysis/InlineAdvisorPlugin.cpp b/llvm/unittests/Analysis/InlineAdvisorPlugin/InlineAdvisorPlugin.cpp rename from llvm/unittests/Analysis/InlineAdvisorPlugin.cpp rename to llvm/unittests/Analysis/InlineAdvisorPlugin/InlineAdvisorPlugin.cpp