aboutsummaryrefslogtreecommitdiff
path: root/gcc/config/xtensa
diff options
context:
space:
mode:
authorMax Filippov <jcmvbkbc@gmail.com>2016-11-29 22:22:13 +0000
committerMax Filippov <jcmvbkbc@gcc.gnu.org>2016-11-29 22:22:13 +0000
commit464636c08a188adcbea2cec142235dd69241a681 (patch)
tree6d167b8877654e9941f57643472ea6499d5dfd54 /gcc/config/xtensa
parent576b067cc8b761ae9e489e9f85691483ef7744e8 (diff)
downloadgcc-464636c08a188adcbea2cec142235dd69241a681.zip
gcc-464636c08a188adcbea2cec142235dd69241a681.tar.gz
gcc-464636c08a188adcbea2cec142235dd69241a681.tar.bz2
xtensa: Fix PR target/78603
2016-11-29 Max Filippov <jcmvbkbc@gmail.com> 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
Diffstat (limited to 'gcc/config/xtensa')
-rw-r--r--gcc/config/xtensa/xtensa.c5
1 files changed, 4 insertions, 1 deletions
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);