Compare commits
9 Commits
Author | SHA1 | Date |
---|---|---|
Tom Stellard | 6114ffe50f | |
Tom Stellard | 6640c739a1 | |
Tom Stellard | a04eb20439 | |
Tom Stellard | 2653f0039c | |
Tom Stellard | 64558d28cf | |
Tom Stellard | 7a0f3d9fb9 | |
Tom Stellard | eaeb4a01bc | |
Tom Stellard | c2e80ad87a | |
Tom Stellard | 2839cf60b0 |
|
@ -34,37 +34,4 @@
|
|||
/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
|
||||
/llvm-5.0.2.src.tar.xz
|
||||
|
|
|
@ -0,0 +1,44 @@
|
|||
From 974c288631ef8d05bf3a3f91b32bf38eae16e5c8 Mon Sep 17 00:00:00 2001
|
||||
From: Tom Stellard <tstellar@redhat.com>
|
||||
Date: Mon, 6 Mar 2017 13:55:55 +0000
|
||||
Subject: [PATCH] CMake: Add LLVM_UTILS_INSTALL_DIR option
|
||||
|
||||
This is like the LLVM_TOOLS_INSTALL_DIR option, but for the utils
|
||||
that are installed when the LLVM_INSTALL_UTILS. This option
|
||||
defaults to 'bin' to remain consistent with the current behavior, but
|
||||
distros may want to install these to libexec/llvm.
|
||||
---
|
||||
CMakeLists.txt | 3 +++
|
||||
cmake/modules/AddLLVM.cmake | 2 +-
|
||||
2 files changed, 4 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/CMakeLists.txt b/CMakeLists.txt
|
||||
index 58ee3cf..f93405c 100644
|
||||
--- a/CMakeLists.txt
|
||||
+++ b/CMakeLists.txt
|
||||
@@ -281,6 +281,9 @@ set(LLVM_LIBDIR_SUFFIX "" CACHE STRING "Define suffix of library directory name
|
||||
set(LLVM_TOOLS_INSTALL_DIR "bin" CACHE STRING "Path for binary subdirectory (defaults to 'bin')")
|
||||
mark_as_advanced(LLVM_TOOLS_INSTALL_DIR)
|
||||
|
||||
+set(LLVM_UTILS_INSTALL_DIR "bin" CACHE STRING "Path to install LLVM utilities (enabled by LLVM_INSTALL_UTILS=ON) (defaults to 'bin')")
|
||||
+mark_as_advanced(LLVM_TOOLS_INSTALL_DIR)
|
||||
+
|
||||
# They are used as destination of target generators.
|
||||
set(LLVM_RUNTIME_OUTPUT_INTDIR ${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/bin)
|
||||
set(LLVM_LIBRARY_OUTPUT_INTDIR ${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/lib${LLVM_LIBDIR_SUFFIX})
|
||||
diff --git a/cmake/modules/AddLLVM.cmake b/cmake/modules/AddLLVM.cmake
|
||||
index 7f7608c..0da8162 100644
|
||||
--- a/cmake/modules/AddLLVM.cmake
|
||||
+++ b/cmake/modules/AddLLVM.cmake
|
||||
@@ -864,7 +864,7 @@ macro(add_llvm_utility name)
|
||||
set_target_properties(${name} PROPERTIES FOLDER "Utils")
|
||||
if( LLVM_INSTALL_UTILS AND LLVM_BUILD_UTILS )
|
||||
install (TARGETS ${name}
|
||||
- RUNTIME DESTINATION bin
|
||||
+ RUNTIME DESTINATION ${LLVM_UTILS_INSTALL_DIR}
|
||||
COMPONENT ${name})
|
||||
if (NOT CMAKE_CONFIGURATION_TYPES)
|
||||
add_custom_target(install-${name}
|
||||
--
|
||||
2.9.3
|
||||
|
|
@ -0,0 +1,42 @@
|
|||
From af79e4116c4476153869e1fd4aa30c87d4c7c21e Mon Sep 17 00:00:00 2001
|
||||
From: Tom Stellard <tstellar@redhat.com>
|
||||
Date: Mon, 15 May 2017 09:34:23 +0000
|
||||
Subject: [PATCH] CMake: Fix docs-llvm-man target when clang+llvm is in the
|
||||
same source tree
|
||||
|
||||
Summary:
|
||||
This was broken by r302499. Configuring with -DLLVM_BUILD_DOCS=ON would
|
||||
cause the docs-llvm-man target not to be created.
|
||||
|
||||
Reviewers: anemet, beanz
|
||||
|
||||
Reviewed By: anemet
|
||||
|
||||
Subscribers: llvm-commits, mgorny
|
||||
|
||||
Differential Revision: https://reviews.llvm.org/D33146
|
||||
|
||||
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@303042 91177308-0d34-0410-b5e6-96231b3b80d8
|
||||
---
|
||||
cmake/modules/AddSphinxTarget.cmake | 4 ++--
|
||||
1 file changed, 2 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/cmake/modules/AddSphinxTarget.cmake b/cmake/modules/AddSphinxTarget.cmake
|
||||
index c3a676d..4540c5c 100644
|
||||
--- a/cmake/modules/AddSphinxTarget.cmake
|
||||
+++ b/cmake/modules/AddSphinxTarget.cmake
|
||||
@@ -1,9 +1,9 @@
|
||||
|
||||
# Create sphinx target
|
||||
-if (LLVM_ENABLE_SPHINX AND NOT TARGET sphinx)
|
||||
+if (LLVM_ENABLE_SPHINX)
|
||||
message(STATUS "Sphinx enabled.")
|
||||
find_package(Sphinx REQUIRED)
|
||||
- if (LLVM_BUILD_DOCS)
|
||||
+ if (LLVM_BUILD_DOCS AND NOT TARGET sphinx)
|
||||
add_custom_target(sphinx ALL)
|
||||
endif()
|
||||
else()
|
||||
--
|
||||
1.8.3.1
|
||||
|
|
@ -1,22 +1,42 @@
|
|||
From 8f6917ea11bd1bfbfe07f3577756d1c4abfdb916 Mon Sep 17 00:00:00 2001
|
||||
From 80d3393d3e324dd8bef7de1b9c6db3010585f3e8 Mon Sep 17 00:00:00 2001
|
||||
From: Tom Stellard <tstellar@redhat.com>
|
||||
Date: Fri, 6 Sep 2019 11:03:18 -0700
|
||||
Date: Sat, 29 Apr 2017 02:03:23 +0000
|
||||
Subject: [PATCH] CMake: Split static library exports into their own export
|
||||
file
|
||||
|
||||
Summary:
|
||||
This is to better support distros which split the static libraries into
|
||||
their own package.
|
||||
|
||||
The current problem is that any project the includes LLVMConfig.cmake
|
||||
will fail to configure unless the static libraries are installed. This
|
||||
is because LLVMConfig.cmake includes LLVMExports.cmake, which throws an
|
||||
error if it can't find files linked to one of the exported targets.
|
||||
|
||||
This patch resolves the problem by putting the static library targets
|
||||
into their own export file, LLVMStaticExports.cmake. This file
|
||||
is optionally included by LLVMConfig.cmake, so distros can put this
|
||||
new file in their static library package to make LLVMConfig.cmake
|
||||
no longer depend on these libraries when they are not installed.
|
||||
|
||||
Reviewers: beanz, mgorny, chapuni
|
||||
|
||||
Subscribers: llvm-commits
|
||||
|
||||
Differential Revision: https://reviews.llvm.org/D32668
|
||||
---
|
||||
llvm/cmake/modules/AddLLVM.cmake | 6 +++++-
|
||||
llvm/cmake/modules/CMakeLists.txt | 3 +++
|
||||
llvm/cmake/modules/LLVMConfig.cmake.in | 2 ++
|
||||
cmake/modules/AddLLVM.cmake | 6 +++++-
|
||||
cmake/modules/CMakeLists.txt | 3 +++
|
||||
cmake/modules/LLVMConfig.cmake.in | 2 ++
|
||||
3 files changed, 10 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/llvm/cmake/modules/AddLLVM.cmake b/llvm/cmake/modules/AddLLVM.cmake
|
||||
index 619e986..200fc45 100644
|
||||
--- a/llvm/cmake/modules/AddLLVM.cmake
|
||||
+++ b/llvm/cmake/modules/AddLLVM.cmake
|
||||
@@ -691,7 +691,11 @@ macro(add_llvm_library name)
|
||||
diff --git a/cmake/modules/AddLLVM.cmake b/cmake/modules/AddLLVM.cmake
|
||||
index 1c92265..e1ad9b9 100644
|
||||
--- a/cmake/modules/AddLLVM.cmake
|
||||
+++ b/cmake/modules/AddLLVM.cmake
|
||||
@@ -603,7 +603,11 @@ macro(add_llvm_library name)
|
||||
|
||||
if(${name} IN_LIST LLVM_DISTRIBUTION_COMPONENTS OR
|
||||
(in_llvm_libs AND "llvm-libraries" IN_LIST LLVM_DISTRIBUTION_COMPONENTS) OR
|
||||
NOT LLVM_DISTRIBUTION_COMPONENTS)
|
||||
- set(export_to_llvmexports EXPORT LLVMExports)
|
||||
+ if (ARG_SHARED)
|
||||
|
@ -27,11 +47,11 @@ index 619e986..200fc45 100644
|
|||
set_property(GLOBAL PROPERTY LLVM_HAS_EXPORTS True)
|
||||
endif()
|
||||
|
||||
diff --git a/llvm/cmake/modules/CMakeLists.txt b/llvm/cmake/modules/CMakeLists.txt
|
||||
index 9cf22b4..dc982d2 100644
|
||||
--- a/llvm/cmake/modules/CMakeLists.txt
|
||||
+++ b/llvm/cmake/modules/CMakeLists.txt
|
||||
@@ -105,6 +105,7 @@ set(LLVM_CONFIG_BINARY_DIR "\${LLVM_INSTALL_PREFIX}")
|
||||
diff --git a/cmake/modules/CMakeLists.txt b/cmake/modules/CMakeLists.txt
|
||||
index ac4b0b7..f77c905 100644
|
||||
--- a/cmake/modules/CMakeLists.txt
|
||||
+++ b/cmake/modules/CMakeLists.txt
|
||||
@@ -91,6 +91,7 @@ set(LLVM_CONFIG_BINARY_DIR "\${LLVM_INSTALL_PREFIX}")
|
||||
set(LLVM_CONFIG_TOOLS_BINARY_DIR "\${LLVM_INSTALL_PREFIX}/bin")
|
||||
set(LLVM_CONFIG_EXPORTS_FILE "\${LLVM_CMAKE_DIR}/LLVMExports.cmake")
|
||||
set(LLVM_CONFIG_EXPORTS "${LLVM_EXPORTS}")
|
||||
|
@ -39,7 +59,7 @@ index 9cf22b4..dc982d2 100644
|
|||
configure_file(
|
||||
LLVMConfig.cmake.in
|
||||
${CMAKE_CURRENT_BINARY_DIR}/CMakeFiles/LLVMConfig.cmake
|
||||
@@ -121,6 +122,8 @@ if (NOT LLVM_INSTALL_TOOLCHAIN_ONLY)
|
||||
@@ -107,6 +108,8 @@ if (NOT LLVM_INSTALL_TOOLCHAIN_ONLY)
|
||||
if(llvm_has_exports)
|
||||
install(EXPORT LLVMExports DESTINATION ${LLVM_INSTALL_PACKAGE_DIR}
|
||||
COMPONENT cmake-exports)
|
||||
|
@ -48,11 +68,11 @@ index 9cf22b4..dc982d2 100644
|
|||
endif()
|
||||
|
||||
install(FILES
|
||||
diff --git a/llvm/cmake/modules/LLVMConfig.cmake.in b/llvm/cmake/modules/LLVMConfig.cmake.in
|
||||
index 536031f..6ef54a0 100644
|
||||
--- a/llvm/cmake/modules/LLVMConfig.cmake.in
|
||||
+++ b/llvm/cmake/modules/LLVMConfig.cmake.in
|
||||
@@ -89,6 +89,8 @@ if(NOT TARGET LLVMSupport)
|
||||
diff --git a/cmake/modules/LLVMConfig.cmake.in b/cmake/modules/LLVMConfig.cmake.in
|
||||
index 7a8eb36..1fa0028 100644
|
||||
--- a/cmake/modules/LLVMConfig.cmake.in
|
||||
+++ b/cmake/modules/LLVMConfig.cmake.in
|
||||
@@ -77,6 +77,8 @@ if(NOT TARGET LLVMSupport)
|
||||
set(LLVM_EXPORTED_TARGETS "@LLVM_CONFIG_EXPORTS@")
|
||||
include("@LLVM_CONFIG_EXPORTS_FILE@")
|
||||
@llvm_config_include_buildtree_only_exports@
|
||||
|
@ -60,7 +80,7 @@ index 536031f..6ef54a0 100644
|
|||
+ include("@LLVM_CONFIG_STATIC_EXPORTS_FILE@" OPTIONAL)
|
||||
endif()
|
||||
|
||||
# By creating intrinsics_gen here, subprojects that depend on LLVM's
|
||||
set_property(GLOBAL PROPERTY LLVM_TARGETS_CONFIGURED On)
|
||||
--
|
||||
1.8.3.1
|
||||
|
||||
|
|
|
@ -1,65 +0,0 @@
|
|||
From 9d496e978f59e153bb76e92229d5a524d92dee04 Mon Sep 17 00:00:00 2001
|
||||
From: Tom Stellard <tstellar@redhat.com>
|
||||
Date: Tue, 10 Sep 2019 13:33:48 -0700
|
||||
Subject: [PATCH] CMake: Split test binary exports into their own export file
|
||||
|
||||
---
|
||||
llvm/cmake/modules/AddLLVM.cmake | 7 ++++++-
|
||||
llvm/cmake/modules/CMakeLists.txt | 3 +++
|
||||
llvm/cmake/modules/LLVMConfig.cmake.in | 1 +
|
||||
3 files changed, 10 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/llvm/cmake/modules/AddLLVM.cmake b/llvm/cmake/modules/AddLLVM.cmake
|
||||
index 200fc45..9eec7a7 100644
|
||||
--- a/llvm/cmake/modules/AddLLVM.cmake
|
||||
+++ b/llvm/cmake/modules/AddLLVM.cmake
|
||||
@@ -953,7 +953,12 @@ macro(add_llvm_utility name)
|
||||
set(export_to_llvmexports)
|
||||
if (${name} IN_LIST LLVM_DISTRIBUTION_COMPONENTS OR
|
||||
NOT LLVM_DISTRIBUTION_COMPONENTS)
|
||||
- set(export_to_llvmexports EXPORT LLVMExports)
|
||||
+ if (${name} STREQUAL "not" OR ${name} STREQUAL "count" OR
|
||||
+ ${name} STREQUAL "yaml-bench" OR ${name} STREQUAL "lli-child-target")
|
||||
+ set(export_to_llvmexports EXPORT LLVMTestExports)
|
||||
+ else()
|
||||
+ set(export_to_llvmexports EXPORT LLVMExports)
|
||||
+ endif()
|
||||
set_property(GLOBAL PROPERTY LLVM_HAS_EXPORTS True)
|
||||
endif()
|
||||
|
||||
diff --git a/llvm/cmake/modules/CMakeLists.txt b/llvm/cmake/modules/CMakeLists.txt
|
||||
index dc982d2..c861f45 100644
|
||||
--- a/llvm/cmake/modules/CMakeLists.txt
|
||||
+++ b/llvm/cmake/modules/CMakeLists.txt
|
||||
@@ -106,6 +106,7 @@ set(LLVM_CONFIG_TOOLS_BINARY_DIR "\${LLVM_INSTALL_PREFIX}/bin")
|
||||
set(LLVM_CONFIG_EXPORTS_FILE "\${LLVM_CMAKE_DIR}/LLVMExports.cmake")
|
||||
set(LLVM_CONFIG_EXPORTS "${LLVM_EXPORTS}")
|
||||
set(LLVM_CONFIG_STATIC_EXPORTS_FILE "\${LLVM_CMAKE_DIR}/LLVMStaticExports.cmake")
|
||||
+set(LLVM_CONFIG_TEST_EXPORTS_FILE "\${LLVM_CMAKE_DIR}/LLVMTestExports.cmake")
|
||||
configure_file(
|
||||
LLVMConfig.cmake.in
|
||||
${CMAKE_CURRENT_BINARY_DIR}/CMakeFiles/LLVMConfig.cmake
|
||||
@@ -124,6 +125,8 @@ if (NOT LLVM_INSTALL_TOOLCHAIN_ONLY)
|
||||
COMPONENT cmake-exports)
|
||||
install(EXPORT LLVMStaticExports DESTINATION ${LLVM_INSTALL_PACKAGE_DIR}
|
||||
COMPONENT cmake-exports)
|
||||
+ install(EXPORT LLVMTestExports DESTINATION ${LLVM_INSTALL_PACKAGE_DIR}
|
||||
+ COMPONENT cmake-exports)
|
||||
endif()
|
||||
|
||||
install(FILES
|
||||
diff --git a/llvm/cmake/modules/LLVMConfig.cmake.in b/llvm/cmake/modules/LLVMConfig.cmake.in
|
||||
index 6ef54a0..d81b09a 100644
|
||||
--- a/llvm/cmake/modules/LLVMConfig.cmake.in
|
||||
+++ b/llvm/cmake/modules/LLVMConfig.cmake.in
|
||||
@@ -91,6 +91,7 @@ if(NOT TARGET LLVMSupport)
|
||||
@llvm_config_include_buildtree_only_exports@
|
||||
|
||||
include("@LLVM_CONFIG_STATIC_EXPORTS_FILE@" OPTIONAL)
|
||||
+ include("@LLVM_CONFIG_TEST_EXPORTS_FILE@" OPTIONAL)
|
||||
endif()
|
||||
|
||||
# By creating intrinsics_gen here, subprojects that depend on LLVM's
|
||||
--
|
||||
1.8.3.1
|
||||
|
|
@ -0,0 +1,105 @@
|
|||
From 9848d812bc6a5ecbac4b64b28d580f5f5ce16c4f Mon Sep 17 00:00:00 2001
|
||||
From: Bjorn Steinbrink <bsteinbr@gmail.com>
|
||||
Date: Tue, 10 Oct 2017 07:46:17 +0000
|
||||
Subject: [PATCH 1/2] Ignore all duplicate frame index expression
|
||||
|
||||
Some passes might duplicate calls to llvm.dbg.declare creating
|
||||
duplicate frame index expression which currently trigger an assertion
|
||||
which is meant to catch erroneous, overlapping fragment declarations.
|
||||
But identical frame index expressions are just redundant and don't
|
||||
actually conflict with each other, so we can be more lenient and just
|
||||
ignore the duplicates.
|
||||
|
||||
Reviewers: aprantl, rnk
|
||||
|
||||
Subscribers: llvm-commits, JDevlieghere
|
||||
|
||||
Differential Revision: https://reviews.llvm.org/D38540
|
||||
|
||||
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@315279 91177308-0d34-0410-b5e6-96231b3b80d8
|
||||
|
||||
Conflicts:
|
||||
lib/CodeGen/AsmPrinter/DwarfDebug.h
|
||||
---
|
||||
lib/CodeGen/AsmPrinter/DwarfDebug.cpp | 25 +++++++++++++++++++++++++
|
||||
lib/CodeGen/AsmPrinter/DwarfDebug.h | 25 +------------------------
|
||||
2 files changed, 26 insertions(+), 24 deletions(-)
|
||||
|
||||
diff --git a/lib/CodeGen/AsmPrinter/DwarfDebug.cpp b/lib/CodeGen/AsmPrinter/DwarfDebug.cpp
|
||||
index f1b4d9f..90f6f2f 100644
|
||||
--- a/lib/CodeGen/AsmPrinter/DwarfDebug.cpp
|
||||
+++ b/lib/CodeGen/AsmPrinter/DwarfDebug.cpp
|
||||
@@ -206,9 +206,34 @@ ArrayRef<DbgVariable::FrameIndexExpr> DbgVariable::getFrameIndexExprs() const {
|
||||
return A.Expr->getFragmentInfo()->OffsetInBits <
|
||||
B.Expr->getFragmentInfo()->OffsetInBits;
|
||||
});
|
||||
+
|
||||
return FrameIndexExprs;
|
||||
}
|
||||
|
||||
+void DbgVariable::addMMIEntry(const DbgVariable &V) {
|
||||
+ assert(DebugLocListIndex == ~0U && !MInsn && "not an MMI entry");
|
||||
+ assert(V.DebugLocListIndex == ~0U && !V.MInsn && "not an MMI entry");
|
||||
+ assert(V.Var == Var && "conflicting variable");
|
||||
+ assert(V.IA == IA && "conflicting inlined-at location");
|
||||
+
|
||||
+ assert(!FrameIndexExprs.empty() && "Expected an MMI entry");
|
||||
+ assert(!V.FrameIndexExprs.empty() && "Expected an MMI entry");
|
||||
+
|
||||
+ for (const auto &FIE : V.FrameIndexExprs)
|
||||
+ // Ignore duplicate entries.
|
||||
+ if (llvm::none_of(FrameIndexExprs, [&](const FrameIndexExpr &Other) {
|
||||
+ return FIE.FI == Other.FI && FIE.Expr == Other.Expr;
|
||||
+ }))
|
||||
+ FrameIndexExprs.push_back(FIE);
|
||||
+
|
||||
+ assert((FrameIndexExprs.size() == 1 ||
|
||||
+ llvm::all_of(FrameIndexExprs,
|
||||
+ [](FrameIndexExpr &FIE) {
|
||||
+ return FIE.Expr && FIE.Expr->isFragment();
|
||||
+ })) &&
|
||||
+ "conflicting locations for variable");
|
||||
+}
|
||||
+
|
||||
static const DwarfAccelTable::Atom TypeAtoms[] = {
|
||||
DwarfAccelTable::Atom(dwarf::DW_ATOM_die_offset, dwarf::DW_FORM_data4),
|
||||
DwarfAccelTable::Atom(dwarf::DW_ATOM_die_tag, dwarf::DW_FORM_data2),
|
||||
diff --git a/lib/CodeGen/AsmPrinter/DwarfDebug.h b/lib/CodeGen/AsmPrinter/DwarfDebug.h
|
||||
index 78ee9a1..44107aa 100644
|
||||
--- a/lib/CodeGen/AsmPrinter/DwarfDebug.h
|
||||
+++ b/lib/CodeGen/AsmPrinter/DwarfDebug.h
|
||||
@@ -124,30 +124,7 @@ public:
|
||||
/// Get the FI entries, sorted by fragment offset.
|
||||
ArrayRef<FrameIndexExpr> getFrameIndexExprs() const;
|
||||
bool hasFrameIndexExprs() const { return !FrameIndexExprs.empty(); }
|
||||
-
|
||||
- void addMMIEntry(const DbgVariable &V) {
|
||||
- assert(DebugLocListIndex == ~0U && !MInsn && "not an MMI entry");
|
||||
- assert(V.DebugLocListIndex == ~0U && !V.MInsn && "not an MMI entry");
|
||||
- assert(V.Var == Var && "conflicting variable");
|
||||
- assert(V.IA == IA && "conflicting inlined-at location");
|
||||
-
|
||||
- assert(!FrameIndexExprs.empty() && "Expected an MMI entry");
|
||||
- assert(!V.FrameIndexExprs.empty() && "Expected an MMI entry");
|
||||
-
|
||||
- if (FrameIndexExprs.size()) {
|
||||
- auto *Expr = FrameIndexExprs.back().Expr;
|
||||
- // Get rid of duplicate non-fragment entries. More than one non-fragment
|
||||
- // dbg.declare makes no sense so ignore all but the first.
|
||||
- if (!Expr || !Expr->isFragment())
|
||||
- return;
|
||||
- }
|
||||
- FrameIndexExprs.append(V.FrameIndexExprs.begin(), V.FrameIndexExprs.end());
|
||||
- assert(all_of(FrameIndexExprs,
|
||||
- [](FrameIndexExpr &FIE) {
|
||||
- return FIE.Expr && FIE.Expr->isFragment();
|
||||
- }) &&
|
||||
- "conflicting locations for variable");
|
||||
- }
|
||||
+ void addMMIEntry(const DbgVariable &V);
|
||||
|
||||
// Translate tag to proper Dwarf tag.
|
||||
dwarf::Tag getTag() const {
|
||||
--
|
||||
1.8.3.1
|
||||
|
|
@ -0,0 +1,69 @@
|
|||
From 3ab40462f17659a4ae14b1f8aa7036e65377a199 Mon Sep 17 00:00:00 2001
|
||||
From: Guozhi Wei <carrot@google.com>
|
||||
Date: Thu, 15 Mar 2018 17:49:12 +0000
|
||||
Subject: [PATCH] [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 b3a3c73..7fc3627 100644
|
||||
--- a/lib/Target/PowerPC/PPCISelLowering.cpp
|
||||
+++ b/lib/Target/PowerPC/PPCISelLowering.cpp
|
||||
@@ -11861,6 +11861,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)
|
||||
@@ -11868,7 +11873,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
|
||||
|
|
@ -0,0 +1,79 @@
|
|||
From a481ab548d038c1dfd52ee211b997e2dd33ff5ae Mon Sep 17 00:00:00 2001
|
||||
From: Hal Finkel <hfinkel@anl.gov>
|
||||
Date: Wed, 6 Sep 2017 03:08:26 +0000
|
||||
Subject: [PATCH] [PowerPC] Don't use xscvdpspn on the P7
|
||||
|
||||
xscvdpspn was not introduced until the P8, so don't use it on the P7. Fixes a
|
||||
regression introduced in r288152.
|
||||
|
||||
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@312612 91177308-0d34-0410-b5e6-96231b3b80d8
|
||||
---
|
||||
lib/Target/PowerPC/PPCISelLowering.cpp | 9 ++++++---
|
||||
test/CodeGen/PowerPC/fp-splat.ll | 27 +++++++++++++++++++++++++++
|
||||
2 files changed, 33 insertions(+), 3 deletions(-)
|
||||
create mode 100644 test/CodeGen/PowerPC/fp-splat.ll
|
||||
|
||||
diff --git a/lib/Target/PowerPC/PPCISelLowering.cpp b/lib/Target/PowerPC/PPCISelLowering.cpp
|
||||
index 74dedaf..6295693 100644
|
||||
--- a/lib/Target/PowerPC/PPCISelLowering.cpp
|
||||
+++ b/lib/Target/PowerPC/PPCISelLowering.cpp
|
||||
@@ -7463,9 +7463,11 @@ static SDValue BuildVSLDOI(SDValue LHS, SDValue RHS, unsigned Amt, EVT VT,
|
||||
/// - The node is a "load-and-splat"
|
||||
/// In all other cases, we will choose to keep the BUILD_VECTOR.
|
||||
static bool haveEfficientBuildVectorPattern(BuildVectorSDNode *V,
|
||||
- bool HasDirectMove) {
|
||||
+ bool HasDirectMove,
|
||||
+ bool HasP8Vector) {
|
||||
EVT VecVT = V->getValueType(0);
|
||||
- bool RightType = VecVT == MVT::v2f64 || VecVT == MVT::v4f32 ||
|
||||
+ bool RightType = VecVT == MVT::v2f64 ||
|
||||
+ (HasP8Vector && VecVT == MVT::v4f32) ||
|
||||
(HasDirectMove && (VecVT == MVT::v2i64 || VecVT == MVT::v4i32));
|
||||
if (!RightType)
|
||||
return false;
|
||||
@@ -7627,7 +7629,8 @@ SDValue PPCTargetLowering::LowerBUILD_VECTOR(SDValue Op,
|
||||
// lowered to VSX instructions under certain conditions.
|
||||
// Without VSX, there is no pattern more efficient than expanding the node.
|
||||
if (Subtarget.hasVSX() &&
|
||||
- haveEfficientBuildVectorPattern(BVN, Subtarget.hasDirectMove()))
|
||||
+ haveEfficientBuildVectorPattern(BVN, Subtarget.hasDirectMove(),
|
||||
+ Subtarget.hasP8Vector()))
|
||||
return Op;
|
||||
return SDValue();
|
||||
}
|
||||
diff --git a/test/CodeGen/PowerPC/fp-splat.ll b/test/CodeGen/PowerPC/fp-splat.ll
|
||||
new file mode 100644
|
||||
index 0000000..9b1ab21
|
||||
--- /dev/null
|
||||
+++ b/test/CodeGen/PowerPC/fp-splat.ll
|
||||
@@ -0,0 +1,27 @@
|
||||
+; RUN: llc -mcpu=pwr8 -mtriple=powerpc64le-unknown-linux-gnu < %s | FileCheck %s -check-prefix=CHECK-P8 -check-prefix=CHECK
|
||||
+; RUN: llc -mcpu=pwr7 -mtriple=powerpc64-unknown-linux-gnu < %s | FileCheck %s -check-prefix=CHECK-P7 -check-prefix=CHECK
|
||||
+
|
||||
+define <4 x float> @test1(float %a) {
|
||||
+entry:
|
||||
+; CHECK-LABEL: test1
|
||||
+ %vecins = insertelement <4 x float> undef, float %a, i32 0
|
||||
+ %vecins1 = insertelement <4 x float> %vecins, float %a, i32 1
|
||||
+ %vecins2 = insertelement <4 x float> %vecins1, float %a, i32 2
|
||||
+ %vecins3 = insertelement <4 x float> %vecins2, float %a, i32 3
|
||||
+ ret <4 x float> %vecins3
|
||||
+; CHECK-P8: xscvdpspn
|
||||
+; CHECK-P7-NOT: xscvdpspn
|
||||
+; CHECK: blr
|
||||
+}
|
||||
+
|
||||
+define <2 x double> @test2(double %a) {
|
||||
+entry:
|
||||
+; CHECK-LABEL: test2
|
||||
+ %vecins = insertelement <2 x double> undef, double %a, i32 0
|
||||
+ %vecins1 = insertelement <2 x double> %vecins, double %a, i32 1
|
||||
+ ret <2 x double> %vecins1
|
||||
+; CHECK-P8: xxspltd
|
||||
+; CHECK-P7: xxspltd
|
||||
+; CHECK: blr
|
||||
+}
|
||||
+
|
||||
--
|
||||
1.8.3.1
|
||||
|
|
@ -0,0 +1,61 @@
|
|||
From 2912190aec4a215849a6dea0463f6599425fb7c7 Mon Sep 17 00:00:00 2001
|
||||
From: Tom Stellard <tstellar@redhat.com>
|
||||
Date: Mon, 14 Aug 2017 17:46:14 -0700
|
||||
Subject: [PATCH] Revert "Add a linker script to version LLVM symbols"
|
||||
|
||||
This reverts commit cd789d8cfe12aa374e66eafc748f4fc06e149ca7.
|
||||
|
||||
Conflicts:
|
||||
tools/llvm-shlib/CMakeLists.txt
|
||||
---
|
||||
cmake/modules/AddLLVM.cmake | 3 +--
|
||||
tools/llvm-shlib/CMakeLists.txt | 8 ++------
|
||||
tools/llvm-shlib/simple_version_script.map.in | 1 -
|
||||
3 files changed, 3 insertions(+), 9 deletions(-)
|
||||
delete mode 100644 tools/llvm-shlib/simple_version_script.map.in
|
||||
|
||||
diff --git a/cmake/modules/AddLLVM.cmake b/cmake/modules/AddLLVM.cmake
|
||||
index e1ad9b9..e5ee4ee 100644
|
||||
--- a/cmake/modules/AddLLVM.cmake
|
||||
+++ b/cmake/modules/AddLLVM.cmake
|
||||
@@ -81,9 +81,8 @@ function(add_llvm_symbol_exports target_name export_file)
|
||||
# Gold and BFD ld require a version script rather than a plain list.
|
||||
set(native_export_file "${target_name}.exports")
|
||||
# FIXME: Don't write the "local:" line on OpenBSD.
|
||||
- # in the export file, also add a linker script to version LLVM symbols (form: LLVM_N.M)
|
||||
add_custom_command(OUTPUT ${native_export_file}
|
||||
- COMMAND echo "LLVM_${LLVM_VERSION_MAJOR}.${LLVM_VERSION_MINOR} {" > ${native_export_file}
|
||||
+ COMMAND echo "{" > ${native_export_file}
|
||||
COMMAND grep -q "[[:alnum:]]" ${export_file} && echo " global:" >> ${native_export_file} || :
|
||||
COMMAND sed -e "s/$/;/" -e "s/^/ /" < ${export_file} >> ${native_export_file}
|
||||
COMMAND echo " local: *;" >> ${native_export_file}
|
||||
diff --git a/tools/llvm-shlib/CMakeLists.txt b/tools/llvm-shlib/CMakeLists.txt
|
||||
index 907345a..01a37b5 100644
|
||||
--- a/tools/llvm-shlib/CMakeLists.txt
|
||||
+++ b/tools/llvm-shlib/CMakeLists.txt
|
||||
@@ -37,13 +37,9 @@ endif()
|
||||
add_llvm_library(LLVM SHARED DISABLE_LLVM_LINK_LLVM_DYLIB SONAME ${SOURCES})
|
||||
|
||||
list(REMOVE_DUPLICATES LIB_NAMES)
|
||||
-if(("${CMAKE_SYSTEM_NAME}" STREQUAL "Linux") OR (MINGW) OR (HAIKU) OR ("${CMAKE_SYSTEM_NAME}" STREQUAL "FreeBSD") OR ("${CMAKE_SYSTEM_NAME}" STREQUAL "DragonFly")) # FIXME: It should be "GNU ld for elf"
|
||||
- configure_file(
|
||||
- ${CMAKE_CURRENT_SOURCE_DIR}/simple_version_script.map.in
|
||||
- ${LLVM_LIBRARY_DIR}/tools/llvm-shlib/simple_version_script.map)
|
||||
-
|
||||
+if(("${CMAKE_SYSTEM_NAME}" STREQUAL "Linux") OR (MINGW) OR ("${CMAKE_SYSTEM_NAME}" STREQUAL "FreeBSD") OR ("${CMAKE_SYSTEM_NAME}" STREQUAL "DragonFly")) # FIXME: It should be "GNU ld for elf"
|
||||
# GNU ld doesn't resolve symbols in the version script.
|
||||
- set(LIB_NAMES -Wl,--version-script,${LLVM_LIBRARY_DIR}/tools/llvm-shlib/simple_version_script.map -Wl,--whole-archive ${LIB_NAMES} -Wl,--no-whole-archive)
|
||||
+ set(LIB_NAMES -Wl,--whole-archive ${LIB_NAMES} -Wl,--no-whole-archive)
|
||||
elseif("${CMAKE_SYSTEM_NAME}" STREQUAL "Darwin")
|
||||
set(LIB_NAMES -Wl,-all_load ${LIB_NAMES})
|
||||
endif()
|
||||
diff --git a/tools/llvm-shlib/simple_version_script.map.in b/tools/llvm-shlib/simple_version_script.map.in
|
||||
deleted file mode 100644
|
||||
index e9515fe..0000000
|
||||
--- a/tools/llvm-shlib/simple_version_script.map.in
|
||||
+++ /dev/null
|
||||
@@ -1 +0,0 @@
|
||||
-LLVM_@LLVM_VERSION_MAJOR@.@LLVM_VERSION_MINOR@ { global: *; };
|
||||
--
|
||||
1.8.3.1
|
||||
|
|
@ -0,0 +1,76 @@
|
|||
From 9c50cf0c6d8f0b11cd76a28cc4ef9bca6ef732e0 Mon Sep 17 00:00:00 2001
|
||||
From: Tom Stellard <tstellar@redhat.com>
|
||||
Date: Tue, 9 May 2017 01:41:28 +0000
|
||||
Subject: [PATCH] Revert "Revert "CMake: Move sphinx detection into
|
||||
AddSphinxTarget.cmake""
|
||||
|
||||
This reverts commit r302054.
|
||||
|
||||
Re-commit now that I have fixes for clang/lld.
|
||||
|
||||
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@302499 91177308-0d34-0410-b5e6-96231b3b80d8
|
||||
---
|
||||
cmake/config-ix.cmake | 10 ----------
|
||||
cmake/modules/AddSphinxTarget.cmake | 13 +++++++++++++
|
||||
docs/CMakeLists.txt | 2 +-
|
||||
3 files changed, 14 insertions(+), 11 deletions(-)
|
||||
|
||||
diff --git a/cmake/config-ix.cmake b/cmake/config-ix.cmake
|
||||
index 0331d0f..de8e9bf 100755
|
||||
--- a/cmake/config-ix.cmake
|
||||
+++ b/cmake/config-ix.cmake
|
||||
@@ -530,16 +530,6 @@ else()
|
||||
message(STATUS "Doxygen disabled.")
|
||||
endif()
|
||||
|
||||
-if (LLVM_ENABLE_SPHINX)
|
||||
- message(STATUS "Sphinx enabled.")
|
||||
- find_package(Sphinx REQUIRED)
|
||||
- if (LLVM_BUILD_DOCS)
|
||||
- add_custom_target(sphinx ALL)
|
||||
- endif()
|
||||
-else()
|
||||
- message(STATUS "Sphinx disabled.")
|
||||
-endif()
|
||||
-
|
||||
set(LLVM_BINDINGS "")
|
||||
if(WIN32)
|
||||
message(STATUS "Go bindings disabled.")
|
||||
diff --git a/cmake/modules/AddSphinxTarget.cmake b/cmake/modules/AddSphinxTarget.cmake
|
||||
index cfc7f38..c3a676d 100644
|
||||
--- a/cmake/modules/AddSphinxTarget.cmake
|
||||
+++ b/cmake/modules/AddSphinxTarget.cmake
|
||||
@@ -1,3 +1,16 @@
|
||||
+
|
||||
+# Create sphinx target
|
||||
+if (LLVM_ENABLE_SPHINX AND NOT TARGET sphinx)
|
||||
+ message(STATUS "Sphinx enabled.")
|
||||
+ find_package(Sphinx REQUIRED)
|
||||
+ if (LLVM_BUILD_DOCS)
|
||||
+ add_custom_target(sphinx ALL)
|
||||
+ endif()
|
||||
+else()
|
||||
+ message(STATUS "Sphinx disabled.")
|
||||
+endif()
|
||||
+
|
||||
+
|
||||
# Handy function for creating the different Sphinx targets.
|
||||
#
|
||||
# ``builder`` should be one of the supported builders used by
|
||||
diff --git a/docs/CMakeLists.txt b/docs/CMakeLists.txt
|
||||
index 6dff219..4437610 100644
|
||||
--- a/docs/CMakeLists.txt
|
||||
+++ b/docs/CMakeLists.txt
|
||||
@@ -103,8 +103,8 @@ endif()
|
||||
endif()
|
||||
|
||||
if (LLVM_ENABLE_SPHINX)
|
||||
+ include(AddSphinxTarget)
|
||||
if (SPHINX_FOUND)
|
||||
- include(AddSphinxTarget)
|
||||
if (${SPHINX_OUTPUT_HTML})
|
||||
add_sphinx_target(html llvm)
|
||||
endif()
|
||||
--
|
||||
1.8.3.1
|
||||
|
|
@ -0,0 +1,42 @@
|
|||
From ca865fbaa493ff3250db39786c41658037e456ab Mon Sep 17 00:00:00 2001
|
||||
From: Daniel Jasper <djasper@google.com>
|
||||
Date: Thu, 12 Oct 2017 13:25:05 +0000
|
||||
Subject: [PATCH 2/2] Reinstantiate old/bad deduplication logic that was
|
||||
removed in r315279.
|
||||
|
||||
While this shouldn't be necessary anymore, we have cases where we run
|
||||
into the assertion below, i.e. cases with two non-fragment entries for the
|
||||
same variable at different frame indices.
|
||||
|
||||
This should be fixed, but for now, we should revert to a version that
|
||||
does not trigger asserts.
|
||||
|
||||
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@315576 91177308-0d34-0410-b5e6-96231b3b80d8
|
||||
---
|
||||
lib/CodeGen/AsmPrinter/DwarfDebug.cpp | 10 ++++++++++
|
||||
1 file changed, 10 insertions(+)
|
||||
|
||||
diff --git a/lib/CodeGen/AsmPrinter/DwarfDebug.cpp b/lib/CodeGen/AsmPrinter/DwarfDebug.cpp
|
||||
index 90f6f2f..064450f 100644
|
||||
--- a/lib/CodeGen/AsmPrinter/DwarfDebug.cpp
|
||||
+++ b/lib/CodeGen/AsmPrinter/DwarfDebug.cpp
|
||||
@@ -219,6 +219,16 @@ void DbgVariable::addMMIEntry(const DbgVariable &V) {
|
||||
assert(!FrameIndexExprs.empty() && "Expected an MMI entry");
|
||||
assert(!V.FrameIndexExprs.empty() && "Expected an MMI entry");
|
||||
|
||||
+ // FIXME: This logic should not be necessary anymore, as we now have proper
|
||||
+ // deduplication. However, without it, we currently run into the assertion
|
||||
+ // below, which means that we are likely dealing with broken input, i.e. two
|
||||
+ // non-fragment entries for the same variable at different frame indices.
|
||||
+ if (FrameIndexExprs.size()) {
|
||||
+ auto *Expr = FrameIndexExprs.back().Expr;
|
||||
+ if (!Expr || !Expr->isFragment())
|
||||
+ return;
|
||||
+ }
|
||||
+
|
||||
for (const auto &FIE : V.FrameIndexExprs)
|
||||
// Ignore duplicate entries.
|
||||
if (llvm::none_of(FrameIndexExprs, [&](const FrameIndexExpr &Other) {
|
||||
--
|
||||
1.8.3.1
|
||||
|
12
gating.yaml
12
gating.yaml
|
@ -1,12 +0,0 @@
|
|||
--- !Policy
|
||||
product_versions:
|
||||
- fedora-*
|
||||
decision_context: bodhi_update_push_testing
|
||||
rules:
|
||||
- !PassingTestCaseRule {test_case_name: org.centos.prod.ci.pipeline.allpackages-build.package.test.functional.complete}
|
||||
--- !Policy
|
||||
product_versions:
|
||||
- fedora-*
|
||||
decision_context: bodhi_update_push_stable
|
||||
rules:
|
||||
- !PassingTestCaseRule {test_case_name: org.centos.prod.ci.pipeline.allpackages-build.package.test.functional.complete}
|
|
@ -1,52 +0,0 @@
|
|||
-----BEGIN PGP PUBLIC KEY BLOCK-----
|
||||
|
||||
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
|
||||
67H2IH//2sf8dw==
|
||||
=ADVe
|
||||
-----END PGP PUBLIC KEY BLOCK-----
|
|
@ -1,17 +0,0 @@
|
|||
|
||||
config.llvm_tools_dir = '/usr/bin'
|
||||
config.llvm_shlib_dir = '%(llvm_shlib_dir)s' % lit_config.params
|
||||
|
||||
if hasattr(config, 'host_triple'):
|
||||
# This means we are running lit regression tests
|
||||
|
||||
# Regression tests write output to this directory, so we need to be able to specify
|
||||
# a temp directory when invoking lit. e.g. lit -Dllvm_obj_root=/tmp/lit
|
||||
config.llvm_obj_root = "%(llvm_obj_root)s" % lit_config.params
|
||||
lit_config.load_config(config, '%(llvm_test_root)s/lit.cfg.py' % lit_config.params)
|
||||
else:
|
||||
# This means we are running lit unit tests
|
||||
|
||||
# For unit tests, llvm_obj_root is used to find the unit test binaries.
|
||||
config.llvm_obj_root = '%(llvm_unittest_bindir)s' % lit_config.params
|
||||
lit_config.load_config(config, '%(llvm_test_root)s/Unit/lit.cfg.py' % lit_config.params)
|
|
@ -0,0 +1,12 @@
|
|||
diff -up llvm-3.7.1.src/cmake/config-ix.cmake.s390 llvm-3.7.1.src/cmake/config-ix.cmake
|
||||
--- llvm-3.7.1.src/cmake/config-ix.cmake.s390 2016-02-16 12:27:36.000000000 +0100
|
||||
+++ llvm-3.7.1.src/cmake/config-ix.cmake 2016-02-16 12:27:52.000000000 +0100
|
||||
@@ -356,6 +356,8 @@ elseif (LLVM_NATIVE_ARCH MATCHES "msp430
|
||||
set(LLVM_NATIVE_ARCH MSP430)
|
||||
elseif (LLVM_NATIVE_ARCH MATCHES "hexagon")
|
||||
set(LLVM_NATIVE_ARCH Hexagon)
|
||||
+elseif (LLVM_NATIVE_ARCH MATCHES "s390")
|
||||
+ set(LLVM_NATIVE_ARCH SystemZ)
|
||||
elseif (LLVM_NATIVE_ARCH MATCHES "s390x")
|
||||
set(LLVM_NATIVE_ARCH SystemZ)
|
||||
elseif (LLVM_NATIVE_ARCH MATCHES "wasm32")
|
644
llvm.spec
644
llvm.spec
|
@ -1,92 +1,52 @@
|
|||
# Components enabled if supported by target architecture:
|
||||
%define gold_arches %{ix86} x86_64 %{arm} aarch64 %{power64} s390x
|
||||
%ifarch %{gold_arches}
|
||||
%ifarch %ix86 x86_64
|
||||
%bcond_without gold
|
||||
%else
|
||||
%bcond_with gold
|
||||
%endif
|
||||
|
||||
%bcond_with compat_build
|
||||
|
||||
%global llvm_libdir %{_libdir}/%{name}
|
||||
%global build_llvm_libdir %{buildroot}%{llvm_libdir}
|
||||
#%%global rc_ver 6
|
||||
%global baserelease 1
|
||||
%global llvm_srcdir llvm-%{version}%{?rc_ver:rc%{rc_ver}}.src
|
||||
%global maj_ver 10
|
||||
%global llvm_bindir %{_libdir}/%{name}
|
||||
%global maj_ver 5
|
||||
%global min_ver 0
|
||||
%global patch_ver 0
|
||||
%global patch_ver 2
|
||||
|
||||
|
||||
%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}
|
||||
Name: llvm
|
||||
Version: %{maj_ver}.%{min_ver}.%{patch_ver}
|
||||
Release: %{baserelease}%{?rc_ver:.rc%{rc_ver}}%{?dist}
|
||||
Release: 1%{?dist}
|
||||
Summary: The Low Level Virtual Machine
|
||||
|
||||
License: NCSA
|
||||
URL: http://llvm.org
|
||||
%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
|
||||
Source0: http://llvm.org/releases/%{version}/%{name}-%{version}.src.tar.xz
|
||||
|
||||
Patch0: 0001-CMake-Split-static-library-exports-into-their-own-ex.patch
|
||||
Patch1: 0001-CMake-Split-test-binary-exports-into-their-own-expor.patch
|
||||
# recognize s390 as SystemZ when configuring build
|
||||
Patch0: llvm-3.7.1-cmake-s390.patch
|
||||
Patch3: 0001-CMake-Split-static-library-exports-into-their-own-ex.patch
|
||||
# FIXME: Symbol versioning breaks some unittests when statically linking
|
||||
# libstdc++, so we disable it for now.
|
||||
Patch4: 0001-Revert-Add-a-linker-script-to-version-LLVM-symbols.patch
|
||||
Patch5: 0001-PowerPC-Don-t-use-xscvdpspn-on-the-P7.patch
|
||||
Patch6: 0001-Ignore-all-duplicate-frame-index-expression.patch
|
||||
Patch7: 0002-Reinstantiate-old-bad-deduplication-logic-that-was-r.patch
|
||||
Patch14: 0001-PPC-Avoid-non-simple-MVT-in-STBRX-optimization.patch
|
||||
|
||||
BuildRequires: gcc
|
||||
BuildRequires: gcc-c++
|
||||
BuildRequires: cmake
|
||||
BuildRequires: ninja-build
|
||||
BuildRequires: zlib-devel
|
||||
BuildRequires: libffi-devel
|
||||
BuildRequires: libffi-devel
|
||||
BuildRequires: ncurses-devel
|
||||
BuildRequires: python3-sphinx
|
||||
BuildRequires: python3-recommonmark
|
||||
BuildRequires: multilib-rpm-config
|
||||
%if %{with gold}
|
||||
BuildRequires: binutils-devel
|
||||
BuildRequires: binutils-devel
|
||||
%endif
|
||||
%ifarch %{valgrind_arches}
|
||||
BuildRequires: libstdc++-static
|
||||
# Enable extra functionality when run the LLVM JIT under valgrind.
|
||||
BuildRequires: valgrind-devel
|
||||
%endif
|
||||
BuildRequires: valgrind-devel
|
||||
# LLVM's LineEditor library will use libedit if it is available.
|
||||
BuildRequires: libedit-devel
|
||||
# We need python3-devel for pathfix.py.
|
||||
BuildRequires: python3-devel
|
||||
BuildRequires: libedit-devel
|
||||
|
||||
Requires: %{name}-libs%{?_isa} = %{version}-%{release}
|
||||
|
||||
Provides: llvm(major) = %{maj_ver}
|
||||
|
||||
%description
|
||||
LLVM is a compiler infrastructure designed for compile-time, link-time,
|
||||
runtime, and idle-time optimization of programs from arbitrary programming
|
||||
|
@ -96,15 +56,12 @@ tools as well as libraries with equivalent functionality.
|
|||
%package devel
|
||||
Summary: Libraries and header files for LLVM
|
||||
Requires: %{name}%{?_isa} = %{version}-%{release}
|
||||
Requires: %{name}-libs%{?_isa} = %{version}-%{release}
|
||||
# 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}
|
||||
Requires(post): %{_sbindir}/alternatives
|
||||
Requires(postun): %{_sbindir}/alternatives
|
||||
|
||||
%description devel
|
||||
This package contains library and header files needed to develop new native
|
||||
|
@ -126,79 +83,38 @@ Shared libraries for the LLVM compiler infrastructure.
|
|||
|
||||
%package static
|
||||
Summary: LLVM static libraries
|
||||
Conflicts: %{name}-devel < 8
|
||||
|
||||
%description static
|
||||
Static libraries for the LLVM compiler infrastructure.
|
||||
|
||||
%if %{without compat_build}
|
||||
|
||||
%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
|
||||
|
||||
Provides: llvm-test(major) = %{maj_ver}
|
||||
|
||||
%description test
|
||||
LLVM regression tests.
|
||||
|
||||
%package googletest
|
||||
Summary: LLVM's modified googletest sources
|
||||
|
||||
%description googletest
|
||||
LLVM's modified googletest sources.
|
||||
|
||||
%endif
|
||||
|
||||
%prep
|
||||
%autosetup -n %{llvm_srcdir} -p2
|
||||
|
||||
pathfix.py -i %{__python3} -pn \
|
||||
test/BugPoint/compile-custom.ll.py \
|
||||
tools/opt-viewer/*.py
|
||||
%autosetup -n %{name}-%{version}.src -p1
|
||||
|
||||
%build
|
||||
mkdir -p _build
|
||||
cd _build
|
||||
|
||||
%ifarch s390 %{arm} %ix86
|
||||
%ifarch s390 %{arm}
|
||||
# Decrease debuginfo verbosity to reduce memory consumption during final library linking
|
||||
%global optflags %(echo %{optflags} | sed 's/-g /-g1 /')
|
||||
%endif
|
||||
|
||||
# force off shared libs as cmake macros turns it on.
|
||||
#
|
||||
# -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 \
|
||||
%cmake .. \
|
||||
-DBUILD_SHARED_LIBS:BOOL=OFF \
|
||||
-DLLVM_PARALLEL_LINK_JOBS=1 \
|
||||
-DCMAKE_BUILD_TYPE=RelWithDebInfo \
|
||||
-DCMAKE_INSTALL_RPATH=";" \
|
||||
%ifarch s390 %{arm} %ix86
|
||||
-DCMAKE_SHARED_LINKER_FLAGS="-Wl,-Bsymbolic -static-libstdc++" \
|
||||
%ifarch s390 %{arm}
|
||||
-DCMAKE_C_FLAGS_RELWITHDEBINFO="%{optflags} -DNDEBUG" \
|
||||
-DCMAKE_CXX_FLAGS_RELWITHDEBINFO="%{optflags} -DNDEBUG" \
|
||||
%endif
|
||||
%if %{without compat_build}
|
||||
%if 0%{?__isa_bits} == 64
|
||||
-DLLVM_LIBDIR_SUFFIX=64 \
|
||||
%else
|
||||
-DLLVM_LIBDIR_SUFFIX= \
|
||||
%endif
|
||||
%endif
|
||||
\
|
||||
-DLLVM_TARGETS_TO_BUILD=all \
|
||||
-DLLVM_TARGETS_TO_BUILD="X86;AMDGPU;PowerPC;NVPTX;SystemZ;AArch64;ARM;Mips;BPF" \
|
||||
-DLLVM_ENABLE_LIBCXX:BOOL=OFF \
|
||||
-DLLVM_ENABLE_ZLIB:BOOL=ON \
|
||||
-DLLVM_ENABLE_FFI:BOOL=ON \
|
||||
|
@ -206,7 +122,6 @@ cd _build
|
|||
%if %{with gold}
|
||||
-DLLVM_BINUTILS_INCDIR=%{_includedir} \
|
||||
%endif
|
||||
-DLLVM_EXPERIMENTAL_TARGETS_TO_BUILD=AVR \
|
||||
\
|
||||
-DLLVM_BUILD_RUNTIME:BOOL=ON \
|
||||
\
|
||||
|
@ -220,20 +135,14 @@ cd _build
|
|||
-DLLVM_BUILD_EXAMPLES:BOOL=OFF \
|
||||
\
|
||||
-DLLVM_INCLUDE_UTILS:BOOL=ON \
|
||||
%if %{with compat_build}
|
||||
-DLLVM_INSTALL_UTILS:BOOL=OFF \
|
||||
%else
|
||||
-DLLVM_INSTALL_UTILS:BOOL=ON \
|
||||
-DLLVM_UTILS_INSTALL_DIR:PATH=%{_bindir} \
|
||||
-DLLVM_TOOLS_INSTALL_DIR:PATH=bin \
|
||||
%endif
|
||||
-DLLVM_UTILS_INSTALL_DIR:PATH=%{llvm_bindir} \
|
||||
\
|
||||
-DLLVM_INCLUDE_DOCS:BOOL=ON \
|
||||
-DLLVM_BUILD_DOCS:BOOL=ON \
|
||||
-DLLVM_ENABLE_SPHINX:BOOL=ON \
|
||||
-DLLVM_ENABLE_DOXYGEN:BOOL=OFF \
|
||||
\
|
||||
-DLLVM_VERSION_SUFFIX='' \
|
||||
-DLLVM_BUILD_LLVM_DYLIB:BOOL=ON \
|
||||
-DLLVM_DYLIB_EXPORT_ALL:BOOL=ON \
|
||||
-DLLVM_LINK_LLVM_DYLIB:BOOL=ON \
|
||||
|
@ -241,522 +150,85 @@ cd _build
|
|||
-DLLVM_INSTALL_TOOLCHAIN_ONLY:BOOL=OFF \
|
||||
\
|
||||
-DSPHINX_WARNINGS_AS_ERRORS=OFF \
|
||||
-DLLVM_INSTALL_SPHINX_HTML_DIR=%{_pkgdocdir}/html \
|
||||
-DSPHINX_EXECUTABLE=%{_bindir}/sphinx-build-3
|
||||
|
||||
# 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
|
||||
make %{?_smp_mflags}
|
||||
|
||||
%install
|
||||
%ninja_install -C _build
|
||||
|
||||
|
||||
%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
|
||||
cd _build
|
||||
make install DESTDIR=%{buildroot}
|
||||
|
||||
# fix multi-lib
|
||||
mv -v %{buildroot}%{_bindir}/llvm-config{,-%{__isa_bits}}
|
||||
|
||||
%multilib_fix_c_header --file %{_includedir}/llvm/Config/llvm-config.h
|
||||
|
||||
# Install libraries needed for unittests
|
||||
%if 0%{?__isa_bits} == 64
|
||||
%global build_libdir _build/lib64
|
||||
%else
|
||||
%global build_libdir _build/lib
|
||||
%endif
|
||||
|
||||
install %{build_libdir}/libLLVMTestingSupport.a %{buildroot}%{_libdir}
|
||||
|
||||
%global install_srcdir %{buildroot}%{_datadir}/llvm/src
|
||||
%global lit_cfg test/%{_arch}.site.cfg.py
|
||||
%global lit_unit_cfg test/Unit/%{_arch}.site.cfg.py
|
||||
%global lit_fedora_cfg %{_datadir}/llvm/lit.fedora.cfg.py
|
||||
|
||||
# Install gtest sources so clang can use them for gtest
|
||||
install -d %{install_srcdir}
|
||||
install -d %{install_srcdir}/utils/
|
||||
cp -R utils/unittest %{install_srcdir}/utils/
|
||||
|
||||
# Generate lit config files. Strip off the last line that initiates the
|
||||
# test run, so we can customize the configuration.
|
||||
head -n -1 _build/test/lit.site.cfg.py >> %{lit_cfg}
|
||||
head -n -1 _build/test/Unit/lit.site.cfg.py >> %{lit_unit_cfg}
|
||||
|
||||
# Install custom fedora config file
|
||||
cp %{SOURCE2} %{buildroot}%{lit_fedora_cfg}
|
||||
|
||||
# Patch lit config files to load custom fedora config:
|
||||
for f in %{lit_cfg} %{lit_unit_cfg}; do
|
||||
echo "lit_config.load_config(config, '%{lit_fedora_cfg}')" >> $f
|
||||
done
|
||||
|
||||
install -d %{buildroot}%{_libexecdir}/tests/llvm
|
||||
install -m 0755 %{SOURCE1} %{buildroot}%{_libexecdir}/tests/llvm
|
||||
|
||||
# Install lit tests. We need to put these in a tarball otherwise rpm will complain
|
||||
# about some of the test inputs having the wrong object file format.
|
||||
install -d %{buildroot}%{_datadir}/llvm/
|
||||
tar -czf %{install_srcdir}/test.tar.gz test/
|
||||
|
||||
# Install the unit test binaries
|
||||
mkdir -p %{build_llvm_libdir}
|
||||
cp -R _build/unittests %{build_llvm_libdir}/
|
||||
rm -rf `find %{build_llvm_libdir} -iname 'cmake*'`
|
||||
|
||||
# Install libraries used for testing
|
||||
install -m 0755 %{build_libdir}/BugpointPasses.so %{buildroot}%{_libdir}
|
||||
install -m 0755 %{build_libdir}/LLVMHello.so %{buildroot}%{_libdir}
|
||||
|
||||
# Install test inputs for PDB tests
|
||||
echo "%{_datadir}/llvm/src/unittests/DebugInfo/PDB" > %{build_llvm_libdir}/unittests/DebugInfo/PDB/llvm.srcdir.txt
|
||||
mkdir -p %{buildroot}%{_datadir}/llvm/src/unittests/DebugInfo/PDB/
|
||||
cp -R unittests/DebugInfo/PDB/Inputs %{buildroot}%{_datadir}/llvm/src/unittests/DebugInfo/PDB/
|
||||
|
||||
%else
|
||||
|
||||
# Add version suffix to binaries
|
||||
mkdir -p %{buildroot}/%{_bindir}
|
||||
for f in %{buildroot}/%{install_bindir}/*; do
|
||||
filename=`basename $f`
|
||||
ln -s %{install_bindir}/$filename %{buildroot}/%{_bindir}/$filename%{exec_suffix}
|
||||
done
|
||||
|
||||
# Move header files
|
||||
mkdir -p %{buildroot}/%{pkg_includedir}
|
||||
ln -s ../../../%{install_includedir}/llvm %{buildroot}/%{pkg_includedir}/llvm
|
||||
ln -s ../../../%{install_includedir}/llvm-c %{buildroot}/%{pkg_includedir}/llvm-c
|
||||
|
||||
# Fix multi-lib
|
||||
mv %{buildroot}%{_bindir}/llvm-config{%{exec_suffix},%{exec_suffix}-%{__isa_bits}}
|
||||
%multilib_fix_c_header --file %{install_includedir}/llvm/Config/llvm-config.h
|
||||
|
||||
# Create ld.so.conf.d entry
|
||||
mkdir -p %{buildroot}%{_sysconfdir}/ld.so.conf.d
|
||||
cat >> %{buildroot}%{_sysconfdir}/ld.so.conf.d/%{name}-%{_arch}.conf << EOF
|
||||
%{pkg_libdir}
|
||||
EOF
|
||||
|
||||
# Add version suffix to man pages and move them to mandir.
|
||||
mkdir -p %{buildroot}/%{_mandir}/man1
|
||||
for f in `ls %{build_install_prefix}/share/man/man1/*`; do
|
||||
filename=`basename $f | cut -f 1 -d '.'`
|
||||
mv $f %{buildroot}%{_mandir}/man1/$filename%{exec_suffix}.1
|
||||
done
|
||||
|
||||
# Remove opt-viewer, since this is just a compatibility package.
|
||||
rm -Rf %{build_install_prefix}/share/opt-viewer
|
||||
|
||||
%endif
|
||||
|
||||
|
||||
%check
|
||||
# TODO: Fix test failures on arm
|
||||
ninja check-all -C _build || \
|
||||
%ifarch %{arm}
|
||||
:
|
||||
%else
|
||||
false
|
||||
%endif
|
||||
cd _build
|
||||
make check-all || :
|
||||
|
||||
%ldconfig_scriptlets libs
|
||||
|
||||
%if %{without compat_build}
|
||||
%post libs -p /sbin/ldconfig
|
||||
%postun libs -p /sbin/ldconfig
|
||||
|
||||
%post devel
|
||||
%{_sbindir}/update-alternatives --install %{_bindir}/llvm-config llvm-config %{_bindir}/llvm-config-%{__isa_bits} %{__isa_bits}
|
||||
|
||||
%postun devel
|
||||
if [ $1 -eq 0 ]; then
|
||||
%{_sbindir}/update-alternatives --remove llvm-config %{_bindir}/llvm-config
|
||||
%{_sbindir}/update-alternatives --remove llvm-config %{_bindir}/llvm-config-%{__isa_bits}
|
||||
fi
|
||||
|
||||
%endif
|
||||
|
||||
%files
|
||||
%exclude %{_mandir}/man1/llvm-config*
|
||||
%{_mandir}/man1/*
|
||||
%{_bindir}/*
|
||||
|
||||
%if %{without compat_build}
|
||||
%{llvm_bindir}
|
||||
%{_mandir}/man1/*.1.*
|
||||
%exclude %{_bindir}/llvm-config-%{__isa_bits}
|
||||
%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
|
||||
%exclude %{_mandir}/man1/llvm-config.1.*
|
||||
%{_datadir}/opt-viewer
|
||||
%else
|
||||
%exclude %{pkg_bindir}/llvm-config
|
||||
%{pkg_bindir}
|
||||
%endif
|
||||
|
||||
%files libs
|
||||
%{pkg_libdir}/libLLVM-%{maj_ver}.so
|
||||
%if %{without compat_build}
|
||||
%{_libdir}/BugpointPasses.so
|
||||
%{_libdir}/LLVMHello.so
|
||||
%if %{with gold}
|
||||
%{_libdir}/LLVMgold.so
|
||||
%endif
|
||||
%{_libdir}/libLLVM-%{maj_ver}.%{min_ver}*.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
|
||||
%if %{without compat_build}
|
||||
%{_bindir}/llvm-config-%{__isa_bits}
|
||||
%{_mandir}/man1/llvm-config*
|
||||
%{_mandir}/man1/llvm-config.1.*
|
||||
%{_includedir}/llvm
|
||||
%{_includedir}/llvm-c
|
||||
%{_libdir}/libLLVM.so
|
||||
%{_libdir}/cmake/llvm
|
||||
%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
|
||||
%doc %{_pkgdocdir}/html
|
||||
|
||||
%files static
|
||||
%if %{without compat_build}
|
||||
%{_libdir}/*.a
|
||||
%exclude %{_libdir}/libLLVMTestingSupport.a
|
||||
%{_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
|
||||
* Wed Mar 25 2020 sguelton@redhat.com - 10.0.0-1
|
||||
- 10.0.0 final
|
||||
* Thu May 03 2018 Tom Stellard <tstellar@redhat.com> - 5.0.2-1
|
||||
- 5.0.2 Release
|
||||
|
||||
* Mon Mar 23 2020 sguelton@redhat.com - 10.0.0-0.6.rc6
|
||||
- 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
|
||||
* Tue Mar 27 2018 Tom Stellard <tstellar@redhat.com> - 5.0.1-6
|
||||
- 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
|
||||
* Mon Mar 19 2018 Tom Stellard <tstellar@redhat.com> - 5.0.1-5
|
||||
- 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 07 2018 Tom Stellard <tstellar@redhat.com> - 5.0.1-4
|
||||
- Backport more retpoline patches
|
||||
|
||||
* Wed Mar 14 2018 Tom Stellard <tstellar@redhat.com> - 6.0.0-6
|
||||
- Enable symbol versioning in libLLVM.so
|
||||
* Tue Feb 06 2018 Tom Stellard <tstellar@redhat.com> - 5.0.1-3
|
||||
- Backport retpoline support
|
||||
|
||||
* 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
|
||||
* Thu Feb 01 2018 Tom Stellard <tstellar@redhat.com> - 5.0.1-2
|
||||
- Backport r315279 to fix an issue with rust
|
||||
|
||||
* Tue Dec 19 2017 Tom Stellard <tstellar@redhat.com> - 5.0.1-1
|
||||
- 5.0.1 Release
|
||||
|
@ -810,7 +282,7 @@ fi
|
|||
- LLVM 4.0.0 Final Release
|
||||
|
||||
* 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
|
||||
- Disable failing tests on ARM.
|
||||
|
|
|
@ -1,58 +0,0 @@
|
|||
#!/bin/bash
|
||||
|
||||
usage() {
|
||||
echo "usage: `basename $0` [OPTIONS]"
|
||||
echo " --threads NUM The number of threads to use for running tests."
|
||||
echo " --multilib-arch ARCH Use this option to test 32-bit libs/binaries on"
|
||||
echo " 64-bit hosts."
|
||||
}
|
||||
|
||||
threads_arg=''
|
||||
|
||||
while [ $# -gt 0 ]; do
|
||||
case $1 in
|
||||
--threads)
|
||||
shift
|
||||
threads_arg="--threads $1"
|
||||
;;
|
||||
--multilib-arch)
|
||||
shift
|
||||
ARCH=$1
|
||||
;;
|
||||
* )
|
||||
echo "unknown option: $1"
|
||||
echo ""
|
||||
usage
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
shift
|
||||
done
|
||||
|
||||
set -xe
|
||||
|
||||
if [ -z "$ARCH" ]; then
|
||||
ARCH=`rpm --eval '%_arch'`
|
||||
fi
|
||||
|
||||
case $ARCH in
|
||||
arm)
|
||||
;&
|
||||
i686)
|
||||
LIB_DIR="/usr/lib/"
|
||||
;;
|
||||
*)
|
||||
LIB_DIR="/usr/lib64/"
|
||||
;;
|
||||
esac
|
||||
|
||||
cd $(mktemp -d)
|
||||
ln -s /usr/include include
|
||||
tar -xzf /usr/share/llvm/src/test.tar.gz
|
||||
ln -s $ARCH.site.cfg.py test/lit.site.cfg.py
|
||||
ln -s $ARCH.site.cfg.py test/Unit/lit.site.cfg.py
|
||||
lit -v -s $threads_arg test \
|
||||
-Dllvm_obj_root=`pwd` \
|
||||
-Dllvm_test_root=`pwd`/test \
|
||||
-Dllvm_unittest_bindir=$LIB_DIR/llvm \
|
||||
-Dllvm_shlib_dir=$LIB_DIR
|
|
@ -0,0 +1,70 @@
|
|||
From a6fa10c14649c18d299cddf3e823b032460cb6f5 Mon Sep 17 00:00:00 2001
|
||||
From: Pirama Arumuga Nainar <pirama@google.com>
|
||||
Date: Thu, 23 Mar 2017 16:47:47 +0000
|
||||
Subject: [PATCH] Fix computeKnownBits for ARMISD::CMOV
|
||||
|
||||
Summary:
|
||||
The true and false operands for the CMOV are operands 0 and 1.
|
||||
ARMISelLowering.cpp::computeKnownBits was looking at operands 1 and 2
|
||||
instead. This can cause CMOV instructions to be incorrectly folded into
|
||||
BFI if value set by the CMOV is another CMOV, whose known bits are
|
||||
computed incorrectly.
|
||||
|
||||
This patch fixes the issue and adds a test case.
|
||||
|
||||
Reviewers: kristof.beyls, jmolloy
|
||||
|
||||
Subscribers: llvm-commits, aemerson, srhines, rengolin
|
||||
|
||||
Differential Revision: https://reviews.llvm.org/D31265
|
||||
|
||||
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@298624 91177308-0d34-0410-b5e6-96231b3b80d8
|
||||
---
|
||||
lib/Target/ARM/ARMISelLowering.cpp | 4 ++--
|
||||
test/CodeGen/ARM/no-cmov2bfi.ll | 19 +++++++++++++++++++
|
||||
2 files changed, 21 insertions(+), 2 deletions(-)
|
||||
create mode 100644 test/CodeGen/ARM/no-cmov2bfi.ll
|
||||
|
||||
diff --git a/lib/Target/ARM/ARMISelLowering.cpp b/lib/Target/ARM/ARMISelLowering.cpp
|
||||
index 4a227a3cd7b1..cf98e60c0657 100644
|
||||
--- a/lib/Target/ARM/ARMISelLowering.cpp
|
||||
+++ b/lib/Target/ARM/ARMISelLowering.cpp
|
||||
@@ -10806,8 +10806,8 @@ static void computeKnownBits(SelectionDAG &DAG, SDValue Op, APInt &KnownZero,
|
||||
if (Op.getOpcode() == ARMISD::CMOV) {
|
||||
APInt KZ2(KnownZero.getBitWidth(), 0);
|
||||
APInt KO2(KnownOne.getBitWidth(), 0);
|
||||
- computeKnownBits(DAG, Op.getOperand(1), KnownZero, KnownOne);
|
||||
- computeKnownBits(DAG, Op.getOperand(2), KZ2, KO2);
|
||||
+ computeKnownBits(DAG, Op.getOperand(0), KnownZero, KnownOne);
|
||||
+ computeKnownBits(DAG, Op.getOperand(1), KZ2, KO2);
|
||||
|
||||
KnownZero &= KZ2;
|
||||
KnownOne &= KO2;
|
||||
diff --git a/test/CodeGen/ARM/no-cmov2bfi.ll b/test/CodeGen/ARM/no-cmov2bfi.ll
|
||||
new file mode 100644
|
||||
index 000000000000..c8b512048905
|
||||
--- /dev/null
|
||||
+++ b/test/CodeGen/ARM/no-cmov2bfi.ll
|
||||
@@ -0,0 +1,19 @@
|
||||
+; RUN: llc < %s -mtriple=thumbv7 | FileCheck --check-prefix=CHECK-NOBFI %s
|
||||
+
|
||||
+declare zeroext i1 @dummy()
|
||||
+
|
||||
+define i8 @test(i8 %a1, i1 %c) {
|
||||
+; CHECK-NOBFI-NOT: bfi
|
||||
+; CHECK-NOBFI: bl dummy
|
||||
+; CHECK-NOBFI: cmp r0, #0
|
||||
+; CHECK-NOBFI: it ne
|
||||
+; CHECK-NOBFI: orrne [[REG:r[0-9]+]], [[REG]], #8
|
||||
+; CHECK-NOBFI: mov r0, [[REG]]
|
||||
+
|
||||
+ %1 = and i8 %a1, -9
|
||||
+ %2 = select i1 %c, i8 %1, i8 %a1
|
||||
+ %3 = tail call zeroext i1 @dummy()
|
||||
+ %4 = or i8 %2, 8
|
||||
+ %ret = select i1 %3, i8 %4, i8 %2
|
||||
+ ret i8 %ret
|
||||
+}
|
||||
--
|
||||
2.9.3
|
||||
|
3
sources
3
sources
|
@ -1,2 +1 @@
|
|||
SHA512 (llvm-10.0.0.src.tar.xz) = 7dc961aacee3a01ecc002ff2b688a2ef50661856d2abd5ecc90566ffcad7566e4976736cd339ea96592e452cd5a17aaceba9712b2effec805661cca8ff020ee7
|
||||
SHA512 (llvm-10.0.0.src.tar.xz.sig) = 2e4c61af5d84db4bc7a8ab51367210c529ae02e401b7a73a449f79bf9d92654ccf36fdef0f552c8850df0e94bcafce2359180ad0cdf720be7c874a782a936878
|
||||
SHA512 (llvm-5.0.2.src.tar.xz) = 3588be5ed969c3f7f6f16f56a12a6af2814d3d3c960d4a36ffebb0446cc75f19220bccee7fc605f9b01f5d5c188a905a046193cc12dec42dd5922048b5c27fe1
|
||||
|
|
|
@ -1 +0,0 @@
|
|||
1
|
|
@ -1,16 +0,0 @@
|
|||
#!/bin/bash
|
||||
|
||||
set -ex
|
||||
|
||||
dnf download --disablerepo=* --enablerepo=test-llvm --source llvm
|
||||
|
||||
# The src.rpm is available in the directory the test run from.
|
||||
set +e
|
||||
mock --resultdir=. --old-chroot --with compat_build --rebuild *.src.rpm
|
||||
if [ $? -ne 0 ]; then
|
||||
cat root.log
|
||||
cat build.log
|
||||
exit 1
|
||||
fi
|
||||
|
||||
exit 0
|
|
@ -1,5 +0,0 @@
|
|||
---
|
||||
|
||||
standard-inventory-qcow2:
|
||||
qemu:
|
||||
m: 2G
|
|
@ -1,30 +0,0 @@
|
|||
- hosts: localhost
|
||||
roles:
|
||||
- role: standard-test-basic
|
||||
tags:
|
||||
- classic
|
||||
required_packages:
|
||||
- llvm-test
|
||||
- rust
|
||||
- cargo
|
||||
tests:
|
||||
- regression-tests:
|
||||
dir: ./
|
||||
run: /usr/libexec/tests/llvm/run-lit-tests --threads 1
|
||||
- rust-sanity:
|
||||
dir: ./
|
||||
run: cargo new hello && cd hello && cargo run
|
||||
# There is a bug in the build process when it runs out of disk space
|
||||
# while stripping binaries, which causes the strip to fail, but does
|
||||
# not fail the build. This results in a libLLVM.so that is over 2GB
|
||||
# which breaks the nightly compose. So this test checks that libLLVM.so
|
||||
# is less than 100MB to ensure it was successfully stripped.
|
||||
# https://bugzilla.redhat.com/show_bug.cgi?id=1793250
|
||||
- libllvm-size:
|
||||
dir: ./
|
||||
run: test `stat -L -c %s /usr/lib64/libLLVM.so` -lt 100000000
|
||||
# This test ensures that the spec file still builds correctly with
|
||||
# %global compat_build 1
|
||||
# FIXME: This fails, because the CI system has a hard-coded timeout of 4
|
||||
# hours.
|
||||
#- build-compat
|
|
@ -1,31 +0,0 @@
|
|||
- hosts: localhost
|
||||
pre_tasks:
|
||||
# Make sure we uninstall all sub-packages, so we can test that the cmake files
|
||||
# in llvm-devel are useable when only llvm-devel is installed.
|
||||
- name: Uninstall llvm sub-packages
|
||||
package:
|
||||
name: "{{ item }}"
|
||||
state: absent
|
||||
tags: classic
|
||||
with_items:
|
||||
- llvm
|
||||
- llvm-devel
|
||||
- llvm-doc
|
||||
- llvm-googletest
|
||||
- llvm-libs
|
||||
- llvm-static
|
||||
- llvm-test
|
||||
roles:
|
||||
- role: standard-test-basic
|
||||
tags: classic
|
||||
required_packages:
|
||||
- llvm-devel
|
||||
- cmake
|
||||
- ninja-build
|
||||
- gcc
|
||||
- gcc-c++
|
||||
repositories:
|
||||
- repo: "https://src.fedoraproject.org/tests/llvm.git"
|
||||
dest: "llvm"
|
||||
tests:
|
||||
- llvm/llvm-devel-cmake
|
Loading…
Reference in New Issue