diff options
Diffstat (limited to 'gcc/sched-deps.c')
-rw-r--r-- | gcc/sched-deps.c | 15 |
1 files changed, 6 insertions, 9 deletions
diff --git a/gcc/sched-deps.c b/gcc/sched-deps.c index 9b566a0ec26..904b37e1d4c 100644 --- a/gcc/sched-deps.c +++ b/gcc/sched-deps.c @@ -551,19 +551,16 @@ sched_analyze_1 (deps, x, insn) if (dest == 0) return; - if (GET_CODE (dest) == PARALLEL && GET_MODE (dest) == BLKmode) + if (GET_CODE (dest) == PARALLEL) { register int i; for (i = XVECLEN (dest, 0) - 1; i >= 0; i--) - { - rtx reg = XVECEXP (dest, 0, i); - - if (GET_CODE (reg) == EXPR_LIST) - reg = XEXP (reg, 0); - - sched_analyze_1 (deps, reg, insn); - } + if (XEXP (XVECEXP (dest, 0, i), 0) != 0) + sched_analyze_1 (deps, + gen_rtx_CLOBBER (VOIDmode, + XEXP (XVECEXP (dest, 0, i), 0)), + insn); if (GET_CODE (x) == SET) sched_analyze_2 (deps, SET_SRC (x), insn); |