-
Notifications
You must be signed in to change notification settings - Fork 135
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
Difference between llvmslicer and dg #107
Comments
Marek's reply You mean LLVMSlicer? (https://github.com/jirislaby/LLVMSlicer). The major difference is that dg has more precise and sound analyses (which can lead to smaller slices). The slicing algorithm itself slices more or less the same, since I haven't implemented the two-pass algorithm of Horwitz nor any other more precise version (e.g. specialization slicing) yet. Actually, dg was designed as a replacement for LLVMSlicer in the tool Symbiotic (https://github.com/staticafi/symbiotic). You can find more detailed information about dg here: http://is.muni.cz/th/396236/fi_m/thesis.pdf |
Yes, it is LLVMSlicer. When you say dg has more precise and sound analyses, it is in what sense ? Is the pointer analysis of dg more precise ? |
Yeah, well our PDG based algorithm has the same calling context issue at this moment. Dg has two pointer analyses: flow-insensitive and flow-sensitive. The flow-sensitive is more precise by design, but it is still not well debugged (there's at least one bug I know about). The flow-insensitive is basically the same as in LLVMSlicer, with these differences:
|
Thanks for sharing these details.
As noted here "Both context-sensitive points-to So, which pointer analysis algorithm are we using in dg ? Was there a
On Fri, Nov 11, 2016 at 8:29 AM, Marek Chalupa [email protected]
|
|
On Fri, Nov 11, 2016 at 2:36 PM, Marek Chalupa [email protected]
|
Oh yeah, I meant there's no research paper comparing our pointer analyses. |
Initial question:
I am using llvmslicer. Except llvmslicer is based on cfg and dg is based on pdg, what are the other major differences between dg and llvmslicer ? Does dg generate smaller slice ?
The text was updated successfully, but these errors were encountered: