3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-04-27 19:05:51 +00:00

remove using insert_if_not_there2

Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
This commit is contained in:
Nikolaj Bjorner 2020-04-25 15:08:51 -07:00
parent 9ea1cf3c5c
commit a884201d62
47 changed files with 172 additions and 208 deletions

View file

@ -37,15 +37,15 @@ namespace datalog {
}
void compiler::ensure_predicate_loaded(func_decl * pred, instruction_block & acc) {
pred2idx::obj_map_entry * e = m_pred_regs.insert_if_not_there2(pred, UINT_MAX);
if(e->get_data().m_value!=UINT_MAX) {
auto& value = m_pred_regs.insert_if_not_there(pred, UINT_MAX);
if (value != UINT_MAX) {
//predicate is already loaded
return;
}
relation_signature sig;
m_context.get_rel_context()->get_rmanager().from_predicate(pred, sig);
reg_idx reg = get_fresh_register(sig);
e->get_data().m_value=reg;
value = reg;
acc.push_back(instruction::mk_load(m_context.get_manager(), pred, reg));
}
@ -570,8 +570,8 @@ namespace datalog {
else {
SASSERT(is_var(exp));
unsigned var_num=to_var(exp)->get_idx();
int2ints::entry * e = var_indexes.insert_if_not_there2(var_num, unsigned_vector());
e->get_data().m_value.push_back(i);
auto& value = var_indexes.insert_if_not_there(var_num, unsigned_vector());
value.push_back(i);
}
}
}
@ -631,8 +631,8 @@ namespace datalog {
src_col = single_res_expr.size();
single_res_expr.push_back(m.mk_var(v, unbound_sort));
entry = var_indexes.insert_if_not_there2(v, unsigned_vector());
entry->get_data().m_value.push_back(src_col);
var_indexes.insert_if_not_there(v, unsigned_vector()).push_back(src_col);
}
relation_sort var_sort = m_reg_signatures[filtered_res][src_col];
binding[m_free_vars.size()-v] = m.mk_var(src_col, var_sort);
@ -790,7 +790,7 @@ namespace datalog {
unsigned unbound_column_index = single_res_expr.size();
single_res_expr.push_back(m.mk_var(v, unbound_sort));
e = var_indexes.insert_if_not_there2(v, unsigned_vector());
e = var_indexes.insert_if_not_there3(v, unsigned_vector());
e->get_data().m_value.push_back(unbound_column_index);
}
unsigned src_col=e->get_data().m_value.back();

View file

@ -676,21 +676,21 @@ namespace datalog {
}
func_decl * mk_explanations::get_e_decl(func_decl * orig_decl) {
decl_map::obj_map_entry * e = m_e_decl_map.insert_if_not_there2(orig_decl, 0);
if (e->get_data().m_value == nullptr) {
auto& value = m_e_decl_map.insert_if_not_there(orig_decl, 0);
if (value == nullptr) {
relation_signature e_domain;
e_domain.append(orig_decl->get_arity(), orig_decl->get_domain());
e_domain.push_back(m_e_sort);
func_decl * new_decl = m_context.mk_fresh_head_predicate(orig_decl->get_name(), symbol("expl"),
e_domain.size(), e_domain.c_ptr(), orig_decl);
m_pinned.push_back(new_decl);
e->get_data().m_value = new_decl;
value = new_decl;
if (m_relation_level) {
assign_rel_level_kind(new_decl, orig_decl);
}
}
return e->get_data().m_value;
return value;
}
app * mk_explanations::get_e_lit(app * lit, unsigned e_var_idx) {

View file

@ -259,8 +259,7 @@ namespace datalog {
*/
void register_pair(app * t1, app * t2, rule * r, const var_idx_set & non_local_vars) {
SASSERT (t1 != t2);
cost_map::entry * e = m_costs.insert_if_not_there2(get_key(t1, t2), nullptr);
pair_info * & ptr_inf = e->get_data().m_value;
pair_info * & ptr_inf = m_costs.insert_if_not_there(get_key(t1, t2), nullptr);
if (ptr_inf == nullptr) {
ptr_inf = alloc(pair_info);
}
@ -296,8 +295,7 @@ namespace datalog {
counter.count_rule_vars(r, 1);
TRACE("dl", tout << "counter: "; for (auto const& kv: counter) tout << kv.m_key << ": " << kv.m_value << " "; tout << "\n";);
ptr_vector<app> & rule_content =
m_rules_content.insert_if_not_there2(r, ptr_vector<app>())->get_data().m_value;
ptr_vector<app> & rule_content = m_rules_content.insert_if_not_there(r, ptr_vector<app>());
SASSERT(rule_content.empty());
TRACE("dl", r->display(m_context, tout << "register "););

View file

@ -105,14 +105,14 @@ namespace datalog {
void relation_manager::store_relation(func_decl * pred, relation_base * rel) {
SASSERT(rel);
relation_map::obj_map_entry * e = m_relations.insert_if_not_there2(pred, 0);
if (e->get_data().m_value) {
e->get_data().m_value->deallocate();
auto& value = m_relations.insert_if_not_there(pred, 0);
if (value) {
value->deallocate();
}
else {
get_context().get_manager().inc_ref(pred); //dec_ref in reset
}
e->get_data().m_value = rel;
value = rel;
}
decl_set relation_manager::collect_predicates() const {

View file

@ -673,7 +673,7 @@ namespace datalog {
family_id get_relation_kind(const relation_signature & sig, const Spec & spec) {
typename sig2store::entry * e = m_kind_assignment.find_core(sig);
if(!e) {
e = m_kind_assignment.insert_if_not_there2(sig, alloc(family_id_idx_store));
e = m_kind_assignment.insert_if_not_there3(sig, alloc(family_id_idx_store));
m_kind_specs.insert(sig, alloc(family_id2spec));
}
family_id_idx_store & ids = *e->get_data().m_value;

View file

@ -302,7 +302,7 @@ namespace datalog {
index_map::entry * e = m_map.find_core(ofs);
if (!e) {
TRACE("dl_table_relation", tout << "inserting\n";);
e = m_map.insert_if_not_there2(ofs, offset_vector());
e = m_map.insert_if_not_there3(ofs, offset_vector());
}
return e->get_data().m_value;
}
@ -473,7 +473,7 @@ namespace datalog {
#endif
key_spec kspec;
kspec.append(key_len, key_cols);
key_index_map::entry * key_map_entry = m_key_indexes.insert_if_not_there2(kspec, nullptr);
key_index_map::entry * key_map_entry = m_key_indexes.insert_if_not_there3(kspec, nullptr);
if (!key_map_entry->get_data().m_value) {
if (full_signature_key_indexer::can_handle(key_len, key_cols, *this)) {
key_map_entry->get_data().m_value = alloc(full_signature_key_indexer, key_len, key_cols, *this);
@ -777,8 +777,7 @@ namespace datalog {
const table_signature & sig = t->get_signature();
t->reset();
table_pool::entry * e = m_pool.insert_if_not_there2(sig, nullptr);
sp_table_vector * & vect = e->get_data().m_value;
sp_table_vector * & vect = m_pool.insert_if_not_there(sig, nullptr);
if (vect == nullptr) {
vect = alloc(sp_table_vector);
}