This is the mail archive of the
mailing list for the GCC project.
Re: trouble emilinating redundant compares
- From: Hans-Peter Nilsson <hp at bitrange dot com>
- To: Paul S <pauls at dataworx dot com dot au>
- Cc: gcc at gcc dot gnu dot org
- Date: Tue, 17 Jan 2012 00:19:04 -0500 (EST)
- Subject: Re: trouble emilinating redundant compares
- References: <4F1359BE.firstname.lastname@example.org>
On Mon, 16 Jan 2012, Paul S wrote:
> In the port I'm working on I have used the newer CC tracking technique (i.e.
> not cc0). I have followed the directions at the top of compare-elim.c and have
> the following pattern for addhi3
> I'm clearly missing something... can anyone provide a hint ?
You're running into one of the grievances with cc0 conversion:
all the single_set users.
Don't expose the CC register as being set until after reload,
and in particular not from moves and adds, reload makes heavy
use of those. Make a parallel with a clobber of it instead.
Then have your pattern above with "reload_completed" instead of
"" as its condition.
(Or a shorter hint, do what other non-cc0 ports do. :)