diff --git a/.gitignore b/.gitignore index 35bc580..06c0fa6 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,2 @@ -SOURCES/llvm-10.0.1.src.tar.xz +SOURCES/hans-gpg-key.asc +SOURCES/llvm-11.0.0.src.tar.xz diff --git a/.llvm.metadata b/.llvm.metadata index 5ca21e3..10f8833 100644 --- a/.llvm.metadata +++ b/.llvm.metadata @@ -1 +1,2 @@ -25d07260f3b7bf4f647e115c4a663fdeda130fbd SOURCES/llvm-10.0.1.src.tar.xz +32fa4b0193960f05064f2ab31b5a89c7cf48a0b9 SOURCES/hans-gpg-key.asc +5723ae20d1e6e9ccfda208cb9a8cf2f87c3a6107 SOURCES/llvm-11.0.0.src.tar.xz diff --git a/SOURCES/0001-CMake-Split-static-library-exports-into-their-own-ex.patch b/SOURCES/0001-CMake-Split-static-library-exports-into-their-own-ex.patch index e780c34..03a439e 100644 --- a/SOURCES/0001-CMake-Split-static-library-exports-into-their-own-ex.patch +++ b/SOURCES/0001-CMake-Split-static-library-exports-into-their-own-ex.patch @@ -1,20 +1,7 @@ -From 8f6917ea11bd1bfbfe07f3577756d1c4abfdb916 Mon Sep 17 00:00:00 2001 -From: Tom Stellard -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) +diff -Naur a/llvm/cmake/modules/AddLLVM.cmake b/llvm/cmake/modules/AddLLVM.cmake +--- a/llvm/cmake/modules/AddLLVM.cmake 2020-08-20 16:24:59.000000000 +0000 ++++ b/llvm/cmake/modules/AddLLVM.cmake 2020-09-15 07:09:05.411311520 +0000 +@@ -760,7 +760,11 @@ if(${name} IN_LIST LLVM_DISTRIBUTION_COMPONENTS OR (in_llvm_libs AND "llvm-libraries" IN_LIST LLVM_DISTRIBUTION_COMPONENTS) OR NOT LLVM_DISTRIBUTION_COMPONENTS) @@ -27,19 +14,18 @@ index 619e986..200fc45 100644 set_property(GLOBAL PROPERTY LLVM_HAS_EXPORTS True) endif() -diff --git a/llvm/cmake/modules/CMakeLists.txt b/llvm/cmake/modules/CMakeLists.txt -index 9cf22b4..dc982d2 100644 ---- a/llvm/cmake/modules/CMakeLists.txt -+++ b/llvm/cmake/modules/CMakeLists.txt -@@ -105,6 +105,7 @@ set(LLVM_CONFIG_BINARY_DIR "\${LLVM_INSTALL_PREFIX}") - 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}") +diff -Naur a/llvm/cmake/modules/CMakeLists.txt b/llvm/cmake/modules/CMakeLists.txt +--- a/llvm/cmake/modules/CMakeLists.txt 2020-08-20 16:24:59.000000000 +0000 ++++ b/llvm/cmake/modules/CMakeLists.txt 2020-09-15 07:09:05.411311520 +0000 +@@ -79,6 +79,7 @@ + # source files are put in the same cmake directory. + set(LLVM_CONFIG_EXPORTS_FILE "${LLVM_EXPORTS_FILE}") + set(LLVM_CONFIG_EXPORTS "${LLVM_EXPORTS};${LLVM_EXPORTS_BUILDTREE_ONLY}") +set(LLVM_CONFIG_STATIC_EXPORTS_FILE "\${LLVM_CMAKE_DIR}/LLVMStaticExports.cmake") + set(llvm_config_include_buildtree_only_exports + "include(\"${LLVM_BUILDTREEONLY_EXPORTS_FILE}\")") configure_file( - LLVMConfig.cmake.in - ${CMAKE_CURRENT_BINARY_DIR}/CMakeFiles/LLVMConfig.cmake -@@ -121,6 +122,8 @@ if (NOT LLVM_INSTALL_TOOLCHAIN_ONLY) +@@ -139,6 +140,8 @@ if(llvm_has_exports) install(EXPORT LLVMExports DESTINATION ${LLVM_INSTALL_PACKAGE_DIR} COMPONENT cmake-exports) @@ -48,11 +34,10 @@ index 9cf22b4..dc982d2 100644 endif() install(FILES -diff --git a/llvm/cmake/modules/LLVMConfig.cmake.in b/llvm/cmake/modules/LLVMConfig.cmake.in -index 536031f..6ef54a0 100644 ---- a/llvm/cmake/modules/LLVMConfig.cmake.in -+++ b/llvm/cmake/modules/LLVMConfig.cmake.in -@@ -89,6 +89,8 @@ if(NOT TARGET LLVMSupport) +diff -Naur a/llvm/cmake/modules/LLVMConfig.cmake.in b/llvm/cmake/modules/LLVMConfig.cmake.in +--- a/llvm/cmake/modules/LLVMConfig.cmake.in 2020-08-20 16:24:59.000000000 +0000 ++++ b/llvm/cmake/modules/LLVMConfig.cmake.in 2020-09-15 07:09:05.411311520 +0000 +@@ -103,6 +103,8 @@ set(LLVM_EXPORTED_TARGETS "@LLVM_CONFIG_EXPORTS@") include("@LLVM_CONFIG_EXPORTS_FILE@") @llvm_config_include_buildtree_only_exports@ @@ -60,7 +45,4 @@ index 536031f..6ef54a0 100644 + include("@LLVM_CONFIG_STATIC_EXPORTS_FILE@" OPTIONAL) endif() - # By creating intrinsics_gen here, subprojects that depend on LLVM's --- -1.8.3.1 - + # By creating intrinsics_gen, omp_gen and acc_gen here, subprojects that depend diff --git a/SOURCES/0001-CMake-Split-test-binary-exports-into-their-own-expor.patch b/SOURCES/0001-CMake-Split-test-binary-exports-into-their-own-expor.patch index a3801ff..0ba80a8 100644 --- a/SOURCES/0001-CMake-Split-test-binary-exports-into-their-own-expor.patch +++ b/SOURCES/0001-CMake-Split-test-binary-exports-into-their-own-expor.patch @@ -1,19 +1,7 @@ -From 9d496e978f59e153bb76e92229d5a524d92dee04 Mon Sep 17 00:00:00 2001 -From: Tom Stellard -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) +diff -Naur a/llvm/cmake/modules/AddLLVM.cmake b/llvm/cmake/modules/AddLLVM.cmake +--- a/llvm/cmake/modules/AddLLVM.cmake 2020-09-15 09:12:47.596424499 +0000 ++++ b/llvm/cmake/modules/AddLLVM.cmake 2020-09-15 13:36:03.509429423 +0000 +@@ -1235,7 +1235,12 @@ set(export_to_llvmexports) if (${name} IN_LIST LLVM_DISTRIBUTION_COMPONENTS OR NOT LLVM_DISTRIBUTION_COMPONENTS) @@ -27,19 +15,18 @@ index 200fc45..9eec7a7 100644 set_property(GLOBAL PROPERTY LLVM_HAS_EXPORTS True) endif() -diff --git a/llvm/cmake/modules/CMakeLists.txt b/llvm/cmake/modules/CMakeLists.txt -index 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}") +diff -Naur a/llvm/cmake/modules/CMakeLists.txt b/llvm/cmake/modules/CMakeLists.txt +--- a/llvm/cmake/modules/CMakeLists.txt 2020-09-15 09:12:47.596424499 +0000 ++++ b/llvm/cmake/modules/CMakeLists.txt 2020-09-15 09:14:33.110044977 +0000 +@@ -80,6 +80,7 @@ + set(LLVM_CONFIG_EXPORTS_FILE "${LLVM_EXPORTS_FILE}") + set(LLVM_CONFIG_EXPORTS "${LLVM_EXPORTS};${LLVM_EXPORTS_BUILDTREE_ONLY}") set(LLVM_CONFIG_STATIC_EXPORTS_FILE "\${LLVM_CMAKE_DIR}/LLVMStaticExports.cmake") +set(LLVM_CONFIG_TEST_EXPORTS_FILE "\${LLVM_CMAKE_DIR}/LLVMTestExports.cmake") + set(llvm_config_include_buildtree_only_exports + "include(\"${LLVM_BUILDTREEONLY_EXPORTS_FILE}\")") configure_file( - LLVMConfig.cmake.in - ${CMAKE_CURRENT_BINARY_DIR}/CMakeFiles/LLVMConfig.cmake -@@ -124,6 +125,8 @@ if (NOT LLVM_INSTALL_TOOLCHAIN_ONLY) +@@ -142,6 +143,8 @@ COMPONENT cmake-exports) install(EXPORT LLVMStaticExports DESTINATION ${LLVM_INSTALL_PACKAGE_DIR} COMPONENT cmake-exports) @@ -48,18 +35,14 @@ index dc982d2..c861f45 100644 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) +diff -Naur a/llvm/cmake/modules/LLVMConfig.cmake.in b/llvm/cmake/modules/LLVMConfig.cmake.in +--- a/llvm/cmake/modules/LLVMConfig.cmake.in 2020-09-15 09:12:47.597424505 +0000 ++++ b/llvm/cmake/modules/LLVMConfig.cmake.in 2020-09-15 09:14:54.261169357 +0000 +@@ -105,6 +105,7 @@ @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 - + # By creating intrinsics_gen, omp_gen and acc_gen here, subprojects that depend diff --git a/SOURCES/0001-Deactivate-markdown-doc.patch b/SOURCES/0001-Deactivate-markdown-doc.patch index d9e402a..92e048d 100644 --- a/SOURCES/0001-Deactivate-markdown-doc.patch +++ b/SOURCES/0001-Deactivate-markdown-doc.patch @@ -1,28 +1,25 @@ -From e7bc515182199764b17ab3f5e22047342f9c7514 Mon Sep 17 00:00:00 2001 -From: serge-sans-paille -Date: Thu, 13 Jun 2019 07:58:59 +0000 -Subject: [PATCH] Deactivate markdown doc - ---- - llvm/docs/conf.py | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/llvm/docs/conf.py b/llvm/docs/conf.py -index 4a52df8..340cd07 100644 ---- a/llvm/docs/conf.py -+++ b/llvm/docs/conf.py -@@ -32,9 +32,9 @@ extensions = ['sphinx.ext.intersphinx', 'sphinx.ext.todo'] - templates_path = ['_templates'] +diff -Naur a/llvm/docs/conf.py b/llvm/docs/conf.py +--- a/llvm/docs/conf.py 2020-09-15 09:12:24.318287611 +0000 ++++ b/llvm/docs/conf.py 2020-09-15 15:01:00.025893199 +0000 +@@ -36,20 +36,7 @@ + '.rst': 'restructuredtext', + } - # The suffix of source filenames. --source_suffix = ['.rst', '.md'] -+source_suffix = ['.rst'] - --source_parsers = {'.md': 'recommonmark.parser.CommonMarkParser'} -+source_parsers = {} +-try: +- import recommonmark +-except ImportError: +- # manpages do not use any .md sources +- if not tags.has('builder-man'): +- raise +-else: +- import sphinx +- if sphinx.version_info >= (3, 0): +- # This requires 0.5 or later. +- extensions.append('recommonmark') +- else: +- source_parsers = {'.md': 'recommonmark.parser.CommonMarkParser'} +- source_suffix['.md'] = 'markdown' ++import sphinx # The encoding of source files. #source_encoding = 'utf-8-sig' --- -1.8.3.1 - diff --git a/SOURCES/0001-PowerPC-PPCBoolRetToInt-Skip-translation-if-there-is.patch b/SOURCES/0001-PowerPC-PPCBoolRetToInt-Skip-translation-if-there-is.patch deleted file mode 100644 index 4489dab..0000000 --- a/SOURCES/0001-PowerPC-PPCBoolRetToInt-Skip-translation-if-there-is.patch +++ /dev/null @@ -1,86 +0,0 @@ -From cf54ca458afff1f7827bfbbc939429a00496c4f7 Mon Sep 17 00:00:00 2001 -From: Tom Stellard -Date: Tue, 18 Aug 2020 10:54:49 -0700 -Subject: [PATCH] [PowerPC] PPCBoolRetToInt: Skip translation if there is - ConstantExpr - -PPCBoolRetToInt collects PHI, Argument, Call and Constant defs related to an `i1` value which later is translated to an `i32`/`i64` value. The `translate` method expects an `i1` value. However, if the `Constant` is a `ConstantExpr`, the type of the `ConstantExpr` might not be `i1`. - -Fixes https://bugs.llvm.org/show_bug.cgi?id=46923 which causes ICE -``` -llvm-project/llvm/lib/IR/Constants.cpp:1924: static llvm::Constant *llvm::ConstantExpr::getZExt(llvm::Constant *, llvm::Type *, bool): Assertion `C->getType()->getScalarSizeInBits() < Ty->getScalarSizeInBits()&& "SrcTy must be smaller than DestTy for ZExt!"' failed. -``` - -Differential Revision: https://reviews.llvm.org/D85007 ---- - llvm/lib/Target/PowerPC/PPCBoolRetToInt.cpp | 8 ++++-- - llvm/test/CodeGen/PowerPC/pr46923.ll | 31 +++++++++++++++++++++ - 2 files changed, 37 insertions(+), 2 deletions(-) - create mode 100644 llvm/test/CodeGen/PowerPC/pr46923.ll - -diff --git a/llvm/lib/Target/PowerPC/PPCBoolRetToInt.cpp b/llvm/lib/Target/PowerPC/PPCBoolRetToInt.cpp -index 2259a29f838..cfe3b3ce2e9 100644 ---- a/llvm/lib/Target/PowerPC/PPCBoolRetToInt.cpp -+++ b/llvm/lib/Target/PowerPC/PPCBoolRetToInt.cpp -@@ -90,6 +90,9 @@ class PPCBoolRetToInt : public FunctionPass { - - // Translate a i1 value to an equivalent i32/i64 value: - Value *translate(Value *V) { -+ assert(V->getType() == Type::getInt1Ty(V->getContext()) && -+ "Expect an i1 value"); -+ - Type *IntTy = ST->isPPC64() ? Type::getInt64Ty(V->getContext()) - : Type::getInt32Ty(V->getContext()); - -@@ -227,8 +230,9 @@ class PPCBoolRetToInt : public FunctionPass { - // CallInst. Potentially, bitwise operations (AND, OR, XOR, NOT) and sign - // extension could also be handled in the future. - for (Value *V : Defs) -- if (!isa(V) && !isa(V) && -- !isa(V) && !isa(V)) -+ if ((!isa(V) && !isa(V) && !isa(V) && -+ !isa(V)) || -+ isa(V)) - return false; - - for (Value *V : Defs) -diff --git a/llvm/test/CodeGen/PowerPC/pr46923.ll b/llvm/test/CodeGen/PowerPC/pr46923.ll -new file mode 100644 -index 00000000000..d6f65508848 ---- /dev/null -+++ b/llvm/test/CodeGen/PowerPC/pr46923.ll -@@ -0,0 +1,31 @@ -+; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py -+; RUN: llc -verify-machineinstrs -mtriple=powerpc64le-unknown-unknown \ -+; RUN: -ppc-asm-full-reg-names < %s | FileCheck %s -+ -+@bar = external constant i64, align 8 -+ -+define i1 @foo() { -+; CHECK-LABEL: foo: -+; CHECK: # %bb.0: # %entry -+; CHECK-NEXT: crxor 4*cr5+lt, 4*cr5+lt, 4*cr5+lt -+; CHECK-NEXT: li r3, 0 -+; CHECK-NEXT: li r4, 1 -+; CHECK-NEXT: isel r3, r4, r3, 4*cr5+lt -+; CHECK-NEXT: blr -+entry: -+ br label %next -+ -+next: -+ br i1 undef, label %true, label %false -+ -+true: -+ br label %end -+ -+false: -+ br label %end -+ -+end: -+ %a = phi i1 [ icmp ugt (i64 0, i64 ptrtoint (i64* @bar to i64)), %true ], -+ [ icmp ugt (i64 0, i64 2), %false ] -+ ret i1 %a -+} --- -2.18.1 - diff --git a/SOURCES/0001-SystemZ-Use-LA-instead-of-AGR-in-eliminateFrameIndex.patch b/SOURCES/0001-SystemZ-Use-LA-instead-of-AGR-in-eliminateFrameIndex.patch new file mode 100644 index 0000000..80d6a1e --- /dev/null +++ b/SOURCES/0001-SystemZ-Use-LA-instead-of-AGR-in-eliminateFrameIndex.patch @@ -0,0 +1,166 @@ +From d851495f2fe614c4c860bda1bd3c80bfbe48360b Mon Sep 17 00:00:00 2001 +From: Jonas Paulsson +Date: Thu, 8 Oct 2020 13:18:29 +0200 +Subject: [PATCH] [SystemZ] Use LA instead of AGR in eliminateFrameIndex(). + +Since AGR clobbers CC it should not be used here. + +Fixes https://bugs.llvm.org/show_bug.cgi?id=47736. + +Review: Ulrich Weigand +Differential Revision: https://reviews.llvm.org/D89034 +--- + .../Target/SystemZ/SystemZRegisterInfo.cpp | 4 +-- + llvm/test/CodeGen/SystemZ/frame-14.ll | 26 +++++++++---------- + llvm/test/CodeGen/SystemZ/frame-16.ll | 4 +-- + 3 files changed, 17 insertions(+), 17 deletions(-) + +diff --git a/llvm/lib/Target/SystemZ/SystemZRegisterInfo.cpp b/llvm/lib/Target/SystemZ/SystemZRegisterInfo.cpp +index 53b06c6e7e6d..88212e52460f 100644 +--- a/llvm/lib/Target/SystemZ/SystemZRegisterInfo.cpp ++++ b/llvm/lib/Target/SystemZ/SystemZRegisterInfo.cpp +@@ -322,8 +322,8 @@ SystemZRegisterInfo::eliminateFrameIndex(MachineBasicBlock::iterator MI, + // Load the high offset into the scratch register and use it as + // an index. + TII->loadImmediate(MBB, MI, ScratchReg, HighOffset); +- BuildMI(MBB, MI, DL, TII->get(SystemZ::AGR),ScratchReg) +- .addReg(ScratchReg, RegState::Kill).addReg(BasePtr); ++ BuildMI(MBB, MI, DL, TII->get(SystemZ::LA), ScratchReg) ++ .addReg(BasePtr, RegState::Kill).addImm(0).addReg(ScratchReg); + } + + // Use the scratch register as the base. It then dies here. +diff --git a/llvm/test/CodeGen/SystemZ/frame-14.ll b/llvm/test/CodeGen/SystemZ/frame-14.ll +index e70731249b42..193ff81123c5 100644 +--- a/llvm/test/CodeGen/SystemZ/frame-14.ll ++++ b/llvm/test/CodeGen/SystemZ/frame-14.ll +@@ -85,13 +85,13 @@ define void @f3() { + define void @f4() { + ; CHECK-NOFP-LABEL: f4: + ; CHECK-NOFP: llilh %r1, 8 +-; CHECK-NOFP: agr %r1, %r15 ++; CHECK-NOFP: la %r1, 0(%r1,%r15) + ; CHECK-NOFP: mvi 0(%r1), 42 + ; CHECK-NOFP: br %r14 + ; + ; CHECK-FP-LABEL: f4: + ; CHECK-FP: llilh %r1, 8 +-; CHECK-FP: agr %r1, %r11 ++; CHECK-FP: la %r1, 0(%r1,%r11) + ; CHECK-FP: mvi 0(%r1), 42 + ; CHECK-FP: br %r14 + %region1 = alloca [524104 x i8], align 8 +@@ -108,13 +108,13 @@ define void @f4() { + define void @f5() { + ; CHECK-NOFP-LABEL: f5: + ; CHECK-NOFP: llilh %r1, 8 +-; CHECK-NOFP: agr %r1, %r15 ++; CHECK-NOFP: la %r1, 0(%r1,%r15) + ; CHECK-NOFP: mvi 4095(%r1), 42 + ; CHECK-NOFP: br %r14 + ; + ; CHECK-FP-LABEL: f5: + ; CHECK-FP: llilh %r1, 8 +-; CHECK-FP: agr %r1, %r11 ++; CHECK-FP: la %r1, 0(%r1,%r11) + ; CHECK-FP: mvi 4095(%r1), 42 + ; CHECK-FP: br %r14 + %region1 = alloca [524104 x i8], align 8 +@@ -130,13 +130,13 @@ define void @f5() { + define void @f6() { + ; CHECK-NOFP-LABEL: f6: + ; CHECK-NOFP: llilh %r1, 8 +-; CHECK-NOFP: agr %r1, %r15 ++; CHECK-NOFP: la %r1, 0(%r1,%r15) + ; CHECK-NOFP: mviy 4096(%r1), 42 + ; CHECK-NOFP: br %r14 + ; + ; CHECK-FP-LABEL: f6: + ; CHECK-FP: llilh %r1, 8 +-; CHECK-FP: agr %r1, %r11 ++; CHECK-FP: la %r1, 0(%r1,%r11) + ; CHECK-FP: mviy 4096(%r1), 42 + ; CHECK-FP: br %r14 + %region1 = alloca [524104 x i8], align 8 +@@ -155,13 +155,13 @@ define void @f6() { + define void @f7() { + ; CHECK-NOFP-LABEL: f7: + ; CHECK-NOFP: llilh %r1, 23 +-; CHECK-NOFP: agr %r1, %r15 ++; CHECK-NOFP: la %r1, 0(%r1,%r15) + ; CHECK-NOFP: mviy 65535(%r1), 42 + ; CHECK-NOFP: br %r14 + ; + ; CHECK-FP-LABEL: f7: + ; CHECK-FP: llilh %r1, 23 +-; CHECK-FP: agr %r1, %r11 ++; CHECK-FP: la %r1, 0(%r1,%r11) + ; CHECK-FP: mviy 65535(%r1), 42 + ; CHECK-FP: br %r14 + %region1 = alloca [1048400 x i8], align 8 +@@ -178,13 +178,13 @@ define void @f7() { + define void @f8() { + ; CHECK-NOFP-LABEL: f8: + ; CHECK-NOFP: llilh %r1, 24 +-; CHECK-NOFP: agr %r1, %r15 ++; CHECK-NOFP: la %r1, 0(%r1,%r15) + ; CHECK-NOFP: mvi 7(%r1), 42 + ; CHECK-NOFP: br %r14 + ; + ; CHECK-FP-LABEL: f8: + ; CHECK-FP: llilh %r1, 24 +-; CHECK-FP: agr %r1, %r11 ++; CHECK-FP: la %r1, 0(%r1,%r11) + ; CHECK-FP: mvi 7(%r1), 42 + ; CHECK-FP: br %r14 + %region1 = alloca [1048408 x i8], align 8 +@@ -233,7 +233,7 @@ define void @f10(i32 *%vptr) { + ; CHECK-NOFP-LABEL: f10: + ; CHECK-NOFP: stg [[REGISTER:%r[1-9][0-4]?]], [[OFFSET:160|168]](%r15) + ; CHECK-NOFP: llilh [[REGISTER]], 8 +-; CHECK-NOFP: agr [[REGISTER]], %r15 ++; CHECK-NOFP: la [[REGISTER]], 0([[REGISTER]],%r15) + ; CHECK-NOFP: mvi 0([[REGISTER]]), 42 + ; CHECK-NOFP: lg [[REGISTER]], [[OFFSET]](%r15) + ; CHECK-NOFP: br %r14 +@@ -241,7 +241,7 @@ define void @f10(i32 *%vptr) { + ; CHECK-FP-LABEL: f10: + ; CHECK-FP: stg [[REGISTER:%r[1-9][0-4]?]], [[OFFSET:160|168]](%r11) + ; CHECK-FP: llilh [[REGISTER]], 8 +-; CHECK-FP: agr [[REGISTER]], %r11 ++; CHECK-FP: la [[REGISTER]], 0([[REGISTER]],%r11) + ; CHECK-FP: mvi 0([[REGISTER]]), 42 + ; CHECK-FP: lg [[REGISTER]], [[OFFSET]](%r11) + ; CHECK-FP: br %r14 +@@ -273,7 +273,7 @@ define void @f11(i32 *%vptr) { + ; CHECK-NOFP: stmg %r6, %r15, + ; CHECK-NOFP: stg [[REGISTER:%r[1-9][0-4]?]], [[OFFSET:160|168]](%r15) + ; CHECK-NOFP: llilh [[REGISTER]], 8 +-; CHECK-NOFP: agr [[REGISTER]], %r15 ++; CHECK-NOFP: la [[REGISTER]], 0([[REGISTER]],%r15) + ; CHECK-NOFP: mvi 0([[REGISTER]]), 42 + ; CHECK-NOFP: lg [[REGISTER]], [[OFFSET]](%r15) + ; CHECK-NOFP: lmg %r6, %r15, +diff --git a/llvm/test/CodeGen/SystemZ/frame-16.ll b/llvm/test/CodeGen/SystemZ/frame-16.ll +index ae8a041ae110..a95c58207afb 100644 +--- a/llvm/test/CodeGen/SystemZ/frame-16.ll ++++ b/llvm/test/CodeGen/SystemZ/frame-16.ll +@@ -311,13 +311,13 @@ define void @f11(i32 *%vptr, i8 %byte) { + define void @f12(i8 %byte, i64 %index) { + ; CHECK-NOFP-LABEL: f12: + ; CHECK-NOFP: llilh %r1, 8 +-; CHECK-NOFP: agr %r1, %r15 ++; CHECK-NOFP: la %r1, 0(%r1,%r15) + ; CHECK-NOFP: stc %r2, 0(%r3,%r1) + ; CHECK-NOFP: br %r14 + ; + ; CHECK-FP-LABEL: f12: + ; CHECK-FP: llilh %r1, 8 +-; CHECK-FP: agr %r1, %r11 ++; CHECK-FP: la %r1, 0(%r1,%r11) + ; CHECK-FP: stc %r2, 0(%r3,%r1) + ; CHECK-FP: br %r14 + %region1 = alloca [524104 x i8], align 8 +-- +2.26.2 + diff --git a/SOURCES/bab5908df544680ada0a3cf431f55aeccfbdb321.patch b/SOURCES/bab5908df544680ada0a3cf431f55aeccfbdb321.patch deleted file mode 100644 index 2a93e6a..0000000 --- a/SOURCES/bab5908df544680ada0a3cf431f55aeccfbdb321.patch +++ /dev/null @@ -1,23 +0,0 @@ -From bab5908df544680ada0a3cf431f55aeccfbdb321 Mon Sep 17 00:00:00 2001 -From: serge-sans-paille -Date: Mon, 13 Apr 2020 13:44:15 +0200 -Subject: [PATCH] Normalize working directory when running llvm-mc in test - -Otherwise, depending on the lit location used to run the test, llvm-mc adds an -include_directories entry in the dwarf output, which breaks tests in some setup. - -Differential Revision: https://reviews.llvm.org/D77876 ---- - llvm/test/MC/MachO/gen-dwarf.s | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/llvm/test/MC/MachO/gen-dwarf.s b/llvm/test/MC/MachO/gen-dwarf.s -index 0813856d625f..6d39d278e818 100644 ---- a/llvm/test/MC/MachO/gen-dwarf.s -+++ b/llvm/test/MC/MachO/gen-dwarf.s -@@ -1,4 +1,4 @@ --// RUN: llvm-mc -g -triple i386-apple-darwin10 %s -filetype=obj -o %t -+// RUN: mkdir -p %t0 && cd %t0 && llvm-mc -g -triple i386-apple-darwin10 %s -filetype=obj -o %t - // RUN: llvm-dwarfdump -all %t | FileCheck %s - - .globl _bar diff --git a/SOURCES/error-opening-permission.patch b/SOURCES/error-opening-permission.patch new file mode 100644 index 0000000..faf09f0 --- /dev/null +++ b/SOURCES/error-opening-permission.patch @@ -0,0 +1,12 @@ +diff -Naur a/llvm/test/tools/llvm-ar/error-opening-permission.test b/llvm/test/tools/llvm-ar/error-opening-permission.test +--- a/llvm/test/tools/llvm-ar/error-opening-permission.test 2020-09-15 09:11:33.056986167 +0000 ++++ b/llvm/test/tools/llvm-ar/error-opening-permission.test 2020-09-25 21:01:17.572130708 +0000 +@@ -8,7 +8,7 @@ + ## No Permission: + # RUN: llvm-ar rc %t/permission.b %t/1.txt + # RUN: chmod 100 %t/permission.b +-# RUN: not llvm-ar p %t/permission.b 2>&1 | \ ++# RUN: echo > %t/permission.b || not llvm-ar p %t/permission.b 2>&1 | \ + # RUN: FileCheck %s --check-prefix=NO-PERMISSION -DARCHIVE=%t/permission.b + + # NO-PERMISSION: error: unable to open '[[ARCHIVE]]': {{[pP]}}ermission denied diff --git a/SOURCES/hans-gpg-key.asc b/SOURCES/hans-gpg-key.asc deleted file mode 100644 index 2cf5255..0000000 --- a/SOURCES/hans-gpg-key.asc +++ /dev/null @@ -1,7 +0,0 @@ - -404 Not Found - -

404 Not Found

-
nginx/1.4.6 (Ubuntu)
- - diff --git a/SOURCES/llvm-10.0.1.src.tar.xz.sig b/SOURCES/llvm-10.0.1.src.tar.xz.sig deleted file mode 100644 index d12fe88..0000000 Binary files a/SOURCES/llvm-10.0.1.src.tar.xz.sig and /dev/null differ diff --git a/SOURCES/llvm-11.0.0.src.tar.xz.sig b/SOURCES/llvm-11.0.0.src.tar.xz.sig new file mode 100644 index 0000000..a7df9b4 Binary files /dev/null and b/SOURCES/llvm-11.0.0.src.tar.xz.sig differ diff --git a/SOURCES/run-lit-tests b/SOURCES/run-lit-tests index 11fc0f4..4d8cdf5 100755 --- a/SOURCES/run-lit-tests +++ b/SOURCES/run-lit-tests @@ -51,7 +51,8 @@ ln -s /usr/include include tar -xzf /usr/share/llvm/src/test.tar.gz ln -s /usr/share/llvm/src/$ARCH.site.cfg.py test/lit.site.cfg.py ln -s /usr/share/llvm/src/$ARCH.Unit.site.cfg.py test/Unit/lit.site.cfg.py -lit -v -s $threads_arg test \ +ln -s /usr/share/llvm/src/docs docs +lit -v $threads_arg test \ -Dllvm_obj_root=`pwd` \ -Dllvm_test_root=`pwd`/test \ -Dllvm_unittest_bindir=$LIB_DIR/llvm \ diff --git a/SPECS/llvm.spec b/SPECS/llvm.spec index c5843c0..ad09a1b 100644 --- a/SPECS/llvm.spec +++ b/SPECS/llvm.spec @@ -8,14 +8,16 @@ %bcond_with compat_build +%global _smp_mflags -j8 + %global llvm_libdir %{_libdir}/%{name} %global build_llvm_libdir %{buildroot}%{llvm_libdir} #%%global rc_ver 6 -%global baserelease 3 +%global baserelease 2 %global llvm_srcdir llvm-%{version}%{?rc_ver:rc%{rc_ver}}.src -%global maj_ver 10 +%global maj_ver 11 %global min_ver 0 -%global patch_ver 1 +%global patch_ver 0 %if %{with compat_build} %global pkg_name llvm%{maj_ver}.%{min_ver} @@ -50,36 +52,22 @@ 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 +Source0: https://github.com/llvm/llvm-project/releases/download/llvmorg-%{version}%{?rc_ver:-rc%{rc_ver}}/%{llvm_srcdir}.tar.xz +Source1: https://github.com/llvm/llvm-project/releases/download/llvmorg-%{version}%{?rc_ver:-rc%{rc_ver}}/%{llvm_srcdir}.tar.xz.sig +Source2: https://prereleases.llvm.org/%{version}/hans-gpg-key.asc %if %{without compat_build} -Source1: run-lit-tests -Source2: lit.fedora.cfg.py +Source3: run-lit-tests +Source4: lit.fedora.cfg.py %endif -Source4: https://prereleases.llvm.org/%{version}/hans-gpg-key.asc -##Patch0: 0001-Filter-out-cxxflags-not-supported-by-clang.patch +# Fix coreos-installer test crash on s390x (rhbz#1883457), https://reviews.llvm.org/D89034 +Patch1: 0001-SystemZ-Use-LA-instead-of-AGR-in-eliminateFrameIndex.patch Patch2: 0001-CMake-Split-static-library-exports-into-their-own-ex.patch Patch3: 0001-CMake-Split-test-binary-exports-into-their-own-expor.patch -Patch4: bab5908df544680ada0a3cf431f55aeccfbdb321.patch -Patch5: 0001-PowerPC-PPCBoolRetToInt-Skip-translation-if-there-is.patch # RHEL-specific patches. -Patch101: 0001-Deactivate-markdown-doc.patch -# Patches to convert md files to rst since we don't have the md parser in RHEL. -#Patch102: 0001-Docs-llvm-strip-Add-help-text-to-llvm-strip-rst-doc.patch -#Patch103: 0001-docs-Convert-remaining-command-guide-entries-from-md.patch -### Fix crash in kernel bpf self-tests -##Patch5: 0001-BPF-Handling-type-conversions-correctly-for-CO-RE.patch -##Patch6: 0001-BPF-annotate-DIType-metadata-for-builtin-preseve_arr.patch -## -### Fix Rust codegen bug, https://github.com/rust-lang/rust/issues/69225 -##Patch7: 0001-Revert-SCEV-add-no-wrap-flag-for-SCEVAddExpr.patch +Patch101: 0001-Deactivate-markdown-doc.patch +Patch102: error-opening-permission.patch BuildRequires: gcc BuildRequires: gcc-c++ @@ -89,11 +77,13 @@ BuildRequires: zlib-devel BuildRequires: libffi-devel BuildRequires: ncurses-devel BuildRequires: python3-sphinx + %if !0%{?rhel} -BuildRequires: python3-recommonmark +BuildRequires: python3-recommonmark %else -BuildRequires: pandoc +BuildRequires: pandoc %endif + BuildRequires: multilib-rpm-config %if %{with gold} BuildRequires: binutils-devel @@ -129,6 +119,15 @@ Requires: %{name}-libs%{?_isa} = %{version}-%{release} %if 0%{?use_libedit} Requires: libedit-devel %endif +# The installed cmake files reference binaries from llvm-test and llvm-static. +# We tried in the past to split the cmake exports for these binaries out into +# separate files, so that llvm-devel would not need to Require these packages, +# but this caused bugs (rhbz#1773678) and forced us to carry two non-upstream +# patches. +Requires: llvm-static%{?_isa} = %{version}-%{release} +Requires: llvm-test%{?_isa} = %{version}-%{release} + + Requires(post): %{_sbindir}/alternatives Requires(postun): %{_sbindir}/alternatives @@ -192,9 +191,10 @@ LLVM's modified googletest sources. pathfix.py -i %{__python3} -pn \ test/BugPoint/compile-custom.ll.py \ - tools/opt-viewer/*.py + tools/opt-viewer/*.py \ + utils/update_cc_test_checks.py -# Convert markdown files to rst to cope with the absence of recommonmark in rhel. +# Convert markdown files to rst to cope with the absence of compatible md parser in rhel. # The sed expression takes care of a slight difference between pandoc markdown and sphinx markdown. find -name '*.md' | while read md; do sed -r -e 's/^( )*\* /\n\1\* /' ${md} | pandoc -f markdown -o ${md%.md}.rst ; done @@ -211,7 +211,7 @@ cd _build # # -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 +# if CMAKE_INSTALL_RPATH is set to a value, but cmake interprets this value # as nothing, so it sets the rpath to "" when installing. %cmake .. -G Ninja \ -DBUILD_SHARED_LIBS:BOOL=OFF \ @@ -264,6 +264,9 @@ cd _build -DLLVM_ENABLE_SPHINX:BOOL=ON \ -DLLVM_ENABLE_DOXYGEN:BOOL=OFF \ \ +%if %{without compat_build} + -DLLVM_VERSION_SUFFIX='' \ +%endif -DLLVM_BUILD_LLVM_DYLIB:BOOL=ON \ -DLLVM_DYLIB_EXPORT_ALL:BOOL=ON \ -DLLVM_LINK_LLVM_DYLIB:BOOL=ON \ @@ -328,13 +331,21 @@ 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 +# Clang needs these for running lit tests. +cp utils/update_cc_test_checks.py %{install_srcdir}/utils/ +cp -R utils/UpdateTestChecks %{install_srcdir}/utils/ + +# One of the lit tests references this file +install -d %{install_srcdir}/docs/CommandGuide/ +install -m 0644 docs/CommandGuide/dsymutil.rst %{install_srcdir}/docs/CommandGuide/ + +# Generate lit config files. Strip off the last lines 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} +head -n -2 _build/test/lit.site.cfg.py >> %{lit_cfg} +head -n -2 _build/test/Unit/lit.site.cfg.py >> %{lit_unit_cfg} # Install custom fedora config file -cp %{SOURCE2} %{buildroot}%{lit_fedora_cfg} +cp %{SOURCE4} %{buildroot}%{lit_fedora_cfg} # Patch lit config files to load custom fedora config: for f in %{lit_cfg} %{lit_unit_cfg}; do @@ -342,7 +353,7 @@ for f in %{lit_cfg} %{lit_unit_cfg}; do done install -d %{buildroot}%{_libexecdir}/tests/llvm -install -m 0755 %{SOURCE1} %{buildroot}%{_libexecdir}/tests/llvm +install -m 0755 %{SOURCE3} %{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. @@ -368,6 +379,12 @@ echo "%{_datadir}/llvm/src/unittests/DebugInfo/PDB" > %{build_llvm_libdir}/unitt mkdir -p %{buildroot}%{_datadir}/llvm/src/unittests/DebugInfo/PDB/ cp -R unittests/DebugInfo/PDB/Inputs %{buildroot}%{_datadir}/llvm/src/unittests/DebugInfo/PDB/ +%if %{with gold} +# Add symlink to lto plugin in the binutils plugin directory. +%{__mkdir_p} %{buildroot}%{_libdir}/bfd-plugins/ +ln -s %{_libdir}/LLVMgold.so %{buildroot}%{_libdir}/bfd-plugins/ +%endif + %else # Add version suffix to binaries @@ -407,7 +424,8 @@ rm -Rf %{build_install_prefix}/share/opt-viewer %check # TODO: Fix test failures on arm -ninja check-all -C _build || \ +# FIXME: use %%cmake_build instead of %%__ninja +LD_LIBRARY_PATH=%{buildroot}/%{_libdir} %{__ninja} check-all -C _build || \ %ifarch %{arm} : %else @@ -429,6 +447,7 @@ fi %endif %files +%license LICENSE.TXT %exclude %{_mandir}/man1/llvm-config* %{_mandir}/man1/* %{_bindir}/* @@ -449,10 +468,12 @@ fi %endif %files libs +%license LICENSE.TXT %{pkg_libdir}/libLLVM-%{maj_ver}.so %if %{without compat_build} %if %{with gold} %{_libdir}/LLVMgold.so +%{_libdir}/bfd-plugins/LLVMgold.so %endif %{_libdir}/libLLVM-%{maj_ver}.%{min_ver}*.so %{_libdir}/libLTO.so* @@ -468,6 +489,7 @@ fi %{pkg_libdir}/libRemarks.so* %files devel +%license LICENSE.TXT %if %{without compat_build} %ghost %{_bindir}/llvm-config %{_bindir}/llvm-config-%{__isa_bits} @@ -492,9 +514,11 @@ fi %endif %files doc +%license LICENSE.TXT %doc %{_pkgdocdir}/html %files static +%license LICENSE.TXT %if %{without compat_build} %{_libdir}/*.a %exclude %{_libdir}/libLLVMTestingSupport.a @@ -506,6 +530,7 @@ fi %if %{without compat_build} %files test +%license LICENSE.TXT %{_libexecdir}/tests/llvm/ %{llvm_libdir}/unittests/ %{_datadir}/llvm/src/unittests @@ -513,6 +538,7 @@ fi %{_datadir}/llvm/src/%{_arch}.site.cfg.py %{_datadir}/llvm/src/%{_arch}.Unit.site.cfg.py %{_datadir}/llvm/lit.fedora.cfg.py +%{_datadir}/llvm/src/docs/CommandGuide/dsymutil.rst %{_bindir}/not %{_bindir}/count %{_bindir}/yaml-bench @@ -524,12 +550,37 @@ fi %{_libdir}/cmake/llvm/LLVMTestExports.cmake %files googletest +%license LICENSE.TXT %{_datadir}/llvm/src/utils %{_libdir}/libLLVMTestingSupport.a %endif %changelog +* Thu Oct 29 2020 sguelton@redhat.com - 11.0.0-2 +- Remove obsolete patch + +* Wed Sep 30 2020 sguelton@redhat.com - 11.0.0-1 +- 11.0.1 final release + +* Wed Sep 30 2020 sguelton@redhat.com - 11.0.0-0.6.rc2 +- Restore default CI behavior wrt. number of threads + +* Fri Sep 25 2020 sguelton@redhat.com - 11.0.0-0.5.rc2 +- Fix test case depending on fs capability + +* Fri Sep 25 2020 sguelton@redhat.com - 11.0.0-0.4.rc2 +- Fix dependency on dsymutil.rst from CI + +* Thu Sep 24 2020 sguelton@redhat.com - 11.0.0-0.3.rc2 +- Fix test file generation + +* Wed Sep 23 2020 sguelton@redhat.com - 11.0.0-0.2.rc2 +- Remove runtime dep on libedit-devel + +* Mon Sep 14 2020 sguelton@redhat.com - 11.0.0-0.1.rc2 +- 11.0.1.rc2 Release + * Wed Aug 19 2020 Tom Stellard - 10.0.1-3 - Fix rust crash on ppc64le compiling firefox