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

remove sorts from some optimisation passes #4468

Closed
wants to merge 1 commit into from

Conversation

Ravenslofty
Copy link
Collaborator

I was given a test case that is an example of #3713, where changing the name of a variable changed synthesis results. I tracked that down to a handful of design->sort() calls which sort the wires in the design alphabetically; removing them leads to identical synthesis results for the changed names.

This isn't really a fix for #3713, but it does alleviate some of the pain.

@widlarizer
Copy link
Collaborator

But there must have been some intention behind these sorts. Avoiding reordering parts of a design before vs after a command seems just about as valid a UX requirement as "a newline doesn't change how my stuff synthesizes"

@Ravenslofty
Copy link
Collaborator Author

Well, based on how the Anlogic latch test produces very different synthesis results on macOS vs Linux, perhaps one of those reasons was to mitigate platform differences.

But from my experiments, Yosys is generally pretty good at preserving the order of things in the network anyway.

@widlarizer
Copy link
Collaborator

I don't believe #3713 is as severe as unknown changes to the risk of platform dependent results. Have we previously identified the sources of platform dependent behavior inside yosys so that I could review this PR by verifying whether any apply here?

@Ravenslofty Ravenslofty closed this Jul 9, 2024
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