This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: i386.md fix
> > This is patch to remove addqi_low_1 pattern from i386.md. I am not quite
> > sure, why it has been added (no splitters seems to result to it), but it
> > causes problems with reload, since in/out operand is matched with input
> > one making them impossible to reload properly. In case we want gcc to be able
> > to generate such an "partial" arithmetic, this would require more work in
> > combine, different representation and to add rest of arithmetic patterns of
> > that form.
>
> Have you tried to change the '+' into an '=' ?
I don't think this is correct. Imagine an example:
(set (strict_low_part (reg A))
(add (reg B) (reg C))
With "=", reload will replace reg A with reg B first, creating an unwanted effect.
Proper way to reload this would be to replace strict_low_part of A by B,
but I don't think we want Reload to handle this.
Honza