summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gcc/ChangeLog7
-rw-r--r--gcc/sched-deps.c5
2 files changed, 10 insertions, 2 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index ab6a187530c..bbf1a83cd29 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -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
diff --git a/gcc/sched-deps.c b/gcc/sched-deps.c
index 81fcb806228..bff83a2b844 100644
--- a/gcc/sched-deps.c
+++ b/gcc/sched-deps.c
@@ -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