Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Misonijnik/refactor #1

Open
wants to merge 48 commits into
base: utbot-main
Choose a base branch
from
Open

Misonijnik/refactor #1

wants to merge 48 commits into from

Conversation

S1eGa
Copy link
Owner

@S1eGa S1eGa commented Dec 27, 2022

Summary:

Checklist:

  • The PR addresses a single issue. If it can be divided into multiple independent PRs, please do so.
  • The PR is divided into a logical sequence of commits OR a single commit is sufficient.
  • There are no unnecessary commits (e.g. commits fixing issues in a previous commit in the same PR).
  • Each commit has a meaningful message documenting what it does.
  • All messages added to the codebase, all comments, as well as commit messages are spellchecked.
  • The code is commented OR not applicable/necessary.
  • The patch is formatted via clang-format OR not applicable (if explicitly overridden leave unchecked and explain).
  • There are test cases for the code you added or modified OR no such test cases are required.

@S1eGa S1eGa force-pushed the misonijnik/refactor branch 2 times, most recently from 975eb21 to 35b6fc8 Compare December 27, 2022 12:10
@S1eGa S1eGa force-pushed the misonijnik/refactor branch from 35b6fc8 to 865b96f Compare February 12, 2023 19:27
WIP

Prepared BlueprintSolver models recomputation, implemented BlueprintSolver::computeValidity, added few tests for LI.

Added Executor::makeArray() function

Added check for address during LI (that we can allocate such objects in memory). Added test for this check.

Slight improvements in API of ConcretizationManager. Speed up of executeMemoryOperation procedure by changing  to  check. Fix for  check before lazy object initialization (evaluate -> simplifyExpr). Fix tests for LI. Added check if address can reference to any memory location after resolve without LI.

 operations from AddressSpace now return lists of MemoryObjects's IDs. Will be useful in work with symbolisc sizes.

executeMemoryOperation: inline  replaced with mass  to fix seeding mode.

Improved naming construction for makeArray().

Symbolic sizes. Constant sizes of Array's replaced with ref<Expr>. Fixed
unittests.

Implented queries in BlueprintSolver and additional query to get minimal possible value in SolverImpl

WIP. Implemented functions to make sizes recomputations.

Added dependency in IndependentElementSet between size and address of arrays with symbolic sizes. Lazy initialization now use objects of symbolic size.

Added state updating during execution.

Fixed state updates. Added address generator.

WIP

WIP

WIP

[feat] Separate `compare` and `equals`

[fix] ValidityCore API

Fixes

[fix] ValidityCore API

Fixes. Added simple test for objects of symbolic size.

WIP. Fixed outOfBound case check in execMO, fixed pathOS test.

Completed implementations of requests in BlueprintSolver, added verification that assignments from queries contain all symcretes. Fixed bug with adding constraint in ConcretizationManager.

WIP

toUnique function renamed to trygetWeight and moved to TimingSolver

Added tests, added resolveOneIfUnique method to find meomeryo object for symcrete address. Still have failing tests (WIP).

Test fixes

Unnecessary commit: changed logic for solver to investigate perfomance regression in TwoObjectsInitialization.c test. Slighlty optimized getMinimalUnsignedValue function.

Rewrited allcoate function in Executor: now we are trying to optimize sum of sizes instead of single size.

Fixed query printing in smt2 notation

Fixed naming of variables in SMT2 notation.

Fixed error handling during lazy initialization

Fixed model receiving in memory allocation.

Added bound for symbolic sizes to model malloc's behavior.

WIP. Fixed expression widths in computeMinimalUnsignedValue. Added forks during memory allocations to model NULL result of malloc during huge allocations.

WIP. Fix perfomance, bug in MO tracking.

WIP

WIP. Fixes for ConcretizationManager.

Fixed output for smt2 loggers, updating ConstraintManager for klee_prefer_cex. Fixed tests.

Separated options for constant and symbolic sizes.

Changed ObjectState copying for new MemoryObject.

Extending constantValues array after ObjectState recomputation (possibly buggy area).

WIP. Arrays for constant objects replaced with constant arrays.

[feat] Add read optimization

WIP. Sparse structure.

WIP. Incomplete sparse structure.

WIP. Implemented iterator for sparse stotage.

Optimized bounds check pointer for case with equals sizes

WIP. Better bound approximation during computation of minimal unsigned
value.

Slightly optimized minimiztion function: now to find right border we can make a binary search

WIP. Implemented check function for SolverBlueprint. One more optimization added for computeMinimalUnsignedValue --- we can use values from solver when move right borders to left in binary searches.

WIP. Fix for Independent solver.

Retracted changes with value optimization for binary search. Added caching in SolverBlueprint.
S1eGa and others added 20 commits February 13, 2023 01:18
The implementation is based on KLEE-float.

Supported llvm math intrinsic functions related to floating-point.

Added ENABLE_FP and FP_RUNTIME options to CMake.

Provided an ability to switch between Z3Builder implementations.

Building KLEE without -DCMAKE_ENABLE_FLOATING_POINT does not change the core.

Changed scripts and github actions to launch fp-tests.
Use `createCachedExpr`
…iable for stdin buffer size to ktests. Disabled tests for now broken klee-replay and klee-zesti (unused).
Implement getc, fgetc, fread, fgets, getchar, gets, putc, fputc, fwrite, fputs, putchar, puts
(cherry picked from commit 99c522b)
@S1eGa S1eGa force-pushed the misonijnik/refactor branch from 865b96f to f0abdbc Compare February 12, 2023 22:22
@S1eGa S1eGa force-pushed the misonijnik/refactor branch from 5afd543 to f7a4733 Compare February 14, 2023 16:07
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

7 participants