diff options
author | Jan Hubicka <jh@suse.cz> | 2001-07-15 14:00:34 +0200 |
---|---|---|
committer | Jan Hubicka <hubicka@gcc.gnu.org> | 2001-07-15 12:00:34 +0000 |
commit | 03598deac80a78f0d3d63680597af47e1330e289 (patch) | |
tree | e55abbf2e8b497f46eb899b1f0badf21e318f2ac /gcc/loop.c | |
parent | b8313db6c07dc5aaa023792a47dad7e990f07aa5 (diff) | |
download | gcc-03598deac80a78f0d3d63680597af47e1330e289.zip gcc-03598deac80a78f0d3d63680597af47e1330e289.tar.gz gcc-03598deac80a78f0d3d63680597af47e1330e289.tar.bz2 |
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
Diffstat (limited to 'gcc/loop.c')
-rw-r--r-- | gcc/loop.c | 12 |
1 files changed, 12 insertions, 0 deletions
@@ -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. */ |