Compare commits
115 Commits
Author | SHA1 | Date | |
---|---|---|---|
|
78e975e88f | ||
|
901bdb19f1 | ||
|
b9d5a005d6 | ||
|
004b709e96 | ||
|
0cf0e0fcc8 | ||
|
38c19e024e | ||
|
d323e42667 | ||
|
4d5a2ef48a | ||
|
7790ff0825 | ||
|
13fa3366b4 | ||
|
00a5db5f3a | ||
|
f61fd6e557 | ||
|
96d4e517c5 | ||
|
d7b5dc38f6 | ||
|
d9ea1b48ed | ||
|
8ddd41e8d9 | ||
|
acf22be74c | ||
|
9d70f3b6d9 | ||
|
a49a481229 | ||
|
6a704c4759 | ||
|
6f02bbba2f | ||
|
bab8b9476f | ||
|
f07760fd8f | ||
|
547b9347c2 | ||
|
d62829b09a | ||
|
5dee6b644a | ||
|
77699b4333 | ||
|
f5b025e1f8 | ||
|
a0a7bdc94a | ||
|
15784b25a9 | ||
|
ab84dbf5d4 | ||
|
503ebd4079 | ||
|
785b893001 | ||
|
0a95f79eb7 | ||
|
f3e54d7b77 | ||
|
2b03740f59 | ||
|
dd29ab70a3 | ||
|
f059677e37 | ||
|
d78f6772be | ||
|
49f1cffac0 | ||
|
095898397b | ||
|
54ff648b33 | ||
|
06970df22f | ||
|
7d9203efc8 | ||
|
34be5374da | ||
|
e917285b3e | ||
|
317b7917e6 | ||
|
4ca785f8a6 | ||
|
aea8243575 | ||
|
d891d182b1 | ||
|
cf8888829a | ||
|
8eccc650c2 | ||
|
8fc4f00334 | ||
|
40468b1e90 | ||
|
d56ae49824 | ||
|
4ccbf0466c | ||
|
b5bb6c52ae | ||
|
f0b94fc76d | ||
|
f04627996a | ||
|
3988cf1bc0 | ||
|
b4db2c9955 | ||
|
4a6462c64c | ||
|
c8a90e4939 | ||
|
faa3d2dca7 | ||
|
2167c29b6c | ||
|
165caa696e | ||
|
a057ddec79 | ||
|
1bf09a7cfb | ||
|
c96d6793e9 | ||
|
a47388f920 | ||
|
1948d64c18 | ||
|
5636e80d6b | ||
|
a894547e62 | ||
|
4824795185 | ||
|
432475d32b | ||
|
7a93d34863 | ||
|
93d2074b7b | ||
|
8c9aac9934 | ||
|
da8f508d62 | ||
|
a9a9a3b7ea | ||
|
f963f98785 | ||
|
84b2f6d2df | ||
|
629a77b63c | ||
|
ffa0ad7b11 | ||
|
4da44423ea | ||
|
b772b3b219 | ||
|
e594b058f1 | ||
|
ff279e4625 | ||
|
2218119f3a | ||
|
3d213b0da3 | ||
|
699e7bbabc | ||
|
1afade5cd8 | ||
|
3ff2527fa4 | ||
|
025cf6ec25 | ||
|
440eb0e896 | ||
|
e0bd4cf7a2 | ||
|
acd922f57d | ||
|
539d4ba445 | ||
|
c0f49ce65f | ||
|
3df6c8a9d4 | ||
|
f4cd5f6cb8 | ||
|
e5951f48a3 | ||
|
29d4881c79 | ||
|
a264db526f | ||
|
70bb4c2830 | ||
|
f3d30bd5c7 | ||
|
ca4631e1f8 | ||
|
8f4eab1072 | ||
|
ac4d305132 | ||
|
3d29fda1ea | ||
|
c5c125e0d4 | ||
|
dd255866c2 | ||
|
cca2af2d07 | ||
|
c263265fc3 | ||
|
c28afb57b3 |
36
.gitignore
vendored
36
.gitignore
vendored
@ -32,3 +32,39 @@
|
|||||||
/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
|
||||||
|
@ -1,44 +0,0 @@
|
|||||||
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
|
|
||||||
|
|
@ -1,42 +0,0 @@
|
|||||||
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
|
|
||||||
|
|
@ -1,193 +0,0 @@
|
|||||||
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,42 +1,22 @@
|
|||||||
From a5f39924a3466eb12d764993aaa8c1c308f92925 Mon Sep 17 00:00:00 2001
|
From 8f6917ea11bd1bfbfe07f3577756d1c4abfdb916 Mon Sep 17 00:00:00 2001
|
||||||
From: Tom Stellard <tstellar@redhat.com>
|
From: Tom Stellard <tstellar@redhat.com>
|
||||||
Date: Sat, 29 Apr 2017 02:03:23 +0000
|
Date: Fri, 6 Sep 2019 11:03:18 -0700
|
||||||
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
|
|
||||||
---
|
---
|
||||||
cmake/modules/AddLLVM.cmake | 6 +++++-
|
llvm/cmake/modules/AddLLVM.cmake | 6 +++++-
|
||||||
cmake/modules/CMakeLists.txt | 3 +++
|
llvm/cmake/modules/CMakeLists.txt | 3 +++
|
||||||
cmake/modules/LLVMConfig.cmake.in | 2 ++
|
llvm/cmake/modules/LLVMConfig.cmake.in | 2 ++
|
||||||
3 files changed, 10 insertions(+), 1 deletion(-)
|
3 files changed, 10 insertions(+), 1 deletion(-)
|
||||||
|
|
||||||
diff --git a/cmake/modules/AddLLVM.cmake b/cmake/modules/AddLLVM.cmake
|
diff --git a/llvm/cmake/modules/AddLLVM.cmake b/llvm/cmake/modules/AddLLVM.cmake
|
||||||
index b3c7746..7d9d253 100644
|
index 619e986..200fc45 100644
|
||||||
--- a/cmake/modules/AddLLVM.cmake
|
--- a/llvm/cmake/modules/AddLLVM.cmake
|
||||||
+++ b/cmake/modules/AddLLVM.cmake
|
+++ b/llvm/cmake/modules/AddLLVM.cmake
|
||||||
@@ -587,7 +587,11 @@ macro(add_llvm_library name)
|
@@ -691,7 +691,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)
|
||||||
@ -47,11 +27,11 @@ index b3c7746..7d9d253 100644
|
|||||||
set_property(GLOBAL PROPERTY LLVM_HAS_EXPORTS True)
|
set_property(GLOBAL PROPERTY LLVM_HAS_EXPORTS True)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
diff --git a/cmake/modules/CMakeLists.txt b/cmake/modules/CMakeLists.txt
|
diff --git a/llvm/cmake/modules/CMakeLists.txt b/llvm/cmake/modules/CMakeLists.txt
|
||||||
index ac4b0b7..f77c905 100644
|
index 9cf22b4..dc982d2 100644
|
||||||
--- a/cmake/modules/CMakeLists.txt
|
--- a/llvm/cmake/modules/CMakeLists.txt
|
||||||
+++ b/cmake/modules/CMakeLists.txt
|
+++ b/llvm/cmake/modules/CMakeLists.txt
|
||||||
@@ -91,6 +91,7 @@ set(LLVM_CONFIG_BINARY_DIR "\${LLVM_INSTALL_PREFIX}")
|
@@ -105,6 +105,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}")
|
||||||
@ -59,7 +39,7 @@ index ac4b0b7..f77c905 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
|
||||||
@@ -107,6 +108,8 @@ if (NOT LLVM_INSTALL_TOOLCHAIN_ONLY)
|
@@ -121,6 +122,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)
|
||||||
@ -68,11 +48,11 @@ index ac4b0b7..f77c905 100644
|
|||||||
endif()
|
endif()
|
||||||
|
|
||||||
install(FILES
|
install(FILES
|
||||||
diff --git a/cmake/modules/LLVMConfig.cmake.in b/cmake/modules/LLVMConfig.cmake.in
|
diff --git a/llvm/cmake/modules/LLVMConfig.cmake.in b/llvm/cmake/modules/LLVMConfig.cmake.in
|
||||||
index c30c92b..f0f17b2 100644
|
index 536031f..6ef54a0 100644
|
||||||
--- a/cmake/modules/LLVMConfig.cmake.in
|
--- a/llvm/cmake/modules/LLVMConfig.cmake.in
|
||||||
+++ b/cmake/modules/LLVMConfig.cmake.in
|
+++ b/llvm/cmake/modules/LLVMConfig.cmake.in
|
||||||
@@ -73,6 +73,8 @@ if(NOT TARGET LLVMSupport)
|
@@ -89,6 +89,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@
|
||||||
@ -80,7 +60,7 @@ index c30c92b..f0f17b2 100644
|
|||||||
+ include("@LLVM_CONFIG_STATIC_EXPORTS_FILE@" OPTIONAL)
|
+ include("@LLVM_CONFIG_STATIC_EXPORTS_FILE@" OPTIONAL)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
include(${LLVM_CMAKE_DIR}/LLVM-Config.cmake)
|
# By creating intrinsics_gen here, subprojects that depend on LLVM's
|
||||||
--
|
--
|
||||||
2.9.3
|
1.8.3.1
|
||||||
|
|
||||||
|
@ -0,0 +1,65 @@
|
|||||||
|
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
|
||||||
|
|
@ -1,153 +0,0 @@
|
|||||||
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
|
|
||||||
|
|
@ -1,77 +0,0 @@
|
|||||||
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
|
|
||||||
|
|
@ -1,76 +0,0 @@
|
|||||||
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
|
|
||||||
|
|
@ -1,107 +0,0 @@
|
|||||||
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
|
|
||||||
|
|
@ -1,69 +0,0 @@
|
|||||||
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
Normal file
12
gating.yaml
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
--- !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}
|
52
hans-gpg-key.asc
Normal file
52
hans-gpg-key.asc
Normal file
@ -0,0 +1,52 @@
|
|||||||
|
-----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-----
|
17
lit.fedora.cfg.py
Normal file
17
lit.fedora.cfg.py
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
|
||||||
|
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)
|
@ -1,12 +0,0 @@
|
|||||||
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")
|
|
688
llvm.spec
688
llvm.spec
@ -1,46 +1,92 @@
|
|||||||
# Components enabled if supported by target architecture:
|
# Components enabled if supported by target architecture:
|
||||||
%ifarch %ix86 x86_64
|
%define gold_arches %{ix86} x86_64 %{arm} aarch64 %{power64} s390x
|
||||||
|
%ifarch %{gold_arches}
|
||||||
%bcond_without gold
|
%bcond_without gold
|
||||||
%else
|
%else
|
||||||
%bcond_with gold
|
%bcond_with gold
|
||||||
%endif
|
%endif
|
||||||
|
|
||||||
%global llvm_bindir %{_libdir}/%{name}
|
%bcond_with compat_build
|
||||||
|
|
||||||
Name: llvm
|
%global llvm_libdir %{_libdir}/%{name}
|
||||||
Version: 4.0.1
|
%global build_llvm_libdir %{buildroot}%{llvm_libdir}
|
||||||
Release: 3%{?dist}
|
#%%global rc_ver 6
|
||||||
|
%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
|
||||||
Source0: http://llvm.org/releases/%{version}/%{name}-%{version}.src.tar.xz
|
%if 0%{?rc_ver:1}
|
||||||
|
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
|
||||||
|
|
||||||
# recognize s390 as SystemZ when configuring build
|
Patch0: 0001-CMake-Split-static-library-exports-into-their-own-ex.patch
|
||||||
Patch0: llvm-3.7.1-cmake-s390.patch
|
Patch1: 0001-CMake-Split-test-binary-exports-into-their-own-expor.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
|
||||||
BuildRequires: libstdc++-static
|
%ifarch %{valgrind_arches}
|
||||||
|
# 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
|
||||||
@ -50,8 +96,15 @@ 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(post): %{_sbindir}/alternatives
|
Requires: %{name}-libs%{?_isa} = %{version}-%{release}
|
||||||
Requires(postun): %{_sbindir}/alternatives
|
# The installed LLVM cmake files will add -ledit to the linker flags for any
|
||||||
|
# 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
|
||||||
@ -73,45 +126,79 @@ 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.
|
||||||
|
|
||||||
%prep
|
%if %{without compat_build}
|
||||||
%autosetup -n %{name}-%{version}.src -p1
|
|
||||||
|
|
||||||
%ifarch armv7hl
|
%package test
|
||||||
|
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
|
||||||
|
|
||||||
# These tests are marked as XFAIL, but they still run and hang on ARM.
|
Provides: llvm-test(major) = %{maj_ver}
|
||||||
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
|
%ifarch s390 %{arm} %ix86
|
||||||
# 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_SHARED_LINKER_FLAGS="-Wl,-Bsymbolic -static-libstdc++" \
|
-DCMAKE_INSTALL_RPATH=";" \
|
||||||
%ifarch s390
|
%ifarch s390 %{arm} %ix86
|
||||||
-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="X86;AMDGPU;PowerPC;NVPTX;SystemZ;AArch64;ARM;Mips;BPF" \
|
-DLLVM_TARGETS_TO_BUILD=all \
|
||||||
-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 \
|
||||||
@ -119,6 +206,7 @@ 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 \
|
||||||
\
|
\
|
||||||
@ -132,14 +220,20 @@ 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=%{llvm_bindir} \
|
-DLLVM_UTILS_INSTALL_DIR:PATH=%{_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 \
|
||||||
@ -147,72 +241,552 @@ 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
|
||||||
|
|
||||||
make %{?_smp_mflags}
|
# Build libLLVM.so first. This ensures that when libLLVM.so is linking, there
|
||||||
|
# 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
|
||||||
cd _build
|
%ninja_install -C _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
|
||||||
|
|
||||||
%check
|
# Install libraries needed for unittests
|
||||||
cd _build
|
%if 0%{?__isa_bits} == 64
|
||||||
make check-all || :
|
%global build_libdir _build/lib64
|
||||||
|
%else
|
||||||
|
%global build_libdir _build/lib
|
||||||
|
%endif
|
||||||
|
|
||||||
%post libs -p /sbin/ldconfig
|
install %{build_libdir}/libLLVMTestingSupport.a %{buildroot}%{_libdir}
|
||||||
%postun libs -p /sbin/ldconfig
|
|
||||||
|
%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
|
||||||
|
# TODO: Fix test failures on arm
|
||||||
|
ninja check-all -C _build || \
|
||||||
|
%ifarch %{arm}
|
||||||
|
:
|
||||||
|
%else
|
||||||
|
false
|
||||||
|
%endif
|
||||||
|
|
||||||
|
%ldconfig_scriptlets libs
|
||||||
|
|
||||||
|
%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-%{__isa_bits}
|
%{_sbindir}/update-alternatives --remove llvm-config %{_bindir}/llvm-config
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
%endif
|
||||||
|
|
||||||
%files
|
%files
|
||||||
|
%exclude %{_mandir}/man1/llvm-config*
|
||||||
|
%{_mandir}/man1/*
|
||||||
%{_bindir}/*
|
%{_bindir}/*
|
||||||
%{llvm_bindir}
|
|
||||||
%{_mandir}/man1/*.1.*
|
%if %{without compat_build}
|
||||||
%exclude %{_bindir}/llvm-config-%{__isa_bits}
|
%exclude %{_bindir}/llvm-config-%{__isa_bits}
|
||||||
%exclude %{_mandir}/man1/llvm-config.1.*
|
%exclude %{_bindir}/not
|
||||||
|
%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
|
||||||
%{_libdir}/BugpointPasses.so
|
%{pkg_libdir}/libLLVM-%{maj_ver}.so
|
||||||
%{_libdir}/LLVMHello.so
|
%if %{without compat_build}
|
||||||
%if %{with gold}
|
%if %{with gold}
|
||||||
%{_libdir}/LLVMgold.so
|
%{_libdir}/LLVMgold.so
|
||||||
%endif
|
%endif
|
||||||
%{_libdir}/libLLVM-4.0*.so
|
%{_libdir}/libLLVM-%{maj_ver}.%{min_ver}*.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.1.*
|
%{_mandir}/man1/llvm-config*
|
||||||
%{_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
|
||||||
* Mon Mar 19 2018 Tom Stellard <tstellar@redhat.com> - 4.0.1-3
|
* Wed Mar 25 2020 sguelton@redhat.com - 10.0.0-1
|
||||||
- Backport r296811, r297001, and r327651 from trunk. rhbz#1554349
|
- 10.0.0 final
|
||||||
|
|
||||||
* Tue Nov 21 2017 Tom Stellard <tstellar@redhat.com> - 4.0.1-2
|
* Mon Mar 23 2020 sguelton@redhat.com - 10.0.0-0.6.rc6
|
||||||
- Backport r318289 to fix a debuginfo issue with rust.
|
- 10.0.0 rc6
|
||||||
|
|
||||||
|
* 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
|
||||||
@ -236,7 +810,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.
|
||||||
|
58
run-lit-tests
Executable file
58
run-lit-tests
Executable file
@ -0,0 +1,58 @@
|
|||||||
|
#!/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
|
@ -1,70 +0,0 @@
|
|||||||
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 +1,2 @@
|
|||||||
SHA512 (llvm-4.0.1.src.tar.xz) = 16adc39b34ddb628f81b171119a8e2a0e9138b25011e803ef0b688e2fbea116fc4953d3a1b61b90a98a75e33619f81566b7cb06a9a2ea4d04ac5e0eb303a2d1d
|
SHA512 (llvm-10.0.0.src.tar.xz) = 7dc961aacee3a01ecc002ff2b688a2ef50661856d2abd5ecc90566ffcad7566e4976736cd339ea96592e452cd5a17aaceba9712b2effec805661cca8ff020ee7
|
||||||
|
SHA512 (llvm-10.0.0.src.tar.xz.sig) = 2e4c61af5d84db4bc7a8ab51367210c529ae02e401b7a73a449f79bf9d92654ccf36fdef0f552c8850df0e94bcafce2359180ad0cdf720be7c874a782a936878
|
||||||
|
1
tests/.fmf/version
Normal file
1
tests/.fmf/version
Normal file
@ -0,0 +1 @@
|
|||||||
|
1
|
16
tests/build-compat/runtest.sh
Executable file
16
tests/build-compat/runtest.sh
Executable file
@ -0,0 +1,16 @@
|
|||||||
|
#!/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
|
5
tests/provision.fmf
Normal file
5
tests/provision.fmf
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
---
|
||||||
|
|
||||||
|
standard-inventory-qcow2:
|
||||||
|
qemu:
|
||||||
|
m: 2G
|
30
tests/tests.yml
Normal file
30
tests/tests.yml
Normal file
@ -0,0 +1,30 @@
|
|||||||
|
- 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
|
31
tests/testsllvm-devel.yml
Normal file
31
tests/testsllvm-devel.yml
Normal file
@ -0,0 +1,31 @@
|
|||||||
|
- 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