diff --git a/.github/workflows/llvm.yml b/.github/workflows/llvm.yml new file mode 100644 index 0000000000000..1e3e6136af154 --- /dev/null +++ b/.github/workflows/llvm.yml @@ -0,0 +1,36 @@ +name: CI + +on: [push] + +jobs: + build_llvm: + runs-on: ${{ matrix.os }} + strategy: + fail-fast: false + matrix: + os: + - macOS-latest + steps: + - name: Setup Windows + if: startsWith(matrix.os, 'windows') + uses: tstellar/actions/setup-windows@master + with: + arch: amd64 + - uses: actions/checkout@v1 + with: + fetch-depth: 1 + - name: Install Ninja + uses: tstellar/actions/install-ninja@master + with: + os: ${{ runner.os }} + - name: Test LLVM / dynamic + if: startsWith(matrix.os, 'windows') == false + uses: tstellar/actions/build-test-llvm-project@master + with: + cmake_args: -G Ninja -DCMAKE_BUILD_TYPE=Release ${{ matrix.cmake_args }} -DLLVM_ENABLE_PROJECTS='polly;clang' -DPOLLY_ENABLE_GPGPU_CODEGEN=OFF -DLLVM_ENABLE_ASSERTIONS=ON -DLLVM_POLLY_LINK_INTO_TOOLS=OFF '-DLLVM_BUILD_EXAMPLES=On' '-DCMAKE_MACOSX_RPATH=On' + os: ${{ runner.os }} + - name: Test LLVM / static + uses: tstellar/actions/build-test-llvm-project@master + with: + cmake_args: -G Ninja -DCMAKE_BUILD_TYPE=Release ${{ matrix.cmake_args }} -DLLVM_ENABLE_PROJECTS='polly;clang' -DPOLLY_ENABLE_GPGPU_CODEGEN=ON -DLLVM_ENABLE_ASSERTIONS=ON -DLLVM_POLLY_LINK_INTO_TOOLS=ON '-DLLVM_BUILD_EXAMPLES=On' '-DCMAKE_MACOSX_RPATH=On' + os: ${{ runner.os }} diff --git a/llvm/cmake/modules/AddLLVM.cmake b/llvm/cmake/modules/AddLLVM.cmake index c1bbae788781d..404e952020db7 100644 --- a/llvm/cmake/modules/AddLLVM.cmake +++ b/llvm/cmake/modules/AddLLVM.cmake @@ -870,9 +870,7 @@ function(add_llvm_pass_plugin name) endif() message(STATUS "Registering ${name} as a pass plugin (static build: ${LLVM_${name_upper}_LINK_INTO_TOOLS})") - if(LLVM_${name_upper}_LINK_INTO_TOOLS) - set_property(GLOBAL APPEND PROPERTY LLVM_COMPILE_EXTENSIONS ${name}) - endif() + set_property(GLOBAL APPEND PROPERTY LLVM_COMPILE_EXTENSIONS ${name}) endfunction(add_llvm_pass_plugin) # Generate X Macro file for extension handling. It provides a @@ -883,6 +881,7 @@ endfunction(add_llvm_pass_plugin) # Also correctly set lib dependencies between plugins and tools. function(process_llvm_pass_plugins) get_property(LLVM_EXTENSIONS GLOBAL PROPERTY LLVM_COMPILE_EXTENSIONS) + message(STATUS ">>>> ${LLVM_EXTENSIONS}") file(WRITE "${CMAKE_BINARY_DIR}/include/llvm/Support/Extension.def.tmp" "//extension handlers\n") foreach(llvm_extension ${LLVM_EXTENSIONS}) string(TOLOWER ${llvm_extension} llvm_extension_lower) @@ -892,16 +891,17 @@ function(process_llvm_pass_plugins) string(SUBSTRING ${llvm_extension_lower} 1 -1 llvm_extension_lower_tail) string(CONCAT llvm_extension_project ${llvm_extension_upper_first} ${llvm_extension_lower_tail}) + message(STATUS ">>>> ${llvm_extension_upper}: ${LLVM_${llvm_extension_upper}_LINK_INTO_TOOLS}") if(LLVM_${llvm_extension_upper}_LINK_INTO_TOOLS) - file(APPEND "${CMAKE_BINARY_DIR}/include/llvm/Support/Extension.def.tmp" "HANDLE_EXTENSION(${llvm_extension_project})\n") + file(APPEND "${CMAKE_BINARY_DIR}/include/llvm/Support/Extension.def.tmp" "HANDLE_EXTENSION(${llvm_extension_project})\n") - get_property(llvm_plugin_targets GLOBAL PROPERTY LLVM_PLUGIN_TARGETS) - foreach(llvm_plugin_target ${llvm_plugin_targets}) - set_property(TARGET ${llvm_plugin_target} APPEND PROPERTY LINK_LIBRARIES ${llvm_extension}) - set_property(TARGET ${llvm_plugin_target} APPEND PROPERTY INTERFACE_LINK_LIBRARIES ${llvm_extension}) - endforeach() + get_property(llvm_plugin_targets GLOBAL PROPERTY LLVM_PLUGIN_TARGETS) + foreach(llvm_plugin_target ${llvm_plugin_targets}) + set_property(TARGET ${llvm_plugin_target} APPEND PROPERTY LINK_LIBRARIES ${llvm_extension}) + set_property(TARGET ${llvm_plugin_target} APPEND PROPERTY INTERFACE_LINK_LIBRARIES ${llvm_extension}) + endforeach() else() - add_llvm_library(${llvm_extension_lower} MODULE obj.${llvm_extension_lower}) + add_llvm_library(${llvm_extension_lower} MODULE $) endif() endforeach() diff --git a/llvm/test/Feature/load_extension.ll b/llvm/test/Feature/load_extension.ll index 49a593a1ade74..62b49bac6339a 100644 --- a/llvm/test/Feature/load_extension.ll +++ b/llvm/test/Feature/load_extension.ll @@ -1,6 +1,3 @@ -; This fails at least on macOS. -; XFAIL: darwin - ; RUN: opt %s %loadbye -goodbye -wave-goodbye -disable-output 2>&1 | FileCheck %s ; REQUIRES: plugins, examples ; CHECK: Bye