From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jeffrey A Law To: Bernd Schmidt Cc: egcs@cygnus.com Subject: Re: Some Haifa scheduler bugs Date: Wed, 03 Sep 1997 09:37:00 -0000 Message-id: <15524.873304637@hurl.cygnus.com> References: X-SW-Source: 1997-09/msg00094.html In message < Pine.SOL.3.90.970903182436.5858D-100000@bond.informatik.rwth-aachen.de >you write: > Ok, I'll retry the tests without that option. But this is not the only > case that Haifa can create incorrect code; there is an additional problem > that can show up on any SMALL_REGISTER_CLASSES machine. Haifa can increase > the lifetime of pseudo registers, which can cause incorrect code to be > generated. These examples were made on an i586-linux configuration with > egcs-970828: [ ... ] In general, that's not going to work. Basically any machine that defines SMALL_REGISTER_CLASSES and passes args in registers is playing with fire -- reload can and will silently generate incorrect code for such targets. For that reason I _highly_ recommend against using registers for parameter passing on the x86 targets. Turning on the instruction scheduler in that case is just going to make a bad problem worse -- but the problem isn't the instruction scheduler itself. > It seems that at least these changes are necessary: > 1. Function arguments must be moved into pseudos immediately at the top > of a function. Nontrivial to do in haifa. jeff