With the integration of the relational oracle, Ranger is now pretty much at parity in getting all the cases EVRP use to, and runs the testsuite cleanly.

This patch turns hybrid mode off, running EVRP in ranger-only mode.  It requires a tweak to one test case which was XFAILing before, but now passes. This will hopefully be transparent to everyone.

With legacy evrp off, we'll see if anything shows up that I have missed in my analysis. Its certainly easy enough to turn back on if need be.  I will continue to locally monitor hybrid mode to ensure we don't lose any ground.

I have bootstrapped this on 3 arch's :  x86_64,  aarch64,  and powerpc64, and all run regression free through the testsuite.

pushed.

Andrew





commit 398572c1544d8b7541862401b985ae7e855cb8fb
Author: Andrew MacLeod <amacl...@redhat.com>
Date:   Wed Jul 14 12:47:10 2021 -0400

    Turn hybrid mode off, default to ranger-only mode for EVRP.
    
    Change the default EVRP mode to ranger-only.
    
            gcc/
            * params.opt (param_evrp_mode): Change default.
    
            gcc/testsuite/
            * gcc.dg/pr80776-1.c: Remove xfail.

diff --git a/gcc/params.opt b/gcc/params.opt
index 577cd42c173..92b003e38cb 100644
--- a/gcc/params.opt
+++ b/gcc/params.opt
@@ -131,7 +131,7 @@ Common Joined UInteger Var(param_evrp_sparse_threshold) Init(800) Optimization P
 Maximum number of basic blocks before EVRP uses a sparse cache.
 
 -param=evrp-mode=
-Common Joined Var(param_evrp_mode) Enum(evrp_mode) Init(EVRP_MODE_EVRP_FIRST) Param Optimization
+Common Joined Var(param_evrp_mode) Enum(evrp_mode) Init(EVRP_MODE_RVRP_ONLY) Param Optimization
 --param=evrp-mode=[legacy|ranger|legacy-first|ranger-first|ranger-trace|ranger-debug|trace|debug] Specifies the mode Early VRP should operate in.
 
 Enum
diff --git a/gcc/testsuite/gcc.dg/pr80776-1.c b/gcc/testsuite/gcc.dg/pr80776-1.c
index eca5e805ae2..b9bce62d982 100644
--- a/gcc/testsuite/gcc.dg/pr80776-1.c
+++ b/gcc/testsuite/gcc.dg/pr80776-1.c
@@ -27,5 +27,5 @@ Foo (void)
      Setting these ranges at the definition site, causes VRP to remove the
      unreachable code altogether, leaving the following sprintf unguarded.  This
      causes the bogus warning below.  */
-  sprintf (number, "%d", i); /* { dg-bogus "writing" "" { xfail *-*-* } } */
+  sprintf (number, "%d", i); /* { dg-bogus "writing" "" } */
 }

Reply via email to