mirror of
https://github.com/Z3Prover/z3
synced 2025-08-02 01:13:18 +00:00
tuning relevancy
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
This commit is contained in:
parent
e22f713b19
commit
6f9082598c
3 changed files with 67 additions and 12 deletions
|
@ -129,7 +129,7 @@ namespace smt {
|
|||
struct relevancy_propagator_imp : public relevancy_propagator {
|
||||
unsigned m_qhead;
|
||||
expr_ref_vector m_relevant_exprs;
|
||||
obj_hashtable<expr> m_is_relevant;
|
||||
uint_set m_is_relevant;
|
||||
typedef list<relevancy_eh *> relevancy_ehs;
|
||||
obj_map<expr, relevancy_ehs *> m_relevant_ehs;
|
||||
obj_map<expr, relevancy_ehs *> m_watches[2];
|
||||
|
@ -242,7 +242,7 @@ namespace smt {
|
|||
}
|
||||
}
|
||||
|
||||
bool is_relevant_core(expr * n) const { return m_is_relevant.contains(n); }
|
||||
bool is_relevant_core(expr * n) const { return m_is_relevant.contains(n->get_id()); }
|
||||
|
||||
bool is_relevant(expr * n) const override {
|
||||
return !enabled() || is_relevant_core(n);
|
||||
|
@ -275,7 +275,7 @@ namespace smt {
|
|||
while (i != old_lim) {
|
||||
--i;
|
||||
expr * n = m_relevant_exprs.get(i);
|
||||
m_is_relevant.erase(n);
|
||||
m_is_relevant.remove(n->get_id());
|
||||
TRACE("propagate_relevancy", tout << "unmarking:\n" << mk_ismt2_pp(n, get_manager()) << "\n";);
|
||||
}
|
||||
m_relevant_exprs.shrink(old_lim);
|
||||
|
@ -303,7 +303,7 @@ namespace smt {
|
|||
}
|
||||
|
||||
void set_relevant(expr * n) {
|
||||
m_is_relevant.insert(n);
|
||||
m_is_relevant.insert(n->get_id());
|
||||
m_relevant_exprs.push_back(n);
|
||||
m_context.relevant_eh(n);
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue