From 8d5f521a5c09313c5c01005a69440f21bc80bc97 Mon Sep 17 00:00:00 2001 From: Richard Biener Date: Wed, 3 May 2017 10:59:25 +0000 Subject: [PATCH] revert: re PR tree-optimization/80492 (Wrong code when unrolling a loop with inline asm and local regs) 2017-05-03 Richard Biener Revert PR tree-optimization/80492 * tree-ssa-alias.c (decl_refs_may_alias_p): Handle compare_base_decls returning dont-know properly. From-SVN: r247543 --- gcc/ChangeLog | 7 +++++++ gcc/tree-ssa-alias.c | 7 ++----- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index c884760ad98..8dee382d10a 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,10 @@ +2017-05-03 Richard Biener + + Revert + PR tree-optimization/80492 + * tree-ssa-alias.c (decl_refs_may_alias_p): Handle + compare_base_decls returning dont-know properly. + 2017-05-03 Thomas Preud'homme * config/arm/iterators.md (CCSI): New mode iterator. diff --git a/gcc/tree-ssa-alias.c b/gcc/tree-ssa-alias.c index 8cab159916a..dc54533e48b 100644 --- a/gcc/tree-ssa-alias.c +++ b/gcc/tree-ssa-alias.c @@ -1096,16 +1096,13 @@ decl_refs_may_alias_p (tree ref1, tree base1, { gcc_checking_assert (DECL_P (base1) && DECL_P (base2)); - int cmp = compare_base_decls (base1, base2); - /* If both references are based on different variables, they cannot alias. */ - if (cmp == 0) + if (compare_base_decls (base1, base2) == 0) return false; /* If both references are based on the same variable, they cannot alias if the accesses do not overlap. */ - if (cmp == 1 - && !ranges_overlap_p (offset1, max_size1, offset2, max_size2)) + if (!ranges_overlap_p (offset1, max_size1, offset2, max_size2)) return false; /* For components with variable position, the above test isn't sufficient, -- 2.30.2