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

Over-specialization #54

Open
caballa opened this issue Aug 2, 2021 · 1 comment
Open

Over-specialization #54

caballa opened this issue Aug 2, 2021 · 1 comment
Labels
limitation Current limitations of OCCAM

Comments

@caballa
Copy link

caballa commented Aug 2, 2021

The configuration priming (CP) can produce too specialized programs that cannot be actually executed.

Recall that CP has two phases: bytecode interpretation and lifting LLVM values to LLVM constants. For the second phase, the lifting excludes pointer values to avoid overfitting but this is not sufficient.

There are system calls such as socket, getuid, etc which generate integers which should not be part of the specialized programs because they are not reusable across multiple executions. A similar issue raises when pointers are casted to integers and then those integers are also part of the specialized program. This can cause that the specialized binary accesses to memory allocated during configuration priming which is not available after.

Probably the solution is to modify configuration priming to lift a LLVM value only if the value is input-dependent.

@caballa
Copy link
Author

caballa commented Aug 2, 2021

This limitation affects #48 , #50, #52, and #53

@caballa caballa changed the title Overfitting of the specialization process Over-specialization Sep 22, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
limitation Current limitations of OCCAM
Projects
None yet
Development

No branches or pull requests

1 participant