-
Notifications
You must be signed in to change notification settings - Fork 11
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
Thorin Inline Optimization #144
Conversation
Really cool :) I haven't looked into the impl yet, but right off the bat a few questions/minor remarks:
|
The composition and execution are not yet implemented. I just sketched the communication.
The lower level would be to write the classes of the passes into the map.
I wanted to express that some dialects provide pre-defined phases/pipeline parts.
|
The doxygen issue is probably doxygen/doxygen#9668. I think the best "fix" for now, would be to disable |
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.
Fantastic work 👍
Just some nitpicking here and there. On a more general remark: Can we directly remove the old PipelineBuilder stuff or what is hindering us from nuking this?
The PipelineBuilder itself is currently used by the new system. To remove the PipelineBuilder from the other places (adding default passes in each dialect, building a priority queue, resolving it to a pipeline, ...), we need a good way to handle default compilation. |
Until we have fixed the macos issue, I'd suggest to simply disable these tests entirely. If everything else is green, I think we can merge. |
I thought about adding a dialect But let's postpone this after this is merged. |
Currently, the tests fail due to 4cb5d7f because the test cases no longer know which optimizations should be performed. (Some fail, some crash, some diverge, and some crash and diverge)
I will for now re-add the old compilation such that the inline optimization is completely additional. |
This PR is then ready to be merged. |
In this PR, we want to realize the inline construction of compilation pipelines.
Concept:
Alternatively to
PassMan
we could go one level higher toPipelineBuilder
.We can not go one level lower to the pass directly due to reflection restrictions requiring one level (or two) of indirection.
The optimization function would look for the
_compile
function and evaluate it or simulate it to construct a new Pipeline to be executed.Additionally, the
compile
could provide more advanced combinators and even constructs to guide the evaluation/simulation of the pipeline.