diff options
-rw-r--r-- | gcc/ChangeLog | 7 | ||||
-rw-r--r-- | gcc/sched-deps.c | 5 |
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 |