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

Handle branches as soft path constriants #24

Open
SanWieb opened this issue Jun 21, 2024 · 0 comments
Open

Handle branches as soft path constriants #24

SanWieb opened this issue Jun 21, 2024 · 0 comments
Labels
enhancement New feature or request

Comments

@SanWieb
Copy link
Contributor

SanWieb commented Jun 21, 2024

Currently, during exploration (scanning phase) we handle constraints coming from branches as hard path constraints. Which means we only take 1 branch path if two concrete values are compared, or if there are conflicting constraints in the state. For example:

Two concrete values:

x = 1
if (x == 0) {
    # never explored, but it can be mispredicted
}

Conflicting constraints:

x = symbolic()

if (x > 10) {
}

if (x < 5) {

} 
# both branches are never both taken, but it speculative execution this is possible.

However, in speculative execution this behavior is possible. Preferable we add this as an optional feature which can be enabled/disabled via the config.

Note that in the common case (compare of a symbolic value) we do currently explore both paths.

@SanWieb SanWieb added the enhancement New feature or request label Jun 21, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

1 participant