3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-07-19 10:52:02 +00:00

build fixes, add lazy push/pop state to avoid overhead on unused theories

Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
This commit is contained in:
Nikolaj Bjorner 2020-08-17 00:13:46 -07:00
parent ca3ec22b7a
commit 558233dd8e
8 changed files with 61 additions and 2 deletions

View file

@ -54,6 +54,7 @@ namespace smt {
}
bool theory_recfun::internalize_atom(app * atom, bool gate_ctx) {
force_push();
TRACEFN(mk_pp(atom, m));
if (!u().has_defs()) {
return false;
@ -75,6 +76,7 @@ namespace smt {
}
bool theory_recfun::internalize_term(app * term) {
force_push();
if (!u().has_defs()) {
return false;
}
@ -131,11 +133,15 @@ namespace smt {
}
void theory_recfun::push_scope_eh() {
if (lazy_push())
return;
theory::push_scope_eh();
m_preds_lim.push_back(m_preds.size());
}
void theory_recfun::pop_scope_eh(unsigned num_scopes) {
if (lazy_pop(num_scopes))
return;
theory::pop_scope_eh(num_scopes);
reset_queues();