[llvm] r346127 - [CMake] Expose opt-remark tooling through libOptRemarks.dylib
Francis Visoiu Mistrih via llvm-commits
llvm-commits at lists.llvm.org
Fri Dec 21 05:52:48 PST 2018
+CC Adam
> On 20 Dec 2018, at 23:31, Tom Stellard <tstellar at redhat.com> wrote:
>
> On 11/05/2018 03:57 AM, Francis Visoiu Mistrih via llvm-commits wrote:
>> Author: thegameg
>> Date: Mon Nov 5 03:57:44 2018
>> New Revision: 346127
>>
>> URL: http://llvm.org/viewvc/llvm-project?rev=346127&view=rev
>> Log:
>> [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
>>
>
Hi Tom,
> Hi Francis,
>
> Why is this library always built as a separate shared object instead
> of being part of libLLVM.so?
This library is there to add support for parsing and handling opt-remarks for users outside LLVM (like opt-viewer, etc.).
We obviously don’t want to have the whole libLLVM.dylib just for this use case. Are you suggesting that we use libLLVM.dylib with the right LLVM_DYLIB_COMPONENTS? I can definitely look into using that if having a separate dylib is a problem here.
Thanks,
--
Francis
>
> -Tom
>
>> rdar://45458839
>>
>> Added:
>> llvm/trunk/tools/opt-remarks/
>> llvm/trunk/tools/opt-remarks/CMakeLists.txt
>> llvm/trunk/tools/opt-remarks/OptRemarks.exports
>> llvm/trunk/tools/opt-remarks/liboptremarks.cpp
>> Modified:
>> llvm/trunk/cmake/modules/AddLLVM.cmake
>> llvm/trunk/include/llvm-c/OptRemarks.h
>>
>> Modified: llvm/trunk/cmake/modules/AddLLVM.cmake
>> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/cmake/modules/AddLLVM.cmake?rev=346127&r1=346126&r2=346127&view=diff
>> ==============================================================================
>> --- llvm/trunk/cmake/modules/AddLLVM.cmake (original)
>> +++ llvm/trunk/cmake/modules/AddLLVM.cmake Mon Nov 5 03:57:44 2018
>> @@ -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)
>>
>> Modified: llvm/trunk/include/llvm-c/OptRemarks.h
>> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm-c/OptRemarks.h?rev=346127&r1=346126&r2=346127&view=diff
>> ==============================================================================
>> --- llvm/trunk/include/llvm-c/OptRemarks.h (original)
>> +++ llvm/trunk/include/llvm-c/OptRemarks.h Mon Nov 5 03:57:44 2018
>> @@ -187,6 +187,13 @@ LLVMOptRemarkParserGetErrorMessage(LLVMO
>> 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
>> */
>>
>>
>> Added: llvm/trunk/tools/opt-remarks/CMakeLists.txt
>> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/tools/opt-remarks/CMakeLists.txt?rev=346127&view=auto
>> ==============================================================================
>> --- llvm/trunk/tools/opt-remarks/CMakeLists.txt (added)
>> +++ llvm/trunk/tools/opt-remarks/CMakeLists.txt Mon Nov 5 03:57:44 2018
>> @@ -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()
>>
>> Added: llvm/trunk/tools/opt-remarks/OptRemarks.exports
>> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/tools/opt-remarks/OptRemarks.exports?rev=346127&view=auto
>> ==============================================================================
>> --- llvm/trunk/tools/opt-remarks/OptRemarks.exports (added)
>> +++ llvm/trunk/tools/opt-remarks/OptRemarks.exports Mon Nov 5 03:57:44 2018
>> @@ -0,0 +1,6 @@
>> +LLVMOptRemarkParserCreate
>> +LLVMOptRemarkParserGetNext
>> +LLVMOptRemarkParserHasError
>> +LLVMOptRemarkParserGetErrorMessage
>> +LLVMOptRemarkParserDispose
>> +LLVMOptRemarkVersion
>>
>> Added: llvm/trunk/tools/opt-remarks/liboptremarks.cpp
>> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/tools/opt-remarks/liboptremarks.cpp?rev=346127&view=auto
>> ==============================================================================
>> --- llvm/trunk/tools/opt-remarks/liboptremarks.cpp (added)
>> +++ llvm/trunk/tools/opt-remarks/liboptremarks.cpp Mon Nov 5 03:57:44 2018
>> @@ -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;
>> +}
>>
>>
>> _______________________________________________
>> llvm-commits mailing list
>> llvm-commits at lists.llvm.org
>> http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits
>>
>
More information about the llvm-commits
mailing list