summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndres Noetzli <andres.noetzli@gmail.com>2020-04-22 17:55:33 -0700
committerGitHub <noreply@github.com>2020-04-22 19:55:33 -0500
commit855143cfa1e4cf38f67ff99eba5d59e5a2786120 (patch)
tree4e955b1cd63826fd1f8334f1566e6546dd7363b2
parentd64143f8aec229a673db1ec7b38d94890134d3f5 (diff)
Strings: Register skolems before sending lemma (#4381)
This commit fixes a performance regression introduced by commit 6255c03. The issue seems to be that registering terms manually after sending the lemma on the output channel is too late because the output channel processes the lemma eagerly.
-rw-r--r--src/theory/strings/inference_manager.cpp3
1 files changed, 2 insertions, 1 deletions
diff --git a/src/theory/strings/inference_manager.cpp b/src/theory/strings/inference_manager.cpp
index 42dc975fa..9fb1011ee 100644
--- a/src/theory/strings/inference_manager.cpp
+++ b/src/theory/strings/inference_manager.cpp
@@ -359,7 +359,6 @@ void InferenceManager::doPendingLemmas()
// only keep stats if we process it here
d_statistics.d_inferences << ii.d_id;
++(d_statistics.d_lemmasInfer);
- d_out.lemma(lem);
// Process the side effects of the inference info.
// Register the new skolems from this inference. We register them here
@@ -373,6 +372,8 @@ void InferenceManager::doPendingLemmas()
d_termReg.registerTermAtomic(n, sks.first);
}
}
+
+ d_out.lemma(lem);
}
// process the pending require phase calls
for (const std::pair<const Node, bool>& prp : d_pendingReqPhase)
generated by cgit on debian on lair
contact matthew@masot.net with questions or feedback