re PR rtl-optimization/41087 (cris-elf gfortran.dg/zero_sized_3.f90 -O3 -funroll-loops execution)

PR rtl-optimization/41087
	* ifcvt.c (noce_get_condition): Don't allow conditions with
	side-effects.

From-SVN: r164240
This commit is contained in:
Hans-Peter Nilsson 2010-09-13 00:49:27 +00:00 committed by Hans-Peter Nilsson
parent a079d4d212
commit ddf68ab9b5
2 changed files with 15 additions and 2 deletions

View File

@ -1,3 +1,9 @@
2010-09-13 Hans-Peter Nilsson <hp@axis.com>
PR rtl-optimization/41087
* ifcvt.c (noce_get_condition): Don't allow conditions with
side-effects.
2010-09-12 Anatoly Sokolov <aesok@post.ru>
* config/frv/frv.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.

View File

@ -2201,8 +2201,15 @@ noce_get_condition (rtx jump, rtx *earliest, bool then_else_reversed)
/* Otherwise, fall back on canonicalize_condition to do the dirty
work of manipulating MODE_CC values and COMPARE rtx codes. */
return canonicalize_condition (jump, cond, reverse, earliest,
NULL_RTX, false, true);
tmp = canonicalize_condition (jump, cond, reverse, earliest,
NULL_RTX, false, true);
/* We don't handle side-effects in the condition, like handling
REG_INC notes and making sure no duplicate conditions are emitted. */
if (tmp != NULL_RTX && side_effects_p (tmp))
return NULL_RTX;
return tmp;
}
/* Return true if OP is ok for if-then-else processing. */