diff mbox series

[COMMITTED] tree-optimization/102940 - Reset scev before invoking array_checker.

Message ID eeab5c1e-15a9-f4dd-1cfa-f83dca162e12@redhat.com
State New
Headers show
Series [COMMITTED] tree-optimization/102940 - Reset scev before invoking array_checker. | expand

Commit Message

Andrew MacLeod Oct. 28, 2021, 2:50 p.m. UTC
As pointed out, we need to reset scev before invoking the array-checker 
in execute_ranger_vrp.

Bootstrapped on x86_64-pc-linux-gnu with no regressions.  Pushed.

Andrew
diff mbox series

Patch

From d46aeb5906b8ed7ee255cfbacc5cf9d2f56b850c Mon Sep 17 00:00:00 2001
From: Andrew MacLeod <amacleod@redhat.com>
Date: Tue, 26 Oct 2021 14:43:33 -0400
Subject: [PATCH 1/3] Reset scev before invoking array_checker.

Before invoking the array_checker, we need to reset scev so it will not try to
access any ssa_names that the substitute and fold engine has freed.

	PR tree-optimization/102940
	* tree-vrp.c (execute_ranger_vrp): Reset scev.
---
 gcc/tree-vrp.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/gcc/tree-vrp.c b/gcc/tree-vrp.c
index 38ea50303e0..dc3e250537a 100644
--- a/gcc/tree-vrp.c
+++ b/gcc/tree-vrp.c
@@ -4351,7 +4351,6 @@  execute_ranger_vrp (struct function *fun, bool warn_array_bounds_p)
   if (dump_file && (dump_flags & TDF_DETAILS))
     ranger->dump (dump_file);
 
-
   if (warn_array_bounds && warn_array_bounds_p)
     {
       // Set all edges as executable, except those ranger says aren't.
@@ -4367,6 +4366,7 @@  execute_ranger_vrp (struct function *fun, bool warn_array_bounds_p)
 	    else
 	      e->flags |= EDGE_EXECUTABLE;
 	}
+      scev_reset ();
       array_bounds_checker array_checker (fun, ranger);
       array_checker.check ();
     }
-- 
2.17.2