-
Notifications
You must be signed in to change notification settings - Fork 216
Final project blog post: Mark Barbone #537
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
Conversation
sampsyo
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Really awesome work, Mark—this is fantastic. Thanks for the clear explanation of your MLIR-inspired IR and the overview of all the steps in the chain required to make the whole round trip work.
This seems like a fun foundation that someone might want to build on in the future. Would you be interested in contributing your machinery back to the Bril monorepo to perhaps help facilitate that?
| A jump to label `.l` is only allowed when `.l` is in scope (this is what makes | ||
| it structured!). Jumping to a `block` label is like a `break`, escaping to the | ||
| end of the block, while jumping to a `loop` label is like a `continue`, going | ||
| back to the loop header for the next iteration. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is a clever way to repurpose Bril labels and jmp in a structured representation.
| flow, or around 65%. Considering just the relooper, interestingly, all 272 | ||
| functions in these combined test suites exhibit reducible control flow, and | ||
| successfully round-trip through just the structured control flow IR. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I agree that this is interesting! I would have expected some benchmark in there to do something weird with its control flow.
I would be interested in this! But I think it deserves some polishing before contributing it. Namely,
Let me know your thoughts -- if this seems reasonable, I'll do it sometime over the summer. |
|
Great! Sure, all of these sound quite reasonable. FWIW, I wouldn't bother trying to create a JSON representation for the static-control-flow form of Bril… that sounds great to have, but not necessary for an "MVP" that we could merge. Concocting a sensible serialization format for ISL sets seems like an "interesting" design problem that we could leave to future generations. |
Closes #508 .