You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
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.
The text was updated successfully, but these errors were encountered:
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.
The text was updated successfully, but these errors were encountered: