-
Notifications
You must be signed in to change notification settings - Fork 31
Some improvements to aarch64 pseudo-assembly #741
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
Conversation
dartagnan/src/main/java/com/dat3m/dartagnan/program/processing/ProcessingManager.java
Show resolved
Hide resolved
dartagnan/src/main/java/com/dat3m/dartagnan/parsers/program/visitors/VisitorLitmusAArch64.java
Outdated
Show resolved
Hide resolved
dartagnan/src/main/java/com/dat3m/dartagnan/parsers/program/visitors/VisitorLitmusAArch64.java
Outdated
Show resolved
Hide resolved
6eb5059
to
ced0faa
Compare
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
I clarified with Luc about the zero registers (see herd/herdtools7#988). Memory orderings are preserved (thus we need to keep loads targeting zero registers, but use a dummy register), but there are no data/addr/ctrl dependencies. Thus, we need to replace |
Tested by @db7 on tests generated from real assembly. @ThomasHaas unless you have further comments I will merge |
dartagnan/src/main/java/com/dat3m/dartagnan/parsers/program/utils/ProgramBuilder.java
Outdated
Show resolved
Hide resolved
dartagnan/src/main/java/com/dat3m/dartagnan/program/processing/ReplaceZeroRegisters.java
Outdated
Show resolved
Hide resolved
dartagnan/src/main/java/com/dat3m/dartagnan/program/processing/ReplaceZeroRegisters.java
Outdated
Show resolved
Hide resolved
dartagnan/src/main/java/com/dat3m/dartagnan/program/processing/ReplaceZeroRegisters.java
Outdated
Show resolved
Hide resolved
1352dd5
to
16cea7c
Compare
@ThomasHaas as we discussed, I ended up fully moving the transformation to the parsing rather than trying to add zero registers to the core language to avoid problems with all the other passes. AFAIK the current behavior should be equivalent to herd7, e.g. this program
generates a witness where the read value is one, but the value is discarded |
Sounds good. I will approve once the CI is done. EDIT: You have this TODO about the relation analysis. You should fix that before merging. |
Signed-off-by: Hernan Ponce de Leon <[email protected]>
Signed-off-by: Hernan Ponce de Leon <[email protected]>
Signed-off-by: Hernan Ponce de Leon <[email protected]>
ca56038
to
6acbdb2
Compare
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
I am waiting for @db7 to finish some testing and if there are no problems, I will merge |
The test is still running. The generation of test cases is still quite inefficient. |
Signed-off-by: Hernan Ponce de Leon <[email protected]>
This PR adds support for
It also enables some more passes for litmus code.
TODO
LazyRelationAnalysis
andNativeRelationAnalysis
Relation analysis with immutable and lazy data structures #743