This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: scheduling cc0
- From: Ian Lance Taylor <ian at airs dot com>
- To: Paul Schlie <schlie at comcast dot net>
- Cc: Miles Bader <miles at lsi dot nec dot co dot jp>, Steven Bosscher <stevenb at suse dot de>, <gcc at gcc dot gnu dot org>
- Date: 02 Feb 2005 12:09:30 -0500
- Subject: Re: scheduling cc0
- References: <BE266EE0.8E0B%schlie@comcast.net>
Paul Schlie <schlie@comcast.net> writes:
> > Miles Bader writes
> >> Steven Bosscher writes:
> >> ...
> >> The "recommended practice" of today is to use a fake hard register
> >> for the CC reg, always, instead of cc0.
> >> See e.g. "http://gcc.gnu.org/wiki/general backend cleanup", under
> >> "Convert md files that use CC0 so they don't anymore." ...
> >
> > Hmmm, so that's basically the same method, but defined by the backend.
> > Does this mean that any instruction that affects the cpu-flags (e.g.,
> > addition) on such a processor has a (clobber (reg:SI CPU_FLAGS)) added
> > to it? ...
>
> It given Mile's observations, it seems that it may be quite reasonable
> to enable GCC to more optimally interpret CC0 based machine descriptions,
> rather than require natural CC0 based machines be described otherwise?
The problem is that there aren't very many CC0 based machines, so the
code is not well tested, and nobody works on it. Changing machine
descriptions to stop using CC0 and to start using the mechanisms which
all the popular systems use should enable better optimization over
all, as well as simplifying the compiler.
Ian