Patch: Fix match_dup handling in web.c

Bernd Schmidt bernds@codesourcery.com
Wed Mar 24 22:26:00 GMT 2010


I found a number of bugs while testing an ARM patch that rewrites the
ldm/stm peepholes.

In web.c, there is code that tries to detect match_dups by comparing
operands for equality; this is neither a necessary nor a sufficient
condition.  In particular, web.c cannot detect an input operand that
match_dups an in-out output operand; this can result in web.c breaking
match_dups and replacing only the inputs of an insn.

Fixed by the patch below.  Bootstrapped and regression tested on
i686-linux, together with some other fixes.  Ok?


Bernd
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: p1-web.diff
URL: <http://gcc.gnu.org/pipermail/gcc-patches/attachments/20100324/80e68dd8/attachment.ksh>


More information about the Gcc-patches mailing list