-
Notifications
You must be signed in to change notification settings - Fork 43
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
Z3 all the things #282
Z3 all the things #282
Conversation
Also removes a bunch of options from the external API. I figured nobody was actually using them, and if someone actually needs the amount of control it provided, they may as well use the passes manually |
Unfortunately this still seems way too slow to be actually usable, especially on some Anvill-produced modules |
1a44bd2
to
5ca16f7
Compare
36acd97
to
706c7da
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.
Overall great work! May the Z3ConvVisitor rest in piece.
PS: I haven't gotten to GenerateAST.(h|cpp)
or IRToASTVisitor.(h|cpp)
yet, but could you add some short comments to the affected parts? Think "if there's a blank line, I might as well use it for a short comment describing what follows".
There wasn't much change in |
I think this is ready for merge now |
Converts Rellic to operate on Z3 expressions for as long as possible, only materializing to Clang AST before expression simplification.
Also keeps conditions in CNF without exponential blowup with a neat trick**it's still quadratic tho