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

muZ/datalog: remove a few spurious make_empty() calls from the instruction handlers

Signed-off-by: Nuno Lopes <a-nlopes@microsoft.com>
This commit is contained in:
Nuno Lopes 2014-12-22 14:17:07 +00:00
parent dddb31fc37
commit ee71c434b6

View file

@ -266,7 +266,6 @@ namespace datalog {
: m_clone(clone), m_src(src), m_tgt(tgt) {}
virtual bool perform(execution_context & ctx) {
if (ctx.reg(m_src)) log_verbose(ctx);
ctx.make_empty(m_tgt);
if (m_clone) {
ctx.set_reg(m_tgt, ctx.reg(m_src) ? ctx.reg(m_src)->clone() : 0);
}
@ -370,9 +369,9 @@ namespace datalog {
m_cols2(col_cnt, cols2), m_res(result) {}
virtual bool perform(execution_context & ctx) {
log_verbose(ctx);
ctx.make_empty(m_res);
++ctx.m_stats.m_join;
if (!ctx.reg(m_rel1) || !ctx.reg(m_rel2)) {
ctx.make_empty(m_res);
return true;
}
relation_join_fn * fn;
@ -755,8 +754,8 @@ namespace datalog {
reg_idx tgt) : m_projection(projection), m_src(src),
m_cols(col_cnt, cols), m_tgt(tgt) {}
virtual bool perform(execution_context & ctx) {
ctx.make_empty(m_tgt);
if (!ctx.reg(m_src)) {
ctx.make_empty(m_tgt);
return true;
}
@ -823,8 +822,8 @@ namespace datalog {
}
virtual bool perform(execution_context & ctx) {
log_verbose(ctx);
ctx.make_empty(m_res);
if (!ctx.reg(m_rel1) || !ctx.reg(m_rel2)) {
ctx.make_empty(m_res);
return true;
}
++ctx.m_stats.m_join_project;
@ -1000,7 +999,6 @@ namespace datalog {
virtual bool perform(execution_context & ctx) {
log_verbose(ctx);
++ctx.m_stats.m_unary_singleton;
ctx.make_empty(m_tgt);
relation_base * rel = ctx.get_rel_context().get_rmanager().mk_empty_relation(m_sig, m_pred);
rel->add_fact(m_fact);
ctx.set_reg(m_tgt, rel);
@ -1034,7 +1032,6 @@ namespace datalog {
virtual bool perform(execution_context & ctx) {
log_verbose(ctx);
++ctx.m_stats.m_total;
ctx.make_empty(m_tgt);
ctx.set_reg(m_tgt, ctx.get_rel_context().get_rmanager().mk_full_relation(m_sig, m_pred));
return true;
}