Compact sets in RelationAnalysis#1044
Conversation
|
I get the following error |
hernanponcedeleon
left a comment
There was a problem hiding this comment.
First pass up to IndexedSet.java
Fixed that now.
|
…veRelationAnalysis`
Add IndexedSet.containsAll(Collection) Add IndexedSet.unmodifiableView()
.removeAll(Collection) .retainAll(Collection)
Add copy-on-write flag to IndexedSet. Remove toUnmodifiableView() because it had no live view on loneMember.
|
|
I haven't yet checked in detail what you changed in the LAZY RA but there is a regression vs EDIT: actually, I do not think is a good idea to touch the lazy analysis. The performance of the native one now is so good that probably the main use case for lazy is to check both analyses compute the same results. For that, the current implementation of lazy should be good enough |
Caused by
I reverted the latest changes. |
|
I do not plan any feature additions to this MR. Something like |
|
These are the latest results on SVCOMP benchmarks
I am fine with the current version of the code, so unless @ThomasHaas has further comments, I think we can merge |
ThomasHaas
left a comment
There was a problem hiding this comment.
I haven't checked the code in detail, but I think it is fine overall and the tests show it is correct as well. We can merge.
IndexedDomain<T>, a list of distinct elements with a hashtable-poweredindexOfmethod.IndexedSet<T>, an implementation ofSet<T>that usesIndexedDomain<T>and a bit array to describe its contents.ExecutionAnalysis(EA) withIndexedSet.HashSet<T>withIndexedSet<T>inRelationAnalysis(RA) andActiveSetAnalysis(ASA).VisibilityAnalysisRelationEventDomainsto allow using a smaller domain on most relations inRelationAnalysis.Given a transitive closure
The bottom-up propagation should compute
In development, the result was smaller
Without this, XRA and ASA produce the same results as
developmentin all tests.EventDomainRepositoryto create domains to be used by analyses.Table 1 - Performance for suite
benchmarks/challengingin seconds (only the mentioned analyses). For each pair of rows, the upper describesdevelopmentand the lower describes this PR.cna.c rc11.catcna.c imm.catharris-3.c rc11.catharris-3.c imm.catwsq.c rc11.catwsq.c imm.cat