aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrew MacLeod <amacleod@redhat.com>2024-11-25 09:50:33 -0500
committerAndrew MacLeod <amacleod@redhat.com>2024-12-06 16:32:16 -0500
commit48eda34624fe5de050ae5ee38a360155ab188c39 (patch)
tree287824f3ecb3fc1c1f4e1d4bc220b245073bc4d4
parent75e7d1600f47859df40b2ac0feff5a71e0dbb040 (diff)
downloadgcc-48eda34624fe5de050ae5ee38a360155ab188c39.zip
gcc-48eda34624fe5de050ae5ee38a360155ab188c39.tar.gz
gcc-48eda34624fe5de050ae5ee38a360155ab188c39.tar.bz2
Do not calculate an entry range for invariant names.
If an SSA_NAME is invariant, do not calculate an on_entry value. PR tree-optimization/117467 * gimple-range-cache.cc (ranger_cache::entry_range): Do not invoke range_from_dom for invariant ssa-names.
-rw-r--r--gcc/gimple-range-cache.cc7
1 files changed, 7 insertions, 0 deletions
diff --git a/gcc/gimple-range-cache.cc b/gcc/gimple-range-cache.cc
index 8b7189e..c9016fe 100644
--- a/gcc/gimple-range-cache.cc
+++ b/gcc/gimple-range-cache.cc
@@ -1183,6 +1183,13 @@ ranger_cache::entry_range (vrange &r, tree name, basic_block bb,
return;
}
+ // If NAME is invariant, simply return the defining range.
+ if (!gori ().has_edge_range_p (name))
+ {
+ range_of_def (r, name);
+ return;
+ }
+
// Look for the on-entry value of name in BB from the cache.
// Otherwise pick up the best available global value.
if (!m_on_entry.get_bb_range (r, name, bb))