This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Inner-loop optimization regression from 3.3 to 3.4


On Sat, Nov 01, 2003 at 12:35:48PM +0100, Jan Hubicka wrote:
> Does this look OK?

I don't know.  Testing on Alpha, with the following modified patch,

void f(int a, int b, int c, int d)
{
  if (a >= 0 && b <= 0)
    f1();
  if (c >= 6 && d < 10)
    f2();
}

This test is still converted at rtl expansion time; ifcvt has nothing
to work with.  Weren't you trying to remove that code?  Trying again,

void g(int a, int b, int c, int d)
{
  if (a < 0) goto L1;
  if (b > 0) goto L1; 
    f1();
 L1:
  if (c < 6) goto L2;
  if (d >= 10) goto L2;
    f2();
 L2:;
}

Does ok with the first test but gives up with the second.
There doesn't seem to be any reason for that.

The bar is set fairly high here for your ifcvt routine, since making
the transformation during fold-const is sure to be a win most of the
time, for most targets.


r~


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]