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