llvm 8.0.0rc1
This commit is contained in:
parent
aea8243575
commit
4ca785f8a6
1
.gitignore
vendored
1
.gitignore
vendored
@ -45,3 +45,4 @@
|
||||
/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
|
||||
|
@ -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,27 +0,0 @@
|
||||
From 1e0f1c5481a96d760f7840d4dde103353a0131f8 Mon Sep 17 00:00:00 2001
|
||||
From: Tom Stellard <tstellar@redhat.com>
|
||||
Date: Thu, 30 Aug 2018 11:38:51 -0700
|
||||
Subject: [PATCH] CMake: Don't prefer python2.7
|
||||
|
||||
---
|
||||
CMakeLists.txt | 4 ----
|
||||
1 file changed, 4 deletions(-)
|
||||
|
||||
diff --git a/CMakeLists.txt b/CMakeLists.txt
|
||||
index 31df640..2603f1c 100644
|
||||
--- a/CMakeLists.txt
|
||||
+++ b/CMakeLists.txt
|
||||
@@ -613,10 +613,6 @@ message(STATUS "LLVM default target triple: ${LLVM_DEFAULT_TARGET_TRIPLE}")
|
||||
|
||||
include(HandleLLVMOptions)
|
||||
|
||||
-# Verify that we can find a Python 2 interpreter. Python 3 is unsupported.
|
||||
-# FIXME: We should support systems with only Python 3, but that requires work
|
||||
-# on LLDB.
|
||||
-set(Python_ADDITIONAL_VERSIONS 2.7)
|
||||
include(FindPythonInterp)
|
||||
if( NOT PYTHONINTERP_FOUND )
|
||||
message(FATAL_ERROR
|
||||
--
|
||||
1.8.3.1
|
||||
|
@ -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,60 +0,0 @@
|
||||
From 2ad5ac11b17dac347d29191872b2b3d601bbcd1f Mon Sep 17 00:00:00 2001
|
||||
From: Jonas Devlieghere <jonas@devlieghere.com>
|
||||
Date: Fri, 21 Sep 2018 12:03:14 +0000
|
||||
Subject: [PATCH 1/2] Ensure that variant part discriminator is read by
|
||||
MetadataLoader
|
||||
|
||||
https://reviews.llvm.org/D42082 introduced variant parts to debug info
|
||||
in LLVM. Subsequent work on the Rust compiler has found a bug in that
|
||||
patch; namely, there is a path in MetadataLoader that fails to restore
|
||||
the discriminator.
|
||||
|
||||
This patch fixes the bug.
|
||||
|
||||
Patch by: Tom Tromey
|
||||
|
||||
Differential revision: https://reviews.llvm.org/D52340
|
||||
|
||||
llvm-svn: 342725
|
||||
---
|
||||
llvm/lib/Bitcode/Reader/MetadataLoader.cpp | 2 +-
|
||||
llvm/test/Assembler/debug-variant-discriminator.ll | 14 ++++++++++++++
|
||||
2 files changed, 15 insertions(+), 1 deletion(-)
|
||||
create mode 100644 llvm/test/Assembler/debug-variant-discriminator.ll
|
||||
|
||||
diff --git a/lib/Bitcode/Reader/MetadataLoader.cpp b/lib/Bitcode/Reader/MetadataLoader.cpp
|
||||
index 011c41e2cecd..a7b542efc19e 100644
|
||||
--- a/lib/Bitcode/Reader/MetadataLoader.cpp
|
||||
+++ b/lib/Bitcode/Reader/MetadataLoader.cpp
|
||||
@@ -1308,7 +1308,7 @@ Error MetadataLoader::MetadataLoaderImpl::parseOneMetadata(
|
||||
(Context, Tag, Name, File, Line, Scope, BaseType,
|
||||
SizeInBits, AlignInBits, OffsetInBits, Flags,
|
||||
Elements, RuntimeLang, VTableHolder, TemplateParams,
|
||||
- Identifier));
|
||||
+ Identifier, Discriminator));
|
||||
if (!IsNotUsedInTypeRef && Identifier)
|
||||
MetadataList.addTypeRef(*Identifier, *cast<DICompositeType>(CT));
|
||||
|
||||
diff --git a/test/Assembler/debug-variant-discriminator.ll b/test/Assembler/debug-variant-discriminator.ll
|
||||
new file mode 100644
|
||||
index 000000000000..5be001cad6be
|
||||
--- /dev/null
|
||||
+++ b/test/Assembler/debug-variant-discriminator.ll
|
||||
@@ -0,0 +1,14 @@
|
||||
+; RUN: llvm-as < %s | llvm-dis | llvm-as | llvm-dis | FileCheck %s
|
||||
+; RUN: verify-uselistorder %s
|
||||
+
|
||||
+; CHECK: !named = !{!0, !1, !2}
|
||||
+!named = !{!0, !1, !2}
|
||||
+
|
||||
+; CHECK: !0 = !DICompositeType(tag: DW_TAG_structure_type, name: "Outer", size: 64, align: 64, identifier: "Outer")
|
||||
+; CHECK-NEXT: !1 = !DICompositeType(tag: DW_TAG_variant_part, scope: !0, size: 64, discriminator: !2)
|
||||
+; CHECK-NEXT: !2 = !DIDerivedType(tag: DW_TAG_member, scope: !1, baseType: !3, size: 64, align: 64, flags: DIFlagArtificial)
|
||||
+; CHECK-NEXT: !3 = !DIBasicType(name: "u64", size: 64, encoding: DW_ATE_unsigned)
|
||||
+!0 = !DICompositeType(tag: DW_TAG_structure_type, name: "Outer", size: 64, align: 64, identifier: "Outer")
|
||||
+!1 = !DICompositeType(tag: DW_TAG_variant_part, scope: !0, size: 64, discriminator: !2)
|
||||
+!2 = !DIDerivedType(tag: DW_TAG_member, scope: !1, baseType: !3, size: 64, align: 64, flags: DIFlagArtificial)
|
||||
+!3 = !DIBasicType(name: "u64", size: 64, encoding: DW_ATE_unsigned)
|
||||
--
|
||||
2.20.1
|
||||
|
@ -1,28 +0,0 @@
|
||||
From 5f7fd92155db77c7608e3a07e5dcfad1ec7bd4e4 Mon Sep 17 00:00:00 2001
|
||||
From: Tom Stellard <tstellar@redhat.com>
|
||||
Date: Fri, 16 Mar 2018 07:52:33 -0700
|
||||
Subject: [PATCH] Filter out cxxflags not supported by clang
|
||||
|
||||
---
|
||||
tools/llvm-config/CMakeLists.txt | 4 ++++
|
||||
1 file changed, 4 insertions(+)
|
||||
|
||||
diff --git a/tools/llvm-config/CMakeLists.txt b/tools/llvm-config/CMakeLists.txt
|
||||
index a0bd36c..4193b0e 100644
|
||||
--- a/tools/llvm-config/CMakeLists.txt
|
||||
+++ b/tools/llvm-config/CMakeLists.txt
|
||||
@@ -34,7 +34,11 @@ set(LLVM_SRC_ROOT ${LLVM_MAIN_SRC_DIR})
|
||||
set(LLVM_OBJ_ROOT ${LLVM_BINARY_DIR})
|
||||
set(LLVM_CPPFLAGS "${CMAKE_CPP_FLAGS} ${CMAKE_CPP_FLAGS_${uppercase_CMAKE_BUILD_TYPE}} ${LLVM_DEFINITIONS}")
|
||||
set(LLVM_CFLAGS "${CMAKE_C_FLAGS} ${CMAKE_C_FLAGS_${uppercase_CMAKE_BUILD_TYPE}} ${LLVM_DEFINITIONS}")
|
||||
+STRING(REGEX REPLACE "-mcet" "" LLVM_CFLAGS ${LLVM_CFLAGS})
|
||||
+STRING(REGEX REPLACE "-fcf-protection" "" LLVM_CFLAGS ${LLVM_CFLAGS})
|
||||
set(LLVM_CXXFLAGS "${CMAKE_CXX_FLAGS} ${CMAKE_CXX_FLAGS_${uppercase_CMAKE_BUILD_TYPE}} ${COMPILE_FLAGS} ${LLVM_DEFINITIONS}")
|
||||
+STRING(REGEX REPLACE "-mcet" "" LLVM_CXXFLAGS ${LLVM_CXXFLAGS})
|
||||
+STRING(REGEX REPLACE "-fcf-protection" "" LLVM_CXXFLAGS ${LLVM_CXXFLAGS})
|
||||
set(LLVM_BUILD_SYSTEM cmake)
|
||||
set(LLVM_HAS_RTTI ${LLVM_CONFIG_HAS_RTTI})
|
||||
set(LLVM_DYLIB_VERSION "${LLVM_VERSION_MAJOR}${LLVM_VERSION_SUFFIX}")
|
||||
--
|
||||
1.8.3.1
|
||||
|
@ -1,40 +1,20 @@
|
||||
From f9e66a883e1fb748e6ac826fde188efaae249361 Mon Sep 17 00:00:00 2001
|
||||
From: Tom Stellard <tstellar@redhat.com>
|
||||
Date: Sat, 29 Apr 2017 02:03:23 +0000
|
||||
Subject: [PATCH] CMake: Split static library exports into their own export
|
||||
file
|
||||
From 59c38a2216f4467b53970bb6b010bc4fe0b8d1d3 Mon Sep 17 00:00:00 2001
|
||||
From: serge-sans-paille <sguelton@redhat.com>
|
||||
Date: Fri, 25 Jan 2019 17:32:54 +0000
|
||||
Subject: [PATCH 1/2] [PATCH] Filter out cxxflags not supported by clang
|
||||
|
||||
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 +++++-
|
||||
cmake/modules/CMakeLists.txt | 3 +++
|
||||
cmake/modules/LLVMConfig.cmake.in | 2 ++
|
||||
3 files changed, 10 insertions(+), 1 deletion(-)
|
||||
tools/llvm-config/CMakeLists.txt | 4 ++++
|
||||
4 files changed, 14 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/cmake/modules/AddLLVM.cmake b/cmake/modules/AddLLVM.cmake
|
||||
index fd5627e..78f106f 100644
|
||||
index 4dbc0ddaf4f..c408377cd2e 100644
|
||||
--- a/cmake/modules/AddLLVM.cmake
|
||||
+++ b/cmake/modules/AddLLVM.cmake
|
||||
@@ -635,7 +635,11 @@ macro(add_llvm_library name)
|
||||
@@ -664,7 +664,11 @@ macro(add_llvm_library name)
|
||||
|
||||
if(${name} IN_LIST LLVM_DISTRIBUTION_COMPONENTS OR
|
||||
NOT LLVM_DISTRIBUTION_COMPONENTS)
|
||||
@ -48,18 +28,18 @@ index fd5627e..78f106f 100644
|
||||
endif()
|
||||
|
||||
diff --git a/cmake/modules/CMakeLists.txt b/cmake/modules/CMakeLists.txt
|
||||
index 6074e83..e9fcb11 100644
|
||||
index f5cc0006fa0..6605dc729c2 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")
|
||||
@@ -97,6 +97,7 @@ set(LLVM_CONFIG_BINARY_DIR "\${LLVM_INSTALL_PREFIX}")
|
||||
set(LLVM_CONFIG_TOOLS_BINARY_DIR "\${LLVM_INSTALL_PREFIX}/${LLVM_TOOLS_INSTALL_DIR}")
|
||||
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")
|
||||
configure_file(
|
||||
LLVMConfig.cmake.in
|
||||
${CMAKE_CURRENT_BINARY_DIR}/CMakeFiles/LLVMConfig.cmake
|
||||
@@ -107,6 +108,8 @@ if (NOT LLVM_INSTALL_TOOLCHAIN_ONLY)
|
||||
@@ -113,6 +114,8 @@ if (NOT LLVM_INSTALL_TOOLCHAIN_ONLY)
|
||||
if(llvm_has_exports)
|
||||
install(EXPORT LLVMExports DESTINATION ${LLVM_INSTALL_PACKAGE_DIR}
|
||||
COMPONENT cmake-exports)
|
||||
@ -69,10 +49,10 @@ index 6074e83..e9fcb11 100644
|
||||
|
||||
install(FILES
|
||||
diff --git a/cmake/modules/LLVMConfig.cmake.in b/cmake/modules/LLVMConfig.cmake.in
|
||||
index 0772016..f471625 100644
|
||||
index 7ca06381d90..44d042c9b11 100644
|
||||
--- a/cmake/modules/LLVMConfig.cmake.in
|
||||
+++ b/cmake/modules/LLVMConfig.cmake.in
|
||||
@@ -78,6 +78,8 @@ if(NOT TARGET LLVMSupport)
|
||||
@@ -84,6 +84,8 @@ if(NOT TARGET LLVMSupport)
|
||||
set(LLVM_EXPORTED_TARGETS "@LLVM_CONFIG_EXPORTS@")
|
||||
include("@LLVM_CONFIG_EXPORTS_FILE@")
|
||||
@llvm_config_include_buildtree_only_exports@
|
||||
@ -81,6 +61,22 @@ index 0772016..f471625 100644
|
||||
endif()
|
||||
|
||||
# By creating intrinsics_gen here, subprojects that depend on LLVM's
|
||||
diff --git a/tools/llvm-config/CMakeLists.txt b/tools/llvm-config/CMakeLists.txt
|
||||
index a7db17386fb..8a796d03b5a 100644
|
||||
--- a/tools/llvm-config/CMakeLists.txt
|
||||
+++ b/tools/llvm-config/CMakeLists.txt
|
||||
@@ -42,7 +42,11 @@ set(LLVM_SRC_ROOT ${LLVM_MAIN_SRC_DIR})
|
||||
set(LLVM_OBJ_ROOT ${LLVM_BINARY_DIR})
|
||||
set(LLVM_CPPFLAGS "${LLVM_DEFINITIONS}")
|
||||
set(LLVM_CFLAGS "${LLVM_C_STD_FLAG} ${LLVM_DEFINITIONS}")
|
||||
+STRING(REGEX REPLACE "-mcet" "" LLVM_CFLAGS ${LLVM_CFLAGS})
|
||||
+STRING(REGEX REPLACE "-fcf-protection" "" LLVM_CFLAGS ${LLVM_CFLAGS})
|
||||
set(LLVM_CXXFLAGS "${LLVM_CXX_STD_FLAG} ${COMPILE_FLAGS} ${LLVM_DEFINITIONS}")
|
||||
+STRING(REGEX REPLACE "-mcet" "" LLVM_CXXFLAGS ${LLVM_CXXFLAGS})
|
||||
+STRING(REGEX REPLACE "-fcf-protection" "" LLVM_CXXFLAGS ${LLVM_CXXFLAGS})
|
||||
set(LLVM_BUILD_SYSTEM cmake)
|
||||
set(LLVM_HAS_RTTI ${LLVM_CONFIG_HAS_RTTI})
|
||||
set(LLVM_DYLIB_VERSION "${LLVM_VERSION_MAJOR}${LLVM_VERSION_SUFFIX}")
|
||||
--
|
||||
1.8.3.1
|
||||
2.19.2
|
||||
|
44
0001-PATCH-llvm-config.patch
Normal file
44
0001-PATCH-llvm-config.patch
Normal file
@ -0,0 +1,44 @@
|
||||
diff -ru llvm-8.0.0rc1.src.orig/cmake/modules/CMakeLists.txt llvm-8.0.0rc1.src/cmake/modules/CMakeLists.txt
|
||||
--- llvm-8.0.0rc1.src.orig/cmake/modules/CMakeLists.txt 2019-02-12 11:32:02.370238762 +0000
|
||||
+++ llvm-8.0.0rc1.src/cmake/modules/CMakeLists.txt 2019-02-13 08:40:39.263265812 +0000
|
||||
@@ -94,7 +94,7 @@
|
||||
set(LLVM_CONFIG_LIBRARY_DIRS "\${LLVM_INSTALL_PREFIX}/lib\${LLVM_LIBDIR_SUFFIX}")
|
||||
set(LLVM_CONFIG_CMAKE_DIR "\${LLVM_INSTALL_PREFIX}/${LLVM_INSTALL_PACKAGE_DIR}")
|
||||
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}/${LLVM_TOOLS_INSTALL_DIR}")
|
||||
set(LLVM_CONFIG_EXPORTS_FILE "\${LLVM_CMAKE_DIR}/LLVMExports.cmake")
|
||||
set(LLVM_CONFIG_EXPORTS "${LLVM_EXPORTS}")
|
||||
configure_file(
|
||||
diff -ru llvm-8.0.0rc1.src.orig/tools/llvm-config/llvm-config.cpp llvm-8.0.0rc1.src/tools/llvm-config/llvm-config.cpp
|
||||
--- llvm-8.0.0rc1.src.orig/tools/llvm-config/llvm-config.cpp 2019-02-12 11:32:00.617221180 +0000
|
||||
+++ llvm-8.0.0rc1.src/tools/llvm-config/llvm-config.cpp 2019-02-12 11:34:27.817599362 +0000
|
||||
@@ -269,7 +269,6 @@
|
||||
// tree.
|
||||
bool IsInDevelopmentTree;
|
||||
enum { CMakeStyle, CMakeBuildModeStyle } DevelopmentTreeLayout;
|
||||
- llvm::SmallString<256> CurrentPath(GetExecutablePath(argv[0]));
|
||||
std::string CurrentExecPrefix;
|
||||
std::string ActiveObjRoot;
|
||||
|
||||
@@ -280,11 +279,15 @@
|
||||
build_mode = CMAKE_CFG_INTDIR;
|
||||
#endif
|
||||
|
||||
- // Create an absolute path, and pop up one directory (we expect to be inside a
|
||||
- // bin dir).
|
||||
- sys::fs::make_absolute(CurrentPath);
|
||||
- CurrentExecPrefix =
|
||||
- sys::path::parent_path(sys::path::parent_path(CurrentPath)).str();
|
||||
+ // Create an absolute path, and pop up as much directory as in LLVM_TOOLS_INSTALL_DIR
|
||||
+ {
|
||||
+ llvm::SmallString<256> CurrentPath(GetExecutablePath(argv[0]));
|
||||
+ sys::fs::make_absolute(CurrentPath);
|
||||
+ for (auto iter = sys::path::begin(LLVM_TOOLS_INSTALL_DIR), end = sys::path::end(LLVM_TOOLS_INSTALL_DIR); iter != end; ++iter) {
|
||||
+ CurrentPath = sys::path::parent_path(CurrentPath).str();
|
||||
+ }
|
||||
+ CurrentExecPrefix = sys::path::parent_path(CurrentPath).str();
|
||||
+ }
|
||||
|
||||
// Check to see if we are inside a development tree by comparing to possible
|
||||
// locations (prefix style or CMake style).
|
@ -1,79 +0,0 @@
|
||||
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
|
||||
|
@ -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,62 +0,0 @@
|
||||
From cf1fb43186fd4d97ee2de0b222d44ecc500f82c7 Mon Sep 17 00:00:00 2001
|
||||
From: Tom Stellard <tstellar@redhat.com>
|
||||
Date: Mon, 13 Aug 2018 12:22:28 -0700
|
||||
Subject: [PATCH] unittests: Don't install TestPlugin.so
|
||||
|
||||
add_llvm_loadable_module adds an install target by default, but this
|
||||
module is only used for a unit test, so we don't need to instal it.
|
||||
|
||||
This patch adds a NO_INSTALL option to add_llvm_loadable_module that
|
||||
can be used to disable installation of modules.
|
||||
---
|
||||
cmake/modules/AddLLVM.cmake | 13 ++++++++-----
|
||||
unittests/Passes/CMakeLists.txt | 2 +-
|
||||
2 files changed, 9 insertions(+), 6 deletions(-)
|
||||
|
||||
diff --git a/cmake/modules/AddLLVM.cmake b/cmake/modules/AddLLVM.cmake
|
||||
index 24ef5e4..1637ba6 100644
|
||||
--- a/cmake/modules/AddLLVM.cmake
|
||||
+++ b/cmake/modules/AddLLVM.cmake
|
||||
@@ -671,7 +671,8 @@ macro(add_llvm_library name)
|
||||
endmacro(add_llvm_library name)
|
||||
|
||||
macro(add_llvm_loadable_module name)
|
||||
- llvm_add_library(${name} MODULE ${ARGN})
|
||||
+ cmake_parse_arguments(ARG "NO_INSTALL" "" "" ${ARGN})
|
||||
+ llvm_add_library(${name} MODULE ${ARG_UNPARSED_ARGUMENTS})
|
||||
if(NOT TARGET ${name})
|
||||
# Add empty "phony" target
|
||||
add_custom_target(${name})
|
||||
@@ -693,10 +694,12 @@ macro(add_llvm_loadable_module name)
|
||||
set_property(GLOBAL PROPERTY LLVM_HAS_EXPORTS True)
|
||||
endif()
|
||||
|
||||
- install(TARGETS ${name}
|
||||
- ${export_to_llvmexports}
|
||||
- LIBRARY DESTINATION ${dlldir}
|
||||
- ARCHIVE DESTINATION lib${LLVM_LIBDIR_SUFFIX})
|
||||
+ if (NOT ARG_NO_INSTALL)
|
||||
+ install(TARGETS ${name}
|
||||
+ ${export_to_llvmexports}
|
||||
+ LIBRARY DESTINATION ${dlldir}
|
||||
+ ARCHIVE DESTINATION lib${LLVM_LIBDIR_SUFFIX})
|
||||
+ endif()
|
||||
endif()
|
||||
set_property(GLOBAL APPEND PROPERTY LLVM_EXPORTS ${name})
|
||||
endif()
|
||||
diff --git a/unittests/Passes/CMakeLists.txt b/unittests/Passes/CMakeLists.txt
|
||||
index d90df20..99390e6 100644
|
||||
--- a/unittests/Passes/CMakeLists.txt
|
||||
+++ b/unittests/Passes/CMakeLists.txt
|
||||
@@ -14,7 +14,7 @@ add_llvm_unittest(PluginsTests
|
||||
export_executable_symbols(PluginsTests)
|
||||
|
||||
set(LLVM_LINK_COMPONENTS)
|
||||
-add_llvm_loadable_module(TestPlugin
|
||||
+add_llvm_loadable_module(TestPlugin NO_INSTALL
|
||||
TestPlugin.cpp
|
||||
)
|
||||
|
||||
--
|
||||
1.8.3.1
|
||||
|
@ -1,17 +1,17 @@
|
||||
From e67ace2ecb42c24e124f1738dc67b22055a22500 Mon Sep 17 00:00:00 2001
|
||||
From: Tom Stellard <tstellar@redhat.com>
|
||||
Date: Thu, 13 Sep 2018 10:10:08 -0700
|
||||
Subject: [PATCH] Don't set rpath when installing
|
||||
From 05e48edb91ddcf0d85ba2de2672b252e3ec3cbc3 Mon Sep 17 00:00:00 2001
|
||||
From: serge-sans-paille <sguelton@redhat.com>
|
||||
Date: Fri, 25 Jan 2019 17:39:04 +0000
|
||||
Subject: [PATCH 2/2] [PATCH] Don't set rpath when installing
|
||||
|
||||
---
|
||||
cmake/modules/AddLLVM.cmake | 1 +
|
||||
1 file changed, 1 insertion(+)
|
||||
|
||||
diff --git a/cmake/modules/AddLLVM.cmake b/cmake/modules/AddLLVM.cmake
|
||||
index ce2057f..de309b5 100644
|
||||
index c408377cd2e..56ab12c2365 100644
|
||||
--- a/cmake/modules/AddLLVM.cmake
|
||||
+++ b/cmake/modules/AddLLVM.cmake
|
||||
@@ -1621,6 +1621,7 @@ function(llvm_codesign name)
|
||||
@@ -1662,6 +1662,7 @@ function(llvm_codesign name)
|
||||
endfunction()
|
||||
|
||||
function(llvm_setup_rpath name)
|
||||
@ -20,5 +20,5 @@ index ce2057f..de309b5 100644
|
||||
return()
|
||||
endif()
|
||||
--
|
||||
1.8.3.1
|
||||
2.19.2
|
||||
|
@ -1,28 +0,0 @@
|
||||
From 9bfebd6e47cb8513dcd7f7203f29489bdec7bfe4 Mon Sep 17 00:00:00 2001
|
||||
From: Jonas Devlieghere <jonas@devlieghere.com>
|
||||
Date: Fri, 21 Sep 2018 12:28:44 +0000
|
||||
Subject: [PATCH 2/2] [test] Fix Assembler/debug-info.ll
|
||||
|
||||
Update Assembler/debug-info.ll to contain discriminator.
|
||||
|
||||
llvm-svn: 342727
|
||||
---
|
||||
llvm/test/Assembler/debug-info.ll | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/test/Assembler/debug-info.ll b/test/Assembler/debug-info.ll
|
||||
index 5dfb8cd93435..605afc3f1587 100644
|
||||
--- a/test/Assembler/debug-info.ll
|
||||
+++ b/test/Assembler/debug-info.ll
|
||||
@@ -83,7 +83,7 @@
|
||||
; CHECK-NEXT: !32 = !DIFile(filename: "file", directory: "dir", checksumkind: CSK_MD5, checksum: "000102030405060708090a0b0c0d0e0f")
|
||||
!35 = !DIFile(filename: "file", directory: "dir", checksumkind: CSK_MD5, checksum: "000102030405060708090a0b0c0d0e0f")
|
||||
|
||||
-; CHECK-NEXT: !33 = !DICompositeType(tag: DW_TAG_variant_part, name: "A", scope: !14, size: 64)
|
||||
+; CHECK-NEXT: !33 = !DICompositeType(tag: DW_TAG_variant_part, name: "A", scope: !14, size: 64, discriminator: !34)
|
||||
; CHECK-NEXT: !34 = !DIDerivedType(tag: DW_TAG_member, scope: !33, baseType: !35, size: 64, align: 64, flags: DIFlagArtificial)
|
||||
; CHECK-NEXT: !35 = !DIBasicType(name: "u64", size: 64, encoding: DW_ATE_unsigned)
|
||||
!36 = !DICompositeType(tag: DW_TAG_variant_part, name: "A", scope: !16, size: 64, discriminator: !37)
|
||||
--
|
||||
2.20.1
|
||||
|
75
llvm.spec
75
llvm.spec
@ -9,11 +9,12 @@
|
||||
%global compat_build 0
|
||||
|
||||
%global llvm_bindir %{_libdir}/%{name}
|
||||
%global llvm_bin %{_lib}/%{name}
|
||||
%global build_llvm_bindir %{buildroot}%{llvm_bindir}
|
||||
%global maj_ver 7
|
||||
%global maj_ver 8
|
||||
%global min_ver 0
|
||||
%global patch_ver 1
|
||||
#%%global rc_ver 3
|
||||
%global patch_ver 0
|
||||
%global rc_ver 1
|
||||
|
||||
%ifarch s390x
|
||||
%global llvm_targets SystemZ;BPF
|
||||
@ -55,7 +56,7 @@
|
||||
|
||||
Name: %{pkg_name}
|
||||
Version: %{maj_ver}.%{min_ver}.%{patch_ver}
|
||||
Release: 2%{?rc_ver:.rc%{rc_ver}}%{?dist}.1
|
||||
Release: 1%{?rc_ver:.rc%{rc_ver}}%{?dist}
|
||||
Summary: The Low Level Virtual Machine
|
||||
|
||||
License: NCSA
|
||||
@ -63,18 +64,9 @@ URL: http://llvm.org
|
||||
Source0: http://%{?rc_ver:pre}releases.llvm.org/%{version}/%{?rc_ver:rc%{rc_ver}}/llvm-%{version}%{?rc_ver:rc%{rc_ver}}.src.tar.xz
|
||||
Source1: run-lit-tests
|
||||
|
||||
Patch3: 0001-CMake-Split-static-library-exports-into-their-own-ex.patch
|
||||
Patch7: 0001-Filter-out-cxxflags-not-supported-by-clang.patch
|
||||
|
||||
Patch12: 0001-unittests-Don-t-install-TestPlugin.so.patch
|
||||
# If python2 is available on the system, llvm will try to use it. This patch
|
||||
# removes the preferences for python2, so we can make sure we always use
|
||||
# python3.
|
||||
Patch14: 0001-CMake-Don-t-prefer-python2.7.patch
|
||||
Patch15: 0001-Don-t-set-rpath-when-installing.patch
|
||||
|
||||
Patch16: 0001-Ensure-that-variant-part-discriminator-is-read-by-Me.patch
|
||||
Patch17: 0002-test-Fix-Assembler-debug-info.ll.patch
|
||||
Patch5: 0001-PATCH-llvm-config.patch
|
||||
Patch7: 0001-PATCH-Filter-out-cxxflags-not-supported-by-clang.patch
|
||||
Patch15: 0002-PATCH-Don-t-set-rpath-when-installing.patch
|
||||
|
||||
BuildRequires: gcc
|
||||
BuildRequires: gcc-c++
|
||||
@ -84,6 +76,7 @@ BuildRequires: zlib-devel
|
||||
BuildRequires: libffi-devel
|
||||
BuildRequires: ncurses-devel
|
||||
BuildRequires: python3-sphinx
|
||||
BuildRequires: python3-recommonmark
|
||||
BuildRequires: multilib-rpm-config
|
||||
BuildRequires: chrpath
|
||||
%if %{with gold}
|
||||
@ -226,6 +219,7 @@ cd _build
|
||||
%else
|
||||
-DLLVM_INSTALL_UTILS:BOOL=ON \
|
||||
-DLLVM_UTILS_INSTALL_DIR:PATH=%{build_llvm_bindir} \
|
||||
-DLLVM_TOOLS_INSTALL_DIR:PATH=%{llvm_bin}\
|
||||
%endif
|
||||
\
|
||||
-DLLVM_INCLUDE_DOCS:BOOL=ON \
|
||||
@ -247,26 +241,29 @@ cd _build
|
||||
ninja -v
|
||||
|
||||
%install
|
||||
cd _build
|
||||
ninja -v install
|
||||
ninja -C _build -v install
|
||||
|
||||
|
||||
%if !0%{?compat_build}
|
||||
# fix multi-lib
|
||||
mv -v %{buildroot}%{_bindir}/llvm-config{,-%{__isa_bits}}
|
||||
mkdir -p %{buildroot}/%{_bindir}
|
||||
ln -s %{llvm_bindir}/llvm-config %{buildroot}/%{_bindir}/llvm-config-%{__isa_bits}
|
||||
|
||||
# Install binaries needed for lit tests
|
||||
%global test_binaries FileCheck count lli-child-target llvm-PerfectShuffle llvm-isel-fuzzer llvm-opt-fuzzer not yaml-bench
|
||||
|
||||
for f in %{test_binaries}
|
||||
do
|
||||
install -m 0755 ./_build/bin/$f %{build_llvm_bindir}
|
||||
done
|
||||
|
||||
|
||||
%multilib_fix_c_header --file %{_includedir}/llvm/Config/llvm-config.h
|
||||
|
||||
# Install binaries needed for lit tests
|
||||
%global test_binaries lli-child-target llvm-isel-fuzzer llvm-opt-fuzzer yaml-bench
|
||||
for f in %{test_binaries}; do
|
||||
install -m 0755 ./bin/$f %{build_llvm_bindir}
|
||||
done
|
||||
|
||||
# Install libraries needed for unittests
|
||||
%if 0%{?__isa_bits} == 64
|
||||
%global build_libdir lib64
|
||||
%global build_libdir _build/lib64
|
||||
%else
|
||||
%global build_libdir lib
|
||||
%global build_libdir _build/lib
|
||||
%endif
|
||||
|
||||
install %{build_libdir}/libLLVMTestingSupport.a %{buildroot}%{_libdir}
|
||||
@ -275,8 +272,6 @@ install %{build_libdir}/libLLVMTestingSupport.a %{buildroot}%{_libdir}
|
||||
%global lit_cfg test/lit.site.cfg.py
|
||||
%global lit_unit_cfg test/Unit/lit.site.cfg.py
|
||||
|
||||
cd ..
|
||||
|
||||
# Install gtest sources so clang can use them for gtest
|
||||
install -d %{install_srcdir}
|
||||
install -d %{install_srcdir}/utils/
|
||||
@ -311,9 +306,10 @@ find %{build_llvm_bindir} -ignore_readdir_race -iname 'cmake*' -exec rm -Rf '{}'
|
||||
|
||||
# Add version suffix to binaries
|
||||
mkdir -p %{buildroot}/%{_bindir}
|
||||
for f in `ls %{buildroot}/%{install_bindir}/*`; do
|
||||
for f in %{build_llvm_bindir}/*
|
||||
do
|
||||
filename=`basename $f`
|
||||
ln -s %{install_bindir}/$filename %{buildroot}/%{_bindir}/$filename%{exec_suffix}
|
||||
ln -s %{_bindir}/$filename %{buildroot}/%{_bindir}/$filename%{exec_suffix}
|
||||
done
|
||||
|
||||
# Move header files
|
||||
@ -322,7 +318,6 @@ 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
|
||||
@ -343,6 +338,7 @@ rm -Rf %{build_install_prefix}/share/opt-viewer
|
||||
|
||||
%endif
|
||||
|
||||
|
||||
%check
|
||||
cd _build
|
||||
ninja check-all || :
|
||||
@ -352,11 +348,11 @@ ninja check-all || :
|
||||
%if !0%{?compat_build}
|
||||
|
||||
%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 %{llvm_bindir}/llvm-config %{__isa_bits}
|
||||
|
||||
%postun devel
|
||||
if [ $1 -eq 0 ]; then
|
||||
%{_sbindir}/update-alternatives --remove llvm-config %{_bindir}/llvm-config-%{__isa_bits}
|
||||
%{_sbindir}/update-alternatives --remove llvm-config %{llvm_bindir}/llvm-config
|
||||
fi
|
||||
|
||||
%endif
|
||||
@ -379,16 +375,12 @@ fi
|
||||
%files libs
|
||||
%{pkg_libdir}/libLLVM-%{maj_ver}.so
|
||||
%if !0%{?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
|
||||
%{pkg_libdir}/BugpointPasses.so
|
||||
%{pkg_libdir}/LLVMHello.so
|
||||
%if %{with gold}
|
||||
%{_libdir}/%{name}/lib/LLVMgold.so
|
||||
%endif
|
||||
@ -396,6 +388,7 @@ fi
|
||||
%{pkg_libdir}/libLTO.so*
|
||||
%exclude %{pkg_libdir}/libLTO.so
|
||||
%endif
|
||||
%{pkg_libdir}/libOptRemarks.so*
|
||||
|
||||
%files devel
|
||||
%if !0%{?compat_build}
|
||||
@ -449,6 +442,10 @@ fi
|
||||
%endif
|
||||
|
||||
%changelog
|
||||
|
||||
* Sat Feb 9 2019 sguelton@redhat.com - 8.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
|
||||
|
||||
|
@ -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
|
||||
|
2
sources
2
sources
@ -1 +1 @@
|
||||
SHA512 (llvm-7.0.1.src.tar.xz) = ac43a3cb71a53deb55e3693653847cf20bf6f5d9056f224e6956c96d63bc59ebee9404f088eec9cabe65337b4607a905ef931354b373cf64e0004c6905a6b5df
|
||||
SHA512 (llvm-8.0.0rc1.src.tar.xz) = b4d0c77a58fbe3bacc4cc4bc8efcaa1b46ed04031b983f764fba716c87e1e30706fd077cb5b2899632af0493d23ee8653f2ee3c3177492974c7c2bd2039f1828
|
||||
|
Loading…
Reference in New Issue
Block a user