diff options
author | Andrew MacLeod <amacleod@redhat.com> | 2024-04-29 13:32:00 -0400 |
---|---|---|
committer | Andrew MacLeod <amacleod@redhat.com> | 2024-05-23 16:40:34 -0400 |
commit | 67afcf28570ff62210e1998f35def2be5cb8cb08 (patch) | |
tree | 8af751b79580773d72775179b5bd161447a59eb0 /gcc/gimple-range-cache.cc | |
parent | ed63cd2aa5b114565fe5499c3a6bf8da5e8e48ba (diff) | |
download | gcc-67afcf28570ff62210e1998f35def2be5cb8cb08.zip gcc-67afcf28570ff62210e1998f35def2be5cb8cb08.tar.gz gcc-67afcf28570ff62210e1998f35def2be5cb8cb08.tar.bz2 |
Move all relation queries into relation_oracle.
Move relation queries from range_query object into the relation oracle.
* gimple-range-cache.cc (ranger_cache::ranger_cache): Call
create_relation_oracle.
(ranger_cache::~ranger_cache): Call destroy_relation_oracle.
* gimple-range-fold.cc (fur_stmt::get_phi_operand): Check for
relation oracle bnefore calling query_relation.
(fold_using_range::range_of_phi): Likewise.
* gimple-range-path.cc (path_range_query::~path_range_query): Set
relation oracle pointer to NULL when done.
* gimple-range.cc (gimple_ranger::~gimple_ranger): Likewise.
* value-query.cc (range_query::~range_query): Ensure any
relation oracle is destroyed.
(range_query::query_relation): relocate to relation_oracle object.
* value-query.h (class range_query): Adjust method proototypes.
(range_query::create_relation_oracle): New.
(range_query::destroy_relation_oracle): New.
* value-relation.cc (relation_oracle::query_relation): Relocate
from range query class.
* value-relation.h (Call relation_oracle): New prototypes.
Diffstat (limited to 'gcc/gimple-range-cache.cc')
-rw-r--r-- | gcc/gimple-range-cache.cc | 9 |
1 files changed, 3 insertions, 6 deletions
diff --git a/gcc/gimple-range-cache.cc b/gcc/gimple-range-cache.cc index bdd2832..cf17a6a 100644 --- a/gcc/gimple-range-cache.cc +++ b/gcc/gimple-range-cache.cc @@ -957,11 +957,9 @@ ranger_cache::ranger_cache (int not_executable_flag, bool use_imm_uses) m_workback.safe_grow_cleared (last_basic_block_for_fn (cfun)); m_workback.truncate (0); m_temporal = new temporal_cache; + // If DOM info is available, spawn an oracle as well. - if (dom_info_available_p (CDI_DOMINATORS)) - m_oracle = new dom_oracle (); - else - m_oracle = NULL; + create_relation_oracle (); unsigned x, lim = last_basic_block_for_fn (cfun); // Calculate outgoing range info upfront. This will fully populate the @@ -979,8 +977,7 @@ ranger_cache::ranger_cache (int not_executable_flag, bool use_imm_uses) ranger_cache::~ranger_cache () { delete m_update; - if (m_oracle) - delete m_oracle; + destroy_relation_oracle (); delete m_temporal; m_workback.release (); } |