Compare commits
2 Commits
9c172195a7
...
de5056bfff
Author | SHA1 | Date | |
---|---|---|---|
|
de5056bfff | ||
|
aff6092c23 |
6
.gitignore
vendored
6
.gitignore
vendored
@ -20,3 +20,9 @@ SOURCES/llvm-15.0.7.src.tar.xz
|
|||||||
/cmake-17.0.2.src.tar.xz.sig
|
/cmake-17.0.2.src.tar.xz.sig
|
||||||
/third-party-17.0.2.src.tar.xz
|
/third-party-17.0.2.src.tar.xz
|
||||||
/third-party-17.0.2.src.tar.xz.sig
|
/third-party-17.0.2.src.tar.xz.sig
|
||||||
|
/llvm-17.0.6.src.tar.xz
|
||||||
|
/llvm-17.0.6.src.tar.xz.sig
|
||||||
|
/cmake-17.0.6.src.tar.xz
|
||||||
|
/cmake-17.0.6.src.tar.xz.sig
|
||||||
|
/third-party-17.0.6.src.tar.xz
|
||||||
|
/third-party-17.0.6.src.tar.xz.sig
|
||||||
|
6
.llvm.metadata
Normal file
6
.llvm.metadata
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
860a3605f08a0a56a8de4e073e26a259871623a6 llvm-17.0.6.src.tar.xz
|
||||||
|
2ad479ab00a6d5e61ecb953997cfeef6650a687a llvm-17.0.6.src.tar.xz.sig
|
||||||
|
4b397344260c934e687be7efa0f8456a9dd46f44 cmake-17.0.6.src.tar.xz
|
||||||
|
fa31d348b6780478403484e22139d25f403503d4 cmake-17.0.6.src.tar.xz.sig
|
||||||
|
a35dc22cd3d983a556f6e4a63c8dac6a84e01caf third-party-17.0.6.src.tar.xz
|
||||||
|
12128cdab7414aeedd573c61cbc2fa82e75491db third-party-17.0.6.src.tar.xz.sig
|
74
0001-PEI-Don-t-zero-out-noreg-operands.patch
Normal file
74
0001-PEI-Don-t-zero-out-noreg-operands.patch
Normal file
@ -0,0 +1,74 @@
|
|||||||
|
From 9d1f05a7b8537deb5f626cd1b7b26ef2678f4c8e Mon Sep 17 00:00:00 2001
|
||||||
|
From: Arthur Eubanks <aeubanks@google.com>
|
||||||
|
Date: Thu, 27 Jul 2023 13:27:58 -0700
|
||||||
|
Subject: [PATCH] [PEI] Don't zero out noreg operands
|
||||||
|
|
||||||
|
A tail call may have $noreg operands.
|
||||||
|
|
||||||
|
Fixes a crash.
|
||||||
|
|
||||||
|
Reviewed By: xgupta
|
||||||
|
|
||||||
|
Differential Revision: https://reviews.llvm.org/D156485
|
||||||
|
|
||||||
|
(cherry picked from commit f800c1f3b207e7bcdc8b4c7192928d9a078242a0)
|
||||||
|
---
|
||||||
|
llvm/lib/CodeGen/PrologEpilogInserter.cpp | 9 +++++++--
|
||||||
|
llvm/test/CodeGen/X86/zero-call-used-regs.ll | 14 ++++++++++++++
|
||||||
|
2 files changed, 21 insertions(+), 2 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/llvm/lib/CodeGen/PrologEpilogInserter.cpp b/llvm/lib/CodeGen/PrologEpilogInserter.cpp
|
||||||
|
index e323aaaeefaf..49047719fdaa 100644
|
||||||
|
--- a/llvm/lib/CodeGen/PrologEpilogInserter.cpp
|
||||||
|
+++ b/llvm/lib/CodeGen/PrologEpilogInserter.cpp
|
||||||
|
@@ -1285,6 +1285,8 @@ void PEI::insertZeroCallUsedRegs(MachineFunction &MF) {
|
||||||
|
continue;
|
||||||
|
|
||||||
|
MCRegister Reg = MO.getReg();
|
||||||
|
+ if (!Reg)
|
||||||
|
+ continue;
|
||||||
|
|
||||||
|
// This picks up sibling registers (e.q. %al -> %ah).
|
||||||
|
for (MCRegUnit Unit : TRI.regunits(Reg))
|
||||||
|
@@ -1308,8 +1310,11 @@ void PEI::insertZeroCallUsedRegs(MachineFunction &MF) {
|
||||||
|
if (!MO.isReg())
|
||||||
|
continue;
|
||||||
|
|
||||||
|
- for (const MCPhysReg &Reg :
|
||||||
|
- TRI.sub_and_superregs_inclusive(MO.getReg()))
|
||||||
|
+ MCRegister Reg = MO.getReg();
|
||||||
|
+ if (!Reg)
|
||||||
|
+ continue;
|
||||||
|
+
|
||||||
|
+ for (const MCPhysReg Reg : TRI.sub_and_superregs_inclusive(Reg))
|
||||||
|
RegsToZero.reset(Reg);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
diff --git a/llvm/test/CodeGen/X86/zero-call-used-regs.ll b/llvm/test/CodeGen/X86/zero-call-used-regs.ll
|
||||||
|
index 63d51c916bb9..97ad5ce9c8cb 100644
|
||||||
|
--- a/llvm/test/CodeGen/X86/zero-call-used-regs.ll
|
||||||
|
+++ b/llvm/test/CodeGen/X86/zero-call-used-regs.ll
|
||||||
|
@@ -241,6 +241,20 @@ entry:
|
||||||
|
ret i32 %x
|
||||||
|
}
|
||||||
|
|
||||||
|
+define dso_local void @tailcall(ptr %p) local_unnamed_addr #0 "zero-call-used-regs"="used-gpr" {
|
||||||
|
+; I386-LABEL: tailcall:
|
||||||
|
+; I386: # %bb.0:
|
||||||
|
+; I386-NEXT: movl {{[0-9]+}}(%esp), %eax
|
||||||
|
+; I386-NEXT: jmpl *(%eax) # TAILCALL
|
||||||
|
+;
|
||||||
|
+; X86-64-LABEL: tailcall:
|
||||||
|
+; X86-64: # %bb.0:
|
||||||
|
+; X86-64-NEXT: jmpq *(%rdi) # TAILCALL
|
||||||
|
+ %c = load ptr, ptr %p
|
||||||
|
+ tail call void %c()
|
||||||
|
+ ret void
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
; Don't emit zeroing registers in "main" function.
|
||||||
|
define dso_local i32 @main() local_unnamed_addr #1 {
|
||||||
|
; I386-LABEL: main:
|
||||||
|
--
|
||||||
|
2.43.0
|
||||||
|
|
17
llvm.spec
17
llvm.spec
@ -33,7 +33,7 @@
|
|||||||
|
|
||||||
%global maj_ver 17
|
%global maj_ver 17
|
||||||
%global min_ver 0
|
%global min_ver 0
|
||||||
%global patch_ver 2
|
%global patch_ver 6
|
||||||
#global rc_ver 4
|
#global rc_ver 4
|
||||||
|
|
||||||
%if %{with snapshot_build}
|
%if %{with snapshot_build}
|
||||||
@ -138,6 +138,9 @@ Source5: https://github.com/llvm/llvm-project/releases/download/llvmorg-%{maj_ve
|
|||||||
Source6: release-keys.asc
|
Source6: release-keys.asc
|
||||||
%endif
|
%endif
|
||||||
|
|
||||||
|
# Backport of https://reviews.llvm.org/D156485 for RHEL-23865.
|
||||||
|
Patch0: 0001-PEI-Don-t-zero-out-noreg-operands.patch
|
||||||
|
|
||||||
# RHEL-specific patch to avoid unwanted recommonmark dep
|
# RHEL-specific patch to avoid unwanted recommonmark dep
|
||||||
Patch101: 0101-Deactivate-markdown-doc.patch
|
Patch101: 0101-Deactivate-markdown-doc.patch
|
||||||
|
|
||||||
@ -470,8 +473,8 @@ ln -s ../../../%{install_includedir}/llvm-c %{buildroot}/%{pkg_includedir}/llvm-
|
|||||||
%multilib_fix_c_header --file %{install_includedir}/llvm/Config/llvm-config.h
|
%multilib_fix_c_header --file %{install_includedir}/llvm/Config/llvm-config.h
|
||||||
|
|
||||||
# Create ld.so.conf.d entry
|
# Create ld.so.conf.d entry
|
||||||
mkdir -p %{buildroot}%{_sysconfdir}/ld.so.conf.d
|
mkdir -p %{buildroot}/etc/ld.so.conf.d
|
||||||
cat >> %{buildroot}%{_sysconfdir}/ld.so.conf.d/%{name}-%{_arch}.conf << EOF
|
cat >> %{buildroot}/etc/ld.so.conf.d/%{name}-%{_arch}.conf << EOF
|
||||||
%{install_libdir}
|
%{install_libdir}
|
||||||
EOF
|
EOF
|
||||||
|
|
||||||
@ -576,7 +579,7 @@ fi
|
|||||||
%{_libdir}/libLLVM-%{maj_ver}.%{min_ver}*.so
|
%{_libdir}/libLLVM-%{maj_ver}.%{min_ver}*.so
|
||||||
%{_libdir}/libLTO.so*
|
%{_libdir}/libLTO.so*
|
||||||
%else
|
%else
|
||||||
%config(noreplace) %{_sysconfdir}/ld.so.conf.d/%{name}-%{_arch}.conf
|
%config(noreplace) /etc/ld.so.conf.d/%{name}-%{_arch}.conf
|
||||||
%if %{with gold}
|
%if %{with gold}
|
||||||
%{_libdir}/%{name}/lib/LLVMgold.so
|
%{_libdir}/%{name}/lib/LLVMgold.so
|
||||||
%endif
|
%endif
|
||||||
@ -652,6 +655,12 @@ fi
|
|||||||
%endif
|
%endif
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Fri Feb 02 2024 Nikita Popov <npopov@redhat.com> - 17.0.6-2
|
||||||
|
- Fix crash with -fzero-call-used-regs (RHEL-23865)
|
||||||
|
|
||||||
|
* Wed Nov 29 2023 Nikita Popov <npopov@redhat.com> - 17.0.6-1
|
||||||
|
- Update to LLVM 17.0.6
|
||||||
|
|
||||||
* Mon Oct 23 2023 Nikita Popov <npopov@redhat.com> - 17.0.2-2
|
* Mon Oct 23 2023 Nikita Popov <npopov@redhat.com> - 17.0.2-2
|
||||||
- Add Conflicts to llvm-googletest
|
- Add Conflicts to llvm-googletest
|
||||||
|
|
||||||
|
12
sources
12
sources
@ -1,6 +1,6 @@
|
|||||||
SHA512 (llvm-17.0.2.src.tar.xz) = 5835b73e023e58e5aa82da2631171e274b0beca10d53b66d40ee44c6c87a4647a9fc6fb6ea93ff4b513805a9d7d157c08e8c22af8e034cc2373982d630e7dc72
|
SHA512 (llvm-17.0.6.src.tar.xz) = bf9b04d0d45c67168b195c550cd8326e3a01176f92776705846aad3956a494bcb7a053b0b0bde19abd68dc0068e5c97ef99dee7eadfdb727bc0d758b2684f3bd
|
||||||
SHA512 (llvm-17.0.2.src.tar.xz.sig) = f3df4c292017f66a49a27f3e823f62eeb8c3e6842095200fdad3d757320f96411927fd4db0c296b33e68e2e7f2117b5dcb2f98e723a0c7896b8e64f87f6ca3d5
|
SHA512 (llvm-17.0.6.src.tar.xz.sig) = 904066c34ec0adf5b9e789af640329cadc7919b111aca77fa3ce26450696bace20e299e2592251f96ee33fb83da603423cc0ca63a67ad627916fcab0bed59689
|
||||||
SHA512 (cmake-17.0.2.src.tar.xz) = 5740262336dd0b99db0f96122cd8bd3e52f1fa2677f7cb70ea35c4ad61b62c150db633a61674fe6a27ad8009abf52ab53148f9dbdde7c24aa5217ca337099b6f
|
SHA512 (cmake-17.0.6.src.tar.xz) = b2c5e404ca36542d44e1a7f2801bbcecbcf5f1e8c63b793bb2308228483406bdfe002720aadb913c0228cd2bbe5998465eaadc4a49fad6a5eb6ff907fa5fd45a
|
||||||
SHA512 (cmake-17.0.2.src.tar.xz.sig) = 9f190af68e099328860a5ba19c90e87b779d1c185f9b9940ff5575848c8bcb689c1a32f5844f011d33a708d98591db2cf066b2188350a5886ae4410d82f497e1
|
SHA512 (cmake-17.0.6.src.tar.xz.sig) = fad2d91fc3e499dbd1b8c4acbc48ef748c106a04f7529232ea95abf3d006c4494e495643f77e653b1c96f7a0b79fe0706c5cdedd4f7dc4cbbab0ee5cf749c8ce
|
||||||
SHA512 (third-party-17.0.2.src.tar.xz) = bbdece9190d0b81d10ba680292fab9e86c9af49e563b3fbef310da911a2b629c372b9888aa553a82625b5e82e2d83dfa598e6d1bda64f36fa6f646332a569f60
|
SHA512 (third-party-17.0.6.src.tar.xz) = 242dada4800c5e558f5f243e6aa0905d90ca3f82cc81baf14c60de543a7e737d4c2f3471122f2c641dc4f0724e4ebf5cf137761a231b34aab2a12f1cfc902c53
|
||||||
SHA512 (third-party-17.0.2.src.tar.xz.sig) = bafad421da451077d2a1eda20105003c286d145f025b36a4b0d359052f98c236a189bf08c36a1e667960ddf31982c858f59713c7d6af491b825ca5d0959318e7
|
SHA512 (third-party-17.0.6.src.tar.xz.sig) = 6b72379b70a359a77f4d7d0922b0e80ff2a44d65178389b25edbc4a72029a91d50b3eb39a1185fac50dbba0a1972572eaadc7d82bb8e87d26f4e42c2bf676b75
|
||||||
|
Loading…
Reference in New Issue
Block a user