diff options
author | Andrew MacLeod <amacleod@redhat.com> | 2021-09-22 16:58:22 -0400 |
---|---|---|
committer | Andrew MacLeod <amacleod@redhat.com> | 2021-09-23 12:56:43 -0400 |
commit | 053e1d642104d19d5f9e5fb08a9e7354a0db28f5 (patch) | |
tree | 0e842f9e1c0fdd1788cb7465c2ac4f14b397b519 /gcc/gimple-range-cache.cc | |
parent | 1b07d9dce6c51c98d011236c3d4cd84a2ed59ba2 (diff) | |
download | gcc-053e1d642104d19d5f9e5fb08a9e7354a0db28f5.zip gcc-053e1d642104d19d5f9e5fb08a9e7354a0db28f5.tar.gz gcc-053e1d642104d19d5f9e5fb08a9e7354a0db28f5.tar.bz2 |
Create a ranger-local flag for non-executable edges.
Instead of repurposing EDGE_EXECUTABLE, ranger creates a local flag and
ultizes it throughout.
* gimple-range-cache.cc (ranger_cache::ranger_cache): Take
non-executable_edge flag as parameter.
* gimple-range-cache.h (ranger_cache): Adjust prototype.
* gimple-range-gori.cc (gori_compute::gori_compute): Take
non-executable_edge flag as parameter.
(gori_compute::outgoing_edge_range_p): Check new flag.
* gimple-range-gori.h (gori_compute): Adjust prototype.
* gimple-range.cc (gimple_ranger::gimple_ranger): Create new flag.
(gimple_ranger::range_on_edge): Check new flag.
* gimple-range.h (gimple_ranger::non_executable_edge_flag): New.
* gimple-ssa-evrp.c (rvrp_folder): Pass ranger flag to simplifer.
(hybrid_folder::hybrid_folder): Set ranger non-executable flag value.
(hybrid_folder::fold_stmt): Set flag value in the simplifer.
* vr-values.c (simplify_using_ranges::set_and_propagate_unexecutable):
Use not_executable flag if provided inmstead of EDGE_EXECUTABLE.
(simplify_using_ranges::simplify_switch_using_ranges): Clear
EDGE_EXECUTABLE like it originally did.
(simplify_using_ranges::cleanup_edges_and_switches): Clear any
NON_EXECUTABLE flags.
(simplify_using_ranges::simplify_using_ranges): Adjust.
* vr-values.h (class simplify_using_ranges): Adjust.
(simplify_using_ranges::set_range_query): Add non-executable flag param.
Diffstat (limited to 'gcc/gimple-range-cache.cc')
-rw-r--r-- | gcc/gimple-range-cache.cc | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/gcc/gimple-range-cache.cc b/gcc/gimple-range-cache.cc index b856b21..61043d3 100644 --- a/gcc/gimple-range-cache.cc +++ b/gcc/gimple-range-cache.cc @@ -750,7 +750,8 @@ temporal_cache::set_always_current (tree name) // -------------------------------------------------------------------------- -ranger_cache::ranger_cache () +ranger_cache::ranger_cache (int not_executable_flag) + : m_gori (not_executable_flag) { m_workback.create (0); m_workback.safe_grow_cleared (last_basic_block_for_fn (cfun)); |