-
Notifications
You must be signed in to change notification settings - Fork 103
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
--remove-dead-values
pass crashes on any complex enough CIR code
#1149
Comments
Great to see you playing with the MLIR passes and how CIR behave with them. So far we have only tried a few, improvements and enablement of more of these would be great |
I also looked at these things a few months ago, and I believe that CIR will require a non trivial Dialect design work in order to play nicely with the powerful features MLIR has up its sleeve. I understand that the goal right now is to establish some end-to-end flow, but I also ponder at the complexity each new commit might introduce in such future Dialect designer. @bcardosolopes - I’d be happy to hear your thoughts :) |
In general it's a known problem that we violate some MLIR invariants until we reach flat CIR, right? Fixing some of those seems difficult until something like https://discourse.llvm.org/t/rfc-region-based-control-flow-with-early-exits-in-mlir/76998 lands. #978 had some good related discussion as well. We should of course try to make things better here wherever possible, I just wanted to make sure my own understanding was correct. |
Great news! |
For example with the ClangIR of the day bae7bd9 on https://github.com/llvm/clangir/blob/main/clang/test/CIR/Lowering/ThroughMLIR/scope.cir
This is an old story that CIR is not yet a clean dialect to survive to some usual code analyses and code transformations.
The text was updated successfully, but these errors were encountered: