diff options
author | Roger Sayle <roger@eyesopen.com> | 2004-12-08 02:15:36 +0000 |
---|---|---|
committer | Roger Sayle <sayle@gcc.gnu.org> | 2004-12-08 02:15:36 +0000 |
commit | 58b42e19f7b39f55069798d8b4b834ba680fc22d (patch) | |
tree | 7d6bf1e1b40a2f41f7cb8871232be4ed7ebe2012 /gcc/loop.c | |
parent | b16bcb178a4671d33cc6a8f82e93b93518230cf3 (diff) | |
download | gcc-58b42e19f7b39f55069798d8b4b834ba680fc22d.zip gcc-58b42e19f7b39f55069798d8b4b834ba680fc22d.tar.gz gcc-58b42e19f7b39f55069798d8b4b834ba680fc22d.tar.bz2 |
re PR middle-end/18293 (Redundant copy operation introduced by expand)
PR middle-end/18293
* expmed.c (EXACT_POWER_OF_2_OR_ZERO_P): Move definition earlier.
(expand_mult): Special case powers of two to avoid synth_mult.
* loop.c (product_cheap_p): Handle case where expand_mult does
require/generate any instructions (i.e. multiplication by zero).
From-SVN: r91851
Diffstat (limited to 'gcc/loop.c')
-rw-r--r-- | gcc/loop.c | 4 |
1 files changed, 3 insertions, 1 deletions
@@ -9202,7 +9202,9 @@ product_cheap_p (rtx a, rtx b) end_sequence (); win = 1; - if (INSN_P (tmp)) + if (tmp == NULL_RTX) + ; + else if (INSN_P (tmp)) { n_insns = 0; while (tmp != NULL_RTX) |