Fix PR rtl-optimization/51924
Eric Botcazou
ebotcazou@adacore.com
Sun Jan 22 14:36:00 GMT 2012
This is another problem uncovered by the generalization of the ZEE pass: when
the definition insn of an extension is itself an extension, modifying the insn
for the first extension breaks the handling of the second extension. This was
silent in ZEE because you never have 2 identical successive extensions, but is
now exposed in REE.
The attached patch implements a minimal fix with the associated FIXME. Tested
on x86_64-suse-linux, applied on the mainline.
2012-01-22 Eric Botcazou <ebotcazou@adacore.com>
PR rtl-optimization/51924
* ree.c (combine_set_extension): Improve debugging message.
(combine_reaching_defs): Likewise.
(get_defs): Rename confusingly named variable.
(find_and_remove_re): Skip a candidate if the extension expression has
been modified.
2012-01-22 Eric Botcazou <ebotcazou@adacore.com>
* gcc.dg/ext-elim-1.c: New test.
--
Eric Botcazou
-------------- next part --------------
A non-text attachment was scrubbed...
Name: pr51924.diff
Type: text/x-diff
Size: 2308 bytes
Desc: not available
URL: <http://gcc.gnu.org/pipermail/gcc-patches/attachments/20120122/3114373d/attachment.bin>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: ext-elim-1.c
Type: text/x-csrc
Size: 737 bytes
Desc: not available
URL: <http://gcc.gnu.org/pipermail/gcc-patches/attachments/20120122/3114373d/attachment-0001.bin>
More information about the Gcc-patches
mailing list