summaryrefslogtreecommitdiff
path: root/0056-Fix-bug-that-verifying-gimple-failed-when-reorg-leve.patch
blob: 4bcaca8428cd1a1b8d8cfcece48b9a87cf3890cb (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
From fa6f80044dcebd28506e871e6e5d25e2dfd7e105 Mon Sep 17 00:00:00 2001
From: tiancheng-bao <baotiancheng1@huawei.com>
Date: Fri, 12 Apr 2024 15:09:28 +0800
Subject: [PATCH 01/32] Fix bug that verifying gimple failed when reorg-level >
 5

---
 gcc/ipa-struct-reorg/ipa-struct-reorg.cc | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/gcc/ipa-struct-reorg/ipa-struct-reorg.cc b/gcc/ipa-struct-reorg/ipa-struct-reorg.cc
index f03d1d875..e08577c0c 100644
--- a/gcc/ipa-struct-reorg/ipa-struct-reorg.cc
+++ b/gcc/ipa-struct-reorg/ipa-struct-reorg.cc
@@ -7461,6 +7461,9 @@ ipa_struct_reorg::rewrite_assign (gassign *stmt, gimple_stmt_iterator *gsi)
 	    continue;
 	  tree lhs_expr = newlhs[i] ? newlhs[i] : lhs;
 	  tree rhs_expr = newrhs[i] ? newrhs[i] : rhs;
+	  if (!useless_type_conversion_p (TREE_TYPE (lhs_expr),
+					  TREE_TYPE (rhs_expr)))
+	    rhs_expr = gimplify_build1 (gsi, NOP_EXPR, TREE_TYPE (lhs_expr), rhs_expr);  
 	  gimple *newstmt = gimple_build_assign (lhs_expr, rhs_expr);
 	  if (dump_file && (dump_flags & TDF_DETAILS))
 	    {
-- 
2.28.0.windows.1