Compare commits
3 Commits
Author | SHA1 | Date |
---|---|---|
Josh Stone | 01b593fc4e | |
Josh Stone | 210cd876b6 | |
Josh Stone | 74fef128e4 |
|
@ -28,43 +28,3 @@
|
|||
/llvm-3.8.0rc3.src.tar.xz
|
||||
/llvm-3.8.0.src.tar.xz
|
||||
/llvm-3.8.1.src.tar.xz
|
||||
/llvm-3.9.0.src.tar.xz
|
||||
/llvm-3.9.1.src.tar.xz
|
||||
/llvm-4.0.0.src.tar.xz
|
||||
/llvm-4.0.1.src.tar.xz
|
||||
/llvm-5.0.0.src.tar.xz
|
||||
/llvm-5.0.1.src.tar.xz
|
||||
/llvm-6.0.0rc1.src.tar.xz
|
||||
/llvm-6.0.0rc2.src.tar.xz
|
||||
/llvm-6.0.0.src.tar.xz
|
||||
/llvm-6.0.1rc1.src.tar.xz
|
||||
/llvm-6.0.1rc2.src.tar.xz
|
||||
/llvm-6.0.1.src.tar.xz
|
||||
/llvm-7.0.0rc1.src.tar.xz
|
||||
/llvm-7.0.0rc2.src.tar.xz
|
||||
/llvm-7.0.0rc3.src.tar.xz
|
||||
/llvm-7.0.0.src.tar.xz
|
||||
/llvm-7.0.1.src.tar.xz
|
||||
/llvm-8.0.0rc1.src.tar.xz
|
||||
/llvm-8.0.0rc2.src.tar.xz
|
||||
/llvm-8.0.0rc3.src.tar.xz
|
||||
/llvm-8.0.0rc4.src.tar.xz
|
||||
/llvm-8.0.0.src.tar.xz
|
||||
/llvm-9.0.0rc2.src.tar.xz
|
||||
/llvm-9.0.0rc3.src.tar.xz
|
||||
/llvm-9.0.0.src.tar.xz
|
||||
/llvm-9.0.1.src.tar.xz
|
||||
/llvm-10.0.0rc1.src.tar.xz
|
||||
/llvm-10.0.0rc1.src.tar.xz.sig
|
||||
/llvm-10.0.0rc2.src.tar.xz
|
||||
/llvm-10.0.0rc2.src.tar.xz.sig
|
||||
/llvm-10.0.0rc3.src.tar.xz
|
||||
/llvm-10.0.0rc3.src.tar.xz.sig
|
||||
/llvm-10.0.0rc4.src.tar.xz
|
||||
/llvm-10.0.0rc4.src.tar.xz.sig
|
||||
/llvm-10.0.0rc5.src.tar.xz
|
||||
/llvm-10.0.0rc5.src.tar.xz.sig
|
||||
/llvm-10.0.0rc6.src.tar.xz
|
||||
/llvm-10.0.0rc6.src.tar.xz.sig
|
||||
/llvm-10.0.0.src.tar.xz
|
||||
/llvm-10.0.0.src.tar.xz.sig
|
||||
|
|
|
@ -1,66 +0,0 @@
|
|||
From 8f6917ea11bd1bfbfe07f3577756d1c4abfdb916 Mon Sep 17 00:00:00 2001
|
||||
From: Tom Stellard <tstellar@redhat.com>
|
||||
Date: Fri, 6 Sep 2019 11:03:18 -0700
|
||||
Subject: [PATCH] CMake: Split static library exports into their own export
|
||||
file
|
||||
|
||||
---
|
||||
llvm/cmake/modules/AddLLVM.cmake | 6 +++++-
|
||||
llvm/cmake/modules/CMakeLists.txt | 3 +++
|
||||
llvm/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)
|
||||
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)
|
||||
+ set(export_to_llvmexports EXPORT LLVMExports)
|
||||
+ else()
|
||||
+ set(export_to_llvmexports EXPORT LLVMStaticExports)
|
||||
+ 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 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}")
|
||||
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")
|
||||
configure_file(
|
||||
LLVMConfig.cmake.in
|
||||
${CMAKE_CURRENT_BINARY_DIR}/CMakeFiles/LLVMConfig.cmake
|
||||
@@ -121,6 +122,8 @@ if (NOT LLVM_INSTALL_TOOLCHAIN_ONLY)
|
||||
if(llvm_has_exports)
|
||||
install(EXPORT LLVMExports DESTINATION ${LLVM_INSTALL_PACKAGE_DIR}
|
||||
COMPONENT cmake-exports)
|
||||
+ install(EXPORT LLVMStaticExports 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 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)
|
||||
set(LLVM_EXPORTED_TARGETS "@LLVM_CONFIG_EXPORTS@")
|
||||
include("@LLVM_CONFIG_EXPORTS_FILE@")
|
||||
@llvm_config_include_buildtree_only_exports@
|
||||
+
|
||||
+ include("@LLVM_CONFIG_STATIC_EXPORTS_FILE@" OPTIONAL)
|
||||
endif()
|
||||
|
||||
# By creating intrinsics_gen here, subprojects that depend on LLVM's
|
||||
--
|
||||
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,53 @@
|
|||
From 04c252cc93fe5905a625773cd174ed6ca7651463 Mon Sep 17 00:00:00 2001
|
||||
From: Will Schmidt <will_schmidt@vnet.ibm.com>
|
||||
Date: Mon, 24 Mar 2014 16:04:15 +0000
|
||||
Subject: [PATCH] [PPC64LE] ELFv2 ABI updates for the .opd section
|
||||
|
||||
[PPC64LE] ELFv2 ABI updates for the .opd section
|
||||
The PPC64 Little Endian (PPC64LE) target supports the ELFv2 ABI, and as
|
||||
such, does not have a ".opd" section. This is keyed off a _CALL_ELF=2
|
||||
macro check.
|
||||
|
||||
The CALL_ELF check is not clearly documented at this time. The basis
|
||||
for usage in this patch is from the gcc thread here:
|
||||
http://gcc.gnu.org/ml/gcc-patches/2013-11/msg01144.html
|
||||
|
||||
> Adding comment from Uli:
|
||||
Looks good to me. I think the old-style JIT doesn't really work
|
||||
anyway for 64-bit, but at least with this patch LLVM will compile
|
||||
and link again on a ppc64le host ...
|
||||
|
||||
|
||||
|
||||
|
||||
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@204614 91177308-0d34-0410-b5e6-96231b3b80d8
|
||||
---
|
||||
lib/Target/PowerPC/PPCJITInfo.cpp | 5 +++++
|
||||
1 file changed, 5 insertions(+)
|
||||
|
||||
diff --git a/lib/Target/PowerPC/PPCJITInfo.cpp b/lib/Target/PowerPC/PPCJITInfo.cpp
|
||||
index 5e3a48d..227919c 100644
|
||||
--- a/lib/Target/PowerPC/PPCJITInfo.cpp
|
||||
+++ b/lib/Target/PowerPC/PPCJITInfo.cpp
|
||||
@@ -214,6 +214,10 @@ asm(
|
||||
".text\n"
|
||||
".align 2\n"
|
||||
".globl PPC64CompilationCallback\n"
|
||||
+#if _CALL_ELF == 2
|
||||
+ ".type PPC64CompilationCallback,@function\n"
|
||||
+"PPC64CompilationCallback:\n"
|
||||
+#else
|
||||
".section \".opd\",\"aw\",@progbits\n"
|
||||
".align 3\n"
|
||||
"PPC64CompilationCallback:\n"
|
||||
@@ -223,6 +227,7 @@ asm(
|
||||
".align 4\n"
|
||||
".type PPC64CompilationCallback,@function\n"
|
||||
".L.PPC64CompilationCallback:\n"
|
||||
+#endif
|
||||
# else
|
||||
asm(
|
||||
".text\n"
|
||||
--
|
||||
1.9.3
|
||||
|
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,22 @@
|
|||
Preserve timestamps when installing data files
|
||||
|
||||
---
|
||||
Makefile.rules | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/Makefile.rules b/Makefile.rules
|
||||
index f0c542b..0ff92bb 100644
|
||||
--- a/Makefile.rules
|
||||
+++ b/Makefile.rules
|
||||
@@ -773,7 +773,7 @@ BCCompile.CXX = $(LLVMCXX) $(CPP.Flags) $(CXX.Flags) $(CXXFLAGS) $(CPPFLAGS) \
|
||||
|
||||
ProgInstall = $(INSTALL) $(Install.StripFlag) -m 0755
|
||||
ScriptInstall = $(INSTALL) -m 0755
|
||||
-DataInstall = $(INSTALL) -m 0644
|
||||
+DataInstall = $(INSTALL) -p -m 0644
|
||||
|
||||
# When compiling under Mingw/Cygwin, the tblgen tool expects Windows
|
||||
# paths. In this case, the SYSPATH function (defined in
|
||||
--
|
||||
1.8.3.1
|
||||
|
|
@ -0,0 +1,24 @@
|
|||
From e746af90e6aa52af6e6bb0b88ffe20dbd97a1e4d Mon Sep 17 00:00:00 2001
|
||||
From: Stephan Bergmann <sbergman@redhat.com>
|
||||
Date: Thu, 3 Dec 2015 14:53:39 +0100
|
||||
Subject: [PATCH 2/3] Adapt previous (Clang trunk) patch to Clang 3.7
|
||||
|
||||
---
|
||||
lib/AST/ItaniumMangle.cpp | 1 +
|
||||
1 file changed, 1 insertion(+)
|
||||
|
||||
diff --git a/lib/AST/ItaniumMangle.cpp b/lib/AST/ItaniumMangle.cpp
|
||||
index e32b659..19a09dc 100644
|
||||
--- a/tools/clang/lib/AST/ItaniumMangle.cpp
|
||||
+++ b/tools/clang/lib/AST/ItaniumMangle.cpp
|
||||
@@ -31,6 +31,7 @@
|
||||
#include "llvm/ADT/StringExtras.h"
|
||||
#include "llvm/Support/ErrorHandling.h"
|
||||
#include "llvm/Support/raw_ostream.h"
|
||||
+#include <set>
|
||||
|
||||
#define MANGLE_CHECKER 0
|
||||
|
||||
--
|
||||
2.4.3
|
||||
|
|
@ -0,0 +1,12 @@
|
|||
diff -up llvm-3.4/tools/llvm-shlib/Makefile.orig llvm-3.4/tools/llvm-shlib/Makefile
|
||||
--- llvm-3.4/tools/llvm-shlib/Makefile.orig 2013-11-01 00:35:00.000000000 +1000
|
||||
+++ llvm-3.4/tools/llvm-shlib/Makefile 2014-01-14 10:13:20.069858909 +1000
|
||||
@@ -75,7 +75,7 @@ endif
|
||||
|
||||
ifeq ($(HOST_OS), $(filter $(HOST_OS), Linux GNU GNU/kFreeBSD))
|
||||
# Don't allow unresolved symbols.
|
||||
- LLVMLibsOptions += -Wl,--no-undefined
|
||||
+ LLVMLibsOptions += -Wl,--no-undefined -Wl,-Bsymbolic
|
||||
endif
|
||||
|
||||
ifeq ($(HOST_OS),SunOS)
|
|
@ -0,0 +1,16 @@
|
|||
diff -up llvm-3.4.1.src/tools/clang/lib/Driver/Tools.cpp.jx llvm-3.4.1.src/tools/clang/lib/Driver/Tools.cpp
|
||||
--- llvm-3.4.1.src/tools/clang/lib/Driver/Tools.cpp.jx 2013-12-08 21:59:27.000000000 -0500
|
||||
+++ llvm-3.4.1.src/tools/clang/lib/Driver/Tools.cpp 2014-06-02 11:24:07.628292753 -0400
|
||||
@@ -763,9 +763,9 @@ static StringRef getARMFloatABI(const Dr
|
||||
break;
|
||||
}
|
||||
default:
|
||||
- // Assume "soft", but warn the user we are guessing.
|
||||
- FloatABI = "soft";
|
||||
- D.Diag(diag::warn_drv_assuming_mfloat_abi_is) << "soft";
|
||||
+ // Assume "hard", but warn the user we are guessing.
|
||||
+ FloatABI = "hard";
|
||||
+ D.Diag(diag::warn_drv_assuming_mfloat_abi_is) << "hard";
|
||||
break;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,12 @@
|
|||
diff -up llvm-3.7.0.src/include/llvm/CodeGen/CommandFlags.h.dma llvm-3.7.0.src/include/llvm/CodeGen/CommandFlags.h
|
||||
--- llvm-3.7.0.src/include/llvm/CodeGen/CommandFlags.h.dma 2015-09-15 15:01:41.570871134 +1000
|
||||
+++ llvm-3.7.0.src/include/llvm/CodeGen/CommandFlags.h 2015-09-15 15:01:53.642191476 +1000
|
||||
@@ -21,7 +21,7 @@
|
||||
#include "llvm/IR/Intrinsics.h"
|
||||
#include "llvm/IR/Module.h"
|
||||
#include "llvm/MC/MCTargetOptionsCommandFlags.h"
|
||||
-#include "llvm//MC/SubtargetFeature.h"
|
||||
+#include "llvm/MC/SubtargetFeature.h"
|
||||
#include "llvm/Support/CodeGen.h"
|
||||
#include "llvm/Support/CommandLine.h"
|
||||
#include "llvm/Support/Host.h"
|
12
gating.yaml
12
gating.yaml
|
@ -1,12 +0,0 @@
|
|||
--- !Policy
|
||||
product_versions:
|
||||
- fedora-*
|
||||
decision_context: bodhi_update_push_testing
|
||||
rules:
|
||||
- !PassingTestCaseRule {test_case_name: org.centos.prod.ci.pipeline.allpackages-build.package.test.functional.complete}
|
||||
--- !Policy
|
||||
product_versions:
|
||||
- fedora-*
|
||||
decision_context: bodhi_update_push_stable
|
||||
rules:
|
||||
- !PassingTestCaseRule {test_case_name: org.centos.prod.ci.pipeline.allpackages-build.package.test.functional.complete}
|
|
@ -1,52 +0,0 @@
|
|||
-----BEGIN PGP PUBLIC KEY BLOCK-----
|
||||
|
||||
mQINBFS+1SABEACnmkESkY7eZq0GhDjbkWpKmURGk9+ycsfAhA44NqUvf4tk1GPM
|
||||
5SkJ/fYedYZJaDVhIp98fHgucD0O+vjOzghtgwtITusYjiPHPFBd/MN+MQqSEAP+
|
||||
LUa/kjHLjgyXxKhFUIDGVaDWL5tKOA7/AQKl1TyJ8lz89NHQoUHFsF/hu10+qhJe
|
||||
V65d32MXFehIUSvegh8DrPuExrliSiORO4HOhuc6151dWA4YBWVg4rX5kfKrGMMT
|
||||
pTWnSSZtgoRhkKW2Ey8cmZUqPuUJIfWyeNVu1e4SFtAivLvu/Ymz2WBJcNA1ZlTr
|
||||
RCOR5SIRgZ453pQnI/Bzna2nnJ/TV1gGJIGRahj/ini0cs2x1CILfS/YJQ3rWGGo
|
||||
OxwG0BVmPk0cmLVtyTq8gUPwxcPUd6WcBKhot3TDMlrffZACnQwQjlVjk5S1dEEz
|
||||
atUfpEuNitU9WOM4jr/gjv36ZNCOWm95YwLhsuci/NddBN8HXhyvs+zYTVZEXa2W
|
||||
l/FqOdQsQqZBcJjjWckGKhESdd7934+cesGD3O8KaeSGxww7slJrS0+6QJ8oBoAB
|
||||
P/WCn/y2AiY2syEKp3wYIGJyAbsm542zMZ4nc7pYfSu49mcyhQQICmqN5QvOyYUx
|
||||
OSqwbAOUNtlOyeRLZNIKoXtTqWDEu5aEiDROTw6Rkq+dIcxPNgOLdeQ3HwARAQAB
|
||||
tCFIYW5zIFdlbm5ib3JnIDxoYW5zQGNocm9taXVtLm9yZz6JAlUEEwECAD8CGwMG
|
||||
CwkIBwMCBhUIAgkKCwQWAgMBAh4BAheAFiEEtsj5goK5ROOw1cJTD8MELjRa0F0F
|
||||
Alpd+i0FCQ8FJo0ACgkQD8MELjRa0F3X3A//dBQLm6GmXlQFjxZbukTw0lZsevFR
|
||||
M/6ljZTxp7bsC+HFzYoaCKv6rikaWzytxk//SOaLKrB4Z9HjAlpBMtyLl2Hk7tcZ
|
||||
bPpFafNmQ+4KgWNjLXCvt9se8BGrQvGQUrbE6YowbXa2YIgxIVEncFzIECAsp/+N
|
||||
xbMcZN5/X1PJxKi/N22gP4nn47muN6L3pKez3CXgWnhGYSc7BuD5ALWYH7yMYUem
|
||||
d4jlXfu5xkBIqirj1arIYC9wmF4ldbLNDPuracc8LmXcSqa5Rpao0s4iVzAD+tkX
|
||||
vE/73m3rhepwBXxrfk0McXuI9aucf5h4/KkIBzZsaJ6JM1tzlrJzzjaBKJF9OI5T
|
||||
jA0qTxdGzdPztS8gPaPcMkRFfh9ti0ZDx4VeF3s8sOtmMRHeGEWfxqUAbBUbwFsa
|
||||
JDu/+8/VO4KijfcuUi8tqJ/JHeosCuGE7TM93LwJu6ZcqMYOPDROE/hsnGm0ZU92
|
||||
xedu+07/X1ESHkSFPoaSHD5/DCNa/tXIyJZ8X7gF3eoDP5mSmrJqIqsOBR9WOVYv
|
||||
dI8i0GHTXbrZj8WXdoS+N8wlyMLLbAS2jvTe7M5RoqbLz4ABOUUnLVoEE0CiccVZ
|
||||
bW75BPxOfaD0szbinAeX6HDPI7St0MbKrRPjuDXjD0JVkLqFINtZfYLGMLss4tgn
|
||||
suefr0Bo9ISwG3u5Ag0EVL7VIAEQAOxBxrQesChjrCqKjY5PnSsSYpeb4froucrC
|
||||
898AFw2DgN/Zz+W7wtSTbtz/GRcCurjzZvN7o2rCuNk0j0+s1sgZZm2BdldlabLy
|
||||
+UF/kSW1rb5qhfXcGGubu48OMdtSfok9lOc0Q1L4HNlGE4lUBkZzmI7Ykqfl+Bwr
|
||||
m9rpi54g4ua9PIiiHIAmMoZIcbtOG1KaDr6CoXRk/3g2ZiGUwhq3jFGroiBsKEap
|
||||
2FJ1bh5NJk2Eg8pV7fMOF7hUQKBZrNOtIPu8hA5WEgku3U3VYjRSI3SDi6QXnDL+
|
||||
xHxajiWpKtF3JjZh8y/CCTD8PyP34YjfZuFmkdske5cdx6H0V2UCiH453ncgFVdQ
|
||||
DXkY4n+0MTzhy2xu0IVVnBxYDYNhi+3MjTHJd9C4xMi9t+5IuEvDAPhgfZjDpQak
|
||||
EPz6hVmgj0mlKIgRilBRK9/kOxky9utBpGk3jEJGru/hKNloFNspoYtY6zATAr8E
|
||||
cOgoCFQE0nIktcg3wF9+OCEnV28/a7XZwUZ7Gl/qfOHtdr374wo8kd8R3V8d2G9q
|
||||
5w0/uCV9NNQ0fGWZDPDoYt6wnPL6gZv/nJM8oZY+u0rC24WwScZIniaryC4JHDas
|
||||
Ahr2S2CtgCvBgslK6f3gD16KHxPZMBpX73TzOYIhMEP/vXgVJbUD6dYht+U9c4Oh
|
||||
EDJown0dABEBAAGJAjwEGAECACYCGwwWIQS2yPmCgrlE47DVwlMPwwQuNFrQXQUC
|
||||
Wl36SwUJDwUmqwAKCRAPwwQuNFrQXT1/D/9YpRDNgaJl3YVDtVZoeQwh7BQ6ULZT
|
||||
eXFPogYkF2j3VWg8s9UmAs4sg/4a+9KLSantXjX+JFsRv0lQe5Gr/Vl8VQ4LKEXB
|
||||
fiGmSivjIZ7eopdd3YP2w6G5T3SA4d2CQfsg4rnJPnXIjzKNiSOi368ybnt9fL0Y
|
||||
2r2aqLTmP6Y7issDUO+J1TW1XHm349JPR0Hl4cTuNnWm4JuX2m2CJEc5XBlDAha9
|
||||
pUVs+J5C2D0UFFkyeOzeJPwy6x5ApWHm84n8AjhQSpu1qRKxKXdwei6tkQWWMHui
|
||||
+TgSY/zCkmD9/oY15Ei5avJ4WgIbTLJUoZMi70riPmU8ThjpzA7S+Nk0g7rMPq+X
|
||||
l1whjKU/u0udlsrIJjzkh6ftqKUmIkbxYTpjhnEujNrEr5m2S6Z6x3y9E5QagBMR
|
||||
dxRhfk+HbyACcP/p9rXOzl4M291DoKeAAH70GHniGxyNs9rAoMr/hD5XW/Wrz3dc
|
||||
KMc2s555E6MZILE2ZiolcRn+bYOMPZtWlbx98t8uqMf49gY4FGQBZAwPglMrx7mr
|
||||
m7HTIiXahThQGOJg6izJDAD5RwSEGlAcL28T8KAuM6CLLkhlBfQwiKsUBNnh9r8w
|
||||
V3lB+pV0GhL+3i077gTYfZBRwLzjFdhm9xUKEaZ6rN1BX9lzix4eSNK5nln0jUq1
|
||||
67H2IH//2sf8dw==
|
||||
=ADVe
|
||||
-----END PGP PUBLIC KEY BLOCK-----
|
|
@ -1,17 +0,0 @@
|
|||
|
||||
config.llvm_tools_dir = '/usr/bin'
|
||||
config.llvm_shlib_dir = '%(llvm_shlib_dir)s' % lit_config.params
|
||||
|
||||
if hasattr(config, 'host_triple'):
|
||||
# This means we are running lit regression tests
|
||||
|
||||
# Regression tests write output to this directory, so we need to be able to specify
|
||||
# a temp directory when invoking lit. e.g. lit -Dllvm_obj_root=/tmp/lit
|
||||
config.llvm_obj_root = "%(llvm_obj_root)s" % lit_config.params
|
||||
lit_config.load_config(config, '%(llvm_test_root)s/lit.cfg.py' % lit_config.params)
|
||||
else:
|
||||
# This means we are running lit unit tests
|
||||
|
||||
# For unit tests, llvm_obj_root is used to find the unit test binaries.
|
||||
config.llvm_obj_root = '%(llvm_unittest_bindir)s' % lit_config.params
|
||||
lit_config.load_config(config, '%(llvm_test_root)s/Unit/lit.cfg.py' % lit_config.params)
|
|
@ -0,0 +1,16 @@
|
|||
Fix broken symlink to Python's lldb module
|
||||
|
||||
Resolves: #1177143
|
||||
|
||||
diff -rupN lldb-3.5.0.src/scripts/Python/finish-swig-Python-LLDB.sh lldb-3.5.0.src-new/scripts/Python/finish-swig-Python-LLDB.sh
|
||||
--- lldb-3.5.0.src/scripts/Python/finish-swig-Python-LLDB.sh 2014-07-01 19:57:19.000000000 +0200
|
||||
+++ lldb-3.5.0.src-new/scripts/Python/finish-swig-Python-LLDB.sh 2014-12-24 14:18:10.068604693 +0100
|
||||
@@ -158,7 +158,7 @@ then
|
||||
then
|
||||
ln -s "../../../LLDB" _lldb.so
|
||||
else
|
||||
- ln -s "../../../liblldb${SOEXT}" _lldb.so
|
||||
+ ln -s "../../../llvm/liblldb${SOEXT}" _lldb.so
|
||||
fi
|
||||
else
|
||||
if [ $Debug -eq 1 ]
|
|
@ -0,0 +1,16 @@
|
|||
diff -up lldb/scripts/Python/modules/readline/Makefile.jx lldb/scripts/Python/modules/readline/Makefile
|
||||
--- lldb/scripts/Python/modules/readline/Makefile.jx 2014-02-26 10:05:48.000000000 -0500
|
||||
+++ lldb/scripts/Python/modules/readline/Makefile 2014-10-14 11:55:05.112566400 -0400
|
||||
@@ -91,9 +91,8 @@ $(LLDB_PYTHON_MODULE_DIR)/$(LIBRARYNAME)
|
||||
# Target to move the shared library from the build python lib dir to
|
||||
# the install python lib dir.
|
||||
install-local:: $(LLDB_PYTHON_MODULE_DIR)/$(LIBRARYNAME)$(SHLIBEXT)
|
||||
- $(Echo) Installing $(BuildMode) $(LLDB_PYTHON_MODULE_DIR)/$(LIBRARYNAME)$(SHLIBEXT) to $(DESTDIR)$(prefix)/lib/$(LLDB_PYTHON_MODULE_REL_DIR)
|
||||
- $(Verb) $(MKDIR) "$(DESTDIR)$(prefix)/lib/$(LLDB_PYTHON_MODULE_REL_DIR)"
|
||||
- $(Verb) $(ProgInstall) "$(LLDB_PYTHON_MODULE_DIR)/$(LIBRARYNAME)$(SHLIBEXT)" "$(DESTDIR)$(prefix)/lib/$(LLDB_PYTHON_MODULE_REL_DIR)"
|
||||
- $(Verb) $(RM) "$(DESTDIR)$(prefix)/lib/$(LIBRARYNAME)$(SHLIBEXT)"
|
||||
+ $(Echo) Installing $(BuildMode) $(LLDB_PYTHON_MODULE_DIR)/$(LIBRARYNAME)$(SHLIBEXT) to $(DESTDIR)$(prefix)/@lib@/$(LLDB_PYTHON_MODULE_REL_DIR)
|
||||
+ $(Verb) $(MKDIR) "$(DESTDIR)$(prefix)/@lib@/$(LLDB_PYTHON_MODULE_REL_DIR)"
|
||||
+ $(Verb) $(ProgInstall) "$(LLDB_PYTHON_MODULE_DIR)/$(LIBRARYNAME)$(SHLIBEXT)" "$(DESTDIR)$(prefix)/@lib@/$(LLDB_PYTHON_MODULE_REL_DIR)"
|
||||
|
||||
endif # if !defined(LLDB_DISABLE_PYTHON)
|
|
@ -0,0 +1,459 @@
|
|||
diff --git a/lib/Target/R600/InstPrinter/AMDGPUInstPrinter.cpp b/lib/Target/R600/InstPrinter/AMDGPUInstPrinter.cpp
|
||||
index 99e1377..7105879 100644
|
||||
--- a/lib/Target/R600/InstPrinter/AMDGPUInstPrinter.cpp
|
||||
+++ b/lib/Target/R600/InstPrinter/AMDGPUInstPrinter.cpp
|
||||
@@ -316,6 +316,37 @@ void AMDGPUInstPrinter::printKCache(const MCInst *MI, unsigned OpNo,
|
||||
}
|
||||
}
|
||||
|
||||
+void AMDGPUInstPrinter::printSendMsg(const MCInst *MI, unsigned OpNo,
|
||||
+ raw_ostream &O) {
|
||||
+ unsigned SImm16 = MI->getOperand(OpNo).getImm();
|
||||
+ unsigned Msg = SImm16 & 0xF;
|
||||
+ if (Msg == 2 || Msg == 3) {
|
||||
+ unsigned Op = (SImm16 >> 4) & 0xF;
|
||||
+ if (Msg == 3)
|
||||
+ O << "Gs_done(";
|
||||
+ else
|
||||
+ O << "Gs(";
|
||||
+ if (Op == 0) {
|
||||
+ O << "nop";
|
||||
+ } else {
|
||||
+ unsigned Stream = (SImm16 >> 8) & 0x3;
|
||||
+ if (Op == 1)
|
||||
+ O << "cut";
|
||||
+ else if (Op == 2)
|
||||
+ O << "emit";
|
||||
+ else if (Op == 3)
|
||||
+ O << "emit-cut";
|
||||
+ O << " stream " << Stream;
|
||||
+ }
|
||||
+ O << "), [m0] ";
|
||||
+ } else if (Msg == 1)
|
||||
+ O << "interrupt ";
|
||||
+ else if (Msg == 15)
|
||||
+ O << "system ";
|
||||
+ else
|
||||
+ O << "unknown(" << Msg << ") ";
|
||||
+}
|
||||
+
|
||||
void AMDGPUInstPrinter::printWaitFlag(const MCInst *MI, unsigned OpNo,
|
||||
raw_ostream &O) {
|
||||
// Note: Mask values are taken from SIInsertWaits.cpp and not from ISA docs
|
||||
diff --git a/lib/Target/R600/InstPrinter/AMDGPUInstPrinter.h b/lib/Target/R600/InstPrinter/AMDGPUInstPrinter.h
|
||||
index 77af942..2876dd2 100644
|
||||
--- a/lib/Target/R600/InstPrinter/AMDGPUInstPrinter.h
|
||||
+++ b/lib/Target/R600/InstPrinter/AMDGPUInstPrinter.h
|
||||
@@ -53,6 +53,7 @@ private:
|
||||
void printRSel(const MCInst *MI, unsigned OpNo, raw_ostream &O);
|
||||
void printCT(const MCInst *MI, unsigned OpNo, raw_ostream &O);
|
||||
void printKCache(const MCInst *MI, unsigned OpNo, raw_ostream &O);
|
||||
+ void printSendMsg(const MCInst *MI, unsigned OpNo, raw_ostream &O);
|
||||
void printWaitFlag(const MCInst *MI, unsigned OpNo, raw_ostream &O);
|
||||
};
|
||||
|
||||
diff --git a/lib/Target/R600/SIInsertWaits.cpp b/lib/Target/R600/SIInsertWaits.cpp
|
||||
index 7ef662e..695ec40 100644
|
||||
--- a/lib/Target/R600/SIInsertWaits.cpp
|
||||
+++ b/lib/Target/R600/SIInsertWaits.cpp
|
||||
@@ -314,6 +314,12 @@ Counters SIInsertWaits::handleOperands(MachineInstr &MI) {
|
||||
|
||||
Counters Result = ZeroCounts;
|
||||
|
||||
+ // S_SENDMSG implicitly waits for all outstanding LGKM transfers to finish,
|
||||
+ // but we also want to wait for any other outstanding transfers before
|
||||
+ // signalling other hardware blocks
|
||||
+ if (MI.getOpcode() == AMDGPU::S_SENDMSG)
|
||||
+ return LastIssued;
|
||||
+
|
||||
// For each register affected by this
|
||||
// instruction increase the result sequence
|
||||
for (unsigned i = 0, e = MI.getNumOperands(); i != e; ++i) {
|
||||
diff --git a/lib/Target/R600/SIInstrInfo.td b/lib/Target/R600/SIInstrInfo.td
|
||||
index 4cd0daa..19d2171 100644
|
||||
--- a/lib/Target/R600/SIInstrInfo.td
|
||||
+++ b/lib/Target/R600/SIInstrInfo.td
|
||||
@@ -425,26 +425,48 @@ class MTBUF_Store_Helper <bits<3> op, string asm, RegisterClass regClass> : MTBU
|
||||
|
||||
multiclass MUBUF_Load_Helper <bits<7> op, string asm, RegisterClass regClass> {
|
||||
|
||||
- let glc = 0, lds = 0, slc = 0, tfe = 0, soffset = 128 /* ZERO */,
|
||||
- mayLoad = 1 in {
|
||||
-
|
||||
- let offen = 1, idxen = 0, addr64 = 0, offset = 0 in {
|
||||
- def _OFFEN : MUBUF <op, (outs regClass:$vdata),
|
||||
- (ins SReg_128:$srsrc, VReg_32:$vaddr),
|
||||
- asm#" $vdata, $srsrc + $vaddr", []>;
|
||||
- }
|
||||
-
|
||||
- let offen = 0, idxen = 1, addr64 = 0 in {
|
||||
- def _IDXEN : MUBUF <op, (outs regClass:$vdata),
|
||||
- (ins SReg_128:$srsrc, VReg_32:$vaddr, i16imm:$offset),
|
||||
- asm#" $vdata, $srsrc[$vaddr] + $offset", []>;
|
||||
- }
|
||||
+ let lds = 0, mayLoad = 1 in {
|
||||
+
|
||||
+ let addr64 = 0 in {
|
||||
+
|
||||
+ let offen = 0, idxen = 0 in {
|
||||
+ def _OFFSET : MUBUF <op, (outs regClass:$vdata),
|
||||
+ (ins SReg_128:$srsrc, VReg_32:$vaddr,
|
||||
+ i16imm:$offset, SSrc_32:$soffset, i1imm:$glc,
|
||||
+ i1imm:$slc, i1imm:$tfe),
|
||||
+ asm#" $vdata, $srsrc + $offset + $soffset, glc=$glc, slc=$slc, tfe=$tfe", []>;
|
||||
+ }
|
||||
+
|
||||
+ let offen = 1, idxen = 0, offset = 0 in {
|
||||
+ def _OFFEN : MUBUF <op, (outs regClass:$vdata),
|
||||
+ (ins SReg_128:$srsrc, VReg_32:$vaddr,
|
||||
+ SSrc_32:$soffset, i1imm:$glc, i1imm:$slc,
|
||||
+ i1imm:$tfe),
|
||||
+ asm#" $vdata, $srsrc + $vaddr + $soffset, glc=$glc, slc=$slc, tfe=$tfe", []>;
|
||||
+ }
|
||||
+
|
||||
+ let offen = 0, idxen = 1 in {
|
||||
+ def _IDXEN : MUBUF <op, (outs regClass:$vdata),
|
||||
+ (ins SReg_128:$srsrc, VReg_32:$vaddr,
|
||||
+ i16imm:$offset, SSrc_32:$soffset, i1imm:$glc,
|
||||
+ i1imm:$slc, i1imm:$tfe),
|
||||
+ asm#" $vdata, $srsrc[$vaddr] + $offset + $soffset, glc=$glc, slc=$slc, tfe=$tfe", []>;
|
||||
+ }
|
||||
+
|
||||
+ let offen = 1, idxen = 1 in {
|
||||
+ def _BOTHEN : MUBUF <op, (outs regClass:$vdata),
|
||||
+ (ins SReg_128:$srsrc, VReg_64:$vaddr,
|
||||
+ SSrc_32:$soffset, i1imm:$glc,
|
||||
+ i1imm:$slc, i1imm:$tfe),
|
||||
+ asm#" $vdata, $srsrc[$vaddr[0]] + $vaddr[1] + $soffset, glc=$glc, slc=$slc, tfe=$tfe", []>;
|
||||
+ }
|
||||
+ }
|
||||
|
||||
- let offen = 0, idxen = 0, addr64 = 1 in {
|
||||
- def _ADDR64 : MUBUF <op, (outs regClass:$vdata),
|
||||
- (ins SReg_128:$srsrc, VReg_64:$vaddr, i16imm:$offset),
|
||||
- asm#" $vdata, $srsrc + $vaddr + $offset", []>;
|
||||
- }
|
||||
+ let offen = 0, idxen = 0, addr64 = 1, glc = 0, slc = 0, tfe = 0, soffset = 128 /* ZERO */ in {
|
||||
+ def _ADDR64 : MUBUF <op, (outs regClass:$vdata),
|
||||
+ (ins SReg_128:$srsrc, VReg_64:$vaddr, i16imm:$offset),
|
||||
+ asm#" $vdata, $srsrc + $vaddr + $offset", []>;
|
||||
+ }
|
||||
}
|
||||
}
|
||||
|
||||
diff --git a/lib/Target/R600/SIInstructions.td b/lib/Target/R600/SIInstructions.td
|
||||
index 76f05eb..9acb9b6 100644
|
||||
--- a/lib/Target/R600/SIInstructions.td
|
||||
+++ b/lib/Target/R600/SIInstructions.td
|
||||
@@ -22,6 +22,10 @@ def InterpSlot : Operand<i32> {
|
||||
let PrintMethod = "printInterpSlot";
|
||||
}
|
||||
|
||||
+def SendMsgImm : Operand<i32> {
|
||||
+ let PrintMethod = "printSendMsg";
|
||||
+}
|
||||
+
|
||||
def isSI : Predicate<"Subtarget.getGeneration() "
|
||||
">= AMDGPUSubtarget::SOUTHERN_ISLANDS">;
|
||||
|
||||
@@ -826,17 +830,25 @@ def S_BARRIER : SOPP <0x0000000a, (ins), "S_BARRIER",
|
||||
def S_WAITCNT : SOPP <0x0000000c, (ins WAIT_FLAG:$simm16), "S_WAITCNT $simm16",
|
||||
[]
|
||||
>;
|
||||
-} // End hasSideEffects
|
||||
//def S_SETHALT : SOPP_ <0x0000000d, "S_SETHALT", []>;
|
||||
//def S_SLEEP : SOPP_ <0x0000000e, "S_SLEEP", []>;
|
||||
//def S_SETPRIO : SOPP_ <0x0000000f, "S_SETPRIO", []>;
|
||||
-//def S_SENDMSG : SOPP_ <0x00000010, "S_SENDMSG", []>;
|
||||
+
|
||||
+let Uses = [EXEC] in {
|
||||
+ def S_SENDMSG : SOPP <0x00000010, (ins SendMsgImm:$simm16, M0Reg:$m0), "S_SENDMSG $simm16",
|
||||
+ [(int_SI_sendmsg imm:$simm16, M0Reg:$m0)]
|
||||
+ > {
|
||||
+ let DisableEncoding = "$m0";
|
||||
+ }
|
||||
+} // End Uses = [EXEC]
|
||||
+
|
||||
//def S_SENDMSGHALT : SOPP_ <0x00000011, "S_SENDMSGHALT", []>;
|
||||
//def S_TRAP : SOPP_ <0x00000012, "S_TRAP", []>;
|
||||
//def S_ICACHE_INV : SOPP_ <0x00000013, "S_ICACHE_INV", []>;
|
||||
//def S_INCPERFLEVEL : SOPP_ <0x00000014, "S_INCPERFLEVEL", []>;
|
||||
//def S_DECPERFLEVEL : SOPP_ <0x00000015, "S_DECPERFLEVEL", []>;
|
||||
//def S_TTRACEDATA : SOPP_ <0x00000016, "S_TTRACEDATA", []>;
|
||||
+} // End hasSideEffects
|
||||
|
||||
def V_CNDMASK_B32_e32 : VOP2 <0x00000000, (outs VReg_32:$dst),
|
||||
(ins VSrc_32:$src0, VReg_32:$src1, VCCReg:$vcc),
|
||||
@@ -1305,8 +1317,8 @@ def SI_END_CF : InstSI <
|
||||
|
||||
def SI_KILL : InstSI <
|
||||
(outs),
|
||||
- (ins VReg_32:$src),
|
||||
- "SI_KIL $src",
|
||||
+ (ins VSrc_32:$src),
|
||||
+ "SI_KILL $src",
|
||||
[(int_AMDGPU_kill f32:$src)]
|
||||
>;
|
||||
|
||||
@@ -1397,13 +1409,13 @@ def : Pat<
|
||||
|
||||
def : Pat <
|
||||
(int_AMDGPU_kilp),
|
||||
- (SI_KILL (V_MOV_B32_e32 0xbf800000))
|
||||
+ (SI_KILL 0xbf800000)
|
||||
>;
|
||||
|
||||
/* int_SI_vs_load_input */
|
||||
def : Pat<
|
||||
(SIload_input i128:$tlst, IMM12bit:$attr_offset, i32:$buf_idx_vgpr),
|
||||
- (BUFFER_LOAD_FORMAT_XYZW_IDXEN $tlst, $buf_idx_vgpr, imm:$attr_offset)
|
||||
+ (BUFFER_LOAD_FORMAT_XYZW_IDXEN $tlst, $buf_idx_vgpr, imm:$attr_offset, 0, 0, 0, 0)
|
||||
>;
|
||||
|
||||
/* int_SI_export */
|
||||
@@ -1809,7 +1821,7 @@ def : Pat <
|
||||
// 3. Offset in an 32Bit VGPR
|
||||
def : Pat <
|
||||
(SIload_constant i128:$sbase, i32:$voff),
|
||||
- (BUFFER_LOAD_DWORD_OFFEN $sbase, $voff)
|
||||
+ (BUFFER_LOAD_DWORD_OFFEN $sbase, $voff, 0, 0, 0, 0)
|
||||
>;
|
||||
|
||||
// The multiplication scales from [0,1] to the unsigned integer range
|
||||
@@ -1970,6 +1982,50 @@ defm : MUBUFStore_Pattern <BUFFER_STORE_DWORDX2, i64, global_store>;
|
||||
defm : MUBUFStore_Pattern <BUFFER_STORE_DWORDX2, v2i32, global_store>;
|
||||
defm : MUBUFStore_Pattern <BUFFER_STORE_DWORDX4, v4i32, global_store>;
|
||||
|
||||
+// BUFFER_LOAD_DWORD*, addr64=0
|
||||
+multiclass MUBUF_Load_Dword <ValueType vt, MUBUF offset, MUBUF offen, MUBUF idxen,
|
||||
+ MUBUF bothen> {
|
||||
+
|
||||
+ def : Pat <
|
||||
+ (vt (int_SI_buffer_load_dword i128:$rsrc, i32:$vaddr, i32:$soffset,
|
||||
+ imm:$offset, 0, 0, imm:$glc, imm:$slc,
|
||||
+ imm:$tfe)),
|
||||
+ (offset $rsrc, $vaddr, (as_i16imm $offset), $soffset, (as_i1imm $glc),
|
||||
+ (as_i1imm $slc), (as_i1imm $tfe))
|
||||
+ >;
|
||||
+
|
||||
+ def : Pat <
|
||||
+ (vt (int_SI_buffer_load_dword i128:$rsrc, i32:$vaddr, i32:$soffset,
|
||||
+ imm, 1, 0, imm:$glc, imm:$slc,
|
||||
+ imm:$tfe)),
|
||||
+ (offen $rsrc, $vaddr, $soffset, (as_i1imm $glc), (as_i1imm $slc),
|
||||
+ (as_i1imm $tfe))
|
||||
+ >;
|
||||
+
|
||||
+ def : Pat <
|
||||
+ (vt (int_SI_buffer_load_dword i128:$rsrc, i32:$vaddr, i32:$soffset,
|
||||
+ imm:$offset, 0, 1, imm:$glc, imm:$slc,
|
||||
+ imm:$tfe)),
|
||||
+ (idxen $rsrc, $vaddr, (as_i16imm $offset), $soffset, (as_i1imm $glc),
|
||||
+ (as_i1imm $slc), (as_i1imm $tfe))
|
||||
+ >;
|
||||
+
|
||||
+ def : Pat <
|
||||
+ (vt (int_SI_buffer_load_dword i128:$rsrc, v2i32:$vaddr, i32:$soffset,
|
||||
+ imm, 1, 1, imm:$glc, imm:$slc,
|
||||
+ imm:$tfe)),
|
||||
+ (bothen $rsrc, $vaddr, $soffset, (as_i1imm $glc), (as_i1imm $slc),
|
||||
+ (as_i1imm $tfe))
|
||||
+ >;
|
||||
+}
|
||||
+
|
||||
+defm : MUBUF_Load_Dword <i32, BUFFER_LOAD_DWORD_OFFSET, BUFFER_LOAD_DWORD_OFFEN,
|
||||
+ BUFFER_LOAD_DWORD_IDXEN, BUFFER_LOAD_DWORD_BOTHEN>;
|
||||
+defm : MUBUF_Load_Dword <v2i32, BUFFER_LOAD_DWORDX2_OFFSET, BUFFER_LOAD_DWORDX2_OFFEN,
|
||||
+ BUFFER_LOAD_DWORDX2_IDXEN, BUFFER_LOAD_DWORDX2_BOTHEN>;
|
||||
+defm : MUBUF_Load_Dword <v4i32, BUFFER_LOAD_DWORDX4_OFFSET, BUFFER_LOAD_DWORDX4_OFFEN,
|
||||
+ BUFFER_LOAD_DWORDX4_IDXEN, BUFFER_LOAD_DWORDX4_BOTHEN>;
|
||||
+
|
||||
//===----------------------------------------------------------------------===//
|
||||
// MTBUF Patterns
|
||||
//===----------------------------------------------------------------------===//
|
||||
diff --git a/lib/Target/R600/SIIntrinsics.td b/lib/Target/R600/SIIntrinsics.td
|
||||
index 7fcc964..00e32c0 100644
|
||||
--- a/lib/Target/R600/SIIntrinsics.td
|
||||
+++ b/lib/Target/R600/SIIntrinsics.td
|
||||
@@ -38,6 +38,22 @@ let TargetPrefix = "SI", isTarget = 1 in {
|
||||
llvm_i32_ty], // tfe(imm)
|
||||
[]>;
|
||||
|
||||
+ // Fully-flexible BUFFER_LOAD_DWORD_* except for the ADDR64 bit, which is not exposed
|
||||
+ def int_SI_buffer_load_dword : Intrinsic <
|
||||
+ [llvm_anyint_ty], // vdata(VGPR), overloaded for types i32, v2i32, v4i32
|
||||
+ [llvm_anyint_ty, // rsrc(SGPR)
|
||||
+ llvm_anyint_ty, // vaddr(VGPR)
|
||||
+ llvm_i32_ty, // soffset(SGPR)
|
||||
+ llvm_i32_ty, // inst_offset(imm)
|
||||
+ llvm_i32_ty, // offen(imm)
|
||||
+ llvm_i32_ty, // idxen(imm)
|
||||
+ llvm_i32_ty, // glc(imm)
|
||||
+ llvm_i32_ty, // slc(imm)
|
||||
+ llvm_i32_ty], // tfe(imm)
|
||||
+ [IntrReadArgMem]>;
|
||||
+
|
||||
+ def int_SI_sendmsg : Intrinsic <[], [llvm_i32_ty, llvm_i32_ty], [IntrNoMem]>;
|
||||
+
|
||||
class Sample : Intrinsic <[llvm_v4f32_ty], [llvm_anyvector_ty, llvm_v32i8_ty, llvm_anyint_ty, llvm_i32_ty], [IntrNoMem]>;
|
||||
|
||||
def int_SI_sample : Sample;
|
||||
diff --git a/lib/Target/R600/SILowerControlFlow.cpp b/lib/Target/R600/SILowerControlFlow.cpp
|
||||
index 958763d..254f3a6 100644
|
||||
--- a/lib/Target/R600/SILowerControlFlow.cpp
|
||||
+++ b/lib/Target/R600/SILowerControlFlow.cpp
|
||||
@@ -55,6 +55,7 @@
|
||||
#include "llvm/CodeGen/MachineFunctionPass.h"
|
||||
#include "llvm/CodeGen/MachineInstrBuilder.h"
|
||||
#include "llvm/CodeGen/MachineRegisterInfo.h"
|
||||
+#include "llvm/IR/Constants.h"
|
||||
|
||||
using namespace llvm;
|
||||
|
||||
@@ -145,7 +146,9 @@ void SILowerControlFlowPass::SkipIfDead(MachineInstr &MI) {
|
||||
MachineBasicBlock &MBB = *MI.getParent();
|
||||
DebugLoc DL = MI.getDebugLoc();
|
||||
|
||||
- if (!shouldSkip(&MBB, &MBB.getParent()->back()))
|
||||
+ if (MBB.getParent()->getInfo<SIMachineFunctionInfo>()->ShaderType !=
|
||||
+ ShaderType::PIXEL ||
|
||||
+ !shouldSkip(&MBB, &MBB.getParent()->back()))
|
||||
return;
|
||||
|
||||
MachineBasicBlock::iterator Insert = &MI;
|
||||
@@ -295,15 +298,27 @@ void SILowerControlFlowPass::Kill(MachineInstr &MI) {
|
||||
|
||||
MachineBasicBlock &MBB = *MI.getParent();
|
||||
DebugLoc DL = MI.getDebugLoc();
|
||||
+ const MachineOperand &Op = MI.getOperand(0);
|
||||
|
||||
- // Kill is only allowed in pixel shaders
|
||||
+ // Kill is only allowed in pixel / geometry shaders
|
||||
assert(MBB.getParent()->getInfo<SIMachineFunctionInfo>()->ShaderType ==
|
||||
- ShaderType::PIXEL);
|
||||
-
|
||||
- // Clear this pixel from the exec mask if the operand is negative
|
||||
- BuildMI(MBB, &MI, DL, TII->get(AMDGPU::V_CMPX_LE_F32_e32), AMDGPU::VCC)
|
||||
- .addImm(0)
|
||||
- .addOperand(MI.getOperand(0));
|
||||
+ ShaderType::PIXEL ||
|
||||
+ MBB.getParent()->getInfo<SIMachineFunctionInfo>()->ShaderType ==
|
||||
+ ShaderType::GEOMETRY);
|
||||
+
|
||||
+ // Clear this thread from the exec mask if the operand is negative
|
||||
+ if ((Op.isImm() || Op.isFPImm())) {
|
||||
+ // Constant operand: Set exec mask to 0 or do nothing
|
||||
+ if (Op.isImm() ? (Op.getImm() & 0x80000000) :
|
||||
+ Op.getFPImm()->isNegative()) {
|
||||
+ BuildMI(MBB, &MI, DL, TII->get(AMDGPU::S_MOV_B64), AMDGPU::EXEC)
|
||||
+ .addImm(0);
|
||||
+ }
|
||||
+ } else {
|
||||
+ BuildMI(MBB, &MI, DL, TII->get(AMDGPU::V_CMPX_LE_F32_e32), AMDGPU::VCC)
|
||||
+ .addImm(0)
|
||||
+ .addOperand(Op);
|
||||
+ }
|
||||
|
||||
MI.eraseFromParent();
|
||||
}
|
||||
diff --git a/test/CodeGen/R600/llvm.AMDGPU.kill.ll b/test/CodeGen/R600/llvm.AMDGPU.kill.ll
|
||||
new file mode 100644
|
||||
index 0000000..4ab6a8a
|
||||
--- /dev/null
|
||||
+++ b/test/CodeGen/R600/llvm.AMDGPU.kill.ll
|
||||
@@ -0,0 +1,22 @@
|
||||
+; RUN: llc < %s -march=r600 -mcpu=verde -verify-machineinstrs | FileCheck --check-prefix=SI %s
|
||||
+
|
||||
+; SI-LABEL: @kill_gs_const
|
||||
+; SI-NOT: V_CMPX_LE_F32
|
||||
+; SI: S_MOV_B64 exec, 0
|
||||
+
|
||||
+define void @kill_gs_const() #0 {
|
||||
+main_body:
|
||||
+ %0 = icmp ule i32 0, 3
|
||||
+ %1 = select i1 %0, float 1.000000e+00, float -1.000000e+00
|
||||
+ call void @llvm.AMDGPU.kill(float %1)
|
||||
+ %2 = icmp ule i32 3, 0
|
||||
+ %3 = select i1 %2, float 1.000000e+00, float -1.000000e+00
|
||||
+ call void @llvm.AMDGPU.kill(float %3)
|
||||
+ ret void
|
||||
+}
|
||||
+
|
||||
+declare void @llvm.AMDGPU.kill(float)
|
||||
+
|
||||
+attributes #0 = { "ShaderType"="2" }
|
||||
+
|
||||
+!0 = metadata !{metadata !"const", null, i32 1}
|
||||
diff --git a/test/CodeGen/R600/llvm.SI.load.dword.ll b/test/CodeGen/R600/llvm.SI.load.dword.ll
|
||||
new file mode 100644
|
||||
index 0000000..a622775
|
||||
--- /dev/null
|
||||
+++ b/test/CodeGen/R600/llvm.SI.load.dword.ll
|
||||
@@ -0,0 +1,40 @@
|
||||
+;RUN: llc < %s -march=r600 -mcpu=verde -verify-machineinstrs | FileCheck %s
|
||||
+
|
||||
+; Example of a simple geometry shader loading vertex attributes from the
|
||||
+; ESGS ring buffer
|
||||
+
|
||||
+; CHECK-LABEL: @main
|
||||
+; CHECK: BUFFER_LOAD_DWORD
|
||||
+; CHECK: BUFFER_LOAD_DWORD
|
||||
+; CHECK: BUFFER_LOAD_DWORD
|
||||
+; CHECK: BUFFER_LOAD_DWORD
|
||||
+
|
||||
+define void @main([17 x <16 x i8>] addrspace(2)* byval, [32 x <16 x i8>] addrspace(2)* byval, [16 x <32 x i8>] addrspace(2)* byval, [2 x <16 x i8>] addrspace(2)* byval, [17 x <16 x i8>] addrspace(2)* inreg, [17 x <16 x i8>] addrspace(2)* inreg, i32, i32, i32, i32) #0 {
|
||||
+main_body:
|
||||
+ %10 = getelementptr [2 x <16 x i8>] addrspace(2)* %3, i64 0, i32 1
|
||||
+ %11 = load <16 x i8> addrspace(2)* %10, !tbaa !0
|
||||
+ %12 = shl i32 %6, 2
|
||||
+ %13 = call i32 @llvm.SI.buffer.load.dword.i32.i32(<16 x i8> %11, i32 0, i32 0, i32 0, i32 0, i32 0, i32 1, i32 1, i32 0)
|
||||
+ %14 = bitcast i32 %13 to float
|
||||
+ %15 = call i32 @llvm.SI.buffer.load.dword.i32.i32(<16 x i8> %11, i32 %12, i32 0, i32 0, i32 1, i32 0, i32 1, i32 1, i32 0)
|
||||
+ %16 = bitcast i32 %15 to float
|
||||
+ %17 = call i32 @llvm.SI.buffer.load.dword.i32.i32(<16 x i8> %11, i32 %12, i32 0, i32 0, i32 0, i32 1, i32 1, i32 1, i32 0)
|
||||
+ %18 = bitcast i32 %17 to float
|
||||
+ %19 = call i32 @llvm.SI.buffer.load.dword.i32.v2i32(<16 x i8> %11, <2 x i32> <i32 0, i32 0>, i32 0, i32 0, i32 1, i32 1, i32 1, i32 1, i32 0)
|
||||
+ %20 = bitcast i32 %19 to float
|
||||
+ call void @llvm.SI.export(i32 15, i32 0, i32 1, i32 12, i32 0, float %14, float %16, float %18, float %20)
|
||||
+ ret void
|
||||
+}
|
||||
+
|
||||
+; Function Attrs: nounwind readonly
|
||||
+declare i32 @llvm.SI.buffer.load.dword.i32.i32(<16 x i8>, i32, i32, i32, i32, i32, i32, i32, i32) #1
|
||||
+
|
||||
+; Function Attrs: nounwind readonly
|
||||
+declare i32 @llvm.SI.buffer.load.dword.i32.v2i32(<16 x i8>, <2 x i32>, i32, i32, i32, i32, i32, i32, i32) #1
|
||||
+
|
||||
+declare void @llvm.SI.export(i32, i32, i32, i32, i32, float, float, float, float)
|
||||
+
|
||||
+attributes #0 = { "ShaderType"="1" }
|
||||
+attributes #1 = { nounwind readonly }
|
||||
+
|
||||
+!0 = metadata !{metadata !"const", null, i32 1}
|
||||
diff --git a/test/CodeGen/R600/llvm.SI.sendmsg.ll b/test/CodeGen/R600/llvm.SI.sendmsg.ll
|
||||
new file mode 100644
|
||||
index 0000000..581d422
|
||||
--- /dev/null
|
||||
+++ b/test/CodeGen/R600/llvm.SI.sendmsg.ll
|
||||
@@ -0,0 +1,21 @@
|
||||
+;RUN: llc < %s -march=r600 -mcpu=verde -verify-machineinstrs | FileCheck %s
|
||||
+
|
||||
+; CHECK-LABEL: @main
|
||||
+; CHECK: S_SENDMSG Gs(emit stream 0)
|
||||
+; CHECK: S_SENDMSG Gs(cut stream 1)
|
||||
+; CHECK: S_SENDMSG Gs(emit-cut stream 2)
|
||||
+; CHECK: S_SENDMSG Gs_done(nop)
|
||||
+
|
||||
+define void @main() {
|
||||
+main_body:
|
||||
+ call void @llvm.SI.sendmsg(i32 34, i32 0);
|
||||
+ call void @llvm.SI.sendmsg(i32 274, i32 0);
|
||||
+ call void @llvm.SI.sendmsg(i32 562, i32 0);
|
||||
+ call void @llvm.SI.sendmsg(i32 3, i32 0);
|
||||
+ ret void
|
||||
+}
|
||||
+
|
||||
+; Function Attrs: nounwind
|
||||
+declare void @llvm.SI.sendmsg(i32, i32) #0
|
||||
+
|
||||
+attributes #0 = { nounwind }
|
|
@ -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")
|
|
@ -0,0 +1,9 @@
|
|||
#include <bits/wordsize.h>
|
||||
|
||||
#if __WORDSIZE == 32
|
||||
#include "llvm-config-32.h"
|
||||
#elif __WORDSIZE == 64
|
||||
#include "llvm-config-64.h"
|
||||
#else
|
||||
#error "Unknown word size"
|
||||
#endif
|
|
@ -0,0 +1,169 @@
|
|||
Index: llvm/trunk/lib/Target/SystemZ/SystemZAsmPrinter.cpp
|
||||
===================================================================
|
||||
--- llvm/trunk/lib/Target/SystemZ/SystemZAsmPrinter.cpp
|
||||
+++ llvm/trunk/lib/Target/SystemZ/SystemZAsmPrinter.cpp
|
||||
@@ -260,6 +260,11 @@
|
||||
.addImm(15).addReg(SystemZ::R0D);
|
||||
break;
|
||||
|
||||
+ // Emit nothing here but a comment if we can.
|
||||
+ case SystemZ::MemBarrier:
|
||||
+ OutStreamer->emitRawComment("MEMBARRIER");
|
||||
+ return;
|
||||
+
|
||||
default:
|
||||
Lower.lower(MI, LoweredMI);
|
||||
break;
|
||||
Index: llvm/trunk/lib/Target/SystemZ/SystemZISelLowering.h
|
||||
===================================================================
|
||||
--- llvm/trunk/lib/Target/SystemZ/SystemZISelLowering.h
|
||||
+++ llvm/trunk/lib/Target/SystemZ/SystemZISelLowering.h
|
||||
@@ -146,6 +146,9 @@
|
||||
// Perform a serialization operation. (BCR 15,0 or BCR 14,0.)
|
||||
SERIALIZE,
|
||||
|
||||
+ // Compiler barrier only; generate a no-op.
|
||||
+ MEMBARRIER,
|
||||
+
|
||||
// Transaction begin. The first operand is the chain, the second
|
||||
// the TDB pointer, and the third the immediate control field.
|
||||
// Returns chain and glue.
|
||||
@@ -479,6 +482,7 @@
|
||||
SDValue lowerBITCAST(SDValue Op, SelectionDAG &DAG) const;
|
||||
SDValue lowerOR(SDValue Op, SelectionDAG &DAG) const;
|
||||
SDValue lowerCTPOP(SDValue Op, SelectionDAG &DAG) const;
|
||||
+ SDValue lowerATOMIC_FENCE(SDValue Op, SelectionDAG &DAG) const;
|
||||
SDValue lowerATOMIC_LOAD(SDValue Op, SelectionDAG &DAG) const;
|
||||
SDValue lowerATOMIC_STORE(SDValue Op, SelectionDAG &DAG) const;
|
||||
SDValue lowerATOMIC_LOAD_OP(SDValue Op, SelectionDAG &DAG,
|
||||
Index: llvm/trunk/lib/Target/SystemZ/SystemZISelLowering.cpp
|
||||
===================================================================
|
||||
--- llvm/trunk/lib/Target/SystemZ/SystemZISelLowering.cpp
|
||||
+++ llvm/trunk/lib/Target/SystemZ/SystemZISelLowering.cpp
|
||||
@@ -216,6 +216,8 @@
|
||||
setOperationAction(ISD::ATOMIC_LOAD_UMAX, MVT::i32, Custom);
|
||||
setOperationAction(ISD::ATOMIC_CMP_SWAP, MVT::i32, Custom);
|
||||
|
||||
+ setOperationAction(ISD::ATOMIC_FENCE, MVT::Other, Custom);
|
||||
+
|
||||
// z10 has instructions for signed but not unsigned FP conversion.
|
||||
// Handle unsigned 32-bit types as signed 64-bit types.
|
||||
if (!Subtarget.hasFPExtension()) {
|
||||
@@ -3118,6 +3120,25 @@
|
||||
return Op;
|
||||
}
|
||||
|
||||
+SDValue SystemZTargetLowering::lowerATOMIC_FENCE(SDValue Op,
|
||||
+ SelectionDAG &DAG) const {
|
||||
+ SDLoc DL(Op);
|
||||
+ AtomicOrdering FenceOrdering = static_cast<AtomicOrdering>(
|
||||
+ cast<ConstantSDNode>(Op.getOperand(1))->getZExtValue());
|
||||
+ SynchronizationScope FenceScope = static_cast<SynchronizationScope>(
|
||||
+ cast<ConstantSDNode>(Op.getOperand(2))->getZExtValue());
|
||||
+
|
||||
+ // The only fence that needs an instruction is a sequentially-consistent
|
||||
+ // cross-thread fence.
|
||||
+ if (FenceOrdering == SequentiallyConsistent && FenceScope == CrossThread) {
|
||||
+ return SDValue(DAG.getMachineNode(SystemZ::Serialize, DL, MVT::Other,
|
||||
+ Op.getOperand(0)), 0);
|
||||
+ }
|
||||
+
|
||||
+ // MEMBARRIER is a compiler barrier; it codegens to a no-op.
|
||||
+ return DAG.getNode(SystemZISD::MEMBARRIER, DL, MVT::Other, Op.getOperand(0));
|
||||
+}
|
||||
+
|
||||
// Op is an atomic load. Lower it into a normal volatile load.
|
||||
SDValue SystemZTargetLowering::lowerATOMIC_LOAD(SDValue Op,
|
||||
SelectionDAG &DAG) const {
|
||||
@@ -4444,6 +4465,8 @@
|
||||
case ISD::CTTZ_ZERO_UNDEF:
|
||||
return DAG.getNode(ISD::CTTZ, SDLoc(Op),
|
||||
Op.getValueType(), Op.getOperand(0));
|
||||
+ case ISD::ATOMIC_FENCE:
|
||||
+ return lowerATOMIC_FENCE(Op, DAG);
|
||||
case ISD::ATOMIC_SWAP:
|
||||
return lowerATOMIC_LOAD_OP(Op, DAG, SystemZISD::ATOMIC_SWAPW);
|
||||
case ISD::ATOMIC_STORE:
|
||||
@@ -4547,6 +4570,7 @@
|
||||
OPCODE(SEARCH_STRING);
|
||||
OPCODE(IPM);
|
||||
OPCODE(SERIALIZE);
|
||||
+ OPCODE(MEMBARRIER);
|
||||
OPCODE(TBEGIN);
|
||||
OPCODE(TBEGIN_NOFLOAT);
|
||||
OPCODE(TEND);
|
||||
@@ -5307,6 +5331,7 @@
|
||||
MachineBasicBlock *
|
||||
SystemZTargetLowering::emitAtomicCmpSwapW(MachineInstr *MI,
|
||||
MachineBasicBlock *MBB) const {
|
||||
+
|
||||
MachineFunction &MF = *MBB->getParent();
|
||||
const SystemZInstrInfo *TII =
|
||||
static_cast<const SystemZInstrInfo *>(Subtarget.getInstrInfo());
|
||||
Index: llvm/trunk/lib/Target/SystemZ/SystemZInstrInfo.td
|
||||
===================================================================
|
||||
--- llvm/trunk/lib/Target/SystemZ/SystemZInstrInfo.td
|
||||
+++ llvm/trunk/lib/Target/SystemZ/SystemZInstrInfo.td
|
||||
@@ -1231,6 +1231,10 @@
|
||||
let hasSideEffects = 1 in
|
||||
def Serialize : Alias<2, (outs), (ins), [(z_serialize)]>;
|
||||
|
||||
+// A pseudo instruction that serves as a compiler barrier.
|
||||
+let hasSideEffects = 1 in
|
||||
+def MemBarrier : Pseudo<(outs), (ins), [(z_membarrier)]>;
|
||||
+
|
||||
let Predicates = [FeatureInterlockedAccess1], Defs = [CC] in {
|
||||
def LAA : LoadAndOpRSY<"laa", 0xEBF8, atomic_load_add_32, GR32>;
|
||||
def LAAG : LoadAndOpRSY<"laag", 0xEBE8, atomic_load_add_64, GR64>;
|
||||
Index: llvm/trunk/lib/Target/SystemZ/SystemZOperators.td
|
||||
===================================================================
|
||||
--- llvm/trunk/lib/Target/SystemZ/SystemZOperators.td
|
||||
+++ llvm/trunk/lib/Target/SystemZ/SystemZOperators.td
|
||||
@@ -188,6 +188,8 @@
|
||||
|
||||
def z_serialize : SDNode<"SystemZISD::SERIALIZE", SDTNone,
|
||||
[SDNPHasChain, SDNPMayStore]>;
|
||||
+def z_membarrier : SDNode<"SystemZISD::MEMBARRIER", SDTNone,
|
||||
+ [SDNPHasChain, SDNPSideEffect]>;
|
||||
|
||||
// Defined because the index is an i32 rather than a pointer.
|
||||
def z_vector_insert : SDNode<"ISD::INSERT_VECTOR_ELT",
|
||||
Index: llvm/trunk/test/CodeGen/SystemZ/atomic-fence-01.ll
|
||||
===================================================================
|
||||
--- llvm/trunk/test/CodeGen/SystemZ/atomic-fence-01.ll
|
||||
+++ llvm/trunk/test/CodeGen/SystemZ/atomic-fence-01.ll
|
||||
@@ -0,0 +1,16 @@
|
||||
+; Test (fast) serialization.
|
||||
+;
|
||||
+; RUN: llc < %s -mtriple=s390x-linux-gnu | FileCheck %s --check-prefix=Z10
|
||||
+; RUN: llc < %s -mtriple=s390x-linux-gnu -mcpu=z196 | FileCheck %s --check-prefix=Z196
|
||||
+; RUN: llc < %s -mtriple=s390x-linux-gnu -mcpu=zEC12 | FileCheck %s --check-prefix=ZEC12
|
||||
+; RUN: llc < %s -mtriple=s390x-linux-gnu -mcpu=z13 | FileCheck %s --check-prefix=Z13
|
||||
+
|
||||
+define void @test() {
|
||||
+; Z10: bcr 15, %r0
|
||||
+; Z196: bcr 14, %r0
|
||||
+; ZEC12: bcr 14, %r0
|
||||
+; Z13: bcr 14, %r0
|
||||
+ fence seq_cst
|
||||
+ ret void
|
||||
+}
|
||||
+
|
||||
Index: llvm/trunk/test/CodeGen/SystemZ/atomic-fence-02.ll
|
||||
===================================================================
|
||||
--- llvm/trunk/test/CodeGen/SystemZ/atomic-fence-02.ll
|
||||
+++ llvm/trunk/test/CodeGen/SystemZ/atomic-fence-02.ll
|
||||
@@ -0,0 +1,13 @@
|
||||
+; Serialization is emitted only for fence seq_cst.
|
||||
+;
|
||||
+; RUN: llc < %s -mtriple=s390x-linux-gnu | FileCheck %s
|
||||
+
|
||||
+define void @test() {
|
||||
+; CHECK: #MEMBARRIER
|
||||
+ fence acquire
|
||||
+; CHECK: #MEMBARRIER
|
||||
+ fence release
|
||||
+; CHECK: #MEMBARRIER
|
||||
+ fence acq_rel
|
||||
+ ret void
|
||||
+}
|
757
llvm.spec
757
llvm.spec
|
@ -1,92 +1,42 @@
|
|||
# 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 min_ver 0
|
||||
%global patch_ver 0
|
||||
|
||||
|
||||
%if %{with compat_build}
|
||||
%global pkg_name llvm%{maj_ver}.%{min_ver}
|
||||
%global exec_suffix -%{maj_ver}.%{min_ver}
|
||||
%global install_prefix %{_libdir}/%{name}
|
||||
%global install_bindir %{install_prefix}/bin
|
||||
%global install_includedir %{install_prefix}/include
|
||||
%global install_libdir %{install_prefix}/lib
|
||||
|
||||
%global pkg_bindir %{install_bindir}
|
||||
%global pkg_includedir %{_includedir}/%{name}
|
||||
%global pkg_libdir %{install_libdir}
|
||||
%else
|
||||
%global pkg_name llvm
|
||||
%global install_prefix /usr
|
||||
%global install_libdir %{_libdir}
|
||||
%global pkg_libdir %{install_libdir}
|
||||
%endif
|
||||
|
||||
%global build_install_prefix %{buildroot}%{install_prefix}
|
||||
|
||||
Name: %{pkg_name}
|
||||
Version: %{maj_ver}.%{min_ver}.%{patch_ver}
|
||||
Release: %{baserelease}%{?rc_ver:.rc%{rc_ver}}%{?dist}
|
||||
Name: llvm
|
||||
Version: 3.8.1
|
||||
Release: 3%{?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
|
||||
Source100: llvm-config.h
|
||||
|
||||
# recognize s390 as SystemZ when configuring build
|
||||
Patch0: llvm-3.7.1-cmake-s390.patch
|
||||
|
||||
# backport D18644 [SystemZ] Support ATOMIC_FENCE
|
||||
Patch1: llvm-d18644-systemz-atomic-fence.patch
|
||||
|
||||
# backports cribbed from https://github.com/rust-lang/llvm/
|
||||
Patch67: rust-lang-llvm-pr67.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}
|
||||
# Enable extra functionality when run the LLVM JIT under valgrind.
|
||||
BuildRequires: valgrind-devel
|
||||
%endif
|
||||
# LLVM's LineEditor library will use libedit if it is available.
|
||||
BuildRequires: libedit-devel
|
||||
# We need python3-devel for pathfix.py.
|
||||
BuildRequires: python3-devel
|
||||
BuildRequires: libstdc++-static
|
||||
|
||||
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 +46,8 @@ 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(posttrans): %{_sbindir}/alternatives
|
||||
Requires(posttrans): %{_sbindir}/alternatives
|
||||
|
||||
%description devel
|
||||
This package contains library and header files needed to develop new native
|
||||
|
@ -126,79 +69,41 @@ 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
|
||||
%setup -q -n %{name}-%{version}.src
|
||||
%patch0 -p1 -b .s390
|
||||
%patch1 -p2 -b .s390-fence
|
||||
%patch67 -p1 -b .rust67
|
||||
|
||||
%build
|
||||
mkdir -p _build
|
||||
cd _build
|
||||
|
||||
%ifarch s390 %{arm} %ix86
|
||||
%ifarch s390
|
||||
# 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
|
||||
-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;CppBackend" \
|
||||
-DLLVM_ENABLE_LIBCXX:BOOL=OFF \
|
||||
-DLLVM_ENABLE_ZLIB:BOOL=ON \
|
||||
-DLLVM_ENABLE_FFI:BOOL=ON \
|
||||
|
@ -206,7 +111,6 @@ cd _build
|
|||
%if %{with gold}
|
||||
-DLLVM_BINUTILS_INCDIR=%{_includedir} \
|
||||
%endif
|
||||
-DLLVM_EXPERIMENTAL_TARGETS_TO_BUILD=AVR \
|
||||
\
|
||||
-DLLVM_BUILD_RUNTIME:BOOL=ON \
|
||||
\
|
||||
|
@ -220,20 +124,13 @@ 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_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,617 +138,67 @@ 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
|
||||
|
||||
|
||||
%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
|
||||
cd _build
|
||||
make install DESTDIR=%{buildroot}
|
||||
|
||||
# fix multi-lib
|
||||
mv -v %{buildroot}%{_bindir}/llvm-config{,-%{__isa_bits}}
|
||||
mv -v %{buildroot}%{_includedir}/llvm/Config/llvm-config{,-%{__isa_bits}}.h
|
||||
install -m 0644 %{SOURCE100} %{buildroot}%{_includedir}/llvm/Config/llvm-config.h
|
||||
|
||||
%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
|
||||
fi
|
||||
|
||||
%endif
|
||||
[ $1 -eq 0 ] && %{_sbindir}/update-alternatives --remove llvm-config %{_bindir}/llvm-config-%{__isa_bits}
|
||||
|
||||
%files
|
||||
%exclude %{_mandir}/man1/llvm-config*
|
||||
%{_mandir}/man1/*
|
||||
%{_bindir}/*
|
||||
|
||||
%if %{without compat_build}
|
||||
%{_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
|
||||
%{_datadir}/opt-viewer
|
||||
%else
|
||||
%exclude %{pkg_bindir}/llvm-config
|
||||
%{pkg_bindir}
|
||||
%endif
|
||||
%exclude %{_mandir}/man1/llvm-config.1.*
|
||||
|
||||
%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*
|
||||
%{_libdir}/libLLVM-3.8*.so
|
||||
%{_libdir}/libLTO.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
|
||||
%{_datadir}/llvm/cmake
|
||||
|
||||
%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
|
||||
|
||||
* 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
|
||||
- Re-enable arm tests that used to hang
|
||||
|
||||
* Thu Mar 22 2018 Tom Stellard <tstellar@redhat.com> - 6.0.0-10
|
||||
- Fix testcase in backported patch
|
||||
|
||||
* Tue Mar 20 2018 Tom Stellard <tstellar@redhat.com> - 6.0.0-9
|
||||
- Prevent external projects from linking against both static and shared
|
||||
libraries. rhbz#1558657
|
||||
|
||||
* Mon Mar 19 2018 Tom Stellard <tstellar@redhat.com> - 6.0.0-8
|
||||
- Backport r327651 from trunk rhbz#1554349
|
||||
|
||||
* Fri Mar 16 2018 Tom Stellard <tstellar@redhat.com> - 6.0.0-7
|
||||
- Filter out cxxflags and cflags from llvm-config that aren't supported by clang
|
||||
- rhbz#1556980
|
||||
|
||||
* Wed Mar 14 2018 Tom Stellard <tstellar@redhat.com> - 6.0.0-6
|
||||
- Enable symbol versioning in libLLVM.so
|
||||
|
||||
* Wed Mar 14 2018 Tom Stellard <tstellar@redhat.com> - 6.0.0-5
|
||||
- Stop statically linking libstdc++. This is no longer required by Steam
|
||||
client, but the steam installer still needs a work-around which should
|
||||
be handled in the steam package.
|
||||
* Wed Mar 14 2018 Tom Stellard <tstellar@redhat.com> - 6.0.0-4
|
||||
- s/make check/ninja check/
|
||||
|
||||
* Fri Mar 09 2018 Tom Stellard <tstellar@redhat.com> - 6.0.0-3
|
||||
- Backport fix for compile time regression on rust rhbz#1552915
|
||||
|
||||
* Thu Mar 08 2018 Tom Stellard <tstellar@redhat.com> - 6.0.0-2
|
||||
- Build with Ninja: This reduces RPM build time on a 6-core x86_64 builder
|
||||
from 82 min to 52 min.
|
||||
|
||||
* Thu Mar 08 2018 Tom Stellard <tstellar@redhat.com> - 6.0.0-1
|
||||
- 6.0.0 Release
|
||||
|
||||
* Thu Mar 08 2018 Tom Stellard <tstellar@redhat.com> - 6.0.0-0.5.rc2
|
||||
- Reduce debuginfo size on i686 to avoid OOM errors during linking
|
||||
|
||||
* Fri Feb 09 2018 Tom Stellard <tstellar@redhat.com> - 6.0.0-0.4.rc2
|
||||
- 6.0.1 rc2
|
||||
|
||||
* Fri Feb 09 2018 Igor Gnatenko <ignatenkobrain@fedoraproject.org> - 6.0.0-0.3.rc1
|
||||
- Escape macros in %%changelog
|
||||
|
||||
* Thu Feb 08 2018 Fedora Release Engineering <releng@fedoraproject.org> - 6.0.0-0.2.rc1
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild
|
||||
|
||||
* Fri Jan 19 2018 Tom Stellard <tstellar@redhat.com> - 6.0.0-0.1.rc1
|
||||
- 6.0.1 rc1
|
||||
|
||||
* Tue Dec 19 2017 Tom Stellard <tstellar@redhat.com> - 5.0.1-1
|
||||
- 5.0.1 Release
|
||||
|
||||
* Mon Nov 20 2017 Tom Stellard <tstellar@redhat.com> - 5.0.0-5
|
||||
- Backport debuginfo fix for rust
|
||||
|
||||
* Fri Nov 03 2017 Tom Stellard <tstellar@redhat.com> - 5.0.0-4
|
||||
- Reduce debuginfo size for ARM
|
||||
|
||||
* Tue Oct 10 2017 Tom Stellard <tstellar@redhat.com> - 5.0.0-2
|
||||
- Reduce memory usage on ARM by disabling debuginfo and some non-ARM targets.
|
||||
|
||||
* Mon Sep 25 2017 Tom Stellard <tstellar@redhat.com> - 5.0.0-1
|
||||
- 5.0.0 Release
|
||||
|
||||
* Mon Sep 18 2017 Tom Stellard <tstellar@redhat.com> - 4.0.1-6
|
||||
- Add Requires: libedit-devel for llvm-devel
|
||||
|
||||
* Fri Sep 08 2017 Tom Stellard <tstellar@redhat.com> - 4.0.1-5
|
||||
- Enable libedit backend for LineEditor API
|
||||
|
||||
* Fri Aug 25 2017 Tom Stellard <tstellar@redhat.com> - 4.0.1-4
|
||||
- Enable extra functionality when run the LLVM JIT under valgrind.
|
||||
|
||||
* Thu Aug 03 2017 Fedora Release Engineering <releng@fedoraproject.org> - 4.0.1-3
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild
|
||||
|
||||
* Wed Jul 26 2017 Fedora Release Engineering <releng@fedoraproject.org> - 4.0.1-2
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild
|
||||
|
||||
* Wed Jun 21 2017 Tom Stellard <tstellar@redhat.com> - 4.0.1-1
|
||||
- 4.0.1 Release
|
||||
|
||||
* Thu Jun 15 2017 Tom Stellard <tstellar@redhat.com> - 4.0.0-6
|
||||
- Install llvm utils
|
||||
|
||||
* Thu Jun 08 2017 Tom Stellard <tstellar@redhat.com> - 4.0.0-5
|
||||
- Fix docs-llvm-man target
|
||||
|
||||
* Mon May 01 2017 Tom Stellard <tstellar@redhat.com> - 4.0.0-4
|
||||
- Make cmake files no longer depend on static libs (rhbz 1388200)
|
||||
|
||||
* Tue Apr 18 2017 Josh Stone <jistone@redhat.com> - 4.0.0-3
|
||||
* Tue Apr 18 2017 Josh Stone <jistone@redhat.com> - 3.8.1-3
|
||||
- Fix computeKnownBits for ARMISD::CMOV (rust-lang/llvm#67)
|
||||
|
||||
* Mon Apr 03 2017 Tom Stellard <tstellar@redhat.com> - 4.0.0-2
|
||||
- Simplify spec with rpm macros.
|
||||
|
||||
* Thu Mar 23 2017 Tom Stellard <tstellar@redhat.com> - 4.0.0-1
|
||||
- LLVM 4.0.0 Final Release
|
||||
|
||||
* Wed Mar 22 2017 tstellar@redhat.com - 3.9.1-6
|
||||
- Fix %%postun sep for -devel package.
|
||||
|
||||
* Mon Mar 13 2017 Tom Stellard <tstellar@redhat.com> - 3.9.1-5
|
||||
- Disable failing tests on ARM.
|
||||
|
||||
* Sun Mar 12 2017 Peter Robinson <pbrobinson@fedoraproject.org> 3.9.1-4
|
||||
- Fix missing mask on relocation for aarch64 (rhbz 1429050)
|
||||
|
||||
* Wed Mar 01 2017 Dave Airlie <airlied@redhat.com> - 3.9.1-3
|
||||
- revert upstream radeonsi breaking change.
|
||||
|
||||
* Thu Feb 23 2017 Josh Stone <jistone@redhat.com> - 3.9.1-2
|
||||
- disable sphinx warnings-as-errors
|
||||
|
||||
* Fri Feb 10 2017 Orion Poplawski <orion@cora.nwra.com> - 3.9.1-1
|
||||
- llvm 3.9.1
|
||||
|
||||
* Fri Feb 10 2017 Fedora Release Engineering <releng@fedoraproject.org> - 3.9.0-8
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild
|
||||
|
||||
* Tue Nov 29 2016 Josh Stone <jistone@redhat.com> - 3.9.0-7
|
||||
- Apply backports from rust-lang/llvm#55, #57
|
||||
|
||||
* Tue Nov 01 2016 Dave Airlie <airlied@gmail.com - 3.9.0-6
|
||||
- rebuild for new arches
|
||||
|
||||
* Wed Oct 26 2016 Dave Airlie <airlied@redhat.com> - 3.9.0-5
|
||||
- apply the patch from -4
|
||||
|
||||
* Wed Oct 26 2016 Dave Airlie <airlied@redhat.com> - 3.9.0-4
|
||||
- add fix for lldb out-of-tree build
|
||||
|
||||
* Mon Oct 17 2016 Josh Stone <jistone@redhat.com> - 3.9.0-3
|
||||
- Apply backports from rust-lang/llvm#47, #48, #53, #54
|
||||
|
||||
* Sat Oct 15 2016 Josh Stone <jistone@redhat.com> - 3.9.0-2
|
||||
- Apply an InstCombine backport via rust-lang/llvm#51
|
||||
|
||||
* Wed Sep 07 2016 Dave Airlie <airlied@redhat.com> - 3.9.0-1
|
||||
- llvm 3.9.0
|
||||
- upstream moved where cmake files are packaged.
|
||||
- upstream dropped CppBackend
|
||||
* Sat Jan 07 2017 Josh Stone <jistone@redhat.com> - 3.8.1-2
|
||||
- Support s390x atomic fence
|
||||
|
||||
* Wed Jul 13 2016 Adam Jackson <ajax@redhat.com> - 3.8.1-1
|
||||
- llvm 3.8.1
|
||||
|
|
|
@ -0,0 +1,13 @@
|
|||
diff --git a/tools/clang/lib/Driver/Tools.cpp b/tools/clang/lib/Driver/Tools.cpp
|
||||
index 29713ed..0d23694 100644
|
||||
--- a/tools/clang/lib/Driver/Tools.cpp
|
||||
+++ b/tools/clang/lib/Driver/Tools.cpp
|
||||
@@ -747,7 +747,7 @@ static StringRef getARMFloatABI(const Driver &D,
|
||||
FloatABI = "hard";
|
||||
break;
|
||||
case llvm::Triple::GNUEABI:
|
||||
- FloatABI = "softfp";
|
||||
+ FloatABI = Triple.getVendorName() == "hardfloat" ? "hard" : "softfp";
|
||||
break;
|
||||
case llvm::Triple::EABI:
|
||||
// EABI is always AAPCS, and if it was not marked 'hard', it's softfp
|
|
@ -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
|
||||
538467e6028bbc9259b1e6e015d25845 llvm-3.8.1.src.tar.xz
|
||||
|
|
|
@ -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