From: Andrew MacLeod Date: Tue, 25 May 2021 17:53:25 +0000 (-0400) Subject: fully populate the export list from range_cache, not gori_compute. X-Git-Tag: basepoints/gcc-13~7266 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=cb33af1a62b09576b0782ac36e5f5cff049f1035;p=thirdparty%2Fgcc.git 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. --- diff --git a/gcc/gimple-range-cache.cc b/gcc/gimple-range-cache.cc index 2c922e32913b..8ad76048272f 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 074c025be370..e30049edfbd8 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.