aboutsummaryrefslogtreecommitdiff
path: root/gcc/gimple-range-cache.h
diff options
context:
space:
mode:
authorAndrew MacLeod <amacleod@redhat.com>2021-06-14 15:33:59 -0400
committerAndrew MacLeod <amacleod@redhat.com>2021-06-14 17:06:32 -0400
commitecc5644fa3bc7f37eada2a3e9c627cd1918922e0 (patch)
tree98111eb5fd9cdebca136300ce17bd8d2372efa68 /gcc/gimple-range-cache.h
parentc37b5ddcc88e0cc0f6a4ad609eda51021df0f6bb (diff)
downloadgcc-ecc5644fa3bc7f37eada2a3e9c627cd1918922e0.zip
gcc-ecc5644fa3bc7f37eada2a3e9c627cd1918922e0.tar.gz
gcc-ecc5644fa3bc7f37eada2a3e9c627cd1918922e0.tar.bz2
Limit new value calculations to first order effects.
When utilzing poor values during propagation, we mostly care about values that were undefined/processed directly used in calcualting the SSA_NAME being processed. 2nd level derivations of such poor values rarely affect the inital calculation. Leave them to when they are directly encountered. * gimple-range-cache.cc (ranger_cache::ranger_cache): Adjust. (ranger_cache::enable_new_values): Set to specified value and return the old value. (ranger_cache::disable_new_values): Delete. (ranger_cache::fill_block_cache): Disable non 1st order derived poor values. * gimple-range-cache.h (ranger_cache): Adjust prototypes. * gimple-range.cc (gimple_ranger::range_of_expr): Adjust.
Diffstat (limited to 'gcc/gimple-range-cache.h')
-rw-r--r--gcc/gimple-range-cache.h3
1 files changed, 1 insertions, 2 deletions
diff --git a/gcc/gimple-range-cache.h b/gcc/gimple-range-cache.h
index ce4449a..1a2aace 100644
--- a/gcc/gimple-range-cache.h
+++ b/gcc/gimple-range-cache.h
@@ -101,8 +101,7 @@ public:
bool get_non_stale_global_range (irange &r, tree name);
void set_global_range (tree name, const irange &r);
- void enable_new_values ();
- void disable_new_values ();
+ bool enable_new_values (bool state);
non_null_ref m_non_null;
gori_compute m_gori;