Conversation
e7ce3b1 to
fde881f
Compare
38fc182 to
5c1c074
Compare
cdb3b3b to
0d0fcc1
Compare
Codecov Report
@@ Coverage Diff @@
## main #85 +/- ##
==========================================
+ Coverage 65.37% 65.60% +0.22%
==========================================
Files 211 213 +2
Lines 28676 29018 +342
Branches 6374 6437 +63
==========================================
+ Hits 18746 19036 +290
- Misses 7442 7519 +77
+ Partials 2488 2463 -25
|
eaf1337 to
a26c72d
Compare
0e8b5e3 to
1d4b9bd
Compare
include/klee/Expr/Assignment.h
Outdated
| bool allowFreeValues) { | ||
| AssignmentEvaluator v(*this, allowFreeValues); | ||
| for (; begin != end; ++begin) { | ||
| if ((*begin)->getWidth() == Expr::Bool && !v.visit(*begin)->isTrue()) |
There was a problem hiding this comment.
Please separate the logic for processing non-boolean expressions into a separate function
|
|
||
| #undef ITEMSIZE | ||
| #undef ALPHA | ||
| #endif No newline at end of file |
include/klee/ADT/ImmutableMap.h
Outdated
| if (*it1 != *it2) | ||
| return false; | ||
| } | ||
| return size() == b.size(); |
There was a problem hiding this comment.
Swap the size equality condition with the element equality conditions for better performance
include/klee/ADT/ImmutableMap.h
Outdated
| if (*it1 > *it2) | ||
| return false; | ||
| } | ||
| return size() < b.size(); |
include/klee/ADT/DisjointSetUnion.h
Outdated
| disjointSets_ty ds() const { return disjointSets; } | ||
| }; | ||
| } // namespace klee | ||
| #endif No newline at end of file |
include/klee/Expr/Assignment.h
Outdated
| class Assignment { | ||
| public: | ||
| typedef std::map<const Array *, SparseStorage<unsigned char>> bindings_ty; | ||
| using bindings_ty = ImmutableMap<const Array *, SparseStorage<unsigned char>>; |
There was a problem hiding this comment.
You can use PersistentMap instead of ImmutableMap, since the persistent version is a wrapper for convenience
| // Given an array of new kids return a copy of the expression | ||
| // but using those children. | ||
| virtual ref<Expr> rebuild(ref<Expr> kids[/* getNumKids() */]) const = 0; | ||
| virtual ref<Expr> rebuild() const { |
There was a problem hiding this comment.
Is this the code used?
| }; | ||
| } // namespace klee | ||
|
|
||
| #endif No newline at end of file |
| icsu.reEvaluateConcretization(newConcretization); | ||
| return icsu.getConcretizedVersion(); | ||
| } | ||
| } // namespace klee No newline at end of file |
| @@ -132,7 +132,8 @@ struct isValidOrSatisfyingResponse { | |||
| isValidOrSatisfyingResponse(KeyType &_key) : key(_key) {} | |||
|
|
|||
| bool operator()(ref<SolverResponse> a) const { | |||
There was a problem hiding this comment.
Split keys in boolean keys and non-boolean keys and update the predicate accordingly
1d4b9bd to
5937f8b
Compare
5937f8b to
e319a6f
Compare
Summary:
Checklist: