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: RFA: pervasive SSE codegen inefficiency


On Tue, 2005-09-20 at 15:44 +0200, Giovanni Bajo wrote:
> Daniel Berlin <dberlin@dberlin.org> 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.




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