From a11fe69921144efb1f1cbe5268ec3232b85ea869 Mon Sep 17 00:00:00 2001 From: Uros Bizjak Date: Wed, 31 Dec 2008 16:36:44 +0100 Subject: [PATCH] sched-deps.c (sched_analyze_2): Flush pending memory loads and stores. * sched-deps.c (sched_analyze_2) [UNSPEC_VOLATILE]: Flush pending memory loads and stores. From-SVN: r142983 --- gcc/ChangeLog | 7 ++++++- 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 + + * 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