------- Additional Comments From schlie at comcast dot net 2004-11-11 03:15 ------- Subject: Re: 3.4.3 ~6x+ performance regression vs 3.3.1, constant trees not being computed.
Yes but regardless of the size of the constant 1: if (a & (1L << 24)) or (a & (1 << 24)) yields the same results, and further, if a simpler expression containing the same constant Sub-expression is used, it properly computes the constant expression: int foo (int a) { a = a + (1 << 24); // apparently simple enough to compute (1 << 24) if (a & (1 << 24)) { // then utilized here, which yields 0 return 1; else return 2; } => return 2; Which implies that it is not a back-end issue, but that (1 << 24) is not being calculated as a constant expression if nested within a more complex expression for some reason, I believe? although the PPC may have optimized it away in other ways as it has a more powerful shift instruction, but should not be a back-end thing, as the embedded constant expression was properly computed and applied in 3.3.x. > From: pinskia at gcc dot gnu dot org <[EMAIL PROTECTED]> > Reply-To: <[EMAIL PROTECTED]> > Date: 11 Nov 2004 02:49:28 -0000 > To: <[EMAIL PROTECTED]> > Subject: [Bug middle-end/18424] 3.4.3 ~6x+ performance regression vs 3.3.1, > constant trees not being computed. > > > ------- Additional Comments From pinskia at gcc dot gnu dot org 2004-11-11 > 02:49 ------- > I amost think the size of long changed for 3.4.0 for avr to 32bits. > > -- > > > http://gcc.gnu.org/bugzilla/show_bug.cgi?id=18424 > > ------- You are receiving this mail because: ------- > You reported the bug, or are watching the reporter. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=18424