This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug tree-optimization/19703] [4.0 Regression] Poor optimisation of loop test, DOM causing unsigned to int and missing combine compares
- From: "pinskia at gcc dot gnu dot org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 30 Jan 2005 05:25:48 -0000
- Subject: [Bug tree-optimization/19703] [4.0 Regression] Poor optimisation of loop test, DOM causing unsigned to int and missing combine compares
- References: <20050130025905.19703.andrewhutchinson@cox.net>
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
------- Additional Comments From pinskia at gcc dot gnu dot org 2005-01-30 05:25 -------
Confirmed (sorry about that I was thinking of something different at the time).
Here is a better example for normal targets (PPC and x86 too):
extern void foo6(int);
void testloop6 (void)
{
int i;
i = 100;
do {
foo6 ( i);
i-=10;
} while (i != 0);
}
The tree dump for the loop on x86:
<L0>:;
foo6 (i);
D.1592 = (unsigned int) i + 0fffffff6;
i = (int) D.1592;
if (D.1592 != 0) goto <L0>; else goto <L1>;
Note this is not IV-OPTS messing up but DOM changing the if statement.
--
What |Removed |Added
----------------------------------------------------------------------------
Status|UNCONFIRMED |NEW
Ever Confirmed| |1
GCC target triplet|avr |
Last reconfirmed|0000-00-00 00:00:00 |2005-01-30 05:25:46
date| |
Summary|Poor optimisation of loop |[4.0 Regression] Poor
|test |optimisation of loop test,
| |DOM causing unsigned to int
| |and missing combine compares
Target Milestone|--- |4.0.0
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=19703