mode-switching.c (create_pre_exit): Skip blockage insn.
authorKaz Kojima <kkojima@gcc.gnu.org>
Sat, 10 Mar 2007 05:04:10 +0000 (05:04 +0000)
committerKaz Kojima <kkojima@gcc.gnu.org>
Sat, 10 Mar 2007 05:04:10 +0000 (05:04 +0000)
* mode-switching.c (create_pre_exit): Skip blockage insn.

From-SVN: r122791

gcc/ChangeLog
gcc/mode-switching.c

index cbe3d08..ee77d38 100644 (file)
@@ -1,3 +1,7 @@
+2007-03-10  Kaz Kojima  <kkojima@gcc.gnu.org>
+
+       * mode-switching.c (create_pre_exit): Skip blockage insn.
+
 2007-03-09  Diego Novillo  <dnovillo@redhat.com>
 
        * tree-pass.h (TODO_update_smt_usage): Remove.
index 407ae76..8e9bde3 100644 (file)
@@ -259,6 +259,12 @@ create_pre_exit (int n_entities, int *entity_map, const int *num_modes)
                        last_insn = return_copy;
                        continue;
                      }
+                   if (GET_CODE (PATTERN (return_copy)) == ASM_INPUT
+                       && strcmp (XSTR (PATTERN (return_copy), 0), "") == 0)
+                     {
+                       last_insn = return_copy;
+                       continue;
+                     }
                    /* If the return register is not (in its entirety)
                       likely spilled, the return copy might be
                       partially or completely optimized away.  */