Fix PR middle-end/61734

Eric Botcazou ebotcazou@adacore.com
Mon Jul 28 08:58:00 GMT 2014


This fixes the performance regression introduced by my recent patch that added 
the X - Y CMP 0 to X CMP Y transformation to the folder for other operators 
than the equality operators.  It turns out that it badly interacts with another 
one in fold_cond_expr_with_comparison which attempts to synthetize ABS_EXPR.  
The transformation had been added as a preliminary work for a specific purpose 
but was made obsolete in the meantime, so the patch simply disables it with a 
??? comment.

Tested on x86_64-suse-linux, applied on the mainline.


2014-07-28  Eric Botcazou  <ebotcazou@adacore.com>

	PR middle-end/61734
	* fold-const.c (fold_comparison): Disable X - Y CMP 0 to X CMP Y for
	operators other than the equality operators.


2014-07-28  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc.dg/fold-abs-5.c: New test.
	* gcc.dg/Wstrict-overflow-25.c: XFAIL everywhere.
	* gcc.dg/fold-compare-8.c: Likewise.


-- 
Eric Botcazou
-------------- next part --------------
A non-text attachment was scrubbed...
Name: pr61734.diff
Type: text/x-patch
Size: 2331 bytes
Desc: not available
URL: <http://gcc.gnu.org/pipermail/gcc-patches/attachments/20140728/d31dc423/attachment.bin>


More information about the Gcc-patches mailing list