This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [PATCH]: Handle lonely CC0 setter in sched-deps.c
- From: Paolo Bonzini <bonzini at gnu dot org>
- To: Maxim Kuvyrkov <maxim at codesourcery dot com>
- Cc: gcc-patches <gcc-patches at gcc dot gnu dot org>, Jim Wilson <wilson at tuliptree dot org>, Vladimir Makarov <vmakarov at redhat dot com>
- Date: Fri, 28 Mar 2008 14:45:24 +0100
- Subject: Re: [PATCH]: Handle lonely CC0 setter in sched-deps.c
- Newsgroups: gmane.comp.gcc.patches
- References: <47ECF2BC.1060007@codesourcery.com>
While testing scheduling for ColdFire/m68k I noted ICE in sched-deps.c.
The cause was that scheduler dependency analyzer couldn't handle
CC0-user instruction, that didn't have CC0-setter before the user.
The origin of this, somewhat strange, case is seqabstr pass, that
unified code for setting CC0 from several blocks into a pseudo-routine.
So now code in the pseudo-routine sets CC0 and then jumps back to
CC0-user.
The fix is to not break the CC0 setter and user in seqabstr (which *is*
in 4.3 too, but very broken). The fact that setters and users cannot be
separated, is one of the reasons why CC0 is deprecated.
Paolo