1 From e178289a12a829ec47dc5038d91401f65381e71d Mon Sep 17 00:00:00 2001
2 From: Max Filippov <jcmvbkbc@gmail.com>
3 Date: Tue, 29 Nov 2016 13:09:17 -0800
4 Subject: [PATCH 8/8] xtensa: Fix PR target/78603
6 2016-11-29 Max Filippov <jcmvbkbc@gmail.com>
8 * config/xtensa/xtensa.c (hwloop_optimize): Don't emit zero
9 overhead loop start between a call and its CALL_ARG_LOCATION
12 Signed-off-by: Max Filippov <jcmvbkbc@gmail.com>
14 Backported from: r242979
16 gcc/config/xtensa/xtensa.c | 5 ++++-
17 1 file changed, 4 insertions(+), 1 deletion(-)
19 diff --git a/gcc/config/xtensa/xtensa.c b/gcc/config/xtensa/xtensa.c
20 index 206ff80..36ab1e3 100644
21 --- a/gcc/config/xtensa/xtensa.c
22 +++ b/gcc/config/xtensa/xtensa.c
23 @@ -4182,7 +4182,10 @@ hwloop_optimize (hwloop_info loop)
24 entry_after = BB_END (entry_bb);
25 while (DEBUG_INSN_P (entry_after)
26 || (NOTE_P (entry_after)
27 - && NOTE_KIND (entry_after) != NOTE_INSN_BASIC_BLOCK))
28 + && NOTE_KIND (entry_after) != NOTE_INSN_BASIC_BLOCK
29 + /* Make sure we don't split a call and its corresponding
30 + CALL_ARG_LOCATION note. */
31 + && NOTE_KIND (entry_after) != NOTE_INSN_CALL_ARG_LOCATION))
32 entry_after = PREV_INSN (entry_after);
34 emit_insn_after (seq, entry_after);