diff options
author | Andrew MacLeod <amacleod@redhat.com> | 2024-06-17 11:32:51 -0400 |
---|---|---|
committer | Andrew MacLeod <amacleod@redhat.com> | 2024-06-21 08:55:21 -0400 |
commit | 68532d3c63725777aaa63b9ac2e4a086c6359bfa (patch) | |
tree | 3ce25ae8c86c0ec7634bd1bd523e2006b8350510 /gcc/tree-vrp.cc | |
parent | ffaa806c302cca23b36173b65140a1ee1b1826af (diff) | |
download | gcc-68532d3c63725777aaa63b9ac2e4a086c6359bfa.zip gcc-68532d3c63725777aaa63b9ac2e4a086c6359bfa.tar.gz gcc-68532d3c63725777aaa63b9ac2e4a086c6359bfa.tar.bz2 |
Change fast VRP algorithm
Change the fast VRP algorithm to track contextual ranges active within
each basic block.
* gimple-range.cc (dom_ranger::dom_ranger): Create a block
vector.
(dom_ranger::~dom_ranger): Dispose of the block vector.
(dom_ranger::edge_range): Delete.
(dom_ranger::range_on_edge): Combine range in src BB with any
range gori_nme_on_edge returns.
(dom_ranger::range_in_bb): Combine global range with any active
contextual range for an ssa-name.
(dom_ranger::range_of_stmt): Fix non-ssa LHS case, use
fur_depend for folding so relations can be registered.
(dom_ranger::maybe_push_edge): Delete.
(dom_ranger::pre_bb): Create incoming contextual range vector.
(dom_ranger::post_bb): Free contextual range vector.
* gimple-range.h (dom_ranger::edge_range): Delete.
(dom_ranger::m_e0): Delete.
(dom_ranger::m_e1): Delete.
(dom_ranger::m_bb): New.
(dom_ranger::m_pop_list): Delete.
* tree-vrp.cc (execute_fast_vrp): Enable relation oracle.
Diffstat (limited to 'gcc/tree-vrp.cc')
-rw-r--r-- | gcc/tree-vrp.cc | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/gcc/tree-vrp.cc b/gcc/tree-vrp.cc index a3b1a5c..6e96b63 100644 --- a/gcc/tree-vrp.cc +++ b/gcc/tree-vrp.cc @@ -1284,11 +1284,13 @@ execute_fast_vrp (struct function *fun, bool final_p) gcc_checking_assert (!fun->x_range_query); fun->x_range_query = &dr; + get_range_query (fun)->create_relation_oracle (); folder.substitute_and_fold (); if (folder.m_unreachable) folder.m_unreachable->remove (); + get_range_query (fun)->destroy_relation_oracle (); fun->x_range_query = NULL; return 0; } |