aboutsummaryrefslogtreecommitdiff
path: root/gcc/gimple-range-cache.h
diff options
context:
space:
mode:
authorAndrew MacLeod <amacleod@redhat.com>2021-05-31 16:41:27 -0400
committerAndrew MacLeod <amacleod@redhat.com>2021-05-31 20:49:40 -0400
commit2e0f3246e0bd92643ce36b9e7b9dde91650ac02a (patch)
tree66cc5877e10719c3f4ed5355db00e6d604213c0a /gcc/gimple-range-cache.h
parent47ea02bb862d6be9a200ebccbd5d64b31a003ec2 (diff)
downloadgcc-2e0f3246e0bd92643ce36b9e7b9dde91650ac02a.zip
gcc-2e0f3246e0bd92643ce36b9e7b9dde91650ac02a.tar.gz
gcc-2e0f3246e0bd92643ce36b9e7b9dde91650ac02a.tar.bz2
Replace ssa_range_in_bb with entry exit and def range
Split the old functionality of ssa_name_in_bb into the components for definition in a block, entry and exit range. Call these as appropriate. * gimple-range-cache.cc (ranger_cache::ssa_range_in_bb): Delete. (ranger_cache::range_of_def): New. (ranger_cache::entry_range): New. (ranger_cache::exit_range): New. (ranger_cache::range_of_expr): Adjust. (ranger_cache::range_on_edge): Adjust. (ranger_cache::propagate_cache): Call exit_range directly. * gimple-range-cache.h (class ranger_cache): Adjust.
Diffstat (limited to 'gcc/gimple-range-cache.h')
-rw-r--r--gcc/gimple-range-cache.h7
1 files changed, 5 insertions, 2 deletions
diff --git a/gcc/gimple-range-cache.h b/gcc/gimple-range-cache.h
index ac50219..fee69bc 100644
--- a/gcc/gimple-range-cache.h
+++ b/gcc/gimple-range-cache.h
@@ -92,9 +92,8 @@ public:
ranger_cache (class gimple_ranger &q);
~ranger_cache ();
- virtual bool range_of_expr (irange &r, tree expr, gimple *stmt);
+ virtual bool range_of_expr (irange &r, tree name, gimple *stmt);
virtual bool range_on_edge (irange &r, edge e, tree expr);
- void ssa_range_in_bb (irange &r, tree name, basic_block bb);
bool block_range (irange &r, basic_block bb, tree name, bool calc = true);
bool get_global_range (irange &r, tree name) const;
@@ -114,6 +113,10 @@ private:
void fill_block_cache (tree name, basic_block bb, basic_block def_bb);
void propagate_cache (tree name);
+ void range_of_def (irange &r, tree name, basic_block bb);
+ void entry_range (irange &r, tree expr, basic_block bb);
+ void exit_range (irange &r, tree expr, basic_block bb);
+
void propagate_updated_value (tree name, basic_block bb);
vec<basic_block> m_workback;