[domaintool] Add "synchronousTo" support in CSJ#9969
Merged
Conversation
Add support for extracting and reporting "synchronous to" information for the Clock Spec JSON `domaintool` handler. This information is a way for clock domains to declared that they are synchronously derived from another domain, e.g., that a second domain is the result of dividing a first domain. This builds towards full CSJ support by filling out one missing feature. Note 1: This does not correctly handle situations where a domain has a "synchronous to" relationship and either this or that domain is marked "async" or "static". I am planning to loop back and rework how this is stored with additional information added to the standard Chisel clock domain. Note 2: This expectedly changes the format of the standard Chisel clock domain to add a `synchronousTo: String` property. AI-assisted-by: Augment (Claude Sonnet 4.5) Signed-off-by: Schuyler Eldridge <schuyler.eldridge@sifive.com>
uenoku
reviewed
Mar 18, 2026
Switch all data structures to use `StringAttr` instead of `StringRef` in the Clock Spec JSON (CSJ) handler. I think this was _technically_ safe before as the lifetime of the strings backing the `StringRef`s was guaranteed to extend beyond the lifetime of any handler. However, this was quite unprincipled and violated standard LLVM guidance around use of `StringRef`. Signed-off-by: Schuyler Eldridge <schuyler.eldridge@sifive.com>
This file contains hidden or 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
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.
Add support for extracting and reporting "synchronous to" information for
the Clock Spec JSON
domaintoolhandler. This information is a way forclock domains to declared that they are synchronously derived from another
domain, e.g., that a second domain is the result of dividing a first
domain.
This builds towards full CSJ support by filling out one missing feature.
Note 1: This does not correctly handle situations where a domain has a
"synchronous to" relationship and either this or that domain is marked
"async" or "static". I am planning to loop back and rework how this is
stored with additional information added to the standard Chisel clock
domain.
Note 2: This expectedly changes the format of the standard Chisel clock
domain to add a
synchronousTo: Stringproperty.AI-assisted-by: Augment (Claude Sonnet 4.5)