Skip to content
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

Actual assume vs assert distinction, named rules, move to aarch64 files #62

Merged
merged 30 commits into from
Apr 12, 2023

Conversation

avanhatt
Copy link
Owner

No description provided.

@avanhatt avanhatt merged commit babf788 into verify-main Apr 12, 2023
avanhatt pushed a commit that referenced this pull request May 26, 2023
Add a `byte-array` proc-macro crate for converting strings into byte
arrays that don't use static initializers, and use it to implement
`eprintln`, an `unreachable` that prints the line number, and other
macros.
avanhatt pushed a commit to wellesley-prog-sys/wasmtime that referenced this pull request Sep 22, 2024
Ensure that `isaspec` output is deterministic.

Previously `HashSet` iteration order was causing randomness. This PR
sorts the outputs.

Updates avanhatt#62
avanhatt pushed a commit to wellesley-prog-sys/wasmtime that referenced this pull request Sep 22, 2024
When generating specs from ASLp, we have to define a mapping between
spec inputs and variables in the derived constraints. Previously we
would do this lazily by introducing equality constraints. This not only
looks awful avanhatt#62, but anecdotally may also have solver performance
implications. This PR updates the spec generation to substitute the
mapped expressions for the variables instead.

Updates avanhatt#62 avanhatt#37
avanhatt pushed a commit to wellesley-prog-sys/wasmtime that referenced this pull request Sep 23, 2024
This PR changes the `isaspec` tool to generate multiple files.

As we extend the use of ASLp, we are generating a lot of spec code. This
is especially true for `BitRR` which we'll be adding soon. Allowing the
tool to generate more than one file will hopefully make them a bit more
manageable.

Updates avanhatt#35 avanhatt#62
avanhatt pushed a commit to wellesley-prog-sys/wasmtime that referenced this pull request Sep 23, 2024
Generate ASLp-based spec for the `BitRR` instruction `Cls` opcode.

Updates avanhatt#35 avanhatt#42 avanhatt#62
avanhatt pushed a commit to wellesley-prog-sys/wasmtime that referenced this pull request Oct 9, 2024
Now we have the `(with ...)` scope there is no need to use unique
`v<i>_<j>` prefixes for temporary variables. This PR switches to use
`t<i>` names.

Aside from looking nicer it also removes a piece of config we need to
track.

Updates avanhatt#62
avanhatt pushed a commit to wellesley-prog-sys/wasmtime that referenced this pull request Oct 9, 2024
Upgrade `aslp` to the latest version.

No longer necessary to depend on fork since UQ-PAC/aslp#107 has landed.
PR UQ-PAC/aslp#110 also made some helpful simplifications.

Updates avanhatt#62 avanhatt#63
avanhatt pushed a commit to wellesley-prog-sys/wasmtime that referenced this pull request Oct 9, 2024
Change generation of specs split on match cases so the requires uses
`match` also.

The change in avanhatt#101 is actually broken, though it did't trigger any
errors because the specs are unused on the main branch. When working on
avanhatt#99 the error does manifest. Specifically, the error is in the generated
requires clauses:


https://github.com/mmcloughlin/veriisle-wasmtime/blob/432bd4a86635cd82c76857689ff67c77e99cbd4e/cranelift/codegen/src/isa/aarch64/spec/loads.isle#L111-L113

This references the variable `extendop`, which does not exist. It
doesn't exist because it's a field of the enum variant, and we haven't
brought its fields into scope.

This change updates the match case spec generation to use a match in the
requires as well. This is probably a cosmetic regression avanhatt#62. If we care
to we could update this in future to only use a match statement in the
case where the child requires accesses the variable, but it doesn't seem
worth it for now.

Updates avanhatt#35 avanhatt#48
avanhatt pushed a commit to wellesley-prog-sys/wasmtime that referenced this pull request Oct 9, 2024
Make `isaspec` output line length configurable, and increase it to 120.

Updates avanhatt#62
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant