diff options
Diffstat (limited to 'gcc/tree-ssa.c')
-rw-r--r-- | gcc/tree-ssa.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/gcc/tree-ssa.c b/gcc/tree-ssa.c index 24dd8b3..8cabbf5 100644 --- a/gcc/tree-ssa.c +++ b/gcc/tree-ssa.c @@ -1899,6 +1899,11 @@ execute_update_addresses_taken (void) && bitmap_bit_p (suitable_for_renaming, DECL_UID (sym)) && VECTOR_TYPE_P (TREE_TYPE (sym)) && TYPE_MODE (TREE_TYPE (sym)) != BLKmode + /* If it is a full replacement we can do better below. */ + && maybe_ne (wi::to_poly_offset + (TYPE_SIZE_UNIT (TREE_TYPE (lhs))), + wi::to_poly_offset + (TYPE_SIZE_UNIT (TREE_TYPE (sym)))) && known_ge (mem_ref_offset (lhs), 0) && known_gt (wi::to_poly_offset (TYPE_SIZE_UNIT (TREE_TYPE (sym))), |