This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: Deprecating cc0 (and consequently cc0 targets)
- From: Jeff Law <law at redhat dot com>
- To: Hans-Peter Nilsson <hp at axis dot com>
- Cc: gcc-patches at gcc dot gnu dot org
- Date: Mon, 27 Jan 2020 11:00:03 -0700
- Subject: Re: Deprecating cc0 (and consequently cc0 targets)
- References: <202001271401.00RE1skf031563@ignucius.se.axis.com>
- Reply-to: law at redhat dot com
On Mon, 2020-01-27 at 15:01 +0100, Hans-Peter Nilsson wrote:
> > From: Jeff Law <law@redhat.com>
> > Date: Fri, 20 Sep 2019 17:38:38 +0200
>
> Hi. I'm not going to question
>
> > The first step in that process is to drop support for cc0.
>
> but could you please elaborate on...
>
> > [cc0 support in gcc core]
> > code is broken in various ways,
> > particularly WRT exceptions.
>
> ...that last part?
See pr49847 as a good starting point.
> If you mean asynchronous exceptions then perhaps in theory,
> except there's no need to (and no state to) "unwind" to
> in-between cc0 setter and user. But I guess that goes for
> "MODE_CC" targets too; exception information isn't that precise.
It's less about the need to unwind, but the fact that the cc0-setter
and cc0-user end up in different basic blocks with non-call exceptions
and how that interacts with the assumptions the optimizers make.
Essentially you get ICEs. We've papered over this stuff when it's
popped up, but it's time to stop :-)
> > This patch deprecates the affected targets.
>
> (Not applied yet? Before the gcc-10 branch? Can you please
> consider dropping cris* from that part when rebasing it, as per
> contents on master and my pledge to merge axis/cris-decc0?)
Not applied. But should be prior to gcc-10 release (with edits now
that m68k has been converted). Given that you've got a conversion for
cris that looks ready to go for gcc-11 I'd suggest we pull it out of
the deprecated list as well.
>
Jeff