From 55b3299dcd1e863843079223967f20da5ff0af78 Mon Sep 17 00:00:00 2001 From: Aldy Hernandez Date: Fri, 24 Sep 2021 12:42:05 +0200 Subject: [PATCH] path solver: Avoid further lookups when range is defined in block. If an SSA is defined in the current block, there is no need to query range_on_path_entry for additional information. gcc/ChangeLog: * gimple-range-path.cc (path_range_query::path_range_query): Move debugging header... (path_range_query::precompute_ranges): ...here. (path_range_query::internal_range_of_expr): Do not call range_on_path_entry if NAME is defined in the current block. --- gcc/gimple-range-path.cc | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/gcc/gimple-range-path.cc b/gcc/gimple-range-path.cc index d9704c8..0738a5c 100644 --- a/gcc/gimple-range-path.cc +++ b/gcc/gimple-range-path.cc @@ -39,9 +39,6 @@ along with GCC; see the file COPYING3. If not see path_range_query::path_range_query (gimple_ranger &ranger, bool resolve) : m_ranger (ranger) { - if (DEBUG_SOLVER) - fprintf (dump_file, "\n*********** path_range_query ******************\n"); - m_cache = new ssa_global_cache; m_has_cache_entry = BITMAP_ALLOC (NULL); m_path = NULL; @@ -173,9 +170,6 @@ path_range_query::internal_range_of_expr (irange &r, tree name, gimple *stmt) if (TREE_CODE (name) == SSA_NAME) r.intersect (gimple_range_global (name)); - if (m_resolve && r.varying_p ()) - range_on_path_entry (r, name); - set_cache (r, name); return true; } @@ -467,6 +461,9 @@ void path_range_query::precompute_ranges (const vec &path, const bitmap_head *imports) { + if (DEBUG_SOLVER) + fprintf (dump_file, "\n*********** path_range_query ******************\n"); + set_path (path); bitmap_copy (m_imports, imports); m_undefined_path = false; -- 2.7.4