diff options
author | Aldy Hernandez <aldyh@redhat.com> | 2021-11-11 18:06:50 +0100 |
---|---|---|
committer | Aldy Hernandez <aldyh@redhat.com> | 2021-11-11 22:13:17 +0100 |
commit | 53b3edceab96de49034fa8cea79f3b365c63f3e5 (patch) | |
tree | 009961b5e6e7c9c455d4e7d5024809d28c17cfd6 /gcc/tree-ssa-loop-ch.c | |
parent | a7753db4a7c071fef7a4e7fe2650d6c59cc34066 (diff) | |
download | gcc-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.c | 4 |
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) { |