Module compare
Expand description
Provides various ways to compare crate::encoding::Encoding
s.
Some of the comparisons require an crate::smt::SmtSolver
.
You can use the liblisa-z3
crate to import bindings to the Z3 SMT solver.
Modules§
- A condensed summary of the architecture comparison, suitable for export to a file.
Structs§
- Options for comparing
MemoryAccesses
. - A matrix of pairwise comparisons between all architectures.
- Options for comparing
Encoding
s. - For each architecture, a group of overlapping encodings.
- The result of
encodings_semantically_equal
. Semantics are guaranteed to be equivalent ifequal && !timeout
holds. - A mapping between part indices of two encodings.
- A row in the architecture comparison table.
- The key for a row in an architecture comparison table. All encodings that have the same RowKey should be grouped into the same row.
- A collection of rows.
Enums§
- The result of a pairwise comparison between two encodings.
- Represents the equivalence between two encodings.
Functions§
- Splits the encoding group into multiple groups, such that each group contains encodings that cover the exact same space. This function is one-to-many. That is, it will generate many smaller groups that each cover a small subset.
- Compares the
MemoryAcesses
of the two encodings, and returns whether they are equal. - Determines if the dataflows of the encodings provided are equal, ignoring the actual computations. Only compares the overlapping parts of the covered instruction space.
- Determines whether two encodings are semantically equivalent.
- Only compares the overlapping parts of the covered instruction space.