Commit e304caa4 by Eric Botcazou Committed by Eric Botcazou

cse.c (exp_equiv_p): For GCSE...

	* cse.c (exp_equiv_p) <MEM>: For GCSE, return 0 for expressions with
	different trapping status if -fnon-call-exceptions is enabled.

From-SVN: r212879
parent d6cd6e22
2014-07-20 Eric Botcazou <ebotcazou@adacore.com>
* cse.c (exp_equiv_p) <MEM>: For GCSE, return 0 for expressions with
different trapping status if -fnon-call-exceptions is enabled.
2014-07-20 Eric Botcazou <ebotcazou@adacore.com>
* expr.c (store_field): Handle VOIDmode for calls that return values
in multiple locations.
......
......@@ -2687,6 +2687,13 @@ exp_equiv_p (const_rtx x, const_rtx y, int validate, bool for_gcse)
the same attributes share the same mem_attrs data structure. */
if (MEM_ATTRS (x) != MEM_ATTRS (y))
return 0;
/* If we are handling exceptions, we cannot consider two expressions
with different trapping status as equivalent, because simple_mem
might accept one and reject the other. */
if (cfun->can_throw_non_call_exceptions
&& (MEM_NOTRAP_P (x) != MEM_NOTRAP_P (y)))
return 0;
}
break;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment