On Tue, 2005-09-20 at 15:44 +0200, Giovanni Bajo wrote:
> Daniel Berlin <[EMAIL PROTECTED]> wrote:
> 
> > For example, Kenny and I discovered during his prespilling work that the
> > liveness is actually calculated wrong.
> >
> > It's half-forwards (local), half-backwards (globally), instead of all
> > backwards, which is how liveness is normally calculated, so we
> > discovered that spilling registers wasn't actually changing the liveness
> > calculation due to the forwardness.
> 
> I believe another short term project that could be done is to prepare a good
> test infrastructure for RTL passes.
> 
> Currently, tree passes get away with checking their own dumps, and or
> scanning the resulting code after the pass. This is not "perfect" but it is
> surely good "enough". Instead, in RTL world, there are absolutely *no* unit
> tests, if we exclude some backend-specific pass (e.g. check "cmov" is
> generated in final assembly listing).
> 
> Making an example out of Daniel's and Kenny's work, there is no way to test
> that liveness is calculated correctly. Or that it is correctly updated after
> prespilling. 

Actually, we have such a test.
:)
It will gcc_assert if this happens now.  This could easily be made to
print out to a dump file, etc.



Reply via email to