forked from earlephilhower/esp-quick-toolchain
-
Notifications
You must be signed in to change notification settings - Fork 1
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request earlephilhower#37 from jjsuwa-sys3175/bunch_of_pat…
…ches_v2 GCC: xtensa: Backport patches from upstream/master (v2)
- Loading branch information
Showing
226 changed files
with
28,686 additions
and
9,674 deletions.
There are no files selected for viewing
39 changes: 39 additions & 0 deletions
39
patches/gcc10.1/gcc-Improve-initialization-of-objects-when-the-initializ.patch
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,39 @@ | ||
From a2cde0c6443c440c2a2b72b5eea060229a0cff57 Mon Sep 17 00:00:00 2001 | ||
From: Jeff Law <[email protected]> | ||
Date: Sat, 9 Jul 2022 11:11:00 -0400 | ||
Subject: [PATCH] [RFA] Improve initialization of objects when the initializer | ||
|
||
gcc/ | ||
|
||
* expr.c (store_expr): Identify trailing NULs in a STRING_CST | ||
initializer and use clear_storage rather than copying the | ||
NULs to the destination array. | ||
--- | ||
gcc/expr.c | 11 +++++++++++ | ||
1 file changed, 11 insertions(+) | ||
|
||
diff --git a/gcc/expr.c b/gcc/expr.c | ||
index 991b26f33..6ff393462 100644 | ||
--- a/gcc/expr.c | ||
+++ b/gcc/expr.c | ||
@@ -5723,6 +5723,17 @@ store_expr (tree exp, rtx target, int call_param_p, | ||
} | ||
|
||
str_copy_len = TREE_STRING_LENGTH (str); | ||
+ | ||
+ /* Trailing NUL bytes in EXP will be handled by the call to | ||
+ clear_storage, which is more efficient than copying them from | ||
+ the STRING_CST, so trim those from STR_COPY_LEN. */ | ||
+ while (str_copy_len) | ||
+ { | ||
+ if (TREE_STRING_POINTER (str)[str_copy_len - 1]) | ||
+ break; | ||
+ str_copy_len--; | ||
+ } | ||
+ | ||
if ((STORE_MAX_PIECES & (STORE_MAX_PIECES - 1)) == 0) | ||
{ | ||
str_copy_len += STORE_MAX_PIECES - 1; | ||
-- | ||
2.20.1 | ||
|
44 changes: 44 additions & 0 deletions
44
patches/gcc10.1/gcc-xtensa-0006-Fix-non-robust-split-condition-in-define_insn.patch
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,44 @@ | ||
From 2065a3fccb11e28ebcc42aa46c52a40b0fae9bea Mon Sep 17 00:00:00 2001 | ||
From: Kewen Lin <[email protected]> | ||
Date: Sun, 21 Nov 2021 20:18:31 -0600 | ||
Subject: [PATCH 01/31] xtensa: Fix non-robust split condition in | ||
define_insn_and_split | ||
|
||
This patch is to fix some non-robust split conditions in some | ||
define_insn_and_splits, to make each of them applied on top of | ||
the corresponding condition for define_insn part, otherwise the | ||
splitting could perform unexpectedly. | ||
|
||
gcc/ChangeLog: | ||
|
||
* config/xtensa/xtensa.md (movdi_internal, movdf_internal): Fix split | ||
condition. | ||
--- | ||
gcc/config/xtensa/xtensa.md | 4 ++-- | ||
1 file changed, 2 insertions(+), 2 deletions(-) | ||
|
||
diff --git a/gcc/config/xtensa/xtensa.md b/gcc/config/xtensa/xtensa.md | ||
index 2a8e59ee9..123916957 100644 | ||
--- a/gcc/config/xtensa/xtensa.md | ||
+++ b/gcc/config/xtensa/xtensa.md | ||
@@ -782,7 +782,7 @@ | ||
"register_operand (operands[0], DImode) | ||
|| register_operand (operands[1], DImode)" | ||
"#" | ||
- "reload_completed" | ||
+ "&& reload_completed" | ||
[(set (match_dup 0) (match_dup 2)) | ||
(set (match_dup 1) (match_dup 3))] | ||
{ | ||
@@ -1058,7 +1058,7 @@ | ||
"register_operand (operands[0], DFmode) | ||
|| register_operand (operands[1], DFmode)" | ||
"#" | ||
- "reload_completed" | ||
+ "&& reload_completed" | ||
[(set (match_dup 0) (match_dup 2)) | ||
(set (match_dup 1) (match_dup 3))] | ||
{ | ||
-- | ||
2.20.1 | ||
|
29 changes: 0 additions & 29 deletions
29
patches/gcc10.1/gcc-xtensa-0006-make-trying-to-replace-l32r-with-movi-sll.patch
This file was deleted.
Oops, something went wrong.
Oops, something went wrong.