Commit 598f8eca by Richard Biener Committed by Richard Biener

re PR lto/63704 (-flto internal compiler error: in mems_in_disjoint_alias_sets_p, at alias.c:398)

2014-11-27  Richard Biener  <rguenther@suse.de>

	PR middle-end/63704
	* alias.c (mems_in_disjoint_alias_sets_p): Remove assert
	and instead return false when !fstrict-aliasing.

From-SVN: r218114
parent 642fce57
2014-11-27 Richard Biener <rguenther@suse.de>
PR middle-end/63704
* alias.c (mems_in_disjoint_alias_sets_p): Remove assert
and instead return false when !fstrict-aliasing.
2014-11-27 Richard Biener <rguenther@suse.de>
PR tree-optimization/61634
* tree-vect-slp.c: Include gimple-walk.h.
(vect_detect_hybrid_slp_stmts): Rewrite to propagate hybrid
......@@ -417,17 +417,9 @@ get_alias_set_entry (alias_set_type alias_set)
static inline int
mems_in_disjoint_alias_sets_p (const_rtx mem1, const_rtx mem2)
{
/* Perform a basic sanity check. Namely, that there are no alias sets
if we're not using strict aliasing. This helps to catch bugs
whereby someone uses PUT_CODE, but doesn't clear MEM_ALIAS_SET, or
where a MEM is allocated in some way other than by the use of
gen_rtx_MEM, and the MEM_ALIAS_SET is not cleared. If we begin to
use alias sets to indicate that spilled registers cannot alias each
other, we might need to remove this check. */
gcc_assert (flag_strict_aliasing
|| (!MEM_ALIAS_SET (mem1) && !MEM_ALIAS_SET (mem2)));
return ! alias_sets_conflict_p (MEM_ALIAS_SET (mem1), MEM_ALIAS_SET (mem2));
return (flag_strict_aliasing
&& ! alias_sets_conflict_p (MEM_ALIAS_SET (mem1),
MEM_ALIAS_SET (mem2)));
}
/* Return true if the first alias set is a subset of the second. */
......
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