From 03598deac80a78f0d3d63680597af47e1330e289 Mon Sep 17 00:00:00 2001 From: Jan Hubicka Date: Sun, 15 Jul 2001 14:00:34 +0200 Subject: loop.c (scan_loop): Add USEs inside PARALLELs into dependencies of the movable. * loop.c (scan_loop): Add USEs inside PARALLELs into dependencies of the movable. * toplev.c (rest_of_compilation): Allow new pseudoes for mode switching. * i386-protos.h (ix86_split_fp_branch): Update prototype. (ix86_fp_jump_nontrivial_p): New. * i386.md (fp_jcc_?): Update call of split_fp_branch; use ix86_fp_jump_nontrivial_p. * i386.c (ix86_fp_jump_nontrivial_p): New. (ix86_split_fp_branch): Accept code instead of rtx. (ix86_expand_compare): Expand comparison early in case doing so is resonably cheap. From-SVN: r44019 --- gcc/loop.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) (limited to 'gcc/loop.c') diff --git a/gcc/loop.c b/gcc/loop.c index 82f09f3..db1ec9df 100644 --- a/gcc/loop.c +++ b/gcc/loop.c @@ -705,6 +705,18 @@ scan_loop (loop, flags) } } + /* For parallels, add any possible uses to the depencies, as we can't move + the insn without resolving them first. */ + if (GET_CODE (PATTERN (p)) == PARALLEL) + { + for (i = 0; i < XVECLEN (PATTERN (p), 0); i++) + { + rtx x = XVECEXP (PATTERN (p), 0, i); + if (GET_CODE (x) == USE) + dependencies = gen_rtx_EXPR_LIST (VOIDmode, XEXP (x, 0), dependencies); + } + } + /* Don't try to optimize a register that was made by loop-optimization for an inner loop. We don't know its life-span, so we can't compute the benefit. */ -- cgit v1.1