-
Notifications
You must be signed in to change notification settings - Fork 171
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
Switch-case synthesis #800
Comments
I used an ugly trick to convert the
This is theoretically doable for any
Obviously I'm still wondering if Souper can handle the |
hi! sorry none of us responded earlier. hopefully this issue is now fixed via #843 |
No hurry, glad to see Souper is still alive, I keep using it for many sub-tasks! I tested it today and I can confirm the patch solves the issue if the enumerative synthesis is used, even though it's mandatory to specify Is there any plan to support the same with the |
hi Matteo, just a quick heads up that I just changed I'd be interested to hear more about your experience comparing these two algotihms. my experience is that CEGIS indeed performs better on hand-written tests, but that the enunerator greatly wins in real applications where the left-hand-sides being optimized are large and contain many instructions that are not really involved with the optimization. if you see examples where large LHSs are optimized better by CEGIS than by the enumerator, please let us know. I'll leave this PR open for a few days in case we want to chat more about this, then I'll close |
Thanks John for the heads up! I have some sliced IR files with quite big LHSs that are synthesized properly by CEGIS (given a possible set of feasible components as input) and I've never managed to get them to work with the enumerator. The root node is synthesized to approximately 5/6 instructions. This evening I can collect them, retest them with the newest changes (even reducing the set of components used by the enumerator) and send them over to you if you'd like to give it a try. The only issue is that I'd like to keep them private for now. Can I send them somewhere safe? If not, I'll eventually come up with similar tests that show the same behaviour (if possible). |
Hi Matteo, I'd love to look at these if you don't mind sharing. We won't share them outside of my group. If you want, email me at [email protected]. Thanks! |
Hi, I noticed that Souper has support for some examples based on phi nodes and I was wondering if it is able to synthesize the following small switch-case example:
Alive2 seems to be able to verify the equivalence between the function and a possible synthesized version: https://alive2.llvm.org/ce/z/qoQkhD.
I tried (without success) with the following command line:
souper --souper-exploit-blockpcs --souper-infer-inst --souper-synthesis-comps=eq,select,const,const,const switch.bc
.Am I missing some option or is there something stopping Souper from synthesizing this example?
The text was updated successfully, but these errors were encountered: