From f60d35f0d239c6423cbe443a0b86ab5b335173e5 Mon Sep 17 00:00:00 2001 From: Brian Demsky Date: Fri, 5 Jan 2018 16:09:24 -0800 Subject: [PATCH] Reduce unnecessary vector alloc/free --- src/Backend/satencoder.cc | 4 +++- src/Backend/satencoder.h | 2 +- src/Backend/satfuncopencoder.cc | 6 +++--- 3 files changed, 7 insertions(+), 5 deletions(-) diff --git a/src/Backend/satencoder.cc b/src/Backend/satencoder.cc index bf8ede4..44e3e63 100644 --- a/src/Backend/satencoder.cc +++ b/src/Backend/satencoder.cc @@ -14,11 +14,13 @@ SATEncoder::SATEncoder(CSolver *_solver) : cnf(createCNF()), - solver(_solver) { + solver(_solver), + vector(allocDefVectorEdge()) { } SATEncoder::~SATEncoder() { deleteCNF(cnf); + deleteVectorEdge(vector); } void SATEncoder::resetSATEncoder() { diff --git a/src/Backend/satencoder.h b/src/Backend/satencoder.h index 0347164..9750048 100644 --- a/src/Backend/satencoder.h +++ b/src/Backend/satencoder.h @@ -64,7 +64,7 @@ private: CNF *cnf; CSolver *solver; BooleanToEdgeMap booledgeMap; - + VectorEdge *vector; }; void allocElementConstraintVariables(ElementEncoding *ee, uint numVars); diff --git a/src/Backend/satfuncopencoder.cc b/src/Backend/satfuncopencoder.cc index 3f85fec..f4eda52 100644 --- a/src/Backend/satfuncopencoder.cc +++ b/src/Backend/satfuncopencoder.cc @@ -34,7 +34,7 @@ Edge SATEncoder::encodeEnumOperatorPredicateSATEncoder(BooleanPredicate *constra Element *elem = constraint->inputs.get(i); encodeElementSATEncoder(elem); } - VectorEdge *clauses = allocDefVectorEdge(); // Setup array of clauses + VectorEdge *clauses = vector; uint indices[numDomains]; //setup indices bzero(indices, sizeof(uint) * numDomains); @@ -75,11 +75,11 @@ Edge SATEncoder::encodeEnumOperatorPredicateSATEncoder(BooleanPredicate *constra } } if (getSizeVectorEdge(clauses) == 0) { - deleteVectorEdge(clauses); + clearVectorEdge(clauses); return E_False; } Edge cor = constraintOR(cnf, getSizeVectorEdge(clauses), exposeArrayEdge(clauses)); - deleteVectorEdge(clauses); + clearVectorEdge(clauses); return generateNegation ? constraintNegate(cor) : cor; } -- 2.34.1