diff options
author | Andrew MacLeod <amacleod@redhat.com> | 2021-05-25 13:53:25 -0400 |
---|---|---|
committer | Andrew MacLeod <amacleod@redhat.com> | 2021-05-25 19:26:47 -0400 |
commit | cb33af1a62b09576b0782ac36e5f5cff049f1035 (patch) | |
tree | 09a6f1ef76a92b51c748a0b019199e604d05f771 /gcc | |
parent | 28ceee1b91f48b5ab09cbd20ea6a9de6ea137af8 (diff) | |
download | gcc-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.cc | 10 | ||||
-rw-r--r-- | gcc/gimple-range-gori.cc | 10 |
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. |