[RFC] Fix PR c/5250

Gwenole Beauchesne gbeauchesne@mandrakesoft.com
Thu Feb 14 09:40:00 GMT 2002


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.



More information about the Gcc-patches mailing list