From 464636c08a188adcbea2cec142235dd69241a681 Mon Sep 17 00:00:00 2001 From: Max Filippov Date: Tue, 29 Nov 2016 22:22:13 +0000 Subject: [PATCH] xtensa: Fix PR target/78603 2016-11-29 Max Filippov gcc/ * config/xtensa/xtensa.c (hwloop_optimize): Don't emit zero overhead loop start between a call and its CALL_ARG_LOCATION note. From-SVN: r242979 --- gcc/ChangeLog | 7 +++++++ gcc/config/xtensa/xtensa.c | 5 ++++- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 7ec2c07..fb3b413 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,10 @@ +2016-11-29 Max Filippov + + PR target/78603 + * config/xtensa/xtensa.c (hwloop_optimize): Don't emit zero + overhead loop start between a call and its CALL_ARG_LOCATION + note. + 2016-11-29 Waldemar Brodkorb * config/bfin/linux.h (CPP_SPEC): Define. diff --git a/gcc/config/xtensa/xtensa.c b/gcc/config/xtensa/xtensa.c index 6e8a25d..25ed7db 100644 --- a/gcc/config/xtensa/xtensa.c +++ b/gcc/config/xtensa/xtensa.c @@ -4167,7 +4167,10 @@ hwloop_optimize (hwloop_info loop) entry_after = BB_END (entry_bb); while (DEBUG_INSN_P (entry_after) || (NOTE_P (entry_after) - && NOTE_KIND (entry_after) != NOTE_INSN_BASIC_BLOCK)) + && NOTE_KIND (entry_after) != NOTE_INSN_BASIC_BLOCK + /* Make sure we don't split a call and its corresponding + CALL_ARG_LOCATION note. */ + && NOTE_KIND (entry_after) != NOTE_INSN_CALL_ARG_LOCATION)) entry_after = PREV_INSN (entry_after); emit_insn_after (seq, entry_after); -- 2.7.4