mirror of
https://github.com/Z3Prover/z3
synced 2026-06-12 03:45:38 +00:00
Simplify parallel_tactical2.cpp for naming consistency and minor expression cleanup (#9526)
This updates `src/solver/parallel_tactical2.cpp` with targeted
simplifications to align style and reduce local verbosity without
changing solver behavior. The changes are limited to member naming
consistency, cast style consistency, and a small `expr_ref` construction
cleanup.
- **`batch_manager` member naming consistency**
- Renamed the two outlier private fields to follow the existing `m_`
convention:
- `shared_clause_trail` → `m_shared_clause_trail`
- `shared_clause_set` → `m_shared_clause_set`
- Updated all corresponding reads/writes in clause collection, reset,
and clause-return paths.
- **Cast style consistency**
- Replaced C-style cast in thread count calculation with
`static_cast<unsigned>(...)` for consistency with style already used in
the file.
- **Simplified `expr_ref` construction in cube assembly**
- Collapsed default-init + assignment into direct construction when
pushing cube literals.
```cpp
// Before
expr_ref lit(g2l.to());
lit = g2l(cur->get_literal().get());
cube.push_back(std::move(lit));
// After
cube.push_back(expr_ref(g2l(cur->get_literal().get()), g2l.to()));
```
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: NikolajBjorner <3085284+NikolajBjorner@users.noreply.github.com>
This commit is contained in:
parent
153c6a017a
commit
5fa7d6d63d
1 changed files with 13 additions and 15 deletions
|
|
@ -157,8 +157,8 @@ class parallel_solver {
|
||||||
vector<node_lease> m_worker_leases;
|
vector<node_lease> m_worker_leases;
|
||||||
|
|
||||||
/* shared clause pool (guarded by mux) */
|
/* shared clause pool (guarded by mux) */
|
||||||
vector<shared_clause> shared_clause_trail;
|
vector<shared_clause> m_shared_clause_trail;
|
||||||
obj_hashtable<expr> shared_clause_set;
|
obj_hashtable<expr> m_shared_clause_set;
|
||||||
|
|
||||||
/* shared backbone / unit pool (guarded by mux) */
|
/* shared backbone / unit pool (guarded by mux) */
|
||||||
obj_hashtable<expr> m_global_backbones;
|
obj_hashtable<expr> m_global_backbones;
|
||||||
|
|
@ -202,10 +202,10 @@ class parallel_solver {
|
||||||
unsigned source_worker_id,
|
unsigned source_worker_id,
|
||||||
expr* clause) {
|
expr* clause) {
|
||||||
expr* g_clause = l2g(clause);
|
expr* g_clause = l2g(clause);
|
||||||
if (!shared_clause_set.contains(g_clause)) {
|
if (!m_shared_clause_set.contains(g_clause)) {
|
||||||
shared_clause_set.insert(g_clause);
|
m_shared_clause_set.insert(g_clause);
|
||||||
shared_clause sc{source_worker_id, expr_ref(g_clause, m)};
|
shared_clause sc{source_worker_id, expr_ref(g_clause, m)};
|
||||||
shared_clause_trail.push_back(std::move(sc));
|
m_shared_clause_trail.push_back(std::move(sc));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -230,8 +230,8 @@ class parallel_solver {
|
||||||
m_search_tree.set_effort_unit(initial_max_thread_conflicts);
|
m_search_tree.set_effort_unit(initial_max_thread_conflicts);
|
||||||
m_worker_leases.reset();
|
m_worker_leases.reset();
|
||||||
m_worker_leases.resize(num_workers);
|
m_worker_leases.resize(num_workers);
|
||||||
shared_clause_trail.reset();
|
m_shared_clause_trail.reset();
|
||||||
shared_clause_set.reset();
|
m_shared_clause_set.reset();
|
||||||
m_global_backbones.reset();
|
m_global_backbones.reset();
|
||||||
m_model = nullptr;
|
m_model = nullptr;
|
||||||
m_unsat_core.reset();
|
m_unsat_core.reset();
|
||||||
|
|
@ -300,9 +300,7 @@ class parallel_solver {
|
||||||
for (auto* cur = t; cur; cur = cur->parent()) {
|
for (auto* cur = t; cur; cur = cur->parent()) {
|
||||||
if (solver_cube_config::literal_is_null(cur->get_literal()))
|
if (solver_cube_config::literal_is_null(cur->get_literal()))
|
||||||
break;
|
break;
|
||||||
expr_ref lit(g2l.to());
|
cube.push_back(expr_ref(g2l(cur->get_literal().get()), g2l.to()));
|
||||||
lit = g2l(cur->get_literal().get());
|
|
||||||
cube.push_back(std::move(lit));
|
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
@ -391,11 +389,11 @@ class parallel_solver {
|
||||||
unsigned worker_id) {
|
unsigned worker_id) {
|
||||||
std::scoped_lock lock(mux);
|
std::scoped_lock lock(mux);
|
||||||
expr_ref_vector result(g2l.to());
|
expr_ref_vector result(g2l.to());
|
||||||
for (unsigned i = worker_limit; i < shared_clause_trail.size(); ++i) {
|
for (unsigned i = worker_limit; i < m_shared_clause_trail.size(); ++i) {
|
||||||
if (shared_clause_trail[i].source_worker_id != worker_id)
|
if (m_shared_clause_trail[i].source_worker_id != worker_id)
|
||||||
result.push_back(g2l(shared_clause_trail[i].clause.get()));
|
result.push_back(g2l(m_shared_clause_trail[i].clause.get()));
|
||||||
}
|
}
|
||||||
worker_limit = shared_clause_trail.size();
|
worker_limit = m_shared_clause_trail.size();
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -731,7 +729,7 @@ public:
|
||||||
|
|
||||||
parallel_params pp(m_params);
|
parallel_params pp(m_params);
|
||||||
unsigned num_threads = std::min(
|
unsigned num_threads = std::min(
|
||||||
(unsigned)std::thread::hardware_concurrency(),
|
static_cast<unsigned>(std::thread::hardware_concurrency()),
|
||||||
pp.threads_max());
|
pp.threads_max());
|
||||||
if (num_threads < 2) num_threads = 2;
|
if (num_threads < 2) num_threads = 2;
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue