]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
Convert evrp pass to get_range_query.
authorAldy Hernandez <aldyh@redhat.com>
Tue, 25 May 2021 15:44:51 +0000 (17:44 +0200)
committerAldy Hernandez <aldyh@redhat.com>
Wed, 26 May 2021 19:26:54 +0000 (21:26 +0200)
gcc/ChangeLog:

* gimple-ssa-evrp.c (rvrp_folder::rvrp_folder): Call
enable_ranger.
(rvrp_folder::~rvrp_folder): Call disable_ranger.
(hybrid_folder::hybrid_folder): Call enable_ranger.
(hybrid_folder::~hybrid_folder): Call disable_ranger.

gcc/gimple-ssa-evrp.c

index 829fdcdaef2a927e5c2e683610329787f2942ae0..118d10365a006fd22530655305541eda89e62a1e 100644 (file)
@@ -117,11 +117,8 @@ class rvrp_folder : public substitute_and_fold_engine
 public:
 
   rvrp_folder () : substitute_and_fold_engine (), m_simplifier ()
-  { 
-    if (param_evrp_mode & EVRP_MODE_TRACE)
-      m_ranger = new trace_ranger ();
-    else
-      m_ranger = new gimple_ranger ();
+  {
+    m_ranger = enable_ranger (cfun);
     m_simplifier.set_range_query (m_ranger);
   }
       
@@ -129,7 +126,9 @@ public:
   {
     if (dump_file && (dump_flags & TDF_DETAILS))
       m_ranger->dump (dump_file);
-    delete m_ranger;
+
+    m_ranger->export_global_ranges ();
+    disable_ranger (cfun);
   }
 
   tree value_of_expr (tree name, gimple *s = NULL) OVERRIDE
@@ -175,10 +174,7 @@ class hybrid_folder : public evrp_folder
 public:
   hybrid_folder (bool evrp_first)
   {
-    if (param_evrp_mode & EVRP_MODE_TRACE)
-      m_ranger = new trace_ranger ();
-    else
-      m_ranger = new gimple_ranger ();
+    m_ranger = enable_ranger (cfun);
 
     if (evrp_first)
       {
@@ -196,7 +192,9 @@ public:
   {
     if (dump_file && (dump_flags & TDF_DETAILS))
       m_ranger->dump (dump_file);
-    delete m_ranger;
+
+    m_ranger->export_global_ranges ();
+    disable_ranger (cfun);
   }
 
   bool fold_stmt (gimple_stmt_iterator *gsi) OVERRIDE