This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [RFC] Fix PR c/5250
- From: Gwenole Beauchesne <gbeauchesne at mandrakesoft dot com>
- To: Mark Mitchell <mark at codesourcery dot com>
- Cc: <gcc-patches at gcc dot gnu dot org>, <rodrigc at mediaone dot net>, <jh at suse dot cz>, <rth at redhat dot com>
- Date: Thu, 14 Feb 2002 17:09:46 +0100 (CET)
- Subject: Re: [RFC] Fix PR c/5250
Hi,
[about disabling noop_moves optimization]
> This patch seems pretty dramatic, and, as Jan says, I don't see why, in
> prinicple, it should help. So, without further analysis, I don't think
> this patch is appropriate for the 3.0 branch.
I have a question: in jump.c (delete_noop_moves), near line 1045, we are
told to handle the case where we have two consecutive assignments of the
same constant to pseudos that didn't get a hard reg. However, in the
testcase posted earlier we do handle this case even if DREG is a hard
register, is that normal?
i.e. why testing for (dreg >= 0) instead of, for example,
(REGNO (SET_DEST (body)) >= FIRST_PSEUDO_REGISTER),
or (dreg >= FIRST_PSEUDO_REGISTER) ?
On the other hand, the only case in true_regnum() where we would return a
pseudo that was not assigned a hard register (for DREG) would be when
reg_renumber[regno] >= FIRST_PSEUDO_REGISTER.
Thanks,
Gwenole.