diff options
author | Richard Biener <rguenther@suse.de> | 2014-11-27 09:51:32 +0000 |
---|---|---|
committer | Richard Biener <rguenth@gcc.gnu.org> | 2014-11-27 09:51:32 +0000 |
commit | 598f8eca02c516a19abc957c3d4510e7c1c78214 (patch) | |
tree | 6d40cbe393975bacc7c92142d80a8806eb8653c9 /gcc | |
parent | 642fce57a7208339a4f55ff8c3ce377a2cfa4738 (diff) | |
download | gcc-598f8eca02c516a19abc957c3d4510e7c1c78214.zip gcc-598f8eca02c516a19abc957c3d4510e7c1c78214.tar.gz gcc-598f8eca02c516a19abc957c3d4510e7c1c78214.tar.bz2 |
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
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/alias.c | 14 |
2 files changed, 9 insertions, 11 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 26b4720..999686f6 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,5 +1,11 @@ 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 diff --git a/gcc/alias.c b/gcc/alias.c index 425eb0b..22717ad 100644 --- a/gcc/alias.c +++ b/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. */ |