aboutsummaryrefslogtreecommitdiff
path: root/gcc/loop.c
diff options
context:
space:
mode:
authorRoger Sayle <roger@eyesopen.com>2004-12-08 02:15:36 +0000
committerRoger Sayle <sayle@gcc.gnu.org>2004-12-08 02:15:36 +0000
commit58b42e19f7b39f55069798d8b4b834ba680fc22d (patch)
tree7d6bf1e1b40a2f41f7cb8871232be4ed7ebe2012 /gcc/loop.c
parentb16bcb178a4671d33cc6a8f82e93b93518230cf3 (diff)
downloadgcc-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.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/gcc/loop.c b/gcc/loop.c
index 995df48..15039e8 100644
--- a/gcc/loop.c
+++ b/gcc/loop.c
@@ -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)