diff options
Diffstat (limited to 'gcc/tree-ssa-dce.c')
-rw-r--r-- | gcc/tree-ssa-dce.c | 10 |
1 files changed, 3 insertions, 7 deletions
diff --git a/gcc/tree-ssa-dce.c b/gcc/tree-ssa-dce.c index 3b9e107..280356c 100644 --- a/gcc/tree-ssa-dce.c +++ b/gcc/tree-ssa-dce.c @@ -488,13 +488,9 @@ mark_aliased_reaching_defs_necessary_1 (ao_ref *ref, tree vdef, void *data) { /* For a must-alias check we need to be able to constrain the accesses properly. */ - if (size != -1 && size == max_size - && ref->max_size != -1) - { - if (offset <= ref->offset - && offset + size >= ref->offset + ref->max_size) - return true; - } + if (size == max_size + && known_subrange_p (ref->offset, ref->max_size, offset, size)) + return true; /* Or they need to be exactly the same. */ else if (ref->ref /* Make sure there is no induction variable involved |