bool arithless(const ASTNode n1, const ASTNode n2);
bool isAtomic(Kind k);
bool isCommutative(const Kind k);
+ bool containsArrayOps(const ASTNode&n);
// If (a > b) in the termorder, then return 1 elseif (a < b) in the
// termorder, then return -1 else return 0
modnode);
//put everything together, simplify, and return
- return simp->SimplifyTerm_TopLevel(n);
+ if (bm->UserFlags.optimize_flag)
+ return simp->SimplifyTerm_TopLevel(n);
+ else
+ return n;
}
// This is the modulus of dividing rounding to -infinity.
nf->CreateTerm(BVPLUS, len, rev_node, divisor),
rev_node);
- return simp->SimplifyTerm_TopLevel(n);
+ if (bm->UserFlags.optimize_flag)
+ return simp->SimplifyTerm_TopLevel(n);
+ else
+ return n;
}
else if (SBVDIV == in.GetKind())
{
nf->CreateTerm(BVUMINUS, len, divnode),
divnode);
- return simp->SimplifyTerm_TopLevel(n);
+ if (bm->UserFlags.optimize_flag)
+ return simp->SimplifyTerm_TopLevel(n);
+ else
+ return n;
}
FatalError("TranslateSignedDivModRem:"\
one, result);
//return result;
- return simp->SimplifyTerm_TopLevel(result);
+ if (bm->UserFlags.optimize_flag)
+ return simp->SimplifyTerm_TopLevel(result);
+ else
+ return result;
+
}
}
}