]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
xtensa: Fix PR target/78603
authorMax Filippov <jcmvbkbc@gmail.com>
Wed, 31 May 2017 00:05:38 +0000 (00:05 +0000)
committerMax Filippov <jcmvbkbc@gcc.gnu.org>
Wed, 31 May 2017 00:05:38 +0000 (00:05 +0000)
2017-05-30  Max Filippov  <jcmvbkbc@gmail.com>
gcc/
Backport from mainline
2016-11-29  Max Filippov  <jcmvbkbc@gmail.com>

* config/xtensa/xtensa.c (hwloop_optimize): Don't emit zero
overhead loop start between a call and its CALL_ARG_LOCATION
note.

From-SVN: r248714

gcc/ChangeLog
gcc/config/xtensa/xtensa.c

index cbf1cfeb3ca3cfe5c4a3096ba373782f5290559f..24d38651fea2aeb05e5345e95d8a4bfac996161a 100644 (file)
@@ -1,3 +1,12 @@
+2017-05-30  Max Filippov  <jcmvbkbc@gmail.com>
+
+       Backport from mainline
+       2016-11-29  Max Filippov  <jcmvbkbc@gmail.com>
+
+       * config/xtensa/xtensa.c (hwloop_optimize): Don't emit zero
+       overhead loop start between a call and its CALL_ARG_LOCATION
+       note.
+
 2017-05-30  Max Filippov  <jcmvbkbc@gmail.com>
 
        Backport from mainline
index e49f7844a5474149ce9a0445f470a52ad1716d02..70f698aba0ae2635377e8dc2e62b1285d3370efc 100644 (file)
@@ -4158,7 +4158,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);