aboutsummaryrefslogtreecommitdiff
path: root/gcc/tree-ssa-loop-ch.c
diff options
context:
space:
mode:
authorAldy Hernandez <aldyh@redhat.com>2021-11-11 18:06:50 +0100
committerAldy Hernandez <aldyh@redhat.com>2021-11-11 22:13:17 +0100
commit53b3edceab96de49034fa8cea79f3b365c63f3e5 (patch)
tree009961b5e6e7c9c455d4e7d5024809d28c17cfd6 /gcc/tree-ssa-loop-ch.c
parenta7753db4a7c071fef7a4e7fe2650d6c59cc34066 (diff)
downloadgcc-53b3edceab96de49034fa8cea79f3b365c63f3e5.zip
gcc-53b3edceab96de49034fa8cea79f3b365c63f3e5.tar.gz
gcc-53b3edceab96de49034fa8cea79f3b365c63f3e5.tar.bz2
Make ranger optional in path_range_query.
All users of path_range_query are currently allocating a gimple_ranger only to pass it to the query object. It's tidier to just do it from path_range_query if no ranger was passed. Tested on x86-64 Linux. gcc/ChangeLog: * gimple-range-path.cc (path_range_query::path_range_query): New ctor without a ranger. (path_range_query::~path_range_query): Free ranger if necessary. (path_range_query::range_on_path_entry): Adjust m_ranger for pointer. (path_range_query::ssa_range_in_phi): Same. (path_range_query::compute_ranges_in_block): Same. (path_range_query::compute_imports): Same. (path_range_query::compute_ranges): Same. (path_range_query::range_of_stmt): Same. (path_range_query::compute_outgoing_relations): Same. * gimple-range-path.h (class path_range_query): New ctor. * tree-ssa-loop-ch.c (ch_base::copy_headers): Remove gimple_ranger as path_range_query allocates one. * tree-ssa-threadbackward.c (class back_threader): Remove m_ranger. (back_threader::~back_threader): Same.
Diffstat (limited to 'gcc/tree-ssa-loop-ch.c')
-rw-r--r--gcc/tree-ssa-loop-ch.c4
1 files changed, 1 insertions, 3 deletions
diff --git a/gcc/tree-ssa-loop-ch.c b/gcc/tree-ssa-loop-ch.c
index b87361c..566cc27 100644
--- a/gcc/tree-ssa-loop-ch.c
+++ b/gcc/tree-ssa-loop-ch.c
@@ -384,8 +384,7 @@ ch_base::copy_headers (function *fun)
auto_vec<loop_p> candidates;
auto_vec<std::pair<edge, loop_p> > copied;
- gimple_ranger *ranger = new gimple_ranger;
- path_range_query *query = new path_range_query (*ranger, /*resolve=*/true);
+ path_range_query *query = new path_range_query;
for (auto loop : loops_list (cfun, 0))
{
int initial_limit = param_max_loop_header_insns;
@@ -423,7 +422,6 @@ ch_base::copy_headers (function *fun)
}
/* Do not use ranger after we change the IL and not have updated SSA. */
delete query;
- delete ranger;
for (auto loop : candidates)
{