From fae5e6a4dfcf9270cd09c2240480860b09c2c627 Mon Sep 17 00:00:00 2001 From: Andrew MacLeod Date: Tue, 21 May 2024 14:20:52 -0400 Subject: Make gori_map a shared component. Move gori_map dependency and import/export object into a range query and construct it simultaneously with a gori object. * gimple-range-cache.cc (ranger_cache::ranger_cache): Use gori_ssa. (ranger_cache::dump): Likewise. (ranger_cache::get_global_range): Likewise. (ranger_cache::set_global_range): Likewise. (ranger_cache::register_inferred_value): Likewise. * gimple-range-edge.h (gimple_outgoing_range::map): Remove. * gimple-range-fold.cc (fold_using_range::range_of_range_op): Use gori_ssa. (fold_using_range::range_of_address): Likewise. (fold_using_range::range_of_phi): Likewise. (fur_source::register_outgoing_edges): Likewise. * gimple-range-fold.h (fur_source::query): Make const. (gori_ssa): New. * gimple-range-gori.cc (gori_map::dump): Use 'this' pointer. (gori_compute::gori_compute): Construct with a gori_map. * gimple-range-gori.h (gori_compute:gori_compute): Change prototype. (gori_compute::map): Delete. (gori_compute::m_map): Change to a reference. (FOR_EACH_GORI_IMPORT_NAME): Change parameter gori to gorimap. (FOR_EACH_GORI_EXPORT_NAME): Likewise. * gimple-range-path.cc (path_range_query::compute_ranges_in_block): Use gori_ssa method. (path_range_query::compute_exit_dependencies): Likewise. * gimple-range.cc (gimple_ranger::range_of_stmt): Likewise. (gimple_ranger::register_transitive_inferred_ranges): Likewise. * tree-ssa-dom.cc (set_global_ranges_from_unreachable_edges): Likewise. * tree-ssa-threadedge.cc (compute_exit_dependencies): Likewise. * tree-vrp.cc (remove_unreachable::handle_early): Likewise. (remove_unreachable::remove_and_update_globals): Likewise. * value-query.cc (range_query::create_gori): Create gori map. (range_query::share_query): Copy gori map member. (range_query::range_query): Initiialize gori_map member. * value-query.h (range_query::gori_ssa): New. (range_query::m_map): New. --- gcc/value-query.cc | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'gcc/value-query.cc') diff --git a/gcc/value-query.cc b/gcc/value-query.cc index db813ad..0d0c0e8 100644 --- a/gcc/value-query.cc +++ b/gcc/value-query.cc @@ -188,7 +188,9 @@ void range_query::create_gori (int not_executable_flag, int sw_max_edges) { gcc_checking_assert (m_gori == &default_gori); - m_gori = new gori_compute (not_executable_flag, sw_max_edges); + m_map = new gori_map (); + gcc_checking_assert (m_map); + m_gori = new gori_compute (*m_map, not_executable_flag, sw_max_edges); gcc_checking_assert (m_gori); } @@ -251,6 +253,7 @@ range_query::share_query (range_query &q) m_relation = q.m_relation; m_infer = q.m_infer; m_gori = q.m_gori; + m_map = q.m_map; m_shared_copy_p = true; } @@ -259,6 +262,7 @@ range_query::range_query () m_relation = &default_relation_oracle; m_infer = &default_infer_oracle; m_gori = &default_gori; + m_map = NULL; m_shared_copy_p = false; } -- cgit v1.1