[InlineAdvisor] Restructure advisor plugin unittest cmake
Move the plugin used in the unittest to test Inline Advisor Plugins into a separate folder to clean up the cmake file for the analysis tests. Differential Revision: https://reviews.llvm.org/D140559
This commit is contained in:
@@ -52,11 +52,6 @@ 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})
|
||||
@@ -70,35 +65,4 @@ add_llvm_unittest_with_input_files(AnalysisTests
|
||||
|
||||
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)
|
||||
|
||||
27
llvm/unittests/Analysis/InlineAdvisorPlugin/CMakeLists.txt
Normal file
27
llvm/unittests/Analysis/InlineAdvisorPlugin/CMakeLists.txt
Normal file
@@ -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()
|
||||
Reference in New Issue
Block a user