!384 [Sync] Sync patche from openeuler/gcc.

From: @lesleyzheng1103 
Reviewed-by: @xiongzhou4 
Signed-off-by: @xiongzhou4
This commit is contained in:
openeuler-ci-bot 2024-02-26 02:17:49 +00:00 committed by Gitee
commit e7eace805d
No known key found for this signature in database
GPG Key ID: 173E9B9CA92EEF8F
4 changed files with 1933 additions and 1 deletions

View File

@ -0,0 +1,26 @@
From 92dc99425b2566e8cc9cba7cec8774911db0c654 Mon Sep 17 00:00:00 2001
From: XingYuShuai <1150775134@qq.com>
Date: Fri, 2 Feb 2024 15:55:07 +0800
Subject: [PATCH 1/3] [Loop CRC] Solving the problem of insufficient CRC table.
---
gcc/tree-ssa-loop-crc.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/gcc/tree-ssa-loop-crc.c b/gcc/tree-ssa-loop-crc.c
index 2dd9e1e3b..26f8e64d1 100644
--- a/gcc/tree-ssa-loop-crc.c
+++ b/gcc/tree-ssa-loop-crc.c
@@ -421,7 +421,8 @@ match_crc_table (tree crc_table)
tree low_bound = array_ref_low_bound (crc_table);
tree up_bound = array_ref_up_bound (crc_table);
tree element_size = array_ref_element_size (crc_table);
- if (low_bound == NULL || up_bound == NULL || element_size == NULL)
+ if (!tree_fits_uhwi_p(low_bound) || !tree_fits_uhwi_p(up_bound) ||
+ !tree_fits_uhwi_p(element_size))
return false;
unsigned HOST_WIDE_INT lb = tree_to_uhwi (low_bound);
unsigned HOST_WIDE_INT ub = tree_to_uhwi (up_bound);
--
2.33.0

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,32 @@
From e7f50fc07c76b60b272cb97151b228d96b67938a Mon Sep 17 00:00:00 2001
From: Diachkov Ilia WX1215920 <diachkov.ilia1@huawei-partners.com>
Date: Mon, 19 Feb 2024 11:06:37 +0300
Subject: [PATCH 3/3] Fix fails in ICP (for src-openEuler/gcc: I90P7M, I91CZ8)
---
gcc/ipa-devirt.c | 8 +++++---
1 file changed, 5 insertions(+), 3 deletions(-)
diff --git a/gcc/ipa-devirt.c b/gcc/ipa-devirt.c
index 9863084e4..194ad3f21 100644
--- a/gcc/ipa-devirt.c
+++ b/gcc/ipa-devirt.c
@@ -4805,10 +4805,12 @@ compare_block_and_init_type (tree block, tree t1)
static void
analyze_global_var (varpool_node *var)
{
- var->get_constructor();
tree decl = var->decl;
- if (TREE_CODE (decl) == SSA_NAME || !DECL_INITIAL (decl)
- || integer_zerop (DECL_INITIAL (decl)))
+ if (decl || !DECL_INITIAL (decl))
+ return;
+ var->get_constructor ();
+ if (TREE_CODE (decl) == SSA_NAME || integer_zerop (DECL_INITIAL (decl))
+ || TREE_CODE (DECL_INITIAL (decl)) == ERROR_MARK)
return;
if (dump_file && (dump_flags & TDF_DETAILS))
--
2.33.0

View File

@ -61,7 +61,7 @@
Summary: Various compilers (C, C++, Objective-C, ...)
Name: gcc
Version: %{gcc_version}
Release: 50
Release: 51
License: GPLv3+ and GPLv3+ with exceptions and GPLv2+ with exceptions and LGPLv2+ and BSD
URL: https://gcc.gnu.org
@ -293,6 +293,9 @@ Patch182: 0182-Fix-bugs-in-ICP-src-openEuler-gcc-I8RKFJ.patch
Patch183: 0183-Fix-fail-in-ICP-src-openEuler-gcc-I8RP4H.patch
Patch184: 0184-Fix-fail-in-IPA-prefetch-src-openEuler-gcc-I8RURA.patch
Patch185: 0185-Fix-fail-in-IPA-prefetch-src-openEuler-gcc-I8RV7T.patch
Patch186: 0186-Loop-CRC-Solving-the-problem-of-insufficient-CRC-tab.patch
Patch187: 0187-Add-IPA-prefetch-test.patch
Patch188: 0188-Fix-fails-in-ICP-for-src-openEuler-gcc-I90P7M-I91CZ8.patch
%global gcc_target_platform %{_arch}-linux-gnu
@ -931,6 +934,9 @@ not stable, so plugins must be rebuilt any time GCC is updated.
%patch183 -p1
%patch184 -p1
%patch185 -p1
%patch186 -p1
%patch187 -p1
%patch188 -p1
%build
@ -2955,6 +2961,12 @@ end
%doc rpm.doc/changelogs/libcc1/ChangeLog*
%changelog
* Fri Feb 23 2024 Chenhui Zheng <zhengchenhui1@huawei.com> - 10.3.1-51
- Type:Sync
- ID:NA
- SUG:NA
- DESC: Sync patch from openeuler/gcc
* Thu Jan 4 2024 Chenhui Zheng <zhengchenhui1@huawei.com> - 10.3.1-50
- Type:Sync
- ID:NA