3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-04-15 13:28:47 +00:00

fix extraction of statistics for horn tactic

Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
This commit is contained in:
Nikolaj Bjorner 2013-01-25 19:24:48 -08:00
parent a895506dac
commit 8e2298c327
2 changed files with 15 additions and 25 deletions

View file

@ -1167,32 +1167,20 @@ namespace datalog {
if (m_bmc) { if (m_bmc) {
m_bmc->reset_statistics(); m_bmc->reset_statistics();
} }
if (m_tab) {
m_tab->reset_statistics();
}
} }
void context::collect_statistics(statistics& st) const { void context::collect_statistics(statistics& st) const {
if (m_pdr) {
switch(m_engine) { m_pdr->collect_statistics(st);
case DATALOG_ENGINE: }
break; if (m_bmc) {
case PDR_ENGINE: m_bmc->collect_statistics(st);
case QPDR_ENGINE: }
if (m_pdr) { if (m_tab) {
m_pdr->collect_statistics(st); m_tab->collect_statistics(st);
}
break;
case BMC_ENGINE:
case QBMC_ENGINE:
if (m_bmc) {
m_bmc->collect_statistics(st);
}
break;
case TAB_ENGINE:
if (m_tab) {
m_tab->collect_statistics(st);
}
break;
default:
break;
} }
} }

View file

@ -240,6 +240,7 @@ class horn_tactic : public tactic {
}; };
params_ref m_params; params_ref m_params;
statistics m_stats;
imp * m_imp; imp * m_imp;
public: public:
horn_tactic(ast_manager & m, params_ref const & p): horn_tactic(ast_manager & m, params_ref const & p):
@ -272,20 +273,21 @@ public:
expr_dependency_ref & core) { expr_dependency_ref & core) {
(*m_imp)(in, result, mc, pc, core); (*m_imp)(in, result, mc, pc, core);
} }
virtual void collect_statistics(statistics & st) const { virtual void collect_statistics(statistics & st) const {
m_imp->collect_statistics(st); m_imp->collect_statistics(st);
st.copy(m_stats);
} }
virtual void reset_statistics() { virtual void reset_statistics() {
m_stats.reset();
m_imp->reset_statistics(); m_imp->reset_statistics();
} }
virtual void cleanup() { virtual void cleanup() {
ast_manager & m = m_imp->m; ast_manager & m = m_imp->m;
imp * d = m_imp; imp * d = m_imp;
d->collect_statistics(m_stats);
#pragma omp critical (tactic_cancel) #pragma omp critical (tactic_cancel)
{ {
m_imp = 0; m_imp = 0;