-
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
New Execution Model #783
New Execution Model #783
Conversation
c4e6891
to
f57457d
Compare
I ran the CI 3 times and each time there is a different set of benchmarks failing. Both Based on a quick check to the changes in this PR, I suspect the issue in not in this code. The non-determinism of the problem makes me believe this is yet another issue with the alias analysis. |
I don't see why the alias analysis should be the culprit. This PR should not introduce any semantic changes and not affect solving at all, thus it should not be able to uncover any new bugs. |
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.
What are the goals of the new execution model?
Is it a goal to have a general-purpose execution model/witness format that is independent from SMT solving?
Is it a goal to have an exchangable execution format, i.e., it should be dumpable/parsable (at least in principle)?
Any other possible goals?
dartagnan/src/main/java/com/dat3m/dartagnan/verification/model/ExecutionModel.java
Outdated
Show resolved
Hide resolved
dartagnan/src/main/java/com/dat3m/dartagnan/verification/model/ExecutionModelNext.java
Outdated
Show resolved
Hide resolved
dartagnan/src/main/java/com/dat3m/dartagnan/verification/model/ExecutionModelNext.java
Outdated
Show resolved
Hide resolved
dartagnan/src/main/java/com/dat3m/dartagnan/verification/model/ExecutionModelNext.java
Outdated
Show resolved
Hide resolved
...gnan/src/main/java/com/dat3m/dartagnan/verification/model/relation/RelationModelManager.java
Outdated
Show resolved
Hide resolved
dartagnan/src/main/java/com/dat3m/dartagnan/verification/solving/RefinementSolver.java
Outdated
Show resolved
Hide resolved
dartagnan/src/main/java/com/dat3m/dartagnan/verification/model/ExecutionModelManager.java
Outdated
Show resolved
Hide resolved
dartagnan/src/main/java/com/dat3m/dartagnan/verification/model/ExecutionModelManager.java
Outdated
Show resolved
Hide resolved
dartagnan/src/main/java/com/dat3m/dartagnan/verification/model/event/CondJumpModel.java
Outdated
Show resolved
Hide resolved
dartagnan/src/main/java/com/dat3m/dartagnan/verification/model/event/CondJumpModel.java
Outdated
Show resolved
Hide resolved
9de5e16
to
8e8a4ae
Compare
Signed-off-by: Tianrui Zheng <tianrui.zheng@huawei.com>
Signed-off-by: Tianrui Zheng <tianrui.zheng@huawei.com>
Signed-off-by: Tianrui Zheng <tianrui.zheng@huawei.com>
Signed-off-by: Tianrui Zheng <tianrui.zheng@huawei.com>
Signed-off-by: Tianrui Zheng <tianrui.zheng@huawei.com>
Signed-off-by: Tianrui Zheng <tianrui.zheng@huawei.com>
Signed-off-by: Tianrui Zheng <tianrui.zheng@huawei.com>
Signed-off-by: Tianrui Zheng <tianrui.zheng@huawei.com>
Signed-off-by: Tianrui Zheng <tianrui.zheng@huawei.com>
Signed-off-by: Tianrui Zheng <tianrui.zheng@huawei.com>
Signed-off-by: Tianrui Zheng <tianrui.zheng@huawei.com>
Signed-off-by: Tianrui Zheng <tianrui.zheng@huawei.com>
Signed-off-by: Tianrui Zheng <tianrui.zheng@huawei.com>
Signed-off-by: Tianrui Zheng <tianrui.zheng@huawei.com>
Signed-off-by: Tianrui Zheng <tianrui.zheng@huawei.com>
Signed-off-by: Tianrui Zheng <tianrui.zheng@huawei.com>
Signed-off-by: Tianrui Zheng <tianrui.zheng@huawei.com>
…elations inside building of ExecutionModelNext Signed-off-by: Tianrui Zheng <tianrui.zheng@huawei.com>
Signed-off-by: Tianrui Zheng <tianrui.zheng@huawei.com>
Signed-off-by: Tianrui Zheng <tianrui.zheng@huawei.com>
Signed-off-by: Tianrui Zheng <tianrui.zheng@huawei.com>
5a7238d
to
5154f0f
Compare
Signed-off-by: Tianrui Zheng <tianrui.zheng@huawei.com>
Signed-off-by: Tianrui Zheng <tianrui.zheng@huawei.com>
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.
I still need to review the RelationModelManager. Will try to do that one tomorrow
dartagnan/src/main/java/com/dat3m/dartagnan/configuration/OptionNames.java
Outdated
Show resolved
Hide resolved
dartagnan/src/main/java/com/dat3m/dartagnan/solver/caat4wmm/EventDomainNext.java
Show resolved
Hide resolved
dartagnan/src/main/java/com/dat3m/dartagnan/verification/model/ExecutionModelManager.java
Outdated
Show resolved
Hide resolved
dartagnan/src/main/java/com/dat3m/dartagnan/verification/model/ExecutionModelManager.java
Outdated
Show resolved
Hide resolved
dartagnan/src/main/java/com/dat3m/dartagnan/verification/model/ExecutionModelNext.java
Outdated
Show resolved
Hide resolved
dartagnan/src/main/java/com/dat3m/dartagnan/verification/model/event/LoadModel.java
Outdated
Show resolved
Hide resolved
dartagnan/src/main/java/com/dat3m/dartagnan/verification/model/relation/RelationModel.java
Outdated
Show resolved
Hide resolved
dartagnan/src/main/java/com/dat3m/dartagnan/verification/model/relation/RelationModel.java
Outdated
Show resolved
Hide resolved
dartagnan/src/main/java/com/dat3m/dartagnan/witness/graphviz/ExecutionGraphVisualizer.java
Outdated
Show resolved
Hide resolved
dartagnan/src/main/java/com/dat3m/dartagnan/witness/graphviz/ExecutionGraphVisualizer.java
Outdated
Show resolved
Hide resolved
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.
It is not clear to me where is the code there is the distinction between what we want to display in a graph (the "visualizer") and the model per se (which should be used to compute derived relations). We discussed the bug due to co
not having the whole transitive closure, but the same would probably happen for po
...gnan/src/main/java/com/dat3m/dartagnan/verification/model/relation/RelationModelManager.java
Outdated
Show resolved
Hide resolved
...gnan/src/main/java/com/dat3m/dartagnan/verification/model/relation/RelationModelManager.java
Outdated
Show resolved
Hide resolved
...gnan/src/main/java/com/dat3m/dartagnan/verification/model/relation/RelationModelManager.java
Outdated
Show resolved
Hide resolved
...gnan/src/main/java/com/dat3m/dartagnan/verification/model/relation/RelationModelManager.java
Outdated
Show resolved
Hide resolved
...gnan/src/main/java/com/dat3m/dartagnan/verification/model/relation/RelationModelManager.java
Outdated
Show resolved
Hide resolved
...gnan/src/main/java/com/dat3m/dartagnan/verification/model/relation/RelationModelManager.java
Outdated
Show resolved
Hide resolved
...gnan/src/main/java/com/dat3m/dartagnan/verification/model/relation/RelationModelManager.java
Outdated
Show resolved
Hide resolved
...gnan/src/main/java/com/dat3m/dartagnan/verification/model/relation/RelationModelManager.java
Outdated
Show resolved
Hide resolved
...gnan/src/main/java/com/dat3m/dartagnan/verification/model/relation/RelationModelManager.java
Outdated
Show resolved
Hide resolved
...gnan/src/main/java/com/dat3m/dartagnan/verification/model/relation/RelationModelManager.java
Outdated
Show resolved
Hide resolved
Signed-off-by: Tianrui Zheng <tianrui.zheng@huawei.com>
Signed-off-by: Tianrui Zheng <tianrui.zheng@huawei.com>
Signed-off-by: Tianrui Zheng <tianrui.zheng@huawei.com>
Signed-off-by: Tianrui Zheng <tianrui.zheng@huawei.com>
Signed-off-by: Tianrui Zheng <tianrui.zheng@huawei.com>
dartagnan/src/main/java/com/dat3m/dartagnan/solver/caat4wmm/EventDomainNext.java
Show resolved
Hide resolved
dartagnan/src/main/java/com/dat3m/dartagnan/verification/model/ExecutionModelManager.java
Outdated
Show resolved
Hide resolved
dartagnan/src/main/java/com/dat3m/dartagnan/verification/model/ExecutionModelManager.java
Outdated
Show resolved
Hide resolved
dartagnan/src/main/java/com/dat3m/dartagnan/verification/model/ExecutionModelManager.java
Outdated
Show resolved
Hide resolved
dartagnan/src/main/java/com/dat3m/dartagnan/verification/model/ExecutionModelManager.java
Outdated
Show resolved
Hide resolved
dartagnan/src/main/java/com/dat3m/dartagnan/verification/model/ExecutionModelManager.java
Outdated
Show resolved
Hide resolved
dartagnan/src/main/java/com/dat3m/dartagnan/verification/model/ExecutionModelManager.java
Outdated
Show resolved
Hide resolved
dartagnan/src/main/java/com/dat3m/dartagnan/verification/model/event/CondJumpModel.java
Show resolved
Hide resolved
dartagnan/src/main/java/com/dat3m/dartagnan/witness/graphviz/ColorMap.java
Outdated
Show resolved
Hide resolved
dartagnan/src/main/java/com/dat3m/dartagnan/witness/graphviz/ExecutionGraphVisualizer.java
Outdated
Show resolved
Hide resolved
Signed-off-by: Tianrui Zheng <tianrui.zheng@huawei.com>
Signed-off-by: Tianrui Zheng <tianrui.zheng@huawei.com>
dartagnan/src/main/java/com/dat3m/dartagnan/verification/model/ExecutionModelManager.java
Outdated
Show resolved
Hide resolved
dartagnan/src/main/java/com/dat3m/dartagnan/verification/model/ExecutionModelManager.java
Outdated
Show resolved
Hide resolved
dartagnan/src/main/java/com/dat3m/dartagnan/verification/model/ExecutionModelManager.java
Outdated
Show resolved
Hide resolved
dartagnan/src/main/java/com/dat3m/dartagnan/verification/model/ExecutionModelManager.java
Outdated
Show resolved
Hide resolved
dartagnan/src/main/java/com/dat3m/dartagnan/verification/model/ExecutionModelManager.java
Outdated
Show resolved
Hide resolved
dartagnan/src/main/java/com/dat3m/dartagnan/verification/model/ExecutionModelManager.java
Outdated
Show resolved
Hide resolved
dartagnan/src/main/java/com/dat3m/dartagnan/verification/model/event/DefaultEventModel.java
Outdated
Show resolved
Hide resolved
dartagnan/src/main/java/com/dat3m/dartagnan/verification/model/event/FenceModel.java
Outdated
Show resolved
Hide resolved
dartagnan/src/main/java/com/dat3m/dartagnan/verification/model/event/LocalModel.java
Outdated
Show resolved
Hide resolved
dartagnan/src/main/java/com/dat3m/dartagnan/verification/solving/RefinementSolver.java
Outdated
Show resolved
Hide resolved
Signed-off-by: Tianrui Zheng <tianrui.zheng@huawei.com>
dartagnan/src/main/java/com/dat3m/dartagnan/verification/model/ExecutionModelManager.java
Outdated
Show resolved
Hide resolved
dartagnan/src/main/java/com/dat3m/dartagnan/verification/model/ValueModel.java
Outdated
Show resolved
Hide resolved
Signed-off-by: Tianrui Zheng <tianrui.zheng@huawei.com>
dartagnan/src/main/java/com/dat3m/dartagnan/verification/model/event/AssertModel.java
Outdated
Show resolved
Hide resolved
Signed-off-by: Tianrui Zheng <tianrui.zheng@huawei.com>
dartagnan/src/main/java/com/dat3m/dartagnan/verification/model/ExecutionModelManager.java
Show resolved
Hide resolved
dartagnan/src/main/java/com/dat3m/dartagnan/verification/model/event/DefaultEventModel.java
Outdated
Show resolved
Hide resolved
dartagnan/src/main/java/com/dat3m/dartagnan/verification/model/event/DefaultEventModel.java
Outdated
Show resolved
Hide resolved
Signed-off-by: Tianrui Zheng <tianrui.zheng@huawei.com>
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.
LGTM
dartagnan/src/main/java/com/dat3m/dartagnan/witness/graphviz/ExecutionGraphVisualizer.java
Outdated
Show resolved
Hide resolved
dartagnan/src/main/java/com/dat3m/dartagnan/witness/graphviz/ExecutionGraphVisualizer.java
Show resolved
Hide resolved
dartagnan/src/main/java/com/dat3m/dartagnan/witness/graphviz/ExecutionGraphVisualizer.java
Outdated
Show resolved
Hide resolved
dartagnan/src/main/java/com/dat3m/dartagnan/witness/graphviz/ExecutionGraphVisualizer.java
Outdated
Show resolved
Hide resolved
Signed-off-by: Tianrui Zheng <tianrui.zheng@huawei.com>
Signed-off-by: Tianrui Zheng <tianrui.zheng@huawei.com>
Signed-off-by: Tianrui Zheng <tianrui.zheng@huawei.com>
Signed-off-by: Tianrui Zheng <tianrui.zheng@huawei.com>
I think the code is good enough to merge now :) |
69abc4c
into
hernanponcedeleon:development
In this PR a new implementation of execution model called
ExecutionModelNext
is added. With the new model moreEvents
(Locals
andAsserts
) andRelations
(theoretically all theRelations
defined in the.cat
files) can be shown in the witness graph.Similar as the old one, the new model serves as the representation of an execution in
Dartagnan
. The two models hold similar information which is organized in similar names and formats. But they two differ in the following:Events
,Relations
andMemoryObjects
out of the model are separated and implemented in three correspondingManagers
:EventModelManager
,RelationModelManager
andExecutionModelManager
. BesidesExecutionModelNext
, we haveRelationModels
andEventModels
representingRelations
andEvents
, respectively.generateGraphvizFile()
ofExecutionGraphVisualizer
use the new model. In other words, the new model is utilized for witness generation only, while theCAATSolver
still uses the old model.As explained above, the new model does NOT replace the old one so far. They have to coexist, which can be seen as a repetition of some data structures and functionalities and needs further refinements.