-
Notifications
You must be signed in to change notification settings - Fork 42
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
crucible-llvm: Generalize LLVMOverride
's ext
parameter
#1184
crucible-llvm: Generalize LLVMOverride
's ext
parameter
#1184
Conversation
Ah, whoops, this breaks something in UC-Crux. |
Indeed, UC-Crux does actually create
@RyanGlScott any thoughts? |
I am fine with either option, but option (1) sounds slightly more appealing since we want to make |
I'd also vote for option 1: I think it's probably too early to give up on uc-crux-llvm's potential. |
Previously, the `OverrideSim` action for an `LLVMOverride` was assumed to have a fixed `ext` parameter, namely, `LLVM`. While this is intuitively appealing, it turns out not to be necessary. This is because there are only a few operations in the `OverrideSim` monad that make essential use of the `ext` parameter, such as registering or calling a CFG in the given language extension. These operations are unlikely to be used when defining, e.g., overrides for libc functions. The motivation for generalizing the parameter is to enable the reuse of `LLVMOverride`s in other Crucible language extensions that make use of the LLVM memory model, namely, Macaw.
dc1c325
to
e13f1e4
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks! It would be worth advertising this change in the crucible-llvm
changelog, as this change will impact saw-script
. Otherwise, LGTM.
Previously, the
OverrideSim
action for anLLVMOverride
was assumed to have a fixedext
parameter, namely,LLVM
. While this is intuitively appealing, it turns out not to be necessary. This is because there are only a few operations in theOverrideSim
monad that make essential use of theext
parameter, such as registering or calling a CFG in the given language extension. These operations are unlikely to be used when defining, e.g., overrides for libc functions.The motivation for generalizing the parameter is to enable the reuse of
LLVMOverride
s in other Crucible language extensions that make use of the LLVM memory model, namely, Macaw.