-
Notifications
You must be signed in to change notification settings - Fork 30
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
Datalog backed relation analysis #708
Conversation
* Updated witness generation functions to return the generated File. * Improved UI: - can select property to check for (only one property at a time) - can generate and render the violation witness in the UI - UI can be scaled with 'ctrl' + '+/-' - Added simple zoom option to displayed witnesses * Added ability to pass configuration options via the UI. * UI programs now get a unified name. Fixed witness generation for programs without names or without file suffix.
Signed-off-by: Hernan Ponce de Leon <[email protected]> Co-authored-by: Hernan Ponce de Leon <[email protected]>
- Function-based analysis and passes now rely on local ids (e.g., for loop detection) for the most part. - Fixed problems in NormalizeLoops.java
…eon#689) Signed-off-by: Hernan Ponce de Leon <[email protected]>
* Added memory layout information to ExecutionModel. * Fixed ExecutionGraphVisualizer printing odd addresses sometimes. * Fix address string computation. * Added better out-of-bounds tagging. * Fixed RefinementSolver.analyzeInconclusiveness.
* Fix copy paste error * Add unit tests --------- Signed-off-by: Hernan Ponce de Leon <[email protected]> Co-authored-by: Hernan Ponce de Leon <[email protected]>
* Added RemoveDeadNullChecks pass * Added TypeFactory.decomposeIntoPrimitives Improved MemToReg to also work on complex allocations. * Avoid Mem2Reg on allocations that are used in RMWs. * Added loop check to avoid unsoundness
…eon#695) Signed-off-by: Hernan Ponce de Leon <[email protected]> Co-authored-by: Hernan Ponce de Leon <[email protected]>
Signed-off-by: Hernan Ponce de Leon <[email protected]> Co-authored-by: Hernan Ponce de Leon <[email protected]>
Signed-off-by: Hernan Ponce de Leon <[email protected]> Co-authored-by: Hernan Ponce de Leon <[email protected]> Co-authored-by: Thomas Haas <[email protected]>
…oncedeleon#700) Signed-off-by: Hernan Ponce de Leon <[email protected]> Co-authored-by: Hernan Ponce de Leon <[email protected]>
Co-authored-by: Dmitry Ivanov <[email protected]>
Co-authored-by: Dmitry Ivanov <[email protected]>
Signed-off-by: Hernan Ponce de Leon <[email protected]> Co-authored-by: Hernan Ponce de Leon <[email protected]> Co-authored-by: Thomas Haas <[email protected]>
@@ -82,7 +82,7 @@ private Dartagnan(Configuration config) throws InvalidConfigurationException { | |||
|
|||
public static void main(String[] args) throws Exception { | |||
|
|||
initGitInfo(); | |||
// initGitInfo(); |
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.
// initGitInfo(); | |
initGitInfo(); |
@@ -39,6 +39,8 @@ public static void configure(Configuration config) throws InvalidConfigurationEx | |||
|
|||
private static final boolean USE_TEST_PATH = isJUnitTest(); | |||
|
|||
public static final boolean CHECK_DATALOG = true; // Enables comparing basic RA in datalog against native |
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.
public static final boolean CHECK_DATALOG = true; // Enables comparing basic RA in datalog against native | |
public static final boolean CHECK_DATALOG = false; // Enables comparing basic RA in datalog against native |
RelationAnalysis.Config c = new RelationAnalysis.Config(config); | ||
c.method = RelationAnalysisMethod.DATALOG; |
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.
RelationAnalysis.Config c = new RelationAnalysis.Config(config); | |
c.method = RelationAnalysisMethod.DATALOG; | |
RelationAnalysis.Config c = new RelationAnalysis.Config(config); |
@DIvanov503 I killed the pipeline after 14hs. There seems to be a problem with I tried a few examples manually and they all finished relatively fast. I tried specially the ones having large number of events or using RCU features which I thought could make the analysis harder. I guess we need a script to run examples one by one in the console to find out which test(s) are not finishing. |
Co-authored-by: Natalia Gavrilenko <[email protected]> Co-authored-by: Hernan Ponce de Leon <[email protected]> Co-authored-by: haining <[email protected]> Co-authored-by: Thomas Haas <[email protected]>
…ncedeleon#710) Co-authored-by: Natalia Gavrilenko <[email protected]>
I wouldn't try to fix the native RA in this PR (especially if the source of the problem is unclear). If you have a proper fix, put it into a separate PR. |
I agree but I
Hence I want the pipeline to pass using the datalog RA for checking if both implementations compute the same results. Once it's done and I'm convinced about the fix, it can go to a different PR. |
Co-authored-by: Natalia Gavrilenko <[email protected]>
48d880d
to
9a23ab0
Compare
As discussed with @DIvanov503, this was supersed by #743, this cloosing. |
No description provided.