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.