From 92e1bf7b665a7f5ec682becb78e014e62d10beec Mon Sep 17 00:00:00 2001 From: Daniel Dunbar Date: Sun, 14 Jun 2009 03:33:15 +0000 Subject: Add constant folding operations to ConstantExpr. - No (intended) functionality change. git-svn-id: https://llvm.org/svn/llvm-project/klee/trunk@73322 91177308-0d34-0410-b5e6-96231b3b80d8 --- include/klee/Expr.h | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) (limited to 'include') diff --git a/include/klee/Expr.h b/include/klee/Expr.h index 878a70ba..192be985 100644 --- a/include/klee/Expr.h +++ b/include/klee/Expr.h @@ -353,6 +353,36 @@ public: return E->getKind() == Expr::Constant; } static bool classof(const ConstantExpr *) { return true; } + + /* Constant Operations */ + + ref Concat(const ref &RHS); + ref Extract(unsigned offset, Width W); + ref ZExt(Width W); + ref SExt(Width W); + ref Add(const ref &RHS); + ref Sub(const ref &RHS); + ref Mul(const ref &RHS); + ref UDiv(const ref &RHS); + ref SDiv(const ref &RHS); + ref URem(const ref &RHS); + ref SRem(const ref &RHS); + ref And(const ref &RHS); + ref Or(const ref &RHS); + ref Xor(const ref &RHS); + ref Shl(const ref &RHS); + ref LShr(const ref &RHS); + ref AShr(const ref &RHS); + ref Eq(const ref &RHS); + ref Ne(const ref &RHS); + ref Ult(const ref &RHS); + ref Ule(const ref &RHS); + ref Ugt(const ref &RHS); + ref Uge(const ref &RHS); + ref Slt(const ref &RHS); + ref Sle(const ref &RHS); + ref Sgt(const ref &RHS); + ref Sge(const ref &RHS); }; -- cgit 1.4.1