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
This commit is contained in:
parent
642fce57a7
commit
598f8eca02
|
@ -1,3 +1,9 @@
|
|||
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
|
||||
|
|
14
gcc/alias.c
14
gcc/alias.c
|
@ -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. */
|
||||
|
|
Loading…
Reference in New Issue