aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorAndrew MacLeod <amacleod@redhat.com>2021-05-25 13:53:25 -0400
committerAndrew MacLeod <amacleod@redhat.com>2021-05-25 19:26:47 -0400
commitcb33af1a62b09576b0782ac36e5f5cff049f1035 (patch)
tree09a6f1ef76a92b51c748a0b019199e604d05f771 /gcc
parent28ceee1b91f48b5ab09cbd20ea6a9de6ea137af8 (diff)
downloadgcc-cb33af1a62b09576b0782ac36e5f5cff049f1035.zip
gcc-cb33af1a62b09576b0782ac36e5f5cff049f1035.tar.gz
gcc-cb33af1a62b09576b0782ac36e5f5cff049f1035.tar.bz2
fully populate the export list from range_cache, not gori_compute.
Ranger wants to prepopulate all the export blocks so that it has an initial invariant set of names. GORI consumers shouldn't be penalized for ranger requirements. This way any gori client remains lightweight. * gimple-range-cache.cc (ranger_cache::ranger_cache): Move initial export cache filling to here. * gimple-range-gori.cc (gori_compute::gori_compute) : From Here.
Diffstat (limited to 'gcc')
-rw-r--r--gcc/gimple-range-cache.cc10
-rw-r--r--gcc/gimple-range-gori.cc10
2 files changed, 10 insertions, 10 deletions
diff --git a/gcc/gimple-range-cache.cc b/gcc/gimple-range-cache.cc
index 2c922e3..8ad7604 100644
--- a/gcc/gimple-range-cache.cc
+++ b/gcc/gimple-range-cache.cc
@@ -618,6 +618,16 @@ ranger_cache::ranger_cache (gimple_ranger &q) : query (q)
m_poor_value_list.safe_grow_cleared (20);
m_poor_value_list.truncate (0);
m_temporal = new temporal_cache;
+ unsigned x, lim = last_basic_block_for_fn (cfun);
+ // Calculate outgoing range info upfront. This will fully populate the
+ // m_maybe_variant bitmap which will help eliminate processing of names
+ // which never have their ranges adjusted.
+ for (x = 0; x < lim ; x++)
+ {
+ basic_block bb = BASIC_BLOCK_FOR_FN (cfun, x);
+ if (bb)
+ exports (bb);
+ }
}
ranger_cache::~ranger_cache ()
diff --git a/gcc/gimple-range-gori.cc b/gcc/gimple-range-gori.cc
index 074c025..e30049e 100644
--- a/gcc/gimple-range-gori.cc
+++ b/gcc/gimple-range-gori.cc
@@ -458,16 +458,6 @@ gori_compute::gori_compute ()
// Create a boolean_type true and false range.
m_bool_zero = int_range<2> (boolean_false_node, boolean_false_node);
m_bool_one = int_range<2> (boolean_true_node, boolean_true_node);
- unsigned x, lim = last_basic_block_for_fn (cfun);
- // Calculate outgoing range info upfront. This will fully populate the
- // m_maybe_variant bitmap which will help eliminate processing of names
- // which never have their ranges adjusted.
- for (x = 0; x < lim ; x++)
- {
- basic_block bb = BASIC_BLOCK_FOR_FN (cfun, x);
- if (bb)
- exports (bb);
- }
}
// Provide a default of VARYING for all incoming SSA names.