Compare commits
8 Commits
Author | SHA1 | Date | |
---|---|---|---|
|
b3f19ed18b | ||
|
48a8b21ef0 | ||
|
ddf4c85987 | ||
|
1a4ccaa8f8 | ||
|
622ff5c1f5 | ||
|
72f153b141 | ||
|
6532ccc2ea | ||
|
3f98e69615 |
36
.gitignore
vendored
36
.gitignore
vendored
@ -32,39 +32,3 @@
|
|||||||
/llvm-3.9.1.src.tar.xz
|
/llvm-3.9.1.src.tar.xz
|
||||||
/llvm-4.0.0.src.tar.xz
|
/llvm-4.0.0.src.tar.xz
|
||||||
/llvm-4.0.1.src.tar.xz
|
/llvm-4.0.1.src.tar.xz
|
||||||
/llvm-5.0.0.src.tar.xz
|
|
||||||
/llvm-5.0.1.src.tar.xz
|
|
||||||
/llvm-6.0.0rc1.src.tar.xz
|
|
||||||
/llvm-6.0.0rc2.src.tar.xz
|
|
||||||
/llvm-6.0.0.src.tar.xz
|
|
||||||
/llvm-6.0.1rc1.src.tar.xz
|
|
||||||
/llvm-6.0.1rc2.src.tar.xz
|
|
||||||
/llvm-6.0.1.src.tar.xz
|
|
||||||
/llvm-7.0.0rc1.src.tar.xz
|
|
||||||
/llvm-7.0.0rc2.src.tar.xz
|
|
||||||
/llvm-7.0.0rc3.src.tar.xz
|
|
||||||
/llvm-7.0.0.src.tar.xz
|
|
||||||
/llvm-7.0.1.src.tar.xz
|
|
||||||
/llvm-8.0.0rc1.src.tar.xz
|
|
||||||
/llvm-8.0.0rc2.src.tar.xz
|
|
||||||
/llvm-8.0.0rc3.src.tar.xz
|
|
||||||
/llvm-8.0.0rc4.src.tar.xz
|
|
||||||
/llvm-8.0.0.src.tar.xz
|
|
||||||
/llvm-9.0.0rc2.src.tar.xz
|
|
||||||
/llvm-9.0.0rc3.src.tar.xz
|
|
||||||
/llvm-9.0.0.src.tar.xz
|
|
||||||
/llvm-9.0.1.src.tar.xz
|
|
||||||
/llvm-10.0.0rc1.src.tar.xz
|
|
||||||
/llvm-10.0.0rc1.src.tar.xz.sig
|
|
||||||
/llvm-10.0.0rc2.src.tar.xz
|
|
||||||
/llvm-10.0.0rc2.src.tar.xz.sig
|
|
||||||
/llvm-10.0.0rc3.src.tar.xz
|
|
||||||
/llvm-10.0.0rc3.src.tar.xz.sig
|
|
||||||
/llvm-10.0.0rc4.src.tar.xz
|
|
||||||
/llvm-10.0.0rc4.src.tar.xz.sig
|
|
||||||
/llvm-10.0.0rc5.src.tar.xz
|
|
||||||
/llvm-10.0.0rc5.src.tar.xz.sig
|
|
||||||
/llvm-10.0.0rc6.src.tar.xz
|
|
||||||
/llvm-10.0.0rc6.src.tar.xz.sig
|
|
||||||
/llvm-10.0.0.src.tar.xz
|
|
||||||
/llvm-10.0.0.src.tar.xz.sig
|
|
||||||
|
44
0001-CMake-Add-LLVM_UTILS_INSTALL_DIR-option.patch
Normal file
44
0001-CMake-Add-LLVM_UTILS_INSTALL_DIR-option.patch
Normal file
@ -0,0 +1,44 @@
|
|||||||
|
From 974c288631ef8d05bf3a3f91b32bf38eae16e5c8 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Tom Stellard <tstellar@redhat.com>
|
||||||
|
Date: Mon, 6 Mar 2017 13:55:55 +0000
|
||||||
|
Subject: [PATCH] CMake: Add LLVM_UTILS_INSTALL_DIR option
|
||||||
|
|
||||||
|
This is like the LLVM_TOOLS_INSTALL_DIR option, but for the utils
|
||||||
|
that are installed when the LLVM_INSTALL_UTILS. This option
|
||||||
|
defaults to 'bin' to remain consistent with the current behavior, but
|
||||||
|
distros may want to install these to libexec/llvm.
|
||||||
|
---
|
||||||
|
CMakeLists.txt | 3 +++
|
||||||
|
cmake/modules/AddLLVM.cmake | 2 +-
|
||||||
|
2 files changed, 4 insertions(+), 1 deletion(-)
|
||||||
|
|
||||||
|
diff --git a/CMakeLists.txt b/CMakeLists.txt
|
||||||
|
index 58ee3cf..f93405c 100644
|
||||||
|
--- a/CMakeLists.txt
|
||||||
|
+++ b/CMakeLists.txt
|
||||||
|
@@ -281,6 +281,9 @@ set(LLVM_LIBDIR_SUFFIX "" CACHE STRING "Define suffix of library directory name
|
||||||
|
set(LLVM_TOOLS_INSTALL_DIR "bin" CACHE STRING "Path for binary subdirectory (defaults to 'bin')")
|
||||||
|
mark_as_advanced(LLVM_TOOLS_INSTALL_DIR)
|
||||||
|
|
||||||
|
+set(LLVM_UTILS_INSTALL_DIR "bin" CACHE STRING "Path to install LLVM utilities (enabled by LLVM_INSTALL_UTILS=ON) (defaults to 'bin')")
|
||||||
|
+mark_as_advanced(LLVM_TOOLS_INSTALL_DIR)
|
||||||
|
+
|
||||||
|
# They are used as destination of target generators.
|
||||||
|
set(LLVM_RUNTIME_OUTPUT_INTDIR ${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/bin)
|
||||||
|
set(LLVM_LIBRARY_OUTPUT_INTDIR ${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/lib${LLVM_LIBDIR_SUFFIX})
|
||||||
|
diff --git a/cmake/modules/AddLLVM.cmake b/cmake/modules/AddLLVM.cmake
|
||||||
|
index 7f7608c..0da8162 100644
|
||||||
|
--- a/cmake/modules/AddLLVM.cmake
|
||||||
|
+++ b/cmake/modules/AddLLVM.cmake
|
||||||
|
@@ -864,7 +864,7 @@ macro(add_llvm_utility name)
|
||||||
|
set_target_properties(${name} PROPERTIES FOLDER "Utils")
|
||||||
|
if( LLVM_INSTALL_UTILS AND LLVM_BUILD_UTILS )
|
||||||
|
install (TARGETS ${name}
|
||||||
|
- RUNTIME DESTINATION bin
|
||||||
|
+ RUNTIME DESTINATION ${LLVM_UTILS_INSTALL_DIR}
|
||||||
|
COMPONENT ${name})
|
||||||
|
if (NOT CMAKE_CONFIGURATION_TYPES)
|
||||||
|
add_custom_target(install-${name}
|
||||||
|
--
|
||||||
|
2.9.3
|
||||||
|
|
@ -0,0 +1,42 @@
|
|||||||
|
From af79e4116c4476153869e1fd4aa30c87d4c7c21e Mon Sep 17 00:00:00 2001
|
||||||
|
From: Tom Stellard <tstellar@redhat.com>
|
||||||
|
Date: Mon, 15 May 2017 09:34:23 +0000
|
||||||
|
Subject: [PATCH] CMake: Fix docs-llvm-man target when clang+llvm is in the
|
||||||
|
same source tree
|
||||||
|
|
||||||
|
Summary:
|
||||||
|
This was broken by r302499. Configuring with -DLLVM_BUILD_DOCS=ON would
|
||||||
|
cause the docs-llvm-man target not to be created.
|
||||||
|
|
||||||
|
Reviewers: anemet, beanz
|
||||||
|
|
||||||
|
Reviewed By: anemet
|
||||||
|
|
||||||
|
Subscribers: llvm-commits, mgorny
|
||||||
|
|
||||||
|
Differential Revision: https://reviews.llvm.org/D33146
|
||||||
|
|
||||||
|
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@303042 91177308-0d34-0410-b5e6-96231b3b80d8
|
||||||
|
---
|
||||||
|
cmake/modules/AddSphinxTarget.cmake | 4 ++--
|
||||||
|
1 file changed, 2 insertions(+), 2 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/cmake/modules/AddSphinxTarget.cmake b/cmake/modules/AddSphinxTarget.cmake
|
||||||
|
index c3a676d..4540c5c 100644
|
||||||
|
--- a/cmake/modules/AddSphinxTarget.cmake
|
||||||
|
+++ b/cmake/modules/AddSphinxTarget.cmake
|
||||||
|
@@ -1,9 +1,9 @@
|
||||||
|
|
||||||
|
# Create sphinx target
|
||||||
|
-if (LLVM_ENABLE_SPHINX AND NOT TARGET sphinx)
|
||||||
|
+if (LLVM_ENABLE_SPHINX)
|
||||||
|
message(STATUS "Sphinx enabled.")
|
||||||
|
find_package(Sphinx REQUIRED)
|
||||||
|
- if (LLVM_BUILD_DOCS)
|
||||||
|
+ if (LLVM_BUILD_DOCS AND NOT TARGET sphinx)
|
||||||
|
add_custom_target(sphinx ALL)
|
||||||
|
endif()
|
||||||
|
else()
|
||||||
|
--
|
||||||
|
1.8.3.1
|
||||||
|
|
193
0001-CMake-Fix-pthread-handling-for-out-of-tree-builds.patch
Normal file
193
0001-CMake-Fix-pthread-handling-for-out-of-tree-builds.patch
Normal file
@ -0,0 +1,193 @@
|
|||||||
|
From a61fc423f3c043314efd4c0cdb1367de2077ac36 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Eric Fiselier <eric@efcs.ca>
|
||||||
|
Date: Fri, 10 Feb 2017 01:59:20 +0000
|
||||||
|
Subject: [PATCH] [CMake] Fix pthread handling for out-of-tree builds
|
||||||
|
|
||||||
|
LLVM defines `PTHREAD_LIB` which is used by AddLLVM.cmake and various projects
|
||||||
|
to correctly link the threading library when needed. Unfortunately
|
||||||
|
`PTHREAD_LIB` is defined by LLVM's `config-ix.cmake` file which isn't installed
|
||||||
|
and therefore can't be used when configuring out-of-tree builds. This causes
|
||||||
|
such builds to fail since `pthread` isn't being correctly linked.
|
||||||
|
|
||||||
|
This patch attempts to fix that problem by renaming and exporting
|
||||||
|
`LLVM_PTHREAD_LIB` as part of`LLVMConfig.cmake`. I renamed `PTHREAD_LIB`
|
||||||
|
because It seemed likely to cause collisions with downstream users of
|
||||||
|
`LLVMConfig.cmake`.
|
||||||
|
|
||||||
|
|
||||||
|
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@294690 91177308-0d34-0410-b5e6-96231b3b80d8
|
||||||
|
---
|
||||||
|
cmake/config-ix.cmake | 2 +-
|
||||||
|
cmake/modules/AddLLVM.cmake | 6 +++---
|
||||||
|
cmake/modules/LLVMConfig.cmake.in | 4 ++++
|
||||||
|
examples/ParallelJIT/CMakeLists.txt | 2 +-
|
||||||
|
lib/CodeGen/CMakeLists.txt | 2 +-
|
||||||
|
lib/ExecutionEngine/IntelJITEvents/CMakeLists.txt | 2 +-
|
||||||
|
lib/Fuzzer/CMakeLists.txt | 4 ++--
|
||||||
|
lib/Support/CMakeLists.txt | 2 +-
|
||||||
|
unittests/ExecutionEngine/Orc/CMakeLists.txt | 2 +-
|
||||||
|
unittests/Support/CMakeLists.txt | 2 +-
|
||||||
|
utils/unittest/CMakeLists.txt | 4 ++--
|
||||||
|
11 files changed, 18 insertions(+), 14 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/cmake/config-ix.cmake b/cmake/config-ix.cmake
|
||||||
|
index 50bcc50..6bd2b53 100755
|
||||||
|
--- a/cmake/config-ix.cmake
|
||||||
|
+++ b/cmake/config-ix.cmake
|
||||||
|
@@ -115,7 +115,7 @@ if(HAVE_LIBPTHREAD)
|
||||||
|
set(CMAKE_THREAD_PREFER_PTHREAD TRUE)
|
||||||
|
set(THREADS_HAVE_PTHREAD_ARG Off)
|
||||||
|
find_package(Threads REQUIRED)
|
||||||
|
- set(PTHREAD_LIB ${CMAKE_THREAD_LIBS_INIT})
|
||||||
|
+ set(LLVM_PTHREAD_LIB ${CMAKE_THREAD_LIBS_INIT})
|
||||||
|
endif()
|
||||||
|
|
||||||
|
# Don't look for these libraries on Windows. Also don't look for them if we're
|
||||||
|
diff --git a/cmake/modules/AddLLVM.cmake b/cmake/modules/AddLLVM.cmake
|
||||||
|
index b3c7746..cb4171c 100644
|
||||||
|
--- a/cmake/modules/AddLLVM.cmake
|
||||||
|
+++ b/cmake/modules/AddLLVM.cmake
|
||||||
|
@@ -718,11 +718,11 @@ macro(add_llvm_executable name)
|
||||||
|
if(NOT ARG_IGNORE_EXTERNALIZE_DEBUGINFO)
|
||||||
|
llvm_externalize_debuginfo(${name})
|
||||||
|
endif()
|
||||||
|
- if (PTHREAD_LIB)
|
||||||
|
+ if (LLVM_PTHREAD_LIB)
|
||||||
|
# libpthreads overrides some standard library symbols, so main
|
||||||
|
# executable must be linked with it in order to provide consistent
|
||||||
|
# API for all shared libaries loaded by this executable.
|
||||||
|
- target_link_libraries(${name} ${PTHREAD_LIB})
|
||||||
|
+ target_link_libraries(${name} ${LLVM_PTHREAD_LIB})
|
||||||
|
endif()
|
||||||
|
endmacro(add_llvm_executable name)
|
||||||
|
|
||||||
|
@@ -1027,7 +1027,7 @@ function(add_unittest test_suite test_name)
|
||||||
|
# libpthreads overrides some standard library symbols, so main
|
||||||
|
# executable must be linked with it in order to provide consistent
|
||||||
|
# API for all shared libaries loaded by this executable.
|
||||||
|
- target_link_libraries(${test_name} gtest_main gtest ${PTHREAD_LIB})
|
||||||
|
+ target_link_libraries(${test_name} gtest_main gtest ${LLVM_PTHREAD_LIB})
|
||||||
|
|
||||||
|
add_dependencies(${test_suite} ${test_name})
|
||||||
|
get_target_property(test_suite_folder ${test_suite} FOLDER)
|
||||||
|
diff --git a/cmake/modules/LLVMConfig.cmake.in b/cmake/modules/LLVMConfig.cmake.in
|
||||||
|
index 2aea2dc..7a8eb36 100644
|
||||||
|
--- a/cmake/modules/LLVMConfig.cmake.in
|
||||||
|
+++ b/cmake/modules/LLVMConfig.cmake.in
|
||||||
|
@@ -45,6 +45,10 @@ set(LLVM_ENABLE_PIC @LLVM_ENABLE_PIC@)
|
||||||
|
|
||||||
|
set(LLVM_BUILD_32_BITS @LLVM_BUILD_32_BITS@)
|
||||||
|
|
||||||
|
+if (NOT "@LLVM_PTHREAD_LIB@" STREQUAL "")
|
||||||
|
+ set(LLVM_PTHREAD_LIB "@LLVM_PTHREAD_LIB@")
|
||||||
|
+endif()
|
||||||
|
+
|
||||||
|
set(LLVM_ENABLE_PLUGINS @LLVM_ENABLE_PLUGINS@)
|
||||||
|
set(LLVM_EXPORT_SYMBOLS_FOR_PLUGINS @LLVM_EXPORT_SYMBOLS_FOR_PLUGINS@)
|
||||||
|
set(LLVM_PLUGIN_EXT @LLVM_PLUGIN_EXT@)
|
||||||
|
diff --git a/examples/ParallelJIT/CMakeLists.txt b/examples/ParallelJIT/CMakeLists.txt
|
||||||
|
index e85b470..deeee07 100644
|
||||||
|
--- a/examples/ParallelJIT/CMakeLists.txt
|
||||||
|
+++ b/examples/ParallelJIT/CMakeLists.txt
|
||||||
|
@@ -11,4 +11,4 @@ add_llvm_example(ParallelJIT
|
||||||
|
ParallelJIT.cpp
|
||||||
|
)
|
||||||
|
|
||||||
|
-target_link_libraries(ParallelJIT ${PTHREAD_LIB})
|
||||||
|
+target_link_libraries(ParallelJIT ${LLVM_PTHREAD_LIB})
|
||||||
|
diff --git a/lib/CodeGen/CMakeLists.txt b/lib/CodeGen/CMakeLists.txt
|
||||||
|
index a1e5fd4..a9a3d85 100644
|
||||||
|
--- a/lib/CodeGen/CMakeLists.txt
|
||||||
|
+++ b/lib/CodeGen/CMakeLists.txt
|
||||||
|
@@ -150,7 +150,7 @@ add_llvm_library(LLVMCodeGen
|
||||||
|
${LLVM_MAIN_INCLUDE_DIR}/llvm/CodeGen
|
||||||
|
${LLVM_MAIN_INCLUDE_DIR}/llvm/CodeGen/PBQP
|
||||||
|
|
||||||
|
- LINK_LIBS ${PTHREAD_LIB}
|
||||||
|
+ LINK_LIBS ${LLVM_PTHREAD_LIB}
|
||||||
|
|
||||||
|
DEPENDS
|
||||||
|
intrinsics_gen
|
||||||
|
diff --git a/lib/ExecutionEngine/IntelJITEvents/CMakeLists.txt b/lib/ExecutionEngine/IntelJITEvents/CMakeLists.txt
|
||||||
|
index 3b8c4b9..e6c33b2 100644
|
||||||
|
--- a/lib/ExecutionEngine/IntelJITEvents/CMakeLists.txt
|
||||||
|
+++ b/lib/ExecutionEngine/IntelJITEvents/CMakeLists.txt
|
||||||
|
@@ -4,7 +4,7 @@ if( HAVE_LIBDL )
|
||||||
|
set(LLVM_INTEL_JIT_LIBS ${CMAKE_DL_LIBS})
|
||||||
|
endif()
|
||||||
|
|
||||||
|
-set(LLVM_INTEL_JIT_LIBS ${PTHREAD_LIB} ${LLVM_INTEL_JIT_LIBS})
|
||||||
|
+set(LLVM_INTEL_JIT_LIBS ${LLVM_PTHREAD_LIB} ${LLVM_INTEL_JIT_LIBS})
|
||||||
|
|
||||||
|
|
||||||
|
add_llvm_library(LLVMIntelJITEvents
|
||||||
|
diff --git a/lib/Fuzzer/CMakeLists.txt b/lib/Fuzzer/CMakeLists.txt
|
||||||
|
index 5ba126e..f490b36 100644
|
||||||
|
--- a/lib/Fuzzer/CMakeLists.txt
|
||||||
|
+++ b/lib/Fuzzer/CMakeLists.txt
|
||||||
|
@@ -34,12 +34,12 @@ if( LLVM_USE_SANITIZE_COVERAGE )
|
||||||
|
add_library(LLVMFuzzerNoMain STATIC
|
||||||
|
$<TARGET_OBJECTS:LLVMFuzzerNoMainObjects>
|
||||||
|
)
|
||||||
|
- target_link_libraries(LLVMFuzzerNoMain ${PTHREAD_LIB})
|
||||||
|
+ target_link_libraries(LLVMFuzzerNoMain ${LLVM_PTHREAD_LIB})
|
||||||
|
add_library(LLVMFuzzer STATIC
|
||||||
|
FuzzerMain.cpp
|
||||||
|
$<TARGET_OBJECTS:LLVMFuzzerNoMainObjects>
|
||||||
|
)
|
||||||
|
- target_link_libraries(LLVMFuzzer ${PTHREAD_LIB})
|
||||||
|
+ target_link_libraries(LLVMFuzzer ${LLVM_PTHREAD_LIB})
|
||||||
|
|
||||||
|
if( LLVM_INCLUDE_TESTS )
|
||||||
|
add_subdirectory(test)
|
||||||
|
diff --git a/lib/Support/CMakeLists.txt b/lib/Support/CMakeLists.txt
|
||||||
|
index 3301364..f7cfa76 100644
|
||||||
|
--- a/lib/Support/CMakeLists.txt
|
||||||
|
+++ b/lib/Support/CMakeLists.txt
|
||||||
|
@@ -17,7 +17,7 @@ elseif( CMAKE_HOST_UNIX )
|
||||||
|
if( LLVM_ENABLE_THREADS AND HAVE_LIBATOMIC )
|
||||||
|
set(system_libs ${system_libs} atomic)
|
||||||
|
endif()
|
||||||
|
- set(system_libs ${system_libs} ${PTHREAD_LIB})
|
||||||
|
+ set(system_libs ${system_libs} ${LLVM_PTHREAD_LIB})
|
||||||
|
if ( LLVM_ENABLE_ZLIB AND HAVE_LIBZ )
|
||||||
|
set(system_libs ${system_libs} z)
|
||||||
|
endif()
|
||||||
|
diff --git a/unittests/ExecutionEngine/Orc/CMakeLists.txt b/unittests/ExecutionEngine/Orc/CMakeLists.txt
|
||||||
|
index 68f6d0c..80c344e 100644
|
||||||
|
--- a/unittests/ExecutionEngine/Orc/CMakeLists.txt
|
||||||
|
+++ b/unittests/ExecutionEngine/Orc/CMakeLists.txt
|
||||||
|
@@ -21,4 +21,4 @@ add_llvm_unittest(OrcJITTests
|
||||||
|
RPCUtilsTest.cpp
|
||||||
|
)
|
||||||
|
|
||||||
|
-target_link_libraries(OrcJITTests ${PTHREAD_LIB})
|
||||||
|
+target_link_libraries(OrcJITTests ${LLVM_PTHREAD_LIB})
|
||||||
|
diff --git a/unittests/Support/CMakeLists.txt b/unittests/Support/CMakeLists.txt
|
||||||
|
index 4c9bb5e..ea26079 100644
|
||||||
|
--- a/unittests/Support/CMakeLists.txt
|
||||||
|
+++ b/unittests/Support/CMakeLists.txt
|
||||||
|
@@ -64,4 +64,4 @@ add_llvm_unittest(SupportTests
|
||||||
|
)
|
||||||
|
|
||||||
|
# ManagedStatic.cpp uses <pthread>.
|
||||||
|
-target_link_libraries(SupportTests ${PTHREAD_LIB})
|
||||||
|
+target_link_libraries(SupportTests ${LLVM_PTHREAD_LIB})
|
||||||
|
diff --git a/utils/unittest/CMakeLists.txt b/utils/unittest/CMakeLists.txt
|
||||||
|
index a50733a..b42ac83 100644
|
||||||
|
--- a/utils/unittest/CMakeLists.txt
|
||||||
|
+++ b/utils/unittest/CMakeLists.txt
|
||||||
|
@@ -40,8 +40,8 @@ if (NOT LLVM_ENABLE_THREADS)
|
||||||
|
add_definitions( -DGTEST_HAS_PTHREAD=0 )
|
||||||
|
endif()
|
||||||
|
|
||||||
|
-find_library(PTHREAD_LIBRARY_PATH pthread)
|
||||||
|
-if (PTHREAD_LIBRARY_PATH)
|
||||||
|
+find_library(LLVM_PTHREAD_LIBRARY_PATH pthread)
|
||||||
|
+if (LLVM_PTHREAD_LIBRARY_PATH)
|
||||||
|
list(APPEND LIBS pthread)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
--
|
||||||
|
1.8.3.1
|
||||||
|
|
@ -1,22 +1,42 @@
|
|||||||
From 8f6917ea11bd1bfbfe07f3577756d1c4abfdb916 Mon Sep 17 00:00:00 2001
|
From a5f39924a3466eb12d764993aaa8c1c308f92925 Mon Sep 17 00:00:00 2001
|
||||||
From: Tom Stellard <tstellar@redhat.com>
|
From: Tom Stellard <tstellar@redhat.com>
|
||||||
Date: Fri, 6 Sep 2019 11:03:18 -0700
|
Date: Sat, 29 Apr 2017 02:03:23 +0000
|
||||||
Subject: [PATCH] CMake: Split static library exports into their own export
|
Subject: [PATCH] CMake: Split static library exports into their own export
|
||||||
file
|
file
|
||||||
|
|
||||||
|
Summary:
|
||||||
|
This is to better support distros which split the static libraries into
|
||||||
|
their own package.
|
||||||
|
|
||||||
|
The current problem is that any project the includes LLVMConfig.cmake
|
||||||
|
will fail to configure unless the static libraries are installed. This
|
||||||
|
is because LLVMConfig.cmake includes LLVMExports.cmake, which throws an
|
||||||
|
error if it can't find files linked to one of the exported targets.
|
||||||
|
|
||||||
|
This patch resolves the problem by putting the static library targets
|
||||||
|
into their own export file, LLVMStaticExports.cmake. This file
|
||||||
|
is optionally included by LLVMConfig.cmake, so distros can put this
|
||||||
|
new file in their static library package to make LLVMConfig.cmake
|
||||||
|
no longer depend on these libraries when they are not installed.
|
||||||
|
|
||||||
|
Reviewers: beanz, mgorny, chapuni
|
||||||
|
|
||||||
|
Subscribers: llvm-commits
|
||||||
|
|
||||||
|
Differential Revision: https://reviews.llvm.org/D32668
|
||||||
---
|
---
|
||||||
llvm/cmake/modules/AddLLVM.cmake | 6 +++++-
|
cmake/modules/AddLLVM.cmake | 6 +++++-
|
||||||
llvm/cmake/modules/CMakeLists.txt | 3 +++
|
cmake/modules/CMakeLists.txt | 3 +++
|
||||||
llvm/cmake/modules/LLVMConfig.cmake.in | 2 ++
|
cmake/modules/LLVMConfig.cmake.in | 2 ++
|
||||||
3 files changed, 10 insertions(+), 1 deletion(-)
|
3 files changed, 10 insertions(+), 1 deletion(-)
|
||||||
|
|
||||||
diff --git a/llvm/cmake/modules/AddLLVM.cmake b/llvm/cmake/modules/AddLLVM.cmake
|
diff --git a/cmake/modules/AddLLVM.cmake b/cmake/modules/AddLLVM.cmake
|
||||||
index 619e986..200fc45 100644
|
index b3c7746..7d9d253 100644
|
||||||
--- a/llvm/cmake/modules/AddLLVM.cmake
|
--- a/cmake/modules/AddLLVM.cmake
|
||||||
+++ b/llvm/cmake/modules/AddLLVM.cmake
|
+++ b/cmake/modules/AddLLVM.cmake
|
||||||
@@ -691,7 +691,11 @@ macro(add_llvm_library name)
|
@@ -587,7 +587,11 @@ macro(add_llvm_library name)
|
||||||
|
|
||||||
if(${name} IN_LIST LLVM_DISTRIBUTION_COMPONENTS OR
|
if(${name} IN_LIST LLVM_DISTRIBUTION_COMPONENTS OR
|
||||||
(in_llvm_libs AND "llvm-libraries" IN_LIST LLVM_DISTRIBUTION_COMPONENTS) OR
|
|
||||||
NOT LLVM_DISTRIBUTION_COMPONENTS)
|
NOT LLVM_DISTRIBUTION_COMPONENTS)
|
||||||
- set(export_to_llvmexports EXPORT LLVMExports)
|
- set(export_to_llvmexports EXPORT LLVMExports)
|
||||||
+ if (ARG_SHARED)
|
+ if (ARG_SHARED)
|
||||||
@ -27,11 +47,11 @@ index 619e986..200fc45 100644
|
|||||||
set_property(GLOBAL PROPERTY LLVM_HAS_EXPORTS True)
|
set_property(GLOBAL PROPERTY LLVM_HAS_EXPORTS True)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
diff --git a/llvm/cmake/modules/CMakeLists.txt b/llvm/cmake/modules/CMakeLists.txt
|
diff --git a/cmake/modules/CMakeLists.txt b/cmake/modules/CMakeLists.txt
|
||||||
index 9cf22b4..dc982d2 100644
|
index ac4b0b7..f77c905 100644
|
||||||
--- a/llvm/cmake/modules/CMakeLists.txt
|
--- a/cmake/modules/CMakeLists.txt
|
||||||
+++ b/llvm/cmake/modules/CMakeLists.txt
|
+++ b/cmake/modules/CMakeLists.txt
|
||||||
@@ -105,6 +105,7 @@ set(LLVM_CONFIG_BINARY_DIR "\${LLVM_INSTALL_PREFIX}")
|
@@ -91,6 +91,7 @@ set(LLVM_CONFIG_BINARY_DIR "\${LLVM_INSTALL_PREFIX}")
|
||||||
set(LLVM_CONFIG_TOOLS_BINARY_DIR "\${LLVM_INSTALL_PREFIX}/bin")
|
set(LLVM_CONFIG_TOOLS_BINARY_DIR "\${LLVM_INSTALL_PREFIX}/bin")
|
||||||
set(LLVM_CONFIG_EXPORTS_FILE "\${LLVM_CMAKE_DIR}/LLVMExports.cmake")
|
set(LLVM_CONFIG_EXPORTS_FILE "\${LLVM_CMAKE_DIR}/LLVMExports.cmake")
|
||||||
set(LLVM_CONFIG_EXPORTS "${LLVM_EXPORTS}")
|
set(LLVM_CONFIG_EXPORTS "${LLVM_EXPORTS}")
|
||||||
@ -39,7 +59,7 @@ index 9cf22b4..dc982d2 100644
|
|||||||
configure_file(
|
configure_file(
|
||||||
LLVMConfig.cmake.in
|
LLVMConfig.cmake.in
|
||||||
${CMAKE_CURRENT_BINARY_DIR}/CMakeFiles/LLVMConfig.cmake
|
${CMAKE_CURRENT_BINARY_DIR}/CMakeFiles/LLVMConfig.cmake
|
||||||
@@ -121,6 +122,8 @@ if (NOT LLVM_INSTALL_TOOLCHAIN_ONLY)
|
@@ -107,6 +108,8 @@ if (NOT LLVM_INSTALL_TOOLCHAIN_ONLY)
|
||||||
if(llvm_has_exports)
|
if(llvm_has_exports)
|
||||||
install(EXPORT LLVMExports DESTINATION ${LLVM_INSTALL_PACKAGE_DIR}
|
install(EXPORT LLVMExports DESTINATION ${LLVM_INSTALL_PACKAGE_DIR}
|
||||||
COMPONENT cmake-exports)
|
COMPONENT cmake-exports)
|
||||||
@ -48,11 +68,11 @@ index 9cf22b4..dc982d2 100644
|
|||||||
endif()
|
endif()
|
||||||
|
|
||||||
install(FILES
|
install(FILES
|
||||||
diff --git a/llvm/cmake/modules/LLVMConfig.cmake.in b/llvm/cmake/modules/LLVMConfig.cmake.in
|
diff --git a/cmake/modules/LLVMConfig.cmake.in b/cmake/modules/LLVMConfig.cmake.in
|
||||||
index 536031f..6ef54a0 100644
|
index c30c92b..f0f17b2 100644
|
||||||
--- a/llvm/cmake/modules/LLVMConfig.cmake.in
|
--- a/cmake/modules/LLVMConfig.cmake.in
|
||||||
+++ b/llvm/cmake/modules/LLVMConfig.cmake.in
|
+++ b/cmake/modules/LLVMConfig.cmake.in
|
||||||
@@ -89,6 +89,8 @@ if(NOT TARGET LLVMSupport)
|
@@ -73,6 +73,8 @@ if(NOT TARGET LLVMSupport)
|
||||||
set(LLVM_EXPORTED_TARGETS "@LLVM_CONFIG_EXPORTS@")
|
set(LLVM_EXPORTED_TARGETS "@LLVM_CONFIG_EXPORTS@")
|
||||||
include("@LLVM_CONFIG_EXPORTS_FILE@")
|
include("@LLVM_CONFIG_EXPORTS_FILE@")
|
||||||
@llvm_config_include_buildtree_only_exports@
|
@llvm_config_include_buildtree_only_exports@
|
||||||
@ -60,7 +80,7 @@ index 536031f..6ef54a0 100644
|
|||||||
+ include("@LLVM_CONFIG_STATIC_EXPORTS_FILE@" OPTIONAL)
|
+ include("@LLVM_CONFIG_STATIC_EXPORTS_FILE@" OPTIONAL)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
# By creating intrinsics_gen here, subprojects that depend on LLVM's
|
include(${LLVM_CMAKE_DIR}/LLVM-Config.cmake)
|
||||||
--
|
--
|
||||||
1.8.3.1
|
2.9.3
|
||||||
|
|
||||||
|
@ -1,65 +0,0 @@
|
|||||||
From 9d496e978f59e153bb76e92229d5a524d92dee04 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Tom Stellard <tstellar@redhat.com>
|
|
||||||
Date: Tue, 10 Sep 2019 13:33:48 -0700
|
|
||||||
Subject: [PATCH] CMake: Split test binary exports into their own export file
|
|
||||||
|
|
||||||
---
|
|
||||||
llvm/cmake/modules/AddLLVM.cmake | 7 ++++++-
|
|
||||||
llvm/cmake/modules/CMakeLists.txt | 3 +++
|
|
||||||
llvm/cmake/modules/LLVMConfig.cmake.in | 1 +
|
|
||||||
3 files changed, 10 insertions(+), 1 deletion(-)
|
|
||||||
|
|
||||||
diff --git a/llvm/cmake/modules/AddLLVM.cmake b/llvm/cmake/modules/AddLLVM.cmake
|
|
||||||
index 200fc45..9eec7a7 100644
|
|
||||||
--- a/llvm/cmake/modules/AddLLVM.cmake
|
|
||||||
+++ b/llvm/cmake/modules/AddLLVM.cmake
|
|
||||||
@@ -953,7 +953,12 @@ macro(add_llvm_utility name)
|
|
||||||
set(export_to_llvmexports)
|
|
||||||
if (${name} IN_LIST LLVM_DISTRIBUTION_COMPONENTS OR
|
|
||||||
NOT LLVM_DISTRIBUTION_COMPONENTS)
|
|
||||||
- set(export_to_llvmexports EXPORT LLVMExports)
|
|
||||||
+ if (${name} STREQUAL "not" OR ${name} STREQUAL "count" OR
|
|
||||||
+ ${name} STREQUAL "yaml-bench" OR ${name} STREQUAL "lli-child-target")
|
|
||||||
+ set(export_to_llvmexports EXPORT LLVMTestExports)
|
|
||||||
+ else()
|
|
||||||
+ set(export_to_llvmexports EXPORT LLVMExports)
|
|
||||||
+ endif()
|
|
||||||
set_property(GLOBAL PROPERTY LLVM_HAS_EXPORTS True)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
diff --git a/llvm/cmake/modules/CMakeLists.txt b/llvm/cmake/modules/CMakeLists.txt
|
|
||||||
index dc982d2..c861f45 100644
|
|
||||||
--- a/llvm/cmake/modules/CMakeLists.txt
|
|
||||||
+++ b/llvm/cmake/modules/CMakeLists.txt
|
|
||||||
@@ -106,6 +106,7 @@ set(LLVM_CONFIG_TOOLS_BINARY_DIR "\${LLVM_INSTALL_PREFIX}/bin")
|
|
||||||
set(LLVM_CONFIG_EXPORTS_FILE "\${LLVM_CMAKE_DIR}/LLVMExports.cmake")
|
|
||||||
set(LLVM_CONFIG_EXPORTS "${LLVM_EXPORTS}")
|
|
||||||
set(LLVM_CONFIG_STATIC_EXPORTS_FILE "\${LLVM_CMAKE_DIR}/LLVMStaticExports.cmake")
|
|
||||||
+set(LLVM_CONFIG_TEST_EXPORTS_FILE "\${LLVM_CMAKE_DIR}/LLVMTestExports.cmake")
|
|
||||||
configure_file(
|
|
||||||
LLVMConfig.cmake.in
|
|
||||||
${CMAKE_CURRENT_BINARY_DIR}/CMakeFiles/LLVMConfig.cmake
|
|
||||||
@@ -124,6 +125,8 @@ if (NOT LLVM_INSTALL_TOOLCHAIN_ONLY)
|
|
||||||
COMPONENT cmake-exports)
|
|
||||||
install(EXPORT LLVMStaticExports DESTINATION ${LLVM_INSTALL_PACKAGE_DIR}
|
|
||||||
COMPONENT cmake-exports)
|
|
||||||
+ install(EXPORT LLVMTestExports DESTINATION ${LLVM_INSTALL_PACKAGE_DIR}
|
|
||||||
+ COMPONENT cmake-exports)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
install(FILES
|
|
||||||
diff --git a/llvm/cmake/modules/LLVMConfig.cmake.in b/llvm/cmake/modules/LLVMConfig.cmake.in
|
|
||||||
index 6ef54a0..d81b09a 100644
|
|
||||||
--- a/llvm/cmake/modules/LLVMConfig.cmake.in
|
|
||||||
+++ b/llvm/cmake/modules/LLVMConfig.cmake.in
|
|
||||||
@@ -91,6 +91,7 @@ if(NOT TARGET LLVMSupport)
|
|
||||||
@llvm_config_include_buildtree_only_exports@
|
|
||||||
|
|
||||||
include("@LLVM_CONFIG_STATIC_EXPORTS_FILE@" OPTIONAL)
|
|
||||||
+ include("@LLVM_CONFIG_TEST_EXPORTS_FILE@" OPTIONAL)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
# By creating intrinsics_gen here, subprojects that depend on LLVM's
|
|
||||||
--
|
|
||||||
1.8.3.1
|
|
||||||
|
|
153
0001-DebugInfo-Fix-potential-CU-mismatch-for-SubprogramSc.patch
Normal file
153
0001-DebugInfo-Fix-potential-CU-mismatch-for-SubprogramSc.patch
Normal file
@ -0,0 +1,153 @@
|
|||||||
|
From fd80342a58ead0dc7b008ce6ce8523cdea765f5f Mon Sep 17 00:00:00 2001
|
||||||
|
From: Jonas Devlieghere <jonas@devlieghere.com>
|
||||||
|
Date: Wed, 15 Nov 2017 10:57:05 +0000
|
||||||
|
Subject: [PATCH] [DebugInfo] Fix potential CU mismatch for
|
||||||
|
SubprogramScopeDIEs.
|
||||||
|
|
||||||
|
In constructAbstractSubprogramScopeDIE there can be a potential mismatch
|
||||||
|
between `this` and the CU of ContextDIE when a scope is shared between
|
||||||
|
two DISubprograms belonging to a different CU. In that case, `this` is
|
||||||
|
the CU that was specified in the IR, but the CU of ContextDIE is that of
|
||||||
|
the first subprogram that was emitted. This patch fixes the mismatch by
|
||||||
|
looking up the CU of ContextDIE, and switching to use that.
|
||||||
|
|
||||||
|
This fixes PR35212 (https://bugs.llvm.org/show_bug.cgi?id=35212)
|
||||||
|
|
||||||
|
Patch by Philip Craig!
|
||||||
|
|
||||||
|
Differential revision: https://reviews.llvm.org/D39981
|
||||||
|
|
||||||
|
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@318289 91177308-0d34-0410-b5e6-96231b3b80d8
|
||||||
|
---
|
||||||
|
lib/CodeGen/AsmPrinter/DwarfCompileUnit.cpp | 20 ++++++++----
|
||||||
|
lib/CodeGen/AsmPrinter/DwarfDebug.h | 6 +++-
|
||||||
|
test/DebugInfo/cross-cu-scope.ll | 50 +++++++++++++++++++++++++++++
|
||||||
|
3 files changed, 68 insertions(+), 8 deletions(-)
|
||||||
|
create mode 100644 test/DebugInfo/cross-cu-scope.ll
|
||||||
|
|
||||||
|
diff --git a/lib/CodeGen/AsmPrinter/DwarfCompileUnit.cpp b/lib/CodeGen/AsmPrinter/DwarfCompileUnit.cpp
|
||||||
|
index d904372..eea30a7 100644
|
||||||
|
--- a/lib/CodeGen/AsmPrinter/DwarfCompileUnit.cpp
|
||||||
|
+++ b/lib/CodeGen/AsmPrinter/DwarfCompileUnit.cpp
|
||||||
|
@@ -616,6 +616,7 @@ void DwarfCompileUnit::constructAbstractSubprogramScopeDIE(
|
||||||
|
auto *SP = cast<DISubprogram>(Scope->getScopeNode());
|
||||||
|
|
||||||
|
DIE *ContextDIE;
|
||||||
|
+ DwarfCompileUnit *ContextCU = this;
|
||||||
|
|
||||||
|
if (includeMinimalInlineScopes())
|
||||||
|
ContextDIE = &getUnitDie();
|
||||||
|
@@ -626,18 +627,23 @@ void DwarfCompileUnit::constructAbstractSubprogramScopeDIE(
|
||||||
|
else if (auto *SPDecl = SP->getDeclaration()) {
|
||||||
|
ContextDIE = &getUnitDie();
|
||||||
|
getOrCreateSubprogramDIE(SPDecl);
|
||||||
|
- } else
|
||||||
|
+ } else {
|
||||||
|
ContextDIE = getOrCreateContextDIE(resolve(SP->getScope()));
|
||||||
|
+ // The scope may be shared with a subprogram that has already been
|
||||||
|
+ // constructed in another CU, in which case we need to construct this
|
||||||
|
+ // subprogram in the same CU.
|
||||||
|
+ ContextCU = DD->lookupCU(ContextDIE->getUnitDie());
|
||||||
|
+ }
|
||||||
|
|
||||||
|
// Passing null as the associated node because the abstract definition
|
||||||
|
// shouldn't be found by lookup.
|
||||||
|
- AbsDef = &createAndAddDIE(dwarf::DW_TAG_subprogram, *ContextDIE, nullptr);
|
||||||
|
- applySubprogramAttributesToDefinition(SP, *AbsDef);
|
||||||
|
+ AbsDef = &ContextCU->createAndAddDIE(dwarf::DW_TAG_subprogram, *ContextDIE, nullptr);
|
||||||
|
+ ContextCU->applySubprogramAttributesToDefinition(SP, *AbsDef);
|
||||||
|
|
||||||
|
- if (!includeMinimalInlineScopes())
|
||||||
|
- addUInt(*AbsDef, dwarf::DW_AT_inline, None, dwarf::DW_INL_inlined);
|
||||||
|
- if (DIE *ObjectPointer = createAndAddScopeChildren(Scope, *AbsDef))
|
||||||
|
- addDIEEntry(*AbsDef, dwarf::DW_AT_object_pointer, *ObjectPointer);
|
||||||
|
+ if (!ContextCU->includeMinimalInlineScopes())
|
||||||
|
+ ContextCU->addUInt(*AbsDef, dwarf::DW_AT_inline, None, dwarf::DW_INL_inlined);
|
||||||
|
+ if (DIE *ObjectPointer = ContextCU->createAndAddScopeChildren(Scope, *AbsDef))
|
||||||
|
+ ContextCU->addDIEEntry(*AbsDef, dwarf::DW_AT_object_pointer, *ObjectPointer);
|
||||||
|
}
|
||||||
|
|
||||||
|
DIE *DwarfCompileUnit::constructImportedEntityDIE(
|
||||||
|
diff --git a/lib/CodeGen/AsmPrinter/DwarfDebug.h b/lib/CodeGen/AsmPrinter/DwarfDebug.h
|
||||||
|
index 253e3f0..9ade921 100644
|
||||||
|
--- a/lib/CodeGen/AsmPrinter/DwarfDebug.h
|
||||||
|
+++ b/lib/CodeGen/AsmPrinter/DwarfDebug.h
|
||||||
|
@@ -280,7 +280,7 @@ class DwarfDebug : public DebugHandlerBase {
|
||||||
|
// 0, referencing the comp_dir of all the type units that use it.
|
||||||
|
MCDwarfDwoLineTable SplitTypeUnitFileTable;
|
||||||
|
/// @}
|
||||||
|
-
|
||||||
|
+
|
||||||
|
/// True iff there are multiple CUs in this module.
|
||||||
|
bool SingleCU;
|
||||||
|
bool IsDarwin;
|
||||||
|
@@ -555,6 +555,10 @@ public:
|
||||||
|
/// A helper function to check whether the DIE for a given Scope is
|
||||||
|
/// going to be null.
|
||||||
|
bool isLexicalScopeDIENull(LexicalScope *Scope);
|
||||||
|
+
|
||||||
|
+ /// Find the matching DwarfCompileUnit for the given CU DIE.
|
||||||
|
+ DwarfCompileUnit *lookupCU(const DIE *Die) { return CUDieMap.lookup(Die); }
|
||||||
|
+
|
||||||
|
};
|
||||||
|
} // End of namespace llvm
|
||||||
|
|
||||||
|
diff --git a/test/DebugInfo/cross-cu-scope.ll b/test/DebugInfo/cross-cu-scope.ll
|
||||||
|
new file mode 100644
|
||||||
|
index 0000000..7c71f27
|
||||||
|
--- /dev/null
|
||||||
|
+++ b/test/DebugInfo/cross-cu-scope.ll
|
||||||
|
@@ -0,0 +1,50 @@
|
||||||
|
+; RUN: %llc_dwarf %s -filetype=obj -o %t
|
||||||
|
+; RUN: llvm-dwarfdump -debug-dump=info %t | FileCheck %s
|
||||||
|
+
|
||||||
|
+; Reduced test case from PR35212. Two DISubprogram belong to a different CU but
|
||||||
|
+; share a scope. Both are declarations and end up in the scope's CU. We want to
|
||||||
|
+; check that the CU from the context DIE is used (rather than from the IR).
|
||||||
|
+; This manifests itself by the DW_base_type ending up in the second CU, rather
|
||||||
|
+; than in the first one as specified in the IR.
|
||||||
|
+
|
||||||
|
+; CHECK: DW_TAG_compile_unit
|
||||||
|
+; CHECK-NEXT: discriminator 0
|
||||||
|
+; CHECK: DW_TAG_compile_unit
|
||||||
|
+; CHECK-NEXT: discriminator 1
|
||||||
|
+; CHECK: DW_TAG_structure_type
|
||||||
|
+; CHECK-NOT: NULL
|
||||||
|
+; CHECK: DW_TAG_subprogram
|
||||||
|
+; CHECK-NOT: NULL
|
||||||
|
+; CHECK: DW_TAG_formal_parameter
|
||||||
|
+; CHECK-NOT: NULL
|
||||||
|
+; CHECK: DW_AT_type{{.*}}{[[USIZE_LABEL:0x[0-9a-f]+]]}
|
||||||
|
+; CHECK: NULL
|
||||||
|
+; CHECK: [[USIZE_LABEL]]: DW_TAG_base_type
|
||||||
|
+; CHECK-NOT: NULL
|
||||||
|
+; CHECK: DW_AT_name{{.*}}"usize"
|
||||||
|
+
|
||||||
|
+define hidden void @foo() !dbg !4 {
|
||||||
|
+ ret void, !dbg !7
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
+!llvm.dbg.cu = !{!0, !2}
|
||||||
|
+!llvm.module.flags = !{!3}
|
||||||
|
+
|
||||||
|
+!0 = distinct !DICompileUnit(language: DW_LANG_Rust, file: !1, producer: "clang LLVM (rustc version 1.23.0-nightly (discriminator 0))", isOptimized: true, runtimeVersion: 0, emissionKind: FullDebug)
|
||||||
|
+!1 = !DIFile(filename: "../lib.rs", directory: "/home/alex/code/rust4/lol")
|
||||||
|
+!2 = distinct !DICompileUnit(language: DW_LANG_Rust, file: !1, producer: "clang LLVM (rustc version 1.23.0-nightly (discriminator 1))", isOptimized: true, runtimeVersion: 0, emissionKind: FullDebug)
|
||||||
|
+!3 = !{i32 2, !"Debug Info Version", i32 3}
|
||||||
|
+!4 = distinct !DISubprogram(name: "clone<alloc::string::String>", linkageName: "_ZN5alloc3vec8{{impl}}28clone<alloc::string::String>E", scope: null, file: !1, line: 1519, type: !5, isLocal: false, isDefinition: true, scopeLine: 1519, flags: DIFlagPrototyped, isOptimized: true, unit: !0, templateParams: !6, variables: !6)
|
||||||
|
+!5 = !DISubroutineType(types: !6)
|
||||||
|
+!6 = !{}
|
||||||
|
+!7 = !DILocation(line: 1612, scope: !8, inlinedAt: !11)
|
||||||
|
+!8 = distinct !DILexicalBlock(scope: !9, file: !1, line: 86, column: 12)
|
||||||
|
+!9 = distinct !DISubprogram(name: "allocate_in<alloc::string::String,alloc::heap::Heap>", linkageName: "_ZN5alloc7raw_vec8{{impl}}52allocate_in<alloc::string::String,alloc::heap::Heap>E", scope: !10, file: !1, line: 82, type: !5, isLocal: false, isDefinition: true, scopeLine: 82, flags: DIFlagPrototyped, isOptimized: true, unit: !2, templateParams: !6, variables: !6)
|
||||||
|
+!10 = distinct !DICompositeType(tag: DW_TAG_structure_type, name: "RawVec<alloc::string::String, alloc::heap::Heap>", file: !1, size: 128, align: 64, elements: !6, identifier: "5c6e4db16d2c64555e40661d70c4d81e")
|
||||||
|
+!11 = distinct !DILocation(line: 86, scope: !8, inlinedAt: !12)
|
||||||
|
+!12 = distinct !DILocation(line: 141, scope: !13, inlinedAt: !17)
|
||||||
|
+!13 = distinct !DISubprogram(name: "with_capacity<alloc::string::String>", linkageName: "_ZN5alloc7raw_vec8{{impl}}36with_capacity<alloc::string::String>E", scope: !10, file: !1, line: 140, type: !5, isLocal: false, isDefinition: true, scopeLine: 140, flags: DIFlagPrototyped, isOptimized: true, unit: !0, templateParams: !6, variables: !14)
|
||||||
|
+!14 = !{!15}
|
||||||
|
+!15 = !DILocalVariable(name: "cap", arg: 1, scope: !13, file: !1, line: 1, type: !16)
|
||||||
|
+!16 = !DIBasicType(name: "usize", size: 64, encoding: DW_ATE_unsigned)
|
||||||
|
+!17 = !DILocation(line: 1521, scope: !4)
|
||||||
|
--
|
||||||
|
2.9.3
|
||||||
|
|
@ -0,0 +1,77 @@
|
|||||||
|
From 66e43b0a8e5616a4762eedee9bd030a49b9d6545 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Guozhi Wei <carrot@google.com>
|
||||||
|
Date: Thu, 2 Mar 2017 21:07:59 +0000
|
||||||
|
Subject: [PATCH 1/3] [PPC] Fix code generation for bswap(int32) followed by
|
||||||
|
store16
|
||||||
|
|
||||||
|
This patch fixes pr32063.
|
||||||
|
|
||||||
|
Current code in PPCTargetLowering::PerformDAGCombine can transform
|
||||||
|
|
||||||
|
bswap
|
||||||
|
store
|
||||||
|
|
||||||
|
into a single PPCISD::STBRX instruction. but it doesn't consider the case that the operand size of bswap may be larger than store size. When it occurs, we need 2 modifications,
|
||||||
|
|
||||||
|
1 For the last operand of PPCISD::STBRX, we should not use DAG.getValueType(N->getOperand(1).getValueType()), instead we should use cast<StoreSDNode>(N)->getMemoryVT().
|
||||||
|
|
||||||
|
2 Before PPCISD::STBRX, we need to shift the original operand of bswap to the right side.
|
||||||
|
|
||||||
|
Differential Revision: https://reviews.llvm.org/D30362
|
||||||
|
|
||||||
|
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@296811 91177308-0d34-0410-b5e6-96231b3b80d8
|
||||||
|
---
|
||||||
|
lib/Target/PowerPC/PPCISelLowering.cpp | 12 ++++++++++--
|
||||||
|
test/CodeGen/PowerPC/pr32063.ll | 16 ++++++++++++++++
|
||||||
|
2 files changed, 26 insertions(+), 2 deletions(-)
|
||||||
|
create mode 100644 test/CodeGen/PowerPC/pr32063.ll
|
||||||
|
|
||||||
|
diff --git a/lib/Target/PowerPC/PPCISelLowering.cpp b/lib/Target/PowerPC/PPCISelLowering.cpp
|
||||||
|
index 6313082..c8eb6f1 100644
|
||||||
|
--- a/lib/Target/PowerPC/PPCISelLowering.cpp
|
||||||
|
+++ b/lib/Target/PowerPC/PPCISelLowering.cpp
|
||||||
|
@@ -11226,9 +11226,17 @@ SDValue PPCTargetLowering::PerformDAGCombine(SDNode *N,
|
||||||
|
if (BSwapOp.getValueType() == MVT::i16)
|
||||||
|
BSwapOp = DAG.getNode(ISD::ANY_EXTEND, dl, MVT::i32, BSwapOp);
|
||||||
|
|
||||||
|
+ // If the type of BSWAP operand is wider than stored memory width
|
||||||
|
+ // it need to be shifted to the right side before STBRX.
|
||||||
|
+ EVT mVT = cast<StoreSDNode>(N)->getMemoryVT();
|
||||||
|
+ if (Op1VT.bitsGT(mVT)) {
|
||||||
|
+ int shift = Op1VT.getSizeInBits() - mVT.getSizeInBits();
|
||||||
|
+ BSwapOp = DAG.getNode(ISD::SRL, dl, Op1VT, BSwapOp,
|
||||||
|
+ DAG.getConstant(shift, dl, MVT::i32));
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
SDValue Ops[] = {
|
||||||
|
- N->getOperand(0), BSwapOp, N->getOperand(2),
|
||||||
|
- DAG.getValueType(N->getOperand(1).getValueType())
|
||||||
|
+ N->getOperand(0), BSwapOp, N->getOperand(2), DAG.getValueType(mVT)
|
||||||
|
};
|
||||||
|
return
|
||||||
|
DAG.getMemIntrinsicNode(PPCISD::STBRX, dl, DAG.getVTList(MVT::Other),
|
||||||
|
diff --git a/test/CodeGen/PowerPC/pr32063.ll b/test/CodeGen/PowerPC/pr32063.ll
|
||||||
|
new file mode 100644
|
||||||
|
index 0000000..f031ec8
|
||||||
|
--- /dev/null
|
||||||
|
+++ b/test/CodeGen/PowerPC/pr32063.ll
|
||||||
|
@@ -0,0 +1,16 @@
|
||||||
|
+; RUN: llc -O2 < %s | FileCheck %s
|
||||||
|
+target triple = "powerpc64le-linux-gnu"
|
||||||
|
+
|
||||||
|
+define void @foo(i32 %v, i16* %p) {
|
||||||
|
+ %1 = and i32 %v, -65536
|
||||||
|
+ %2 = tail call i32 @llvm.bswap.i32(i32 %1)
|
||||||
|
+ %conv = trunc i32 %2 to i16
|
||||||
|
+ store i16 %conv, i16* %p
|
||||||
|
+ ret void
|
||||||
|
+
|
||||||
|
+; CHECK: srwi
|
||||||
|
+; CHECK: sthbrx
|
||||||
|
+; CHECK-NOT: stwbrx
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
+declare i32 @llvm.bswap.i32(i32)
|
||||||
|
--
|
||||||
|
1.8.3.1
|
||||||
|
|
@ -0,0 +1,76 @@
|
|||||||
|
From 9c50cf0c6d8f0b11cd76a28cc4ef9bca6ef732e0 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Tom Stellard <tstellar@redhat.com>
|
||||||
|
Date: Tue, 9 May 2017 01:41:28 +0000
|
||||||
|
Subject: [PATCH] Revert "Revert "CMake: Move sphinx detection into
|
||||||
|
AddSphinxTarget.cmake""
|
||||||
|
|
||||||
|
This reverts commit r302054.
|
||||||
|
|
||||||
|
Re-commit now that I have fixes for clang/lld.
|
||||||
|
|
||||||
|
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@302499 91177308-0d34-0410-b5e6-96231b3b80d8
|
||||||
|
---
|
||||||
|
cmake/config-ix.cmake | 10 ----------
|
||||||
|
cmake/modules/AddSphinxTarget.cmake | 13 +++++++++++++
|
||||||
|
docs/CMakeLists.txt | 2 +-
|
||||||
|
3 files changed, 14 insertions(+), 11 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/cmake/config-ix.cmake b/cmake/config-ix.cmake
|
||||||
|
index 0331d0f..de8e9bf 100755
|
||||||
|
--- a/cmake/config-ix.cmake
|
||||||
|
+++ b/cmake/config-ix.cmake
|
||||||
|
@@ -530,16 +530,6 @@ else()
|
||||||
|
message(STATUS "Doxygen disabled.")
|
||||||
|
endif()
|
||||||
|
|
||||||
|
-if (LLVM_ENABLE_SPHINX)
|
||||||
|
- message(STATUS "Sphinx enabled.")
|
||||||
|
- find_package(Sphinx REQUIRED)
|
||||||
|
- if (LLVM_BUILD_DOCS)
|
||||||
|
- add_custom_target(sphinx ALL)
|
||||||
|
- endif()
|
||||||
|
-else()
|
||||||
|
- message(STATUS "Sphinx disabled.")
|
||||||
|
-endif()
|
||||||
|
-
|
||||||
|
set(LLVM_BINDINGS "")
|
||||||
|
if(WIN32)
|
||||||
|
message(STATUS "Go bindings disabled.")
|
||||||
|
diff --git a/cmake/modules/AddSphinxTarget.cmake b/cmake/modules/AddSphinxTarget.cmake
|
||||||
|
index cfc7f38..c3a676d 100644
|
||||||
|
--- a/cmake/modules/AddSphinxTarget.cmake
|
||||||
|
+++ b/cmake/modules/AddSphinxTarget.cmake
|
||||||
|
@@ -1,3 +1,16 @@
|
||||||
|
+
|
||||||
|
+# Create sphinx target
|
||||||
|
+if (LLVM_ENABLE_SPHINX AND NOT TARGET sphinx)
|
||||||
|
+ message(STATUS "Sphinx enabled.")
|
||||||
|
+ find_package(Sphinx REQUIRED)
|
||||||
|
+ if (LLVM_BUILD_DOCS)
|
||||||
|
+ add_custom_target(sphinx ALL)
|
||||||
|
+ endif()
|
||||||
|
+else()
|
||||||
|
+ message(STATUS "Sphinx disabled.")
|
||||||
|
+endif()
|
||||||
|
+
|
||||||
|
+
|
||||||
|
# Handy function for creating the different Sphinx targets.
|
||||||
|
#
|
||||||
|
# ``builder`` should be one of the supported builders used by
|
||||||
|
diff --git a/docs/CMakeLists.txt b/docs/CMakeLists.txt
|
||||||
|
index 6dff219..4437610 100644
|
||||||
|
--- a/docs/CMakeLists.txt
|
||||||
|
+++ b/docs/CMakeLists.txt
|
||||||
|
@@ -103,8 +103,8 @@ endif()
|
||||||
|
endif()
|
||||||
|
|
||||||
|
if (LLVM_ENABLE_SPHINX)
|
||||||
|
+ include(AddSphinxTarget)
|
||||||
|
if (SPHINX_FOUND)
|
||||||
|
- include(AddSphinxTarget)
|
||||||
|
if (${SPHINX_OUTPUT_HTML})
|
||||||
|
add_sphinx_target(html llvm)
|
||||||
|
endif()
|
||||||
|
--
|
||||||
|
1.8.3.1
|
||||||
|
|
107
0002-PowerPC-Fix-failure-with-STBRX-when-store-is-narrowe.patch
Normal file
107
0002-PowerPC-Fix-failure-with-STBRX-when-store-is-narrowe.patch
Normal file
@ -0,0 +1,107 @@
|
|||||||
|
From 88e57f376eabc375cd9f374369cf9e8e4dcb90af Mon Sep 17 00:00:00 2001
|
||||||
|
From: Nemanja Ivanovic <nemanja.i.ibm@gmail.com>
|
||||||
|
Date: Mon, 6 Mar 2017 07:32:13 +0000
|
||||||
|
Subject: [PATCH 2/3] [PowerPC] Fix failure with STBRX when store is narrower
|
||||||
|
than the bswap
|
||||||
|
|
||||||
|
Fixes a crash caused by r296811 by truncating the input of the STBRX node
|
||||||
|
when the bswap is wider than i32.
|
||||||
|
|
||||||
|
Fixes https://bugs.llvm.org/show_bug.cgi?id=32140
|
||||||
|
|
||||||
|
Differential Revision: https://reviews.llvm.org/D30615
|
||||||
|
|
||||||
|
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@297001 91177308-0d34-0410-b5e6-96231b3b80d8
|
||||||
|
---
|
||||||
|
lib/Target/PowerPC/PPCISelLowering.cpp | 7 ++--
|
||||||
|
test/CodeGen/PowerPC/pr32140.ll | 59 ++++++++++++++++++++++++++++++++++
|
||||||
|
2 files changed, 64 insertions(+), 2 deletions(-)
|
||||||
|
create mode 100644 test/CodeGen/PowerPC/pr32140.ll
|
||||||
|
|
||||||
|
diff --git a/lib/Target/PowerPC/PPCISelLowering.cpp b/lib/Target/PowerPC/PPCISelLowering.cpp
|
||||||
|
index c8eb6f1..521bb32 100644
|
||||||
|
--- a/lib/Target/PowerPC/PPCISelLowering.cpp
|
||||||
|
+++ b/lib/Target/PowerPC/PPCISelLowering.cpp
|
||||||
|
@@ -11230,9 +11230,12 @@ SDValue PPCTargetLowering::PerformDAGCombine(SDNode *N,
|
||||||
|
// it need to be shifted to the right side before STBRX.
|
||||||
|
EVT mVT = cast<StoreSDNode>(N)->getMemoryVT();
|
||||||
|
if (Op1VT.bitsGT(mVT)) {
|
||||||
|
- int shift = Op1VT.getSizeInBits() - mVT.getSizeInBits();
|
||||||
|
+ int Shift = Op1VT.getSizeInBits() - mVT.getSizeInBits();
|
||||||
|
BSwapOp = DAG.getNode(ISD::SRL, dl, Op1VT, BSwapOp,
|
||||||
|
- DAG.getConstant(shift, dl, MVT::i32));
|
||||||
|
+ DAG.getConstant(Shift, dl, MVT::i32));
|
||||||
|
+ // Need to truncate if this is a bswap of i64 stored as i32/i16.
|
||||||
|
+ if (Op1VT == MVT::i64)
|
||||||
|
+ BSwapOp = DAG.getNode(ISD::TRUNCATE, dl, MVT::i32, BSwapOp);
|
||||||
|
}
|
||||||
|
|
||||||
|
SDValue Ops[] = {
|
||||||
|
diff --git a/test/CodeGen/PowerPC/pr32140.ll b/test/CodeGen/PowerPC/pr32140.ll
|
||||||
|
new file mode 100644
|
||||||
|
index 0000000..827a904
|
||||||
|
--- /dev/null
|
||||||
|
+++ b/test/CodeGen/PowerPC/pr32140.ll
|
||||||
|
@@ -0,0 +1,59 @@
|
||||||
|
+; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
|
||||||
|
+; RUN: llc -mtriple=powerpc64le-linux-gnu -mcpu=pwr8 < %s | FileCheck %s
|
||||||
|
+; RUN: llc -mtriple=powerpc64-linux-gnu -mcpu=pwr8 < %s | FileCheck %s
|
||||||
|
+
|
||||||
|
+@as = common local_unnamed_addr global i16 0, align 2
|
||||||
|
+@bs = common local_unnamed_addr global i16 0, align 2
|
||||||
|
+@ai = common local_unnamed_addr global i32 0, align 4
|
||||||
|
+@bi = common local_unnamed_addr global i32 0, align 4
|
||||||
|
+
|
||||||
|
+define void @bswapStorei64Toi32() {
|
||||||
|
+; CHECK-LABEL: bswapStorei64Toi32:
|
||||||
|
+; CHECK: # BB#0: # %entry
|
||||||
|
+; CHECK: lwa 3, 0(3)
|
||||||
|
+; CHECK-NEXT: rldicl 3, 3, 32, 32
|
||||||
|
+; CHECK-NEXT: stwbrx 3, 0, 4
|
||||||
|
+; CHECK-NEXT: blr
|
||||||
|
+entry:
|
||||||
|
+ %0 = load i32, i32* @ai, align 4
|
||||||
|
+ %conv.i = sext i32 %0 to i64
|
||||||
|
+ %or26.i = tail call i64 @llvm.bswap.i64(i64 %conv.i)
|
||||||
|
+ %conv = trunc i64 %or26.i to i32
|
||||||
|
+ store i32 %conv, i32* @bi, align 4
|
||||||
|
+ ret void
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
+define void @bswapStorei32Toi16() {
|
||||||
|
+; CHECK-LABEL: bswapStorei32Toi16:
|
||||||
|
+; CHECK: # BB#0: # %entry
|
||||||
|
+; CHECK: lha 3, 0(3)
|
||||||
|
+; CHECK-NEXT: srwi 3, 3, 16
|
||||||
|
+; CHECK-NEXT: sthbrx 3, 0, 4
|
||||||
|
+; CHECK-NEXT: blr
|
||||||
|
+entry:
|
||||||
|
+ %0 = load i16, i16* @as, align 2
|
||||||
|
+ %conv.i = sext i16 %0 to i32
|
||||||
|
+ %or26.i = tail call i32 @llvm.bswap.i32(i32 %conv.i)
|
||||||
|
+ %conv = trunc i32 %or26.i to i16
|
||||||
|
+ store i16 %conv, i16* @bs, align 2
|
||||||
|
+ ret void
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
+define void @bswapStorei64Toi16() {
|
||||||
|
+; CHECK-LABEL: bswapStorei64Toi16:
|
||||||
|
+; CHECK: # BB#0: # %entry
|
||||||
|
+; CHECK: lha 3, 0(3)
|
||||||
|
+; CHECK-NEXT: rldicl 3, 3, 16, 48
|
||||||
|
+; CHECK-NEXT: sthbrx 3, 0, 4
|
||||||
|
+; CHECK-NEXT: blr
|
||||||
|
+entry:
|
||||||
|
+ %0 = load i16, i16* @as, align 2
|
||||||
|
+ %conv.i = sext i16 %0 to i64
|
||||||
|
+ %or26.i = tail call i64 @llvm.bswap.i64(i64 %conv.i)
|
||||||
|
+ %conv = trunc i64 %or26.i to i16
|
||||||
|
+ store i16 %conv, i16* @bs, align 2
|
||||||
|
+ ret void
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
+declare i32 @llvm.bswap.i32(i32)
|
||||||
|
+declare i64 @llvm.bswap.i64(i64)
|
||||||
|
--
|
||||||
|
1.8.3.1
|
||||||
|
|
69
0003-PPC-Avoid-non-simple-MVT-in-STBRX-optimization.patch
Normal file
69
0003-PPC-Avoid-non-simple-MVT-in-STBRX-optimization.patch
Normal file
@ -0,0 +1,69 @@
|
|||||||
|
From 8578ad1fb9aa7ebc7e6da266371b8fd58e67633f Mon Sep 17 00:00:00 2001
|
||||||
|
From: Guozhi Wei <carrot@google.com>
|
||||||
|
Date: Thu, 15 Mar 2018 17:49:12 +0000
|
||||||
|
Subject: [PATCH 3/3] [PPC] Avoid non-simple MVT in STBRX optimization
|
||||||
|
|
||||||
|
PR35402 triggered this case. It bswap and stores a 48bit value, current STBRX optimization transforms it into STBRX. Unfortunately 48bit is not a simple MVT, there is no PPC instruction to support it, and it can't be automatically expanded by llvm, so caused a crash.
|
||||||
|
|
||||||
|
This patch detects the non-simple MVT and returns early.
|
||||||
|
|
||||||
|
Differential Revision: https://reviews.llvm.org/D44500
|
||||||
|
|
||||||
|
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@327651 91177308-0d34-0410-b5e6-96231b3b80d8
|
||||||
|
---
|
||||||
|
lib/Target/PowerPC/PPCISelLowering.cpp | 6 +++++-
|
||||||
|
test/CodeGen/PowerPC/pr35402.ll | 18 ++++++++++++++++++
|
||||||
|
2 files changed, 23 insertions(+), 1 deletion(-)
|
||||||
|
create mode 100644 test/CodeGen/PowerPC/pr35402.ll
|
||||||
|
|
||||||
|
diff --git a/lib/Target/PowerPC/PPCISelLowering.cpp b/lib/Target/PowerPC/PPCISelLowering.cpp
|
||||||
|
index 521bb32..3c37306 100644
|
||||||
|
--- a/lib/Target/PowerPC/PPCISelLowering.cpp
|
||||||
|
+++ b/lib/Target/PowerPC/PPCISelLowering.cpp
|
||||||
|
@@ -11221,6 +11221,11 @@ SDValue PPCTargetLowering::PerformDAGCombine(SDNode *N,
|
||||||
|
N->getOperand(1).getValueType() == MVT::i16 ||
|
||||||
|
(Subtarget.hasLDBRX() && Subtarget.isPPC64() &&
|
||||||
|
N->getOperand(1).getValueType() == MVT::i64))) {
|
||||||
|
+ // STBRX can only handle simple types.
|
||||||
|
+ EVT mVT = cast<StoreSDNode>(N)->getMemoryVT();
|
||||||
|
+ if (mVT.isExtended())
|
||||||
|
+ break;
|
||||||
|
+
|
||||||
|
SDValue BSwapOp = N->getOperand(1).getOperand(0);
|
||||||
|
// Do an any-extend to 32-bits if this is a half-word input.
|
||||||
|
if (BSwapOp.getValueType() == MVT::i16)
|
||||||
|
@@ -11228,7 +11233,6 @@ SDValue PPCTargetLowering::PerformDAGCombine(SDNode *N,
|
||||||
|
|
||||||
|
// If the type of BSWAP operand is wider than stored memory width
|
||||||
|
// it need to be shifted to the right side before STBRX.
|
||||||
|
- EVT mVT = cast<StoreSDNode>(N)->getMemoryVT();
|
||||||
|
if (Op1VT.bitsGT(mVT)) {
|
||||||
|
int Shift = Op1VT.getSizeInBits() - mVT.getSizeInBits();
|
||||||
|
BSwapOp = DAG.getNode(ISD::SRL, dl, Op1VT, BSwapOp,
|
||||||
|
diff --git a/test/CodeGen/PowerPC/pr35402.ll b/test/CodeGen/PowerPC/pr35402.ll
|
||||||
|
new file mode 100644
|
||||||
|
index 0000000..06e6d96
|
||||||
|
--- /dev/null
|
||||||
|
+++ b/test/CodeGen/PowerPC/pr35402.ll
|
||||||
|
@@ -0,0 +1,18 @@
|
||||||
|
+; RUN: llc -O2 < %s | FileCheck %s
|
||||||
|
+target triple = "powerpc64le-linux-gnu"
|
||||||
|
+
|
||||||
|
+define void @test(i8* %p, i64 %data) {
|
||||||
|
+entry:
|
||||||
|
+ %0 = tail call i64 @llvm.bswap.i64(i64 %data)
|
||||||
|
+ %ptr = bitcast i8* %p to i48*
|
||||||
|
+ %val = trunc i64 %0 to i48
|
||||||
|
+ store i48 %val, i48* %ptr, align 1
|
||||||
|
+ ret void
|
||||||
|
+
|
||||||
|
+; CHECK: sth
|
||||||
|
+; CHECK: stw
|
||||||
|
+; CHECK-NOT: stdbrx
|
||||||
|
+
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
+declare i64 @llvm.bswap.i64(i64)
|
||||||
|
--
|
||||||
|
1.8.3.1
|
||||||
|
|
12
gating.yaml
12
gating.yaml
@ -1,12 +0,0 @@
|
|||||||
--- !Policy
|
|
||||||
product_versions:
|
|
||||||
- fedora-*
|
|
||||||
decision_context: bodhi_update_push_testing
|
|
||||||
rules:
|
|
||||||
- !PassingTestCaseRule {test_case_name: org.centos.prod.ci.pipeline.allpackages-build.package.test.functional.complete}
|
|
||||||
--- !Policy
|
|
||||||
product_versions:
|
|
||||||
- fedora-*
|
|
||||||
decision_context: bodhi_update_push_stable
|
|
||||||
rules:
|
|
||||||
- !PassingTestCaseRule {test_case_name: org.centos.prod.ci.pipeline.allpackages-build.package.test.functional.complete}
|
|
@ -1,52 +0,0 @@
|
|||||||
-----BEGIN PGP PUBLIC KEY BLOCK-----
|
|
||||||
|
|
||||||
mQINBFS+1SABEACnmkESkY7eZq0GhDjbkWpKmURGk9+ycsfAhA44NqUvf4tk1GPM
|
|
||||||
5SkJ/fYedYZJaDVhIp98fHgucD0O+vjOzghtgwtITusYjiPHPFBd/MN+MQqSEAP+
|
|
||||||
LUa/kjHLjgyXxKhFUIDGVaDWL5tKOA7/AQKl1TyJ8lz89NHQoUHFsF/hu10+qhJe
|
|
||||||
V65d32MXFehIUSvegh8DrPuExrliSiORO4HOhuc6151dWA4YBWVg4rX5kfKrGMMT
|
|
||||||
pTWnSSZtgoRhkKW2Ey8cmZUqPuUJIfWyeNVu1e4SFtAivLvu/Ymz2WBJcNA1ZlTr
|
|
||||||
RCOR5SIRgZ453pQnI/Bzna2nnJ/TV1gGJIGRahj/ini0cs2x1CILfS/YJQ3rWGGo
|
|
||||||
OxwG0BVmPk0cmLVtyTq8gUPwxcPUd6WcBKhot3TDMlrffZACnQwQjlVjk5S1dEEz
|
|
||||||
atUfpEuNitU9WOM4jr/gjv36ZNCOWm95YwLhsuci/NddBN8HXhyvs+zYTVZEXa2W
|
|
||||||
l/FqOdQsQqZBcJjjWckGKhESdd7934+cesGD3O8KaeSGxww7slJrS0+6QJ8oBoAB
|
|
||||||
P/WCn/y2AiY2syEKp3wYIGJyAbsm542zMZ4nc7pYfSu49mcyhQQICmqN5QvOyYUx
|
|
||||||
OSqwbAOUNtlOyeRLZNIKoXtTqWDEu5aEiDROTw6Rkq+dIcxPNgOLdeQ3HwARAQAB
|
|
||||||
tCFIYW5zIFdlbm5ib3JnIDxoYW5zQGNocm9taXVtLm9yZz6JAlUEEwECAD8CGwMG
|
|
||||||
CwkIBwMCBhUIAgkKCwQWAgMBAh4BAheAFiEEtsj5goK5ROOw1cJTD8MELjRa0F0F
|
|
||||||
Alpd+i0FCQ8FJo0ACgkQD8MELjRa0F3X3A//dBQLm6GmXlQFjxZbukTw0lZsevFR
|
|
||||||
M/6ljZTxp7bsC+HFzYoaCKv6rikaWzytxk//SOaLKrB4Z9HjAlpBMtyLl2Hk7tcZ
|
|
||||||
bPpFafNmQ+4KgWNjLXCvt9se8BGrQvGQUrbE6YowbXa2YIgxIVEncFzIECAsp/+N
|
|
||||||
xbMcZN5/X1PJxKi/N22gP4nn47muN6L3pKez3CXgWnhGYSc7BuD5ALWYH7yMYUem
|
|
||||||
d4jlXfu5xkBIqirj1arIYC9wmF4ldbLNDPuracc8LmXcSqa5Rpao0s4iVzAD+tkX
|
|
||||||
vE/73m3rhepwBXxrfk0McXuI9aucf5h4/KkIBzZsaJ6JM1tzlrJzzjaBKJF9OI5T
|
|
||||||
jA0qTxdGzdPztS8gPaPcMkRFfh9ti0ZDx4VeF3s8sOtmMRHeGEWfxqUAbBUbwFsa
|
|
||||||
JDu/+8/VO4KijfcuUi8tqJ/JHeosCuGE7TM93LwJu6ZcqMYOPDROE/hsnGm0ZU92
|
|
||||||
xedu+07/X1ESHkSFPoaSHD5/DCNa/tXIyJZ8X7gF3eoDP5mSmrJqIqsOBR9WOVYv
|
|
||||||
dI8i0GHTXbrZj8WXdoS+N8wlyMLLbAS2jvTe7M5RoqbLz4ABOUUnLVoEE0CiccVZ
|
|
||||||
bW75BPxOfaD0szbinAeX6HDPI7St0MbKrRPjuDXjD0JVkLqFINtZfYLGMLss4tgn
|
|
||||||
suefr0Bo9ISwG3u5Ag0EVL7VIAEQAOxBxrQesChjrCqKjY5PnSsSYpeb4froucrC
|
|
||||||
898AFw2DgN/Zz+W7wtSTbtz/GRcCurjzZvN7o2rCuNk0j0+s1sgZZm2BdldlabLy
|
|
||||||
+UF/kSW1rb5qhfXcGGubu48OMdtSfok9lOc0Q1L4HNlGE4lUBkZzmI7Ykqfl+Bwr
|
|
||||||
m9rpi54g4ua9PIiiHIAmMoZIcbtOG1KaDr6CoXRk/3g2ZiGUwhq3jFGroiBsKEap
|
|
||||||
2FJ1bh5NJk2Eg8pV7fMOF7hUQKBZrNOtIPu8hA5WEgku3U3VYjRSI3SDi6QXnDL+
|
|
||||||
xHxajiWpKtF3JjZh8y/CCTD8PyP34YjfZuFmkdske5cdx6H0V2UCiH453ncgFVdQ
|
|
||||||
DXkY4n+0MTzhy2xu0IVVnBxYDYNhi+3MjTHJd9C4xMi9t+5IuEvDAPhgfZjDpQak
|
|
||||||
EPz6hVmgj0mlKIgRilBRK9/kOxky9utBpGk3jEJGru/hKNloFNspoYtY6zATAr8E
|
|
||||||
cOgoCFQE0nIktcg3wF9+OCEnV28/a7XZwUZ7Gl/qfOHtdr374wo8kd8R3V8d2G9q
|
|
||||||
5w0/uCV9NNQ0fGWZDPDoYt6wnPL6gZv/nJM8oZY+u0rC24WwScZIniaryC4JHDas
|
|
||||||
Ahr2S2CtgCvBgslK6f3gD16KHxPZMBpX73TzOYIhMEP/vXgVJbUD6dYht+U9c4Oh
|
|
||||||
EDJown0dABEBAAGJAjwEGAECACYCGwwWIQS2yPmCgrlE47DVwlMPwwQuNFrQXQUC
|
|
||||||
Wl36SwUJDwUmqwAKCRAPwwQuNFrQXT1/D/9YpRDNgaJl3YVDtVZoeQwh7BQ6ULZT
|
|
||||||
eXFPogYkF2j3VWg8s9UmAs4sg/4a+9KLSantXjX+JFsRv0lQe5Gr/Vl8VQ4LKEXB
|
|
||||||
fiGmSivjIZ7eopdd3YP2w6G5T3SA4d2CQfsg4rnJPnXIjzKNiSOi368ybnt9fL0Y
|
|
||||||
2r2aqLTmP6Y7issDUO+J1TW1XHm349JPR0Hl4cTuNnWm4JuX2m2CJEc5XBlDAha9
|
|
||||||
pUVs+J5C2D0UFFkyeOzeJPwy6x5ApWHm84n8AjhQSpu1qRKxKXdwei6tkQWWMHui
|
|
||||||
+TgSY/zCkmD9/oY15Ei5avJ4WgIbTLJUoZMi70riPmU8ThjpzA7S+Nk0g7rMPq+X
|
|
||||||
l1whjKU/u0udlsrIJjzkh6ftqKUmIkbxYTpjhnEujNrEr5m2S6Z6x3y9E5QagBMR
|
|
||||||
dxRhfk+HbyACcP/p9rXOzl4M291DoKeAAH70GHniGxyNs9rAoMr/hD5XW/Wrz3dc
|
|
||||||
KMc2s555E6MZILE2ZiolcRn+bYOMPZtWlbx98t8uqMf49gY4FGQBZAwPglMrx7mr
|
|
||||||
m7HTIiXahThQGOJg6izJDAD5RwSEGlAcL28T8KAuM6CLLkhlBfQwiKsUBNnh9r8w
|
|
||||||
V3lB+pV0GhL+3i077gTYfZBRwLzjFdhm9xUKEaZ6rN1BX9lzix4eSNK5nln0jUq1
|
|
||||||
67H2IH//2sf8dw==
|
|
||||||
=ADVe
|
|
||||||
-----END PGP PUBLIC KEY BLOCK-----
|
|
@ -1,17 +0,0 @@
|
|||||||
|
|
||||||
config.llvm_tools_dir = '/usr/bin'
|
|
||||||
config.llvm_shlib_dir = '%(llvm_shlib_dir)s' % lit_config.params
|
|
||||||
|
|
||||||
if hasattr(config, 'host_triple'):
|
|
||||||
# This means we are running lit regression tests
|
|
||||||
|
|
||||||
# Regression tests write output to this directory, so we need to be able to specify
|
|
||||||
# a temp directory when invoking lit. e.g. lit -Dllvm_obj_root=/tmp/lit
|
|
||||||
config.llvm_obj_root = "%(llvm_obj_root)s" % lit_config.params
|
|
||||||
lit_config.load_config(config, '%(llvm_test_root)s/lit.cfg.py' % lit_config.params)
|
|
||||||
else:
|
|
||||||
# This means we are running lit unit tests
|
|
||||||
|
|
||||||
# For unit tests, llvm_obj_root is used to find the unit test binaries.
|
|
||||||
config.llvm_obj_root = '%(llvm_unittest_bindir)s' % lit_config.params
|
|
||||||
lit_config.load_config(config, '%(llvm_test_root)s/Unit/lit.cfg.py' % lit_config.params)
|
|
12
llvm-3.7.1-cmake-s390.patch
Normal file
12
llvm-3.7.1-cmake-s390.patch
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
diff -up llvm-3.7.1.src/cmake/config-ix.cmake.s390 llvm-3.7.1.src/cmake/config-ix.cmake
|
||||||
|
--- llvm-3.7.1.src/cmake/config-ix.cmake.s390 2016-02-16 12:27:36.000000000 +0100
|
||||||
|
+++ llvm-3.7.1.src/cmake/config-ix.cmake 2016-02-16 12:27:52.000000000 +0100
|
||||||
|
@@ -356,6 +356,8 @@ elseif (LLVM_NATIVE_ARCH MATCHES "msp430
|
||||||
|
set(LLVM_NATIVE_ARCH MSP430)
|
||||||
|
elseif (LLVM_NATIVE_ARCH MATCHES "hexagon")
|
||||||
|
set(LLVM_NATIVE_ARCH Hexagon)
|
||||||
|
+elseif (LLVM_NATIVE_ARCH MATCHES "s390")
|
||||||
|
+ set(LLVM_NATIVE_ARCH SystemZ)
|
||||||
|
elseif (LLVM_NATIVE_ARCH MATCHES "s390x")
|
||||||
|
set(LLVM_NATIVE_ARCH SystemZ)
|
||||||
|
elseif (LLVM_NATIVE_ARCH MATCHES "wasm32")
|
686
llvm.spec
686
llvm.spec
@ -1,92 +1,46 @@
|
|||||||
# Components enabled if supported by target architecture:
|
# Components enabled if supported by target architecture:
|
||||||
%define gold_arches %{ix86} x86_64 %{arm} aarch64 %{power64} s390x
|
%ifarch %ix86 x86_64
|
||||||
%ifarch %{gold_arches}
|
|
||||||
%bcond_without gold
|
%bcond_without gold
|
||||||
%else
|
%else
|
||||||
%bcond_with gold
|
%bcond_with gold
|
||||||
%endif
|
%endif
|
||||||
|
|
||||||
%bcond_with compat_build
|
%global llvm_bindir %{_libdir}/%{name}
|
||||||
|
|
||||||
%global llvm_libdir %{_libdir}/%{name}
|
Name: llvm
|
||||||
%global build_llvm_libdir %{buildroot}%{llvm_libdir}
|
Version: 4.0.1
|
||||||
#%%global rc_ver 6
|
Release: 3%{?dist}
|
||||||
%global baserelease 1
|
|
||||||
%global llvm_srcdir llvm-%{version}%{?rc_ver:rc%{rc_ver}}.src
|
|
||||||
%global maj_ver 10
|
|
||||||
%global min_ver 0
|
|
||||||
%global patch_ver 0
|
|
||||||
|
|
||||||
|
|
||||||
%if %{with compat_build}
|
|
||||||
%global pkg_name llvm%{maj_ver}.%{min_ver}
|
|
||||||
%global exec_suffix -%{maj_ver}.%{min_ver}
|
|
||||||
%global install_prefix %{_libdir}/%{name}
|
|
||||||
%global install_bindir %{install_prefix}/bin
|
|
||||||
%global install_includedir %{install_prefix}/include
|
|
||||||
%global install_libdir %{install_prefix}/lib
|
|
||||||
|
|
||||||
%global pkg_bindir %{install_bindir}
|
|
||||||
%global pkg_includedir %{_includedir}/%{name}
|
|
||||||
%global pkg_libdir %{install_libdir}
|
|
||||||
%else
|
|
||||||
%global pkg_name llvm
|
|
||||||
%global install_prefix /usr
|
|
||||||
%global install_libdir %{_libdir}
|
|
||||||
%global pkg_libdir %{install_libdir}
|
|
||||||
%endif
|
|
||||||
|
|
||||||
%global build_install_prefix %{buildroot}%{install_prefix}
|
|
||||||
|
|
||||||
Name: %{pkg_name}
|
|
||||||
Version: %{maj_ver}.%{min_ver}.%{patch_ver}
|
|
||||||
Release: %{baserelease}%{?rc_ver:.rc%{rc_ver}}%{?dist}
|
|
||||||
Summary: The Low Level Virtual Machine
|
Summary: The Low Level Virtual Machine
|
||||||
|
|
||||||
License: NCSA
|
License: NCSA
|
||||||
URL: http://llvm.org
|
URL: http://llvm.org
|
||||||
%if 0%{?rc_ver:1}
|
Source0: http://llvm.org/releases/%{version}/%{name}-%{version}.src.tar.xz
|
||||||
Source0: https://prereleases.llvm.org/%{version}/rc%{rc_ver}/%{llvm_srcdir}.tar.xz
|
|
||||||
Source3: https://prereleases.llvm.org/%{version}/rc%{rc_ver}/%{llvm_srcdir}.tar.xz.sig
|
|
||||||
%else
|
|
||||||
Source0: https://github.com/llvm/llvm-project/releases/download/llvmorg-%{version}/%{llvm_srcdir}.tar.xz
|
|
||||||
Source3: https://github.com/llvm/llvm-project/releases/download/llvmorg-%{version}/%{llvm_srcdir}.tar.xz.sig
|
|
||||||
%endif
|
|
||||||
%if %{without compat_build}
|
|
||||||
Source1: run-lit-tests
|
|
||||||
Source2: lit.fedora.cfg.py
|
|
||||||
%endif
|
|
||||||
Source4: https://prereleases.llvm.org/%{version}/hans-gpg-key.asc
|
|
||||||
|
|
||||||
Patch0: 0001-CMake-Split-static-library-exports-into-their-own-ex.patch
|
# recognize s390 as SystemZ when configuring build
|
||||||
Patch1: 0001-CMake-Split-test-binary-exports-into-their-own-expor.patch
|
Patch0: llvm-3.7.1-cmake-s390.patch
|
||||||
|
Patch2: rust-lang-llvm-pr67.patch
|
||||||
|
Patch3: 0001-CMake-Split-static-library-exports-into-their-own-ex.patch
|
||||||
|
Patch4: 0001-Revert-Revert-CMake-Move-sphinx-detection-into-AddSp.patch
|
||||||
|
Patch5: 0001-CMake-Fix-docs-llvm-man-target-when-clang-llvm-is-in.patch
|
||||||
|
Patch6: 0001-CMake-Add-LLVM_UTILS_INSTALL_DIR-option.patch
|
||||||
|
Patch7: 0001-DebugInfo-Fix-potential-CU-mismatch-for-SubprogramSc.patch
|
||||||
|
Patch8: 0001-PPC-Fix-code-generation-for-bswap-int32-followed-by-.patch
|
||||||
|
Patch9: 0002-PowerPC-Fix-failure-with-STBRX-when-store-is-narrowe.patch
|
||||||
|
Patch10: 0003-PPC-Avoid-non-simple-MVT-in-STBRX-optimization.patch
|
||||||
|
|
||||||
BuildRequires: gcc
|
|
||||||
BuildRequires: gcc-c++
|
|
||||||
BuildRequires: cmake
|
BuildRequires: cmake
|
||||||
BuildRequires: ninja-build
|
|
||||||
BuildRequires: zlib-devel
|
BuildRequires: zlib-devel
|
||||||
BuildRequires: libffi-devel
|
BuildRequires: libffi-devel
|
||||||
BuildRequires: ncurses-devel
|
BuildRequires: ncurses-devel
|
||||||
BuildRequires: python3-sphinx
|
BuildRequires: python3-sphinx
|
||||||
BuildRequires: python3-recommonmark
|
|
||||||
BuildRequires: multilib-rpm-config
|
BuildRequires: multilib-rpm-config
|
||||||
%if %{with gold}
|
%if %{with gold}
|
||||||
BuildRequires: binutils-devel
|
BuildRequires: binutils-devel
|
||||||
%endif
|
%endif
|
||||||
%ifarch %{valgrind_arches}
|
BuildRequires: libstdc++-static
|
||||||
# Enable extra functionality when run the LLVM JIT under valgrind.
|
|
||||||
BuildRequires: valgrind-devel
|
|
||||||
%endif
|
|
||||||
# LLVM's LineEditor library will use libedit if it is available.
|
|
||||||
BuildRequires: libedit-devel
|
|
||||||
# We need python3-devel for pathfix.py.
|
|
||||||
BuildRequires: python3-devel
|
|
||||||
|
|
||||||
Requires: %{name}-libs%{?_isa} = %{version}-%{release}
|
Requires: %{name}-libs%{?_isa} = %{version}-%{release}
|
||||||
|
|
||||||
Provides: llvm(major) = %{maj_ver}
|
|
||||||
|
|
||||||
%description
|
%description
|
||||||
LLVM is a compiler infrastructure designed for compile-time, link-time,
|
LLVM is a compiler infrastructure designed for compile-time, link-time,
|
||||||
runtime, and idle-time optimization of programs from arbitrary programming
|
runtime, and idle-time optimization of programs from arbitrary programming
|
||||||
@ -96,15 +50,8 @@ tools as well as libraries with equivalent functionality.
|
|||||||
%package devel
|
%package devel
|
||||||
Summary: Libraries and header files for LLVM
|
Summary: Libraries and header files for LLVM
|
||||||
Requires: %{name}%{?_isa} = %{version}-%{release}
|
Requires: %{name}%{?_isa} = %{version}-%{release}
|
||||||
Requires: %{name}-libs%{?_isa} = %{version}-%{release}
|
Requires(post): %{_sbindir}/alternatives
|
||||||
# The installed LLVM cmake files will add -ledit to the linker flags for any
|
Requires(postun): %{_sbindir}/alternatives
|
||||||
# app that requires the libLLVMLineEditor, so we need to make sure
|
|
||||||
# libedit-devel is available.
|
|
||||||
Requires: libedit-devel
|
|
||||||
Requires(post): %{_sbindir}/alternatives
|
|
||||||
Requires(postun): %{_sbindir}/alternatives
|
|
||||||
|
|
||||||
Provides: llvm-devel(major) = %{maj_ver}
|
|
||||||
|
|
||||||
%description devel
|
%description devel
|
||||||
This package contains library and header files needed to develop new native
|
This package contains library and header files needed to develop new native
|
||||||
@ -126,79 +73,45 @@ Shared libraries for the LLVM compiler infrastructure.
|
|||||||
|
|
||||||
%package static
|
%package static
|
||||||
Summary: LLVM static libraries
|
Summary: LLVM static libraries
|
||||||
Conflicts: %{name}-devel < 8
|
|
||||||
|
|
||||||
%description static
|
%description static
|
||||||
Static libraries for the LLVM compiler infrastructure.
|
Static libraries for the LLVM compiler infrastructure.
|
||||||
|
|
||||||
%if %{without compat_build}
|
%prep
|
||||||
|
%autosetup -n %{name}-%{version}.src -p1
|
||||||
|
|
||||||
%package test
|
%ifarch armv7hl
|
||||||
Summary: LLVM regression tests
|
|
||||||
Requires: %{name}%{?_isa} = %{version}-%{release}
|
|
||||||
Requires: %{name}-libs%{?_isa} = %{version}-%{release}
|
|
||||||
Requires: python3-lit
|
|
||||||
# The regression tests need gold.
|
|
||||||
Requires: binutils
|
|
||||||
# This is for llvm-config
|
|
||||||
Requires: %{name}-devel%{?_isa} = %{version}-%{release}
|
|
||||||
# Bugpoint tests require gcc
|
|
||||||
Requires: gcc
|
|
||||||
Requires: findutils
|
|
||||||
|
|
||||||
Provides: llvm-test(major) = %{maj_ver}
|
# These tests are marked as XFAIL, but they still run and hang on ARM.
|
||||||
|
for f in `grep -Rl 'XFAIL.\+arm' test/ExecutionEngine `; do rm $f; done
|
||||||
%description test
|
|
||||||
LLVM regression tests.
|
|
||||||
|
|
||||||
%package googletest
|
|
||||||
Summary: LLVM's modified googletest sources
|
|
||||||
|
|
||||||
%description googletest
|
|
||||||
LLVM's modified googletest sources.
|
|
||||||
|
|
||||||
%endif
|
%endif
|
||||||
|
|
||||||
%prep
|
|
||||||
%autosetup -n %{llvm_srcdir} -p2
|
|
||||||
|
|
||||||
pathfix.py -i %{__python3} -pn \
|
|
||||||
test/BugPoint/compile-custom.ll.py \
|
|
||||||
tools/opt-viewer/*.py
|
|
||||||
|
|
||||||
%build
|
%build
|
||||||
mkdir -p _build
|
mkdir -p _build
|
||||||
cd _build
|
cd _build
|
||||||
|
|
||||||
%ifarch s390 %{arm} %ix86
|
%ifarch s390
|
||||||
# Decrease debuginfo verbosity to reduce memory consumption during final library linking
|
# Decrease debuginfo verbosity to reduce memory consumption during final library linking
|
||||||
%global optflags %(echo %{optflags} | sed 's/-g /-g1 /')
|
%global optflags %(echo %{optflags} | sed 's/-g /-g1 /')
|
||||||
%endif
|
%endif
|
||||||
|
|
||||||
# force off shared libs as cmake macros turns it on.
|
# force off shared libs as cmake macros turns it on.
|
||||||
#
|
%cmake .. \
|
||||||
# -DCMAKE_INSTALL_RPATH=";" is a workaround for llvm manually setting the
|
|
||||||
# rpath of libraries and binaries. llvm will skip the manual setting
|
|
||||||
# if CAMKE_INSTALL_RPATH is set to a value, but cmake interprets this value
|
|
||||||
# as nothing, so it sets the rpath to "" when installing.
|
|
||||||
%cmake .. -G Ninja \
|
|
||||||
-DBUILD_SHARED_LIBS:BOOL=OFF \
|
-DBUILD_SHARED_LIBS:BOOL=OFF \
|
||||||
-DLLVM_PARALLEL_LINK_JOBS=1 \
|
|
||||||
-DCMAKE_BUILD_TYPE=RelWithDebInfo \
|
-DCMAKE_BUILD_TYPE=RelWithDebInfo \
|
||||||
-DCMAKE_INSTALL_RPATH=";" \
|
-DCMAKE_SHARED_LINKER_FLAGS="-Wl,-Bsymbolic -static-libstdc++" \
|
||||||
%ifarch s390 %{arm} %ix86
|
%ifarch s390
|
||||||
-DCMAKE_C_FLAGS_RELWITHDEBINFO="%{optflags} -DNDEBUG" \
|
-DCMAKE_C_FLAGS_RELWITHDEBINFO="%{optflags} -DNDEBUG" \
|
||||||
-DCMAKE_CXX_FLAGS_RELWITHDEBINFO="%{optflags} -DNDEBUG" \
|
-DCMAKE_CXX_FLAGS_RELWITHDEBINFO="%{optflags} -DNDEBUG" \
|
||||||
%endif
|
%endif
|
||||||
%if %{without compat_build}
|
|
||||||
%if 0%{?__isa_bits} == 64
|
%if 0%{?__isa_bits} == 64
|
||||||
-DLLVM_LIBDIR_SUFFIX=64 \
|
-DLLVM_LIBDIR_SUFFIX=64 \
|
||||||
%else
|
%else
|
||||||
-DLLVM_LIBDIR_SUFFIX= \
|
-DLLVM_LIBDIR_SUFFIX= \
|
||||||
%endif
|
|
||||||
%endif
|
%endif
|
||||||
\
|
\
|
||||||
-DLLVM_TARGETS_TO_BUILD=all \
|
-DLLVM_TARGETS_TO_BUILD="X86;AMDGPU;PowerPC;NVPTX;SystemZ;AArch64;ARM;Mips;BPF" \
|
||||||
-DLLVM_ENABLE_LIBCXX:BOOL=OFF \
|
-DLLVM_ENABLE_LIBCXX:BOOL=OFF \
|
||||||
-DLLVM_ENABLE_ZLIB:BOOL=ON \
|
-DLLVM_ENABLE_ZLIB:BOOL=ON \
|
||||||
-DLLVM_ENABLE_FFI:BOOL=ON \
|
-DLLVM_ENABLE_FFI:BOOL=ON \
|
||||||
@ -206,7 +119,6 @@ cd _build
|
|||||||
%if %{with gold}
|
%if %{with gold}
|
||||||
-DLLVM_BINUTILS_INCDIR=%{_includedir} \
|
-DLLVM_BINUTILS_INCDIR=%{_includedir} \
|
||||||
%endif
|
%endif
|
||||||
-DLLVM_EXPERIMENTAL_TARGETS_TO_BUILD=AVR \
|
|
||||||
\
|
\
|
||||||
-DLLVM_BUILD_RUNTIME:BOOL=ON \
|
-DLLVM_BUILD_RUNTIME:BOOL=ON \
|
||||||
\
|
\
|
||||||
@ -220,20 +132,14 @@ cd _build
|
|||||||
-DLLVM_BUILD_EXAMPLES:BOOL=OFF \
|
-DLLVM_BUILD_EXAMPLES:BOOL=OFF \
|
||||||
\
|
\
|
||||||
-DLLVM_INCLUDE_UTILS:BOOL=ON \
|
-DLLVM_INCLUDE_UTILS:BOOL=ON \
|
||||||
%if %{with compat_build}
|
|
||||||
-DLLVM_INSTALL_UTILS:BOOL=OFF \
|
|
||||||
%else
|
|
||||||
-DLLVM_INSTALL_UTILS:BOOL=ON \
|
-DLLVM_INSTALL_UTILS:BOOL=ON \
|
||||||
-DLLVM_UTILS_INSTALL_DIR:PATH=%{_bindir} \
|
-DLLVM_UTILS_INSTALL_DIR:PATH=%{llvm_bindir} \
|
||||||
-DLLVM_TOOLS_INSTALL_DIR:PATH=bin \
|
|
||||||
%endif
|
|
||||||
\
|
\
|
||||||
-DLLVM_INCLUDE_DOCS:BOOL=ON \
|
-DLLVM_INCLUDE_DOCS:BOOL=ON \
|
||||||
-DLLVM_BUILD_DOCS:BOOL=ON \
|
-DLLVM_BUILD_DOCS:BOOL=ON \
|
||||||
-DLLVM_ENABLE_SPHINX:BOOL=ON \
|
-DLLVM_ENABLE_SPHINX:BOOL=ON \
|
||||||
-DLLVM_ENABLE_DOXYGEN:BOOL=OFF \
|
-DLLVM_ENABLE_DOXYGEN:BOOL=OFF \
|
||||||
\
|
\
|
||||||
-DLLVM_VERSION_SUFFIX='' \
|
|
||||||
-DLLVM_BUILD_LLVM_DYLIB:BOOL=ON \
|
-DLLVM_BUILD_LLVM_DYLIB:BOOL=ON \
|
||||||
-DLLVM_DYLIB_EXPORT_ALL:BOOL=ON \
|
-DLLVM_DYLIB_EXPORT_ALL:BOOL=ON \
|
||||||
-DLLVM_LINK_LLVM_DYLIB:BOOL=ON \
|
-DLLVM_LINK_LLVM_DYLIB:BOOL=ON \
|
||||||
@ -241,552 +147,72 @@ cd _build
|
|||||||
-DLLVM_INSTALL_TOOLCHAIN_ONLY:BOOL=OFF \
|
-DLLVM_INSTALL_TOOLCHAIN_ONLY:BOOL=OFF \
|
||||||
\
|
\
|
||||||
-DSPHINX_WARNINGS_AS_ERRORS=OFF \
|
-DSPHINX_WARNINGS_AS_ERRORS=OFF \
|
||||||
-DLLVM_INSTALL_SPHINX_HTML_DIR=%{_pkgdocdir}/html \
|
|
||||||
-DSPHINX_EXECUTABLE=%{_bindir}/sphinx-build-3
|
-DSPHINX_EXECUTABLE=%{_bindir}/sphinx-build-3
|
||||||
|
|
||||||
# Build libLLVM.so first. This ensures that when libLLVM.so is linking, there
|
make %{?_smp_mflags}
|
||||||
# are no other compile jobs running. This will help reduce OOM errors on the
|
|
||||||
# builders without having to artificially limit the number of concurrent jobs.
|
|
||||||
%ninja_build LLVM
|
|
||||||
%ninja_build
|
|
||||||
|
|
||||||
%install
|
%install
|
||||||
%ninja_install -C _build
|
cd _build
|
||||||
|
make install DESTDIR=%{buildroot}
|
||||||
|
|
||||||
%if %{without compat_build}
|
|
||||||
mkdir -p %{buildroot}/%{_bindir}
|
|
||||||
mv %{buildroot}/%{_bindir}/llvm-config %{buildroot}/%{_bindir}/llvm-config-%{__isa_bits}
|
|
||||||
|
|
||||||
# Fix some man pages
|
|
||||||
ln -s llvm-config.1 %{buildroot}%{_mandir}/man1/llvm-config-%{__isa_bits}.1
|
|
||||||
mv %{buildroot}%{_mandir}/man1/tblgen.1 %{buildroot}%{_mandir}/man1/llvm-tblgen.1
|
|
||||||
|
|
||||||
# Install binaries needed for lit tests
|
|
||||||
%global test_binaries llvm-isel-fuzzer llvm-opt-fuzzer
|
|
||||||
|
|
||||||
for f in %{test_binaries}
|
|
||||||
do
|
|
||||||
install -m 0755 ./_build/bin/$f %{buildroot}%{_bindir}
|
|
||||||
done
|
|
||||||
|
|
||||||
|
# fix multi-lib
|
||||||
|
mv -v %{buildroot}%{_bindir}/llvm-config{,-%{__isa_bits}}
|
||||||
|
|
||||||
%multilib_fix_c_header --file %{_includedir}/llvm/Config/llvm-config.h
|
%multilib_fix_c_header --file %{_includedir}/llvm/Config/llvm-config.h
|
||||||
|
|
||||||
# Install libraries needed for unittests
|
|
||||||
%if 0%{?__isa_bits} == 64
|
|
||||||
%global build_libdir _build/lib64
|
|
||||||
%else
|
|
||||||
%global build_libdir _build/lib
|
|
||||||
%endif
|
|
||||||
|
|
||||||
install %{build_libdir}/libLLVMTestingSupport.a %{buildroot}%{_libdir}
|
|
||||||
|
|
||||||
%global install_srcdir %{buildroot}%{_datadir}/llvm/src
|
|
||||||
%global lit_cfg test/%{_arch}.site.cfg.py
|
|
||||||
%global lit_unit_cfg test/Unit/%{_arch}.site.cfg.py
|
|
||||||
%global lit_fedora_cfg %{_datadir}/llvm/lit.fedora.cfg.py
|
|
||||||
|
|
||||||
# Install gtest sources so clang can use them for gtest
|
|
||||||
install -d %{install_srcdir}
|
|
||||||
install -d %{install_srcdir}/utils/
|
|
||||||
cp -R utils/unittest %{install_srcdir}/utils/
|
|
||||||
|
|
||||||
# Generate lit config files. Strip off the last line that initiates the
|
|
||||||
# test run, so we can customize the configuration.
|
|
||||||
head -n -1 _build/test/lit.site.cfg.py >> %{lit_cfg}
|
|
||||||
head -n -1 _build/test/Unit/lit.site.cfg.py >> %{lit_unit_cfg}
|
|
||||||
|
|
||||||
# Install custom fedora config file
|
|
||||||
cp %{SOURCE2} %{buildroot}%{lit_fedora_cfg}
|
|
||||||
|
|
||||||
# Patch lit config files to load custom fedora config:
|
|
||||||
for f in %{lit_cfg} %{lit_unit_cfg}; do
|
|
||||||
echo "lit_config.load_config(config, '%{lit_fedora_cfg}')" >> $f
|
|
||||||
done
|
|
||||||
|
|
||||||
install -d %{buildroot}%{_libexecdir}/tests/llvm
|
|
||||||
install -m 0755 %{SOURCE1} %{buildroot}%{_libexecdir}/tests/llvm
|
|
||||||
|
|
||||||
# Install lit tests. We need to put these in a tarball otherwise rpm will complain
|
|
||||||
# about some of the test inputs having the wrong object file format.
|
|
||||||
install -d %{buildroot}%{_datadir}/llvm/
|
|
||||||
tar -czf %{install_srcdir}/test.tar.gz test/
|
|
||||||
|
|
||||||
# Install the unit test binaries
|
|
||||||
mkdir -p %{build_llvm_libdir}
|
|
||||||
cp -R _build/unittests %{build_llvm_libdir}/
|
|
||||||
rm -rf `find %{build_llvm_libdir} -iname 'cmake*'`
|
|
||||||
|
|
||||||
# Install libraries used for testing
|
|
||||||
install -m 0755 %{build_libdir}/BugpointPasses.so %{buildroot}%{_libdir}
|
|
||||||
install -m 0755 %{build_libdir}/LLVMHello.so %{buildroot}%{_libdir}
|
|
||||||
|
|
||||||
# Install test inputs for PDB tests
|
|
||||||
echo "%{_datadir}/llvm/src/unittests/DebugInfo/PDB" > %{build_llvm_libdir}/unittests/DebugInfo/PDB/llvm.srcdir.txt
|
|
||||||
mkdir -p %{buildroot}%{_datadir}/llvm/src/unittests/DebugInfo/PDB/
|
|
||||||
cp -R unittests/DebugInfo/PDB/Inputs %{buildroot}%{_datadir}/llvm/src/unittests/DebugInfo/PDB/
|
|
||||||
|
|
||||||
%else
|
|
||||||
|
|
||||||
# Add version suffix to binaries
|
|
||||||
mkdir -p %{buildroot}/%{_bindir}
|
|
||||||
for f in %{buildroot}/%{install_bindir}/*; do
|
|
||||||
filename=`basename $f`
|
|
||||||
ln -s %{install_bindir}/$filename %{buildroot}/%{_bindir}/$filename%{exec_suffix}
|
|
||||||
done
|
|
||||||
|
|
||||||
# Move header files
|
|
||||||
mkdir -p %{buildroot}/%{pkg_includedir}
|
|
||||||
ln -s ../../../%{install_includedir}/llvm %{buildroot}/%{pkg_includedir}/llvm
|
|
||||||
ln -s ../../../%{install_includedir}/llvm-c %{buildroot}/%{pkg_includedir}/llvm-c
|
|
||||||
|
|
||||||
# Fix multi-lib
|
|
||||||
mv %{buildroot}%{_bindir}/llvm-config{%{exec_suffix},%{exec_suffix}-%{__isa_bits}}
|
|
||||||
%multilib_fix_c_header --file %{install_includedir}/llvm/Config/llvm-config.h
|
|
||||||
|
|
||||||
# Create ld.so.conf.d entry
|
|
||||||
mkdir -p %{buildroot}%{_sysconfdir}/ld.so.conf.d
|
|
||||||
cat >> %{buildroot}%{_sysconfdir}/ld.so.conf.d/%{name}-%{_arch}.conf << EOF
|
|
||||||
%{pkg_libdir}
|
|
||||||
EOF
|
|
||||||
|
|
||||||
# Add version suffix to man pages and move them to mandir.
|
|
||||||
mkdir -p %{buildroot}/%{_mandir}/man1
|
|
||||||
for f in `ls %{build_install_prefix}/share/man/man1/*`; do
|
|
||||||
filename=`basename $f | cut -f 1 -d '.'`
|
|
||||||
mv $f %{buildroot}%{_mandir}/man1/$filename%{exec_suffix}.1
|
|
||||||
done
|
|
||||||
|
|
||||||
# Remove opt-viewer, since this is just a compatibility package.
|
|
||||||
rm -Rf %{build_install_prefix}/share/opt-viewer
|
|
||||||
|
|
||||||
%endif
|
|
||||||
|
|
||||||
|
|
||||||
%check
|
%check
|
||||||
# TODO: Fix test failures on arm
|
cd _build
|
||||||
ninja check-all -C _build || \
|
make check-all || :
|
||||||
%ifarch %{arm}
|
|
||||||
:
|
|
||||||
%else
|
|
||||||
false
|
|
||||||
%endif
|
|
||||||
|
|
||||||
%ldconfig_scriptlets libs
|
%post libs -p /sbin/ldconfig
|
||||||
|
%postun libs -p /sbin/ldconfig
|
||||||
%if %{without compat_build}
|
|
||||||
|
|
||||||
%post devel
|
%post devel
|
||||||
%{_sbindir}/update-alternatives --install %{_bindir}/llvm-config llvm-config %{_bindir}/llvm-config-%{__isa_bits} %{__isa_bits}
|
%{_sbindir}/update-alternatives --install %{_bindir}/llvm-config llvm-config %{_bindir}/llvm-config-%{__isa_bits} %{__isa_bits}
|
||||||
|
|
||||||
%postun devel
|
%postun devel
|
||||||
if [ $1 -eq 0 ]; then
|
if [ $1 -eq 0 ]; then
|
||||||
%{_sbindir}/update-alternatives --remove llvm-config %{_bindir}/llvm-config
|
%{_sbindir}/update-alternatives --remove llvm-config %{_bindir}/llvm-config-%{__isa_bits}
|
||||||
fi
|
fi
|
||||||
|
|
||||||
%endif
|
|
||||||
|
|
||||||
%files
|
%files
|
||||||
%exclude %{_mandir}/man1/llvm-config*
|
|
||||||
%{_mandir}/man1/*
|
|
||||||
%{_bindir}/*
|
%{_bindir}/*
|
||||||
|
%{llvm_bindir}
|
||||||
%if %{without compat_build}
|
%{_mandir}/man1/*.1.*
|
||||||
%exclude %{_bindir}/llvm-config-%{__isa_bits}
|
%exclude %{_bindir}/llvm-config-%{__isa_bits}
|
||||||
%exclude %{_bindir}/not
|
%exclude %{_mandir}/man1/llvm-config.1.*
|
||||||
%exclude %{_bindir}/count
|
|
||||||
%exclude %{_bindir}/yaml-bench
|
|
||||||
%exclude %{_bindir}/lli-child-target
|
|
||||||
%exclude %{_bindir}/llvm-isel-fuzzer
|
|
||||||
%exclude %{_bindir}/llvm-opt-fuzzer
|
|
||||||
%{_datadir}/opt-viewer
|
|
||||||
%else
|
|
||||||
%exclude %{pkg_bindir}/llvm-config
|
|
||||||
%{pkg_bindir}
|
|
||||||
%endif
|
|
||||||
|
|
||||||
%files libs
|
%files libs
|
||||||
%{pkg_libdir}/libLLVM-%{maj_ver}.so
|
%{_libdir}/BugpointPasses.so
|
||||||
%if %{without compat_build}
|
%{_libdir}/LLVMHello.so
|
||||||
%if %{with gold}
|
%if %{with gold}
|
||||||
%{_libdir}/LLVMgold.so
|
%{_libdir}/LLVMgold.so
|
||||||
%endif
|
%endif
|
||||||
%{_libdir}/libLLVM-%{maj_ver}.%{min_ver}*.so
|
%{_libdir}/libLLVM-4.0*.so
|
||||||
%{_libdir}/libLTO.so*
|
%{_libdir}/libLTO.so*
|
||||||
%else
|
|
||||||
%config(noreplace) %{_sysconfdir}/ld.so.conf.d/%{name}-%{_arch}.conf
|
|
||||||
%if %{with gold}
|
|
||||||
%{_libdir}/%{name}/lib/LLVMgold.so
|
|
||||||
%endif
|
|
||||||
%{pkg_libdir}/libLLVM-%{maj_ver}.%{min_ver}*.so
|
|
||||||
%{pkg_libdir}/libLTO.so*
|
|
||||||
%exclude %{pkg_libdir}/libLTO.so
|
|
||||||
%endif
|
|
||||||
%{pkg_libdir}/libRemarks.so*
|
|
||||||
|
|
||||||
%files devel
|
%files devel
|
||||||
%if %{without compat_build}
|
|
||||||
%{_bindir}/llvm-config-%{__isa_bits}
|
%{_bindir}/llvm-config-%{__isa_bits}
|
||||||
%{_mandir}/man1/llvm-config*
|
%{_mandir}/man1/llvm-config.1.*
|
||||||
%{_includedir}/llvm
|
%{_includedir}/llvm
|
||||||
%{_includedir}/llvm-c
|
%{_includedir}/llvm-c
|
||||||
%{_libdir}/libLLVM.so
|
%{_libdir}/libLLVM.so
|
||||||
%{_libdir}/cmake/llvm
|
%{_libdir}/cmake/llvm
|
||||||
%exclude %{_libdir}/cmake/llvm/LLVMStaticExports.cmake
|
%exclude %{_libdir}/cmake/llvm/LLVMStaticExports.cmake
|
||||||
%exclude %{_libdir}/cmake/llvm/LLVMTestExports.cmake
|
|
||||||
%else
|
|
||||||
%{_bindir}/llvm-config%{exec_suffix}-%{__isa_bits}
|
|
||||||
%{pkg_bindir}/llvm-config
|
|
||||||
%{_mandir}/man1/llvm-config%{exec_suffix}.1.gz
|
|
||||||
%{install_includedir}/llvm
|
|
||||||
%{install_includedir}/llvm-c
|
|
||||||
%{pkg_includedir}/llvm
|
|
||||||
%{pkg_includedir}/llvm-c
|
|
||||||
%{pkg_libdir}/libLTO.so
|
|
||||||
%{pkg_libdir}/libLLVM.so
|
|
||||||
%{pkg_libdir}/cmake/llvm
|
|
||||||
%endif
|
|
||||||
|
|
||||||
%files doc
|
%files doc
|
||||||
%doc %{_pkgdocdir}/html
|
%doc %{_pkgdocdir}/html
|
||||||
|
|
||||||
%files static
|
%files static
|
||||||
%if %{without compat_build}
|
|
||||||
%{_libdir}/*.a
|
%{_libdir}/*.a
|
||||||
%exclude %{_libdir}/libLLVMTestingSupport.a
|
|
||||||
%{_libdir}/cmake/llvm/LLVMStaticExports.cmake
|
%{_libdir}/cmake/llvm/LLVMStaticExports.cmake
|
||||||
%else
|
|
||||||
%{_libdir}/%{name}/lib/*.a
|
|
||||||
%endif
|
|
||||||
|
|
||||||
%if %{without compat_build}
|
|
||||||
|
|
||||||
%files test
|
|
||||||
%{_libexecdir}/tests/llvm/
|
|
||||||
%{llvm_libdir}/unittests/
|
|
||||||
%{_datadir}/llvm/src/unittests
|
|
||||||
%{_datadir}/llvm/src/test.tar.gz
|
|
||||||
%{_datadir}/llvm/lit.fedora.cfg.py
|
|
||||||
%{_bindir}/not
|
|
||||||
%{_bindir}/count
|
|
||||||
%{_bindir}/yaml-bench
|
|
||||||
%{_bindir}/lli-child-target
|
|
||||||
%{_bindir}/llvm-isel-fuzzer
|
|
||||||
%{_bindir}/llvm-opt-fuzzer
|
|
||||||
%{_libdir}/BugpointPasses.so
|
|
||||||
%{_libdir}/LLVMHello.so
|
|
||||||
%{_libdir}/cmake/llvm/LLVMTestExports.cmake
|
|
||||||
|
|
||||||
%files googletest
|
|
||||||
%{_datadir}/llvm/src/utils
|
|
||||||
%{_libdir}/libLLVMTestingSupport.a
|
|
||||||
|
|
||||||
%endif
|
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
* Wed Mar 25 2020 sguelton@redhat.com - 10.0.0-1
|
* Mon Mar 19 2018 Tom Stellard <tstellar@redhat.com> - 4.0.1-3
|
||||||
- 10.0.0 final
|
- Backport r296811, r297001, and r327651 from trunk. rhbz#1554349
|
||||||
|
|
||||||
* Mon Mar 23 2020 sguelton@redhat.com - 10.0.0-0.6.rc6
|
* Tue Nov 21 2017 Tom Stellard <tstellar@redhat.com> - 4.0.1-2
|
||||||
- 10.0.0 rc6
|
- Backport r318289 to fix a debuginfo issue with rust.
|
||||||
|
|
||||||
* Thu Mar 19 2020 sguelton@redhat.com - 10.0.0-0.5.rc5
|
|
||||||
- 10.0.0 rc5
|
|
||||||
|
|
||||||
* Sat Mar 14 2020 sguelton@redhat.com - 10.0.0-0.4.rc4
|
|
||||||
- 10.0.0 rc4
|
|
||||||
|
|
||||||
* Thu Mar 05 2020 sguelton@redhat.com - 10.0.0-0.3.rc3
|
|
||||||
- 10.0.0 rc3
|
|
||||||
|
|
||||||
* Fri Feb 28 2020 sguelton@redhat.com - 10.0.0-0.2.rc2
|
|
||||||
- Remove *_finite support, see rhbz#1803203
|
|
||||||
|
|
||||||
* Fri Feb 14 2020 sguelton@redhat.com - 10.0.0-0.1.rc2
|
|
||||||
- 10.0.0 rc2
|
|
||||||
|
|
||||||
* Fri Jan 31 2020 sguelton@redhat.com - 10.0.0-0.1.rc1
|
|
||||||
- 10.0.0 rc1
|
|
||||||
|
|
||||||
* Wed Jan 29 2020 Fedora Release Engineering <releng@fedoraproject.org> - 9.0.1-5
|
|
||||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild
|
|
||||||
|
|
||||||
* Tue Jan 21 2020 Tom Stellard <tstellar@redhat.com> - 9.0.1-4
|
|
||||||
- Rebuild after previous build failed to strip binaries
|
|
||||||
|
|
||||||
* Fri Jan 17 2020 Tom Stellard <tstellar@redhat.com> - 9.0.1-3
|
|
||||||
- Add explicit Requires from sub-packages to llvm-libs
|
|
||||||
|
|
||||||
* Fri Jan 10 2020 Tom Stellard <tstellar@redhat.com> - 9.0.1-2
|
|
||||||
- Fix crash with kernel bpf self-tests
|
|
||||||
|
|
||||||
* Thu Dec 19 2019 tstellar@redhat.com - 9.0.1-1
|
|
||||||
- 9.0.1 Release
|
|
||||||
|
|
||||||
* Mon Nov 25 2019 sguelton@redhat.com - 9.0.0-4
|
|
||||||
- Activate AVR on all architectures
|
|
||||||
|
|
||||||
* Mon Sep 30 2019 Tom Stellard <tstellar@redhat.com> - 9.0.0-3
|
|
||||||
- Build libLLVM.so first to avoid OOM errors
|
|
||||||
|
|
||||||
* Fri Sep 27 2019 Tom Stellard <tstellar@redhat.com> - 9.0.0-2
|
|
||||||
- Remove unneeded BuildRequires: libstdc++-static
|
|
||||||
|
|
||||||
* Thu Sep 19 2019 sguelton@redhat.com - 9.0.0-1
|
|
||||||
- 9.0.0 Release
|
|
||||||
|
|
||||||
* Wed Sep 18 2019 sguelton@redhat.com - 9.0.0-0.5.rc3
|
|
||||||
- Support avr target, see rhbz#1718492
|
|
||||||
|
|
||||||
* Tue Sep 10 2019 Tom Stellard <tstellar@redhat.com> - 9.0.0-0.4.rc3
|
|
||||||
- Split out test executables into their own export file
|
|
||||||
|
|
||||||
* Fri Sep 06 2019 Tom Stellard <tstellar@redhat.com> - 9.0.0-0.3.rc3
|
|
||||||
- Fix patch for splitting out static library exports
|
|
||||||
|
|
||||||
* Fri Aug 30 2019 Tom Stellard <tstellar@redhat.com> - 9.0.0-0.2.rc3
|
|
||||||
- 9.0.0-rc3 Release
|
|
||||||
|
|
||||||
* Thu Aug 01 2019 Tom Stellard <tstellar@redhat.com> - 9.0.0-0.1.rc2
|
|
||||||
- 9.0.0-rc2 Release
|
|
||||||
|
|
||||||
* Tue Jul 30 2019 Tom Stellard <tstellar@redhat.com> - 8.0.0-9
|
|
||||||
- Sync with llvm8.0 spec file
|
|
||||||
|
|
||||||
* Thu Jul 25 2019 Fedora Release Engineering <releng@fedoraproject.org> - 8.0.0-8.1
|
|
||||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
|
|
||||||
|
|
||||||
* Wed Jul 17 2019 Tom Stellard <tstellar@redhat.com> - 8.0.0-8
|
|
||||||
- Add provides for the major version of sub-packages
|
|
||||||
|
|
||||||
* Fri May 17 2019 sguelton@redhat.com - 8.0.0-7
|
|
||||||
- Fix conflicts between llvm-static = 8 and llvm-dev < 8 around LLVMStaticExports.cmake
|
|
||||||
|
|
||||||
* Wed Apr 24 2019 Tom Stellard <tstellar@redhat.com> - 8.0.0-6
|
|
||||||
- Make sure we aren't passing -g on s390x
|
|
||||||
|
|
||||||
* Sat Mar 30 2019 Tom Stellard <tstellar@redhat.com> - 8.0.0-5
|
|
||||||
- Enable build rpath while keeping install rpath disabled
|
|
||||||
|
|
||||||
* Wed Mar 27 2019 Tom Stellard <tstellar@redhat.com> - 8.0.0-4
|
|
||||||
- Backport r351577 from trunk to fix ninja check failures
|
|
||||||
|
|
||||||
* Tue Mar 26 2019 Tom Stellard <tstellar@redhat.com> - 8.0.0-3
|
|
||||||
- Fix ninja check
|
|
||||||
|
|
||||||
* Fri Mar 22 2019 Tom Stellard <tstellar@redhat.com> - 8.0.0-2
|
|
||||||
- llvm-test fixes
|
|
||||||
|
|
||||||
* Wed Mar 20 2019 sguelton@redhat.com - 8.0.0-1
|
|
||||||
- 8.0.0 final
|
|
||||||
|
|
||||||
* Fri Mar 15 2019 sguelton@redhat.com - 8.0.0-0.6.rc4
|
|
||||||
- Activate all backends (rhbz#1689031)
|
|
||||||
|
|
||||||
* Tue Mar 12 2019 sguelton@redhat.com - 8.0.0-0.5.rc4
|
|
||||||
- 8.0.0 Release candidate 4
|
|
||||||
|
|
||||||
* Mon Mar 4 2019 sguelton@redhat.com - 8.0.0-0.4.rc3
|
|
||||||
- Move some binaries to -test package, cleanup specfile
|
|
||||||
|
|
||||||
* Mon Mar 4 2019 sguelton@redhat.com - 8.0.0-0.3.rc3
|
|
||||||
- 8.0.0 Release candidate 3
|
|
||||||
|
|
||||||
* Fri Feb 22 2019 sguelton@redhat.com - 8.0.0-0.2.rc2
|
|
||||||
- 8.0.0 Release candidate 2
|
|
||||||
|
|
||||||
* Sat Feb 9 2019 sguelton@redhat.com - 8.0.0-0.1.rc1
|
|
||||||
- 8.0.0 Release candidate 1
|
|
||||||
|
|
||||||
* Fri Feb 01 2019 Fedora Release Engineering <releng@fedoraproject.org> - 7.0.1-2.1
|
|
||||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild
|
|
||||||
|
|
||||||
* Mon Jan 21 2019 Josh Stone <jistone@redhat.com> - 7.0.1-2
|
|
||||||
- Fix discriminators in metadata, rhbz#1668033
|
|
||||||
|
|
||||||
* Mon Dec 17 2018 sguelton@redhat.com - 7.0.1-1
|
|
||||||
- 7.0.1 release
|
|
||||||
|
|
||||||
* Tue Dec 04 2018 sguelton@redhat.com - 7.0.0-5
|
|
||||||
- Ensure rpmlint passes on specfile
|
|
||||||
|
|
||||||
* Sat Nov 17 2018 Tom Stellard <tstellar@redhat.com> - 7.0.0-4
|
|
||||||
- Install testing libraries for unittests
|
|
||||||
|
|
||||||
* Sat Oct 27 2018 Tom Stellard <tstellar@redhat.com> - 7.0.0-3
|
|
||||||
- Fix running unittests as not-root user
|
|
||||||
|
|
||||||
* Thu Sep 27 2018 Tom Stellard <tstellar@redhat.com> - 7.0.0-2
|
|
||||||
- Fixes for llvm-test package:
|
|
||||||
- Add some missing Requires
|
|
||||||
- Add --threads option to run-lit-tests script
|
|
||||||
- Set PATH so lit can find tools like count, not, etc.
|
|
||||||
- Don't hardcode tools directory to /usr/lib64/llvm
|
|
||||||
- Fix typo in yaml-bench define
|
|
||||||
- Only print information about failing tests
|
|
||||||
|
|
||||||
* Fri Sep 21 2018 Tom Stellard <tstellar@redhat.com> - 7.0.0-1
|
|
||||||
- 7.0.0 Release
|
|
||||||
|
|
||||||
* Thu Sep 13 2018 Tom Stellard <tstellar@redhat.com> - 7.0.0-0.15.rc3
|
|
||||||
- Disable rpath on install LLVM and related sub-projects
|
|
||||||
|
|
||||||
* Wed Sep 12 2018 Tom Stellard <tstellar@redhat.com> - 7.0.0-0.14.rc3
|
|
||||||
- Remove rpath from executables and libraries
|
|
||||||
|
|
||||||
* Tue Sep 11 2018 Tom Stellard <tstellar@redhat.com> - 7.0.0-0.13.rc3
|
|
||||||
- Re-enable arm and aarch64 targets on x86_64
|
|
||||||
|
|
||||||
* Mon Sep 10 2018 Tom Stellard <tstellar@redhat.com> - 7.0.0-0.12.rc3
|
|
||||||
- 7.0.0-rc3 Release
|
|
||||||
|
|
||||||
* Fri Sep 07 2018 Tom Stellard <tstellar@redhat.com> - 7.0.0-0.11.rc2
|
|
||||||
- Use python3 shebang for opt-viewewr scripts
|
|
||||||
|
|
||||||
* Thu Aug 30 2018 Tom Stellard <tstellar@redhat.com> - 7.0.0-0.10.rc2
|
|
||||||
- Drop all uses of python2 from lit tests
|
|
||||||
|
|
||||||
* Thu Aug 30 2018 Tom Stellard <tstellar@redhat.com> - 7.0.0-0.9.rc2
|
|
||||||
- Build the gold plugin on all supported architectures
|
|
||||||
|
|
||||||
* Wed Aug 29 2018 Kevin Fenzi <kevin@scrye.com> - 7.0.0-0.8.rc2
|
|
||||||
- Re-enable debuginfo to avoid 25x size increase.
|
|
||||||
|
|
||||||
* Tue Aug 28 2018 Tom Stellard <tstellar@redhat.com> - 7.0.0-0.7.rc2
|
|
||||||
- 7.0.0-rc2 Release
|
|
||||||
|
|
||||||
* Tue Aug 28 2018 Tom Stellard <tstellar@redhat.com> - 7.0.0-0.6.rc1
|
|
||||||
- Guard valgrind usage with valgrind_arches macro
|
|
||||||
|
|
||||||
* Thu Aug 23 2018 Tom Stellard <tstellar@redhat.com> - 7.0.0-0.5.rc1
|
|
||||||
- Package lit tests and googletest sources.
|
|
||||||
|
|
||||||
* Mon Aug 20 2018 Tom Stellard <tstellar@redhat.com> - 7.0.0-0.4.rc1
|
|
||||||
- Re-enable AMDGPU target on ARM rhbz#1618922
|
|
||||||
|
|
||||||
* Mon Aug 13 2018 Tom Stellard <tstellar@redhat.com> - 7.0.0-0.3.rc1
|
|
||||||
- Drop references to TestPlugin.so from cmake files
|
|
||||||
|
|
||||||
* Fri Aug 10 2018 Tom Stellard <tstellar@redhat.com> - 7.0.0-0.2.rc1
|
|
||||||
- Fixes for lit tests
|
|
||||||
|
|
||||||
* Fri Aug 10 2018 Tom Stellard <tstellar@redhat.com> - 7.0.0-0.1.rc1
|
|
||||||
- 7.0.0-rc1 Release
|
|
||||||
- Reduce number of enabled targets on all arches.
|
|
||||||
- Drop s390 detection patch, LLVM does not support s390 codegen.
|
|
||||||
|
|
||||||
* Mon Aug 06 2018 Tom Stellard <tstellar@redhat.com> - 6.0.1-6
|
|
||||||
- Backport some fixes needed by mesa and rust
|
|
||||||
|
|
||||||
* Thu Jul 26 2018 Tom Stellard <tstellar@redhat.com> - 6.0.1-5
|
|
||||||
- Move libLLVM-6.0.so to llvm6.0-libs.
|
|
||||||
|
|
||||||
* Mon Jul 23 2018 Tom Stellard <tstellar@redhat.com> - 6.0.1-4
|
|
||||||
- Rebuild because debuginfo stripping failed with the previous build
|
|
||||||
|
|
||||||
* Fri Jul 13 2018 Tom Stellard <tstellar@redhat.com> - 6.0.1-3
|
|
||||||
- Sync specfile with llvm6.0 package
|
|
||||||
|
|
||||||
* Fri Jul 13 2018 Fedora Release Engineering <releng@fedoraproject.org> - 6.0.1-2
|
|
||||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild
|
|
||||||
|
|
||||||
* Mon Jun 25 2018 Tom Stellard <tstellar@redhat.com> - 6.0.1-1
|
|
||||||
- 6.0.1 Release
|
|
||||||
|
|
||||||
* Thu Jun 07 2018 Tom Stellard <tstellar@redhat.com> - 6.0.1-0.4.rc2
|
|
||||||
- 6.0.1-rc2
|
|
||||||
|
|
||||||
* Wed Jun 06 2018 Tom Stellard <tstellar@redhat.com> - 6.0.1-0.3.rc1
|
|
||||||
- Re-enable all targets to avoid breaking the ABI.
|
|
||||||
|
|
||||||
* Mon Jun 04 2018 Tom Stellard <tstellar@redhat.com> - 6.0.1-0.2.rc1
|
|
||||||
- Reduce the number of enabled targets based on the architecture
|
|
||||||
|
|
||||||
* Thu May 10 2018 Tom Stellard <tstellar@redhat.com> - 6.0.1-0.1.rc1
|
|
||||||
- 6.0.1 rc1
|
|
||||||
|
|
||||||
* Tue Mar 27 2018 Tom Stellard <tstellar@redhat.com> - 6.0.0-11
|
|
||||||
- Re-enable arm tests that used to hang
|
|
||||||
|
|
||||||
* Thu Mar 22 2018 Tom Stellard <tstellar@redhat.com> - 6.0.0-10
|
|
||||||
- Fix testcase in backported patch
|
|
||||||
|
|
||||||
* Tue Mar 20 2018 Tom Stellard <tstellar@redhat.com> - 6.0.0-9
|
|
||||||
- Prevent external projects from linking against both static and shared
|
|
||||||
libraries. rhbz#1558657
|
|
||||||
|
|
||||||
* Mon Mar 19 2018 Tom Stellard <tstellar@redhat.com> - 6.0.0-8
|
|
||||||
- Backport r327651 from trunk rhbz#1554349
|
|
||||||
|
|
||||||
* Fri Mar 16 2018 Tom Stellard <tstellar@redhat.com> - 6.0.0-7
|
|
||||||
- Filter out cxxflags and cflags from llvm-config that aren't supported by clang
|
|
||||||
- rhbz#1556980
|
|
||||||
|
|
||||||
* Wed Mar 14 2018 Tom Stellard <tstellar@redhat.com> - 6.0.0-6
|
|
||||||
- Enable symbol versioning in libLLVM.so
|
|
||||||
|
|
||||||
* Wed Mar 14 2018 Tom Stellard <tstellar@redhat.com> - 6.0.0-5
|
|
||||||
- Stop statically linking libstdc++. This is no longer required by Steam
|
|
||||||
client, but the steam installer still needs a work-around which should
|
|
||||||
be handled in the steam package.
|
|
||||||
* Wed Mar 14 2018 Tom Stellard <tstellar@redhat.com> - 6.0.0-4
|
|
||||||
- s/make check/ninja check/
|
|
||||||
|
|
||||||
* Fri Mar 09 2018 Tom Stellard <tstellar@redhat.com> - 6.0.0-3
|
|
||||||
- Backport fix for compile time regression on rust rhbz#1552915
|
|
||||||
|
|
||||||
* Thu Mar 08 2018 Tom Stellard <tstellar@redhat.com> - 6.0.0-2
|
|
||||||
- Build with Ninja: This reduces RPM build time on a 6-core x86_64 builder
|
|
||||||
from 82 min to 52 min.
|
|
||||||
|
|
||||||
* Thu Mar 08 2018 Tom Stellard <tstellar@redhat.com> - 6.0.0-1
|
|
||||||
- 6.0.0 Release
|
|
||||||
|
|
||||||
* Thu Mar 08 2018 Tom Stellard <tstellar@redhat.com> - 6.0.0-0.5.rc2
|
|
||||||
- Reduce debuginfo size on i686 to avoid OOM errors during linking
|
|
||||||
|
|
||||||
* Fri Feb 09 2018 Tom Stellard <tstellar@redhat.com> - 6.0.0-0.4.rc2
|
|
||||||
- 6.0.1 rc2
|
|
||||||
|
|
||||||
* Fri Feb 09 2018 Igor Gnatenko <ignatenkobrain@fedoraproject.org> - 6.0.0-0.3.rc1
|
|
||||||
- Escape macros in %%changelog
|
|
||||||
|
|
||||||
* Thu Feb 08 2018 Fedora Release Engineering <releng@fedoraproject.org> - 6.0.0-0.2.rc1
|
|
||||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild
|
|
||||||
|
|
||||||
* Fri Jan 19 2018 Tom Stellard <tstellar@redhat.com> - 6.0.0-0.1.rc1
|
|
||||||
- 6.0.1 rc1
|
|
||||||
|
|
||||||
* Tue Dec 19 2017 Tom Stellard <tstellar@redhat.com> - 5.0.1-1
|
|
||||||
- 5.0.1 Release
|
|
||||||
|
|
||||||
* Mon Nov 20 2017 Tom Stellard <tstellar@redhat.com> - 5.0.0-5
|
|
||||||
- Backport debuginfo fix for rust
|
|
||||||
|
|
||||||
* Fri Nov 03 2017 Tom Stellard <tstellar@redhat.com> - 5.0.0-4
|
|
||||||
- Reduce debuginfo size for ARM
|
|
||||||
|
|
||||||
* Tue Oct 10 2017 Tom Stellard <tstellar@redhat.com> - 5.0.0-2
|
|
||||||
- Reduce memory usage on ARM by disabling debuginfo and some non-ARM targets.
|
|
||||||
|
|
||||||
* Mon Sep 25 2017 Tom Stellard <tstellar@redhat.com> - 5.0.0-1
|
|
||||||
- 5.0.0 Release
|
|
||||||
|
|
||||||
* Mon Sep 18 2017 Tom Stellard <tstellar@redhat.com> - 4.0.1-6
|
|
||||||
- Add Requires: libedit-devel for llvm-devel
|
|
||||||
|
|
||||||
* Fri Sep 08 2017 Tom Stellard <tstellar@redhat.com> - 4.0.1-5
|
|
||||||
- Enable libedit backend for LineEditor API
|
|
||||||
|
|
||||||
* Fri Aug 25 2017 Tom Stellard <tstellar@redhat.com> - 4.0.1-4
|
|
||||||
- Enable extra functionality when run the LLVM JIT under valgrind.
|
|
||||||
|
|
||||||
* Thu Aug 03 2017 Fedora Release Engineering <releng@fedoraproject.org> - 4.0.1-3
|
|
||||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild
|
|
||||||
|
|
||||||
* Wed Jul 26 2017 Fedora Release Engineering <releng@fedoraproject.org> - 4.0.1-2
|
|
||||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild
|
|
||||||
|
|
||||||
* Wed Jun 21 2017 Tom Stellard <tstellar@redhat.com> - 4.0.1-1
|
* Wed Jun 21 2017 Tom Stellard <tstellar@redhat.com> - 4.0.1-1
|
||||||
- 4.0.1 Release
|
- 4.0.1 Release
|
||||||
@ -810,7 +236,7 @@ fi
|
|||||||
- LLVM 4.0.0 Final Release
|
- LLVM 4.0.0 Final Release
|
||||||
|
|
||||||
* Wed Mar 22 2017 tstellar@redhat.com - 3.9.1-6
|
* Wed Mar 22 2017 tstellar@redhat.com - 3.9.1-6
|
||||||
- Fix %%postun sep for -devel package.
|
- Fix %postun sep for -devel package.
|
||||||
|
|
||||||
* Mon Mar 13 2017 Tom Stellard <tstellar@redhat.com> - 3.9.1-5
|
* Mon Mar 13 2017 Tom Stellard <tstellar@redhat.com> - 3.9.1-5
|
||||||
- Disable failing tests on ARM.
|
- Disable failing tests on ARM.
|
||||||
|
@ -1,58 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
|
|
||||||
usage() {
|
|
||||||
echo "usage: `basename $0` [OPTIONS]"
|
|
||||||
echo " --threads NUM The number of threads to use for running tests."
|
|
||||||
echo " --multilib-arch ARCH Use this option to test 32-bit libs/binaries on"
|
|
||||||
echo " 64-bit hosts."
|
|
||||||
}
|
|
||||||
|
|
||||||
threads_arg=''
|
|
||||||
|
|
||||||
while [ $# -gt 0 ]; do
|
|
||||||
case $1 in
|
|
||||||
--threads)
|
|
||||||
shift
|
|
||||||
threads_arg="--threads $1"
|
|
||||||
;;
|
|
||||||
--multilib-arch)
|
|
||||||
shift
|
|
||||||
ARCH=$1
|
|
||||||
;;
|
|
||||||
* )
|
|
||||||
echo "unknown option: $1"
|
|
||||||
echo ""
|
|
||||||
usage
|
|
||||||
exit 1
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
shift
|
|
||||||
done
|
|
||||||
|
|
||||||
set -xe
|
|
||||||
|
|
||||||
if [ -z "$ARCH" ]; then
|
|
||||||
ARCH=`rpm --eval '%_arch'`
|
|
||||||
fi
|
|
||||||
|
|
||||||
case $ARCH in
|
|
||||||
arm)
|
|
||||||
;&
|
|
||||||
i686)
|
|
||||||
LIB_DIR="/usr/lib/"
|
|
||||||
;;
|
|
||||||
*)
|
|
||||||
LIB_DIR="/usr/lib64/"
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
|
|
||||||
cd $(mktemp -d)
|
|
||||||
ln -s /usr/include include
|
|
||||||
tar -xzf /usr/share/llvm/src/test.tar.gz
|
|
||||||
ln -s $ARCH.site.cfg.py test/lit.site.cfg.py
|
|
||||||
ln -s $ARCH.site.cfg.py test/Unit/lit.site.cfg.py
|
|
||||||
lit -v -s $threads_arg test \
|
|
||||||
-Dllvm_obj_root=`pwd` \
|
|
||||||
-Dllvm_test_root=`pwd`/test \
|
|
||||||
-Dllvm_unittest_bindir=$LIB_DIR/llvm \
|
|
||||||
-Dllvm_shlib_dir=$LIB_DIR
|
|
70
rust-lang-llvm-pr67.patch
Normal file
70
rust-lang-llvm-pr67.patch
Normal file
@ -0,0 +1,70 @@
|
|||||||
|
From a6fa10c14649c18d299cddf3e823b032460cb6f5 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Pirama Arumuga Nainar <pirama@google.com>
|
||||||
|
Date: Thu, 23 Mar 2017 16:47:47 +0000
|
||||||
|
Subject: [PATCH] Fix computeKnownBits for ARMISD::CMOV
|
||||||
|
|
||||||
|
Summary:
|
||||||
|
The true and false operands for the CMOV are operands 0 and 1.
|
||||||
|
ARMISelLowering.cpp::computeKnownBits was looking at operands 1 and 2
|
||||||
|
instead. This can cause CMOV instructions to be incorrectly folded into
|
||||||
|
BFI if value set by the CMOV is another CMOV, whose known bits are
|
||||||
|
computed incorrectly.
|
||||||
|
|
||||||
|
This patch fixes the issue and adds a test case.
|
||||||
|
|
||||||
|
Reviewers: kristof.beyls, jmolloy
|
||||||
|
|
||||||
|
Subscribers: llvm-commits, aemerson, srhines, rengolin
|
||||||
|
|
||||||
|
Differential Revision: https://reviews.llvm.org/D31265
|
||||||
|
|
||||||
|
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@298624 91177308-0d34-0410-b5e6-96231b3b80d8
|
||||||
|
---
|
||||||
|
lib/Target/ARM/ARMISelLowering.cpp | 4 ++--
|
||||||
|
test/CodeGen/ARM/no-cmov2bfi.ll | 19 +++++++++++++++++++
|
||||||
|
2 files changed, 21 insertions(+), 2 deletions(-)
|
||||||
|
create mode 100644 test/CodeGen/ARM/no-cmov2bfi.ll
|
||||||
|
|
||||||
|
diff --git a/lib/Target/ARM/ARMISelLowering.cpp b/lib/Target/ARM/ARMISelLowering.cpp
|
||||||
|
index 4a227a3cd7b1..cf98e60c0657 100644
|
||||||
|
--- a/lib/Target/ARM/ARMISelLowering.cpp
|
||||||
|
+++ b/lib/Target/ARM/ARMISelLowering.cpp
|
||||||
|
@@ -10806,8 +10806,8 @@ static void computeKnownBits(SelectionDAG &DAG, SDValue Op, APInt &KnownZero,
|
||||||
|
if (Op.getOpcode() == ARMISD::CMOV) {
|
||||||
|
APInt KZ2(KnownZero.getBitWidth(), 0);
|
||||||
|
APInt KO2(KnownOne.getBitWidth(), 0);
|
||||||
|
- computeKnownBits(DAG, Op.getOperand(1), KnownZero, KnownOne);
|
||||||
|
- computeKnownBits(DAG, Op.getOperand(2), KZ2, KO2);
|
||||||
|
+ computeKnownBits(DAG, Op.getOperand(0), KnownZero, KnownOne);
|
||||||
|
+ computeKnownBits(DAG, Op.getOperand(1), KZ2, KO2);
|
||||||
|
|
||||||
|
KnownZero &= KZ2;
|
||||||
|
KnownOne &= KO2;
|
||||||
|
diff --git a/test/CodeGen/ARM/no-cmov2bfi.ll b/test/CodeGen/ARM/no-cmov2bfi.ll
|
||||||
|
new file mode 100644
|
||||||
|
index 000000000000..c8b512048905
|
||||||
|
--- /dev/null
|
||||||
|
+++ b/test/CodeGen/ARM/no-cmov2bfi.ll
|
||||||
|
@@ -0,0 +1,19 @@
|
||||||
|
+; RUN: llc < %s -mtriple=thumbv7 | FileCheck --check-prefix=CHECK-NOBFI %s
|
||||||
|
+
|
||||||
|
+declare zeroext i1 @dummy()
|
||||||
|
+
|
||||||
|
+define i8 @test(i8 %a1, i1 %c) {
|
||||||
|
+; CHECK-NOBFI-NOT: bfi
|
||||||
|
+; CHECK-NOBFI: bl dummy
|
||||||
|
+; CHECK-NOBFI: cmp r0, #0
|
||||||
|
+; CHECK-NOBFI: it ne
|
||||||
|
+; CHECK-NOBFI: orrne [[REG:r[0-9]+]], [[REG]], #8
|
||||||
|
+; CHECK-NOBFI: mov r0, [[REG]]
|
||||||
|
+
|
||||||
|
+ %1 = and i8 %a1, -9
|
||||||
|
+ %2 = select i1 %c, i8 %1, i8 %a1
|
||||||
|
+ %3 = tail call zeroext i1 @dummy()
|
||||||
|
+ %4 = or i8 %2, 8
|
||||||
|
+ %ret = select i1 %3, i8 %4, i8 %2
|
||||||
|
+ ret i8 %ret
|
||||||
|
+}
|
||||||
|
--
|
||||||
|
2.9.3
|
||||||
|
|
3
sources
3
sources
@ -1,2 +1 @@
|
|||||||
SHA512 (llvm-10.0.0.src.tar.xz) = 7dc961aacee3a01ecc002ff2b688a2ef50661856d2abd5ecc90566ffcad7566e4976736cd339ea96592e452cd5a17aaceba9712b2effec805661cca8ff020ee7
|
SHA512 (llvm-4.0.1.src.tar.xz) = 16adc39b34ddb628f81b171119a8e2a0e9138b25011e803ef0b688e2fbea116fc4953d3a1b61b90a98a75e33619f81566b7cb06a9a2ea4d04ac5e0eb303a2d1d
|
||||||
SHA512 (llvm-10.0.0.src.tar.xz.sig) = 2e4c61af5d84db4bc7a8ab51367210c529ae02e401b7a73a449f79bf9d92654ccf36fdef0f552c8850df0e94bcafce2359180ad0cdf720be7c874a782a936878
|
|
||||||
|
@ -1 +0,0 @@
|
|||||||
1
|
|
@ -1,16 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
|
|
||||||
set -ex
|
|
||||||
|
|
||||||
dnf download --disablerepo=* --enablerepo=test-llvm --source llvm
|
|
||||||
|
|
||||||
# The src.rpm is available in the directory the test run from.
|
|
||||||
set +e
|
|
||||||
mock --resultdir=. --old-chroot --with compat_build --rebuild *.src.rpm
|
|
||||||
if [ $? -ne 0 ]; then
|
|
||||||
cat root.log
|
|
||||||
cat build.log
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
exit 0
|
|
@ -1,5 +0,0 @@
|
|||||||
---
|
|
||||||
|
|
||||||
standard-inventory-qcow2:
|
|
||||||
qemu:
|
|
||||||
m: 2G
|
|
@ -1,30 +0,0 @@
|
|||||||
- hosts: localhost
|
|
||||||
roles:
|
|
||||||
- role: standard-test-basic
|
|
||||||
tags:
|
|
||||||
- classic
|
|
||||||
required_packages:
|
|
||||||
- llvm-test
|
|
||||||
- rust
|
|
||||||
- cargo
|
|
||||||
tests:
|
|
||||||
- regression-tests:
|
|
||||||
dir: ./
|
|
||||||
run: /usr/libexec/tests/llvm/run-lit-tests --threads 1
|
|
||||||
- rust-sanity:
|
|
||||||
dir: ./
|
|
||||||
run: cargo new hello && cd hello && cargo run
|
|
||||||
# There is a bug in the build process when it runs out of disk space
|
|
||||||
# while stripping binaries, which causes the strip to fail, but does
|
|
||||||
# not fail the build. This results in a libLLVM.so that is over 2GB
|
|
||||||
# which breaks the nightly compose. So this test checks that libLLVM.so
|
|
||||||
# is less than 100MB to ensure it was successfully stripped.
|
|
||||||
# https://bugzilla.redhat.com/show_bug.cgi?id=1793250
|
|
||||||
- libllvm-size:
|
|
||||||
dir: ./
|
|
||||||
run: test `stat -L -c %s /usr/lib64/libLLVM.so` -lt 100000000
|
|
||||||
# This test ensures that the spec file still builds correctly with
|
|
||||||
# %global compat_build 1
|
|
||||||
# FIXME: This fails, because the CI system has a hard-coded timeout of 4
|
|
||||||
# hours.
|
|
||||||
#- build-compat
|
|
@ -1,31 +0,0 @@
|
|||||||
- hosts: localhost
|
|
||||||
pre_tasks:
|
|
||||||
# Make sure we uninstall all sub-packages, so we can test that the cmake files
|
|
||||||
# in llvm-devel are useable when only llvm-devel is installed.
|
|
||||||
- name: Uninstall llvm sub-packages
|
|
||||||
package:
|
|
||||||
name: "{{ item }}"
|
|
||||||
state: absent
|
|
||||||
tags: classic
|
|
||||||
with_items:
|
|
||||||
- llvm
|
|
||||||
- llvm-devel
|
|
||||||
- llvm-doc
|
|
||||||
- llvm-googletest
|
|
||||||
- llvm-libs
|
|
||||||
- llvm-static
|
|
||||||
- llvm-test
|
|
||||||
roles:
|
|
||||||
- role: standard-test-basic
|
|
||||||
tags: classic
|
|
||||||
required_packages:
|
|
||||||
- llvm-devel
|
|
||||||
- cmake
|
|
||||||
- ninja-build
|
|
||||||
- gcc
|
|
||||||
- gcc-c++
|
|
||||||
repositories:
|
|
||||||
- repo: "https://src.fedoraproject.org/tests/llvm.git"
|
|
||||||
dest: "llvm"
|
|
||||||
tests:
|
|
||||||
- llvm/llvm-devel-cmake
|
|
Loading…
Reference in New Issue
Block a user