70 ctx =
new z3::context();
79 if (
z3Expr.getExpr().num_args() == 0)
114 z3::check_result res =
getSolver().check();
116 if (res != z3::unsat)
152 z3::check_result res =
getSolver().check();
154 if (res != z3::unsat)
170 std::ostringstream
out;
static const Option< u32_t > MaxZ3Size
const z3::expr & getExpr() const
static z3::solver & getSolver()
Get z3 solver, singleton design here to make sure we only have one context.
static z3::solver * solver
static Z3Expr AND(const Z3Expr &lhs, const Z3Expr &rhs)
compute AND, used for branch condition
static std::string dumpStr(const Z3Expr &z3Expr)
output Z3 expression as a string
static u32_t getExprSize(const Z3Expr &z3Expr)
get the number of subexpression of a Z3 expression
static void releaseSolver()
release z3 solver
static void releaseContext()
release z3 context
static Z3Expr getTrueCond()
Return the unique true condition.
static Z3Expr OR(const Z3Expr &lhs, const Z3Expr &rhs)
compute OR, used for branch condition
friend bool eq(const Z3Expr &lhs, const Z3Expr &rhs)
static z3::context & getContext()
Get z3 context, singleton design here to make sure we only have one context.
static Z3Expr getFalseCond()
Return the unique false condition.
llvm::IRBuilder IRBuilder