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

Wmm preprocessing #626

Merged
merged 8 commits into from
Feb 28, 2024
Merged

Wmm preprocessing #626

merged 8 commits into from
Feb 28, 2024

Conversation

ThomasHaas
Copy link
Collaborator

@ThomasHaas ThomasHaas commented Feb 25, 2024

This PR reworks Wmm preprocessing to work similar to how program preprocessing works.
It further adds the following passes

  • RemoveDeadRelations which removes relations that do not contribute to axioms. This was already executed in the case of Refinement but now it runs also for the eager encoding although it shouldn't ever remove anything (though we could remove flagged axioms if we do not check for CAT properties which would create a lot of dead relations)
  • MergeEquivalentRelations which attempts to find relations with equivalent relations, replacing them by a single representative. AFAIK, currently it only removes a single rf^-1 from riscv-orig.cat because it matches with another rf^-1 that was implicitly created by parsing fr. EDIT: It also removes duplicates like M*M which are now created multiple times internally.

ThomasHaas and others added 6 commits February 25, 2024 22:01
…cessing.

- Added new Wmm pass that merges equivalent relations
- Fixed ConstraintCopier to preserve axiom names when copying.
- Fixed MergeEquivalentRelations to properly distinguish SameScope relations with different scopes.
- Fixed equality checking between SameScope definitions failing if their scopes were NULL
- Wmm.getOrCreatePredefinedRelation now creates new M*M / M*V relations when needed, relying on MergeEquivalentRelations to merge duplicates later on.
@hernanponcedeleon hernanponcedeleon merged commit 6cc2789 into development Feb 28, 2024
1 check passed
@hernanponcedeleon hernanponcedeleon deleted the wmmProcessing branch February 28, 2024 11:37
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.

2 participants