Print hashes in AST prettyprint output#478
Merged
tmcdonell merged 2 commits intoAccelerateHS:masterfrom Jan 8, 2021
Merged
Conversation
8 tasks
Member
|
We could add this under the option |
Member
Author
|
I think that makes sense. Users that aren't interested in internals are not going to pass The only imperfectness I think is that I'll have a look later today at making this conditional on the |
Member
|
Thanks! |
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.
Description
In this PR, the prettyprinter for the AST is changed to annotate nodes with their hash. This is accomplished by creating a new
PrettyConfigtype that, for now, specifies just one configurable item: the formatting function for node names. In the future this could potentially include more settings (what comes to mind is a setting to output a best-effort approximation of valid Haskell input).The reason why this is still a draft PR is that the hashes are currently printed unconditionally: we might want to disable this by default. However, I'm not sure how best to make this configurable (an environment variable feels ugly for this); what do you think?
Motivation and context
This is useful in particular when used together with AccelerateHS/accelerate-llvm#65, which prints the hash of the AST corresponding to a kernel in the
-ddump-execoutput. This then allows linking the timings in that debug output with the actual AST, which is useful for profiling larger Accelerate programs.How has this been tested?
It looks right on the small and large example that I tested. :)
Types of changes
What types of changes does your code introduce? Put an
xin all the boxes that apply:Checklist
Go over all the following points, and put an
xin all the boxes that apply. If you're unsure about any of these, don't hesitate to ask. We're here to help!