-
Notifications
You must be signed in to change notification settings - Fork 13.4k
Document GlobalISel's combiner guidelines #92309
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
Comments
I vote for a section about the combiner design. We compile the Combine.td into a matchable. 10 more lines. Complex logic is delegated to From this design, we can conclude:
|
We are not rebuilding InstCombine. We take inspirations from InstCombine. If there are semantic uncertainties, we take InstCombine as the reference. |
Assuming the combiner is at least an artefact combiner, the AArch64 post legalization combiner is too weak, see |
We should/must combine ADDEs post legalization, but we don't. |
To make a secret public, I have some interest in https://reviews.llvm.org/D96031. If this is a legacy way of doing combines and the rules changed, we should document that and make the rules public. #90618 is plain port from InstCombine, which I believe was a great idea and big win for us. |
@tschuett made a good point that our approach to writing combiners in GlobalISel needs some documentation here: #91922
This issue is to track that initial work on elaborating things like:
The text was updated successfully, but these errors were encountered: