10#ifndef KLEE_STPBUILDER_H
11#define KLEE_STPBUILDER_H
13#include "klee/Config/config.h"
20#include <stp/c_interface.h>
52 operator bool () {
return H->
expr; }
53 operator ::VCExpr () {
return H->
expr; }
111 ::VCExpr
buildVar(
const char *name,
unsigned width);
112 ::VCExpr
buildArray(
const char *name,
unsigned indexWidth,
unsigned valueWidth);
void vc_DeleteExpr(void *)
ExprHandle(::VCExpr _expr)
ExprHandle & operator=(const ExprHandle &b)
ExprHandle(const ExprHandle &b)
ExprHolder(const ::VCExpr _expr)
virtual ~STPArrayExprHash()
ExprHandle constructUDivByConstant(ExprHandle expr_n, unsigned width, uint64_t d)
ExprHandle bvOne(unsigned width)
ExprHandle bvMinusOne(unsigned width)
ExprHandle eqExpr(ExprHandle a, ExprHandle b)
ExprHandle bvRightShift(ExprHandle expr, unsigned shift)
ExprHandle extractPartialShiftValue(ExprHandle shift, unsigned width, unsigned &shiftBits)
ExprHandle getInitialRead(const Array *os, unsigned index)
ExprHandle bvZExtConst(unsigned width, uint64_t value)
ExprHandle bvConst64(unsigned width, uint64_t value)
::VCExpr getArrayForUpdate(const Array *root, const UpdateNode *un)
ExprHandle constructAShrByConstant(ExprHandle expr, unsigned shift, ExprHandle isSigned)
ExprHandle constructSDivByConstant(ExprHandle expr_n, unsigned width, uint64_t d)
::VCExpr buildVar(const char *name, unsigned width)
ExprHandle bvExtract(ExprHandle expr, unsigned top, unsigned bottom)
ExprHandle bvZero(unsigned width)
ExprHandle bvVarLeftShift(ExprHandle expr, ExprHandle shift)
STPArrayExprHash _arr_hash
::VCExpr getInitialArray(const Array *os)
ExprHandle bvLeftShift(ExprHandle expr, unsigned shift)
ExprHandle construct(ref< Expr > e)
ExprHandle bvVarRightShift(ExprHandle expr, ExprHandle shift)
ExprHandle bvSExtConst(unsigned width, uint64_t value)
ExprHandle bvBoolExtract(ExprHandle expr, int bit)
ExprHandle construct(ref< Expr > e, int *width_out)
ExprHandle constructMulByConstant(ExprHandle expr, unsigned width, uint64_t x)
ExprHandle bvConst32(unsigned width, uint32_t value)
::VCExpr buildArray(const char *name, unsigned indexWidth, unsigned valueWidth)
STPBuilder(::VC _vc, bool _optimizeDivides=true)
ExprHandle constructActual(ref< Expr > e, int *width_out)
ExprHandle bvVarArithRightShift(ExprHandle expr, ExprHandle shift)
ExprHashMap< std::pair< ExprHandle, unsigned > > constructed
Class representing a byte update of an array.