-
-
Notifications
You must be signed in to change notification settings - Fork 5.5k
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
dump: implement cycle handling in has_backedge_to_worklist #46749
Merged
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
vtjnash
added a commit
that referenced
this pull request
Sep 27, 2022
Previously, we would flatten the edges graph during serialization, to simplify the deserialization codes, but that now was adding complexity and confusion and uncertainty to the code paths. Clean that all up, so that we do not do that. This uses the same algorithm now as #46749 for cycle convergence.
vtjnash
added a commit
that referenced
this pull request
Sep 27, 2022
Previously, we would flatten the edges graph during serialization, to simplify the deserialization codes, but that now was adding complexity and confusion and uncertainty to the code paths. Clean that all up, so that we do not do that. This uses the same algorithm now as #46749 for cycle convergence.
vtjnash
added a commit
that referenced
this pull request
Sep 27, 2022
Previously, we would flatten the edges graph during serialization, to simplify the deserialization codes, but that now was adding complexity and confusion and uncertainty to the code paths. Clean that all up, so that we do not do that. This uses the same algorithm now as #46749 for cycle convergence.
vtjnash
added a commit
that referenced
this pull request
Oct 4, 2022
Previously, we would flatten the edges graph during serialization, to simplify the deserialization codes, but that now was adding complexity and confusion and uncertainty to the code paths. Clean that all up, so that we do not do that. This also avoids needing to interact with backedges at all. This uses the same algorithm now as #46749 for cycle convergence.
vtjnash
added a commit
that referenced
this pull request
Oct 4, 2022
Previously, we would flatten the edges graph during serialization, to simplify the deserialization codes, but that now was adding complexity and confusion and uncertainty to the code paths. Clean that all up, so that we do not do that. This also avoids needing to interact with backedges at all. This uses the same algorithm now as #46749 for cycle convergence.
vtjnash
added a commit
that referenced
this pull request
Oct 4, 2022
Previously, we would flatten the edges graph during serialization, to simplify the deserialization codes, but that now was adding complexity and confusion and uncertainty to the code paths. Clean that all up, so that we do not do that. This also avoids needing to interact with backedges at all. This uses the same algorithm now as #46749 for cycle convergence.
vtjnash
added a commit
that referenced
this pull request
Oct 4, 2022
Previously, we would flatten the edges graph during serialization, to simplify the deserialization codes, but that now was adding complexity and confusion and uncertainty to the code paths. Clean that all up, so that we do not do that. This also avoids needing to interact with backedges at all. This uses the same algorithm now as #46749 for cycle convergence.
timholy
pushed a commit
that referenced
this pull request
Oct 5, 2022
Previously, we would flatten the edges graph during serialization, to simplify the deserialization codes, but that now was adding complexity and confusion and uncertainty to the code paths. Clean that all up, so that we do not do that. Validation is performed while they are represented as forward edges, so avoids needing to interact with backedges at all. This uses the same algorithm now as #46749 for cycle convergence.
vtjnash
added a commit
that referenced
this pull request
Nov 29, 2022
(cherry picked from commit d4f0567)
vtjnash
added a commit
that referenced
this pull request
Nov 29, 2022
Previously, we would flatten the edges graph during serialization, to simplify the deserialization codes, but that now was adding complexity and confusion and uncertainty to the code paths. Clean that all up, so that we do not do that. Validation is performed while they are represented as forward edges, so avoids needing to interact with backedges at all. This uses the same algorithm now as #46749 for cycle convergence. (cherry picked from commit fbd5a72)
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This changes the algorithm for walking the backedges graph slightly to correctly resolve cycles, using the algorithm described for inference-convergence at: https://juliacomputing.com/blog/2017/05/inference-converage2/