diff mbox series

tree-optimization/93891 - improve same-store disambiguation

Message ID nycvar.YFH.7.76.2005041412130.4397@zhemvz.fhfr.qr
State New
Headers show
Series tree-optimization/93891 - improve same-store disambiguation | expand

Commit Message

Richard Biener May 4, 2020, 12:12 p.m. UTC
This doesn't fix the testcase at hand but is a first step.

Bootstrap / regtest ongoing on x86_64-unknown-linux-gnu.

We need a reference to assess alignment, fall back to the original
reference tree if available.

2020-02-16  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/93891
	* tree-ssa-sccvn.c (vn_reference_lookup_3): Fall back to
	the original reference tree for assessing access alignment.
---
 gcc/tree-ssa-sccvn.c | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)
diff mbox series

Patch

diff --git a/gcc/tree-ssa-sccvn.c b/gcc/tree-ssa-sccvn.c
index 238931d3f3e..8a4af91c54e 100644
--- a/gcc/tree-ssa-sccvn.c
+++ b/gcc/tree-ssa-sccvn.c
@@ -2527,7 +2527,7 @@  vn_reference_lookup_3 (ao_ref *ref, tree vuse, void *data_,
 	 and return the found value.  */
       if (is_gimple_reg_type (TREE_TYPE (lhs))
 	  && types_compatible_p (TREE_TYPE (lhs), vr->type)
-	  && ref->ref)
+	  && (ref->ref || data->orig_ref.ref))
 	{
 	  tree *saved_last_vuse_ptr = data->last_vuse_ptr;
 	  /* Do not update last_vuse_ptr in vn_reference_lookup_2.  */
@@ -2552,7 +2552,9 @@  vn_reference_lookup_3 (ao_ref *ref, tree vuse, void *data_,
 		     -fno-strict-aliasing.  So simply resort to alignment to
 		     rule out overlaps.  Do this check last because it is
 		     quite expensive compared to the hash-lookup above.  */
-		  && multiple_p (get_object_alignment (ref->ref), ref->size)
+		  && multiple_p (get_object_alignment
+				   (ref->ref ? ref->ref : data->orig_ref.ref),
+				 ref->size)
 		  && multiple_p (get_object_alignment (lhs), ref->size))
 		return res;
 	    }