OSDN Git Service

* sched-deps.c (sched_analyze_2) [UNSPEC_VOLATILE]: Flush pending
authoruros <uros@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 31 Dec 2008 15:36:44 +0000 (15:36 +0000)
committeruros <uros@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 31 Dec 2008 15:36:44 +0000 (15:36 +0000)
memory loads and stores.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@142983 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/sched-deps.c

index ab6a187..bbf1a83 100644 (file)
@@ -1,3 +1,8 @@
+2008-12-31  Uros Bizjak  <ubizjak@gmail.com>
+
+       * sched-deps.c (sched_analyze_2) [UNSPEC_VOLATILE]: Flush pending
+       memory loads and stores.
+
 2008-12-31  Jakub Jelinek  <jakub@redhat.com>
 
        PR middle-end/38505
@@ -60,7 +65,7 @@
        * fold-const.c (fold_comparison): Use the correct result type.
 
 2008-12-30  Dorit Nuzman  <dorit@il.ibm.com>
-            Ira Rosen  <irar@il.ibm.com>
+           Ira Rosen  <irar@il.ibm.com>
 
        PR tree-optimization/38529
        * tree-vect-transform (vect_transform_stmt): Handle inner-loop stmts
index 81fcb80..bff83a2 100644 (file)
@@ -2132,9 +2132,12 @@ sched_analyze_2 (struct deps *deps, rtx x, rtx insn)
       flush_pending_lists (deps, insn, true, false);
       break;
 
+    case UNSPEC_VOLATILE:
+      flush_pending_lists (deps, insn, true, true);
+      /* FALLTHRU */
+
     case ASM_OPERANDS:
     case ASM_INPUT:
-    case UNSPEC_VOLATILE:
       {
        /* Traditional and volatile asm instructions must be considered to use
           and clobber all hard registers, all pseudo-registers and all of