]> git.ipfire.org Git - thirdparty/gcc.git/commit
re PR target/18002 ('while' loop performace regression on avr target)
authorRoger Sayle <roger@eyesopen.com>
Tue, 14 Dec 2004 01:47:30 +0000 (01:47 +0000)
committerRoger Sayle <sayle@gcc.gnu.org>
Tue, 14 Dec 2004 01:47:30 +0000 (01:47 +0000)
commit05392fb4f9bcf85a5636ab1a321617f9ccd0407f
tree3152ba9fc82cfa0a8a85aac874df7cc44ebc99ad
parent949cbfe2daf0f7d883e1bd9e0e806a3df1950bc5
re PR target/18002 ('while' loop performace regression on avr target)

PR target/18002
PR middle-end/18424
Backport from mainline

2004-03-20  Richard Sandiford  <rsandifo@redhat.com>
* Makefile.in (dojump.o): Depend on $(GGC_H) and dojump.h.
(GTFILES): Add $(srcdir)/dojump.h.
(gt-dojump.h): New dependency.
* dojump.c (and_reg, and_test, shift_test): New static variables.
(prefer_and_bit_test): New function.
(do_jump): Use it to choose between (X & (1 << C)) and (X >> C) & 1.

2004-03-21  Andrew Pinski  <pinskia@gcc.gnu.org>
* dojump.c (prefer_and_bit_test): Fix which part of
the and_test is replaced.

2004-12-10  Roger Sayle  <roger@eyesopen.com>
* dojump.c (do_jump): When attempting to reverse the effects of
fold_single_bit_test, we need to STRIP_NOPS and narrowing type
conversions, and handle BIT_XOR_EXPR that's used to invert the
sense of the single bit test.

From-SVN: r92117
gcc/ChangeLog
gcc/Makefile.in
gcc/dojump.c