diff options
author | Francis Visoiu Mistrih <francisvm@yahoo.com> | 2018-11-05 11:57:44 +0000 |
---|---|---|
committer | Francis Visoiu Mistrih <francisvm@yahoo.com> | 2018-11-05 11:57:44 +0000 |
commit | 2ae1be726a9a1586eb96b981d30b51b5f6299164 (patch) | |
tree | 0ab80e39a048ce88bfa5b2b60659d2e7f8fada03 | |
parent | fec793c98f15c8a7fafafc525e66a567e9579532 (diff) | |
download | bcm5719-llvm-2ae1be726a9a1586eb96b981d30b51b5f6299164.tar.gz bcm5719-llvm-2ae1be726a9a1586eb96b981d30b51b5f6299164.zip |
[CMake] Expose opt-remark tooling through libOptRemarks.dylib
* Create an install target for it
* Add it under tools/opt-remarks
* Add an export file for the dylib
* Install the llvm-c/OptRemarks.h header
* Add an API to query its version
rdar://45458839
llvm-svn: 346127
-rw-r--r-- | llvm/cmake/modules/AddLLVM.cmake | 1 | ||||
-rw-r--r-- | llvm/include/llvm-c/OptRemarks.h | 7 | ||||
-rw-r--r-- | llvm/tools/opt-remarks/CMakeLists.txt | 22 | ||||
-rw-r--r-- | llvm/tools/opt-remarks/OptRemarks.exports | 6 | ||||
-rw-r--r-- | llvm/tools/opt-remarks/liboptremarks.cpp | 18 |
5 files changed, 54 insertions, 0 deletions
diff --git a/llvm/cmake/modules/AddLLVM.cmake b/llvm/cmake/modules/AddLLVM.cmake index 410308d46d6..18997165558 100644 --- a/llvm/cmake/modules/AddLLVM.cmake +++ b/llvm/cmake/modules/AddLLVM.cmake @@ -635,6 +635,7 @@ macro(add_llvm_library name) set_property(GLOBAL APPEND PROPERTY LLVM_EXPORTS_BUILDTREE_ONLY ${name}) else() if (NOT LLVM_INSTALL_TOOLCHAIN_ONLY OR ${name} STREQUAL "LTO" OR + ${name} STREQUAL "OptRemarks" OR (LLVM_LINK_LLVM_DYLIB AND ${name} STREQUAL "LLVM")) set(install_dir lib${LLVM_LIBDIR_SUFFIX}) if(ARG_SHARED OR BUILD_SHARED_LIBS) diff --git a/llvm/include/llvm-c/OptRemarks.h b/llvm/include/llvm-c/OptRemarks.h index f3449cc1b8c..6a90394e711 100644 --- a/llvm/include/llvm-c/OptRemarks.h +++ b/llvm/include/llvm-c/OptRemarks.h @@ -187,6 +187,13 @@ LLVMOptRemarkParserGetErrorMessage(LLVMOptRemarkParserRef Parser); extern void LLVMOptRemarkParserDispose(LLVMOptRemarkParserRef Parser); /** + * Returns the version of the opt-remarks dylib. + * + * \since OPT_REMARKS_API_VERSION=0 + */ +extern uint32_t LLVMOptRemarkVersion(void); + +/** * @} // endgoup LLVMCOPTREMARKS */ diff --git a/llvm/tools/opt-remarks/CMakeLists.txt b/llvm/tools/opt-remarks/CMakeLists.txt new file mode 100644 index 00000000000..a87beae1e89 --- /dev/null +++ b/llvm/tools/opt-remarks/CMakeLists.txt @@ -0,0 +1,22 @@ +set(LLVM_LINK_COMPONENTS + OptRemarks + ) + +set(SOURCES + liboptremarks.cpp + ) + +set(LLVM_EXPORTED_SYMBOL_FILE ${CMAKE_CURRENT_SOURCE_DIR}/OptRemarks.exports) + +add_llvm_library(OptRemarks SHARED ${SOURCES}) + +install(FILES ${LLVM_MAIN_INCLUDE_DIR}/llvm-c/OptRemarks.h + DESTINATION include/llvm-c + COMPONENT OptRemarks) + +if (APPLE) + set(OPTREMARKS_VERSION ${LLVM_VERSION_MAJOR}) + set_property(TARGET OptRemarks APPEND_STRING PROPERTY + LINK_FLAGS + " -compatibility_version 1 -current_version ${OPTREMARKS_VERSION}.${LLVM_VERSION_MINOR}.${LLVM_VERSION_PATCH}") +endif() diff --git a/llvm/tools/opt-remarks/OptRemarks.exports b/llvm/tools/opt-remarks/OptRemarks.exports new file mode 100644 index 00000000000..c3f678d754f --- /dev/null +++ b/llvm/tools/opt-remarks/OptRemarks.exports @@ -0,0 +1,6 @@ +LLVMOptRemarkParserCreate +LLVMOptRemarkParserGetNext +LLVMOptRemarkParserHasError +LLVMOptRemarkParserGetErrorMessage +LLVMOptRemarkParserDispose +LLVMOptRemarkVersion diff --git a/llvm/tools/opt-remarks/liboptremarks.cpp b/llvm/tools/opt-remarks/liboptremarks.cpp new file mode 100644 index 00000000000..13acada06ac --- /dev/null +++ b/llvm/tools/opt-remarks/liboptremarks.cpp @@ -0,0 +1,18 @@ +//===-liboptremarks.cpp - LLVM Opt-Remarks Shared Library -----------------===// +// +// The LLVM Compiler Infrastructure +// +// This file is distributed under the University of Illinois Open Source +// License. See LICENSE.TXT for details. +// +//===----------------------------------------------------------------------===// +// +// Provide a library to work with optimization remarks. +// +//===----------------------------------------------------------------------===// + +#include "llvm-c/OptRemarks.h" + +extern uint32_t LLVMOptRemarkVersion(void) { + return OPT_REMARKS_API_VERSION; +} |