linux uses rsync nowadays to copy headers
[openadk.git] / toolchain / gcc / patches / 8.3.0 / 0002-xtensa-fix-PR-target-91880.patch
blobe6535250117105daeae10f57e044afc1eca84664
1 From 7c11710230921246156aecc20eb4b6ccaeaaa473 Mon Sep 17 00:00:00 2001
2 From: Max Filippov <jcmvbkbc@gmail.com>
3 Date: Tue, 24 Sep 2019 04:15:17 -0700
4 Subject: [PATCH] xtensa: fix PR target/91880
6 Xtensa hwloop_optimize segfaults when zero overhead loop is about to be
7 inserted as the first instruction of the function.
8 Insert zero overhead loop instruction into new basic block before the
9 loop when basic block that precedes the loop is empty.
11 2019-09-26 Max Filippov <jcmvbkbc@gmail.com>
12 gcc/
13 * config/xtensa/xtensa.c (hwloop_optimize): Insert zero overhead
14 loop instruction into new basic block before the loop when basic
15 block that precedes the loop is empty.
17 Signed-off-by: Max Filippov <jcmvbkbc@gmail.com>
18 ---
19 Backported from: r276166
21 gcc/config/xtensa/xtensa.c | 5 ++--
22 1 file changed, 3 insertions(+), 2 deletions(-)
24 diff --git a/gcc/config/xtensa/xtensa.c b/gcc/config/xtensa/xtensa.c
25 index ee5612441e25..2527468d57db 100644
26 --- a/gcc/config/xtensa/xtensa.c
27 +++ b/gcc/config/xtensa/xtensa.c
28 @@ -4232,7 +4232,9 @@ hwloop_optimize (hwloop_info loop)
30 seq = get_insns ();
32 - if (!single_succ_p (entry_bb) || vec_safe_length (loop->incoming) > 1)
33 + entry_after = BB_END (entry_bb);
34 + if (!single_succ_p (entry_bb) || vec_safe_length (loop->incoming) > 1
35 + || !entry_after)
37 basic_block new_bb;
38 edge e;
39 @@ -4253,7 +4255,6 @@ hwloop_optimize (hwloop_info loop)
41 else
43 - entry_after = BB_END (entry_bb);
44 while (DEBUG_INSN_P (entry_after)
45 || (NOTE_P (entry_after)
46 && NOTE_KIND (entry_after) != NOTE_INSN_BASIC_BLOCK))
47 --
48 2.11.0