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 + + * sched-deps.c (sched_analyze_2) [UNSPEC_VOLATILE]: Flush pending + memory loads and stores. + 2008-12-31 Jakub Jelinek PR middle-end/38505 @@ -60,7 +65,7 @@ * fold-const.c (fold_comparison): Use the correct result type. 2008-12-30 Dorit Nuzman - Ira Rosen + Ira Rosen 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