-
-
Notifications
You must be signed in to change notification settings - Fork 268
Drop support for LLVM < 15, legacy pass manager and non-opaque IR pointers #4657
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
LLVM 14 is the first version supporting both new pass manager and opaque IR pointers.
a326e47
to
9a611d5
Compare
The new min LLVM version isn't provided by Ubuntu 20 officially, so resort to the LLVM apt repo for now, as we are stuck with Ubuntu 20 due to the gdb regressions.
0ec399b
to
8df40b4
Compare
Dropping typed IR pointers seems not really feasible yet:
So I guess that'll have to wait until we raise min LLVM to v17. |
Any opinions? Or concerns wrt. dropping the legacy pass manager support? As another option, we could drop LLVM 14 too, drop typed IR pointers already, and live with that one test failure for LLVM < 17 (a bit of a PITA, as the same failure causes a druntime integration test to fail too). I don't think that LLVM problem would be a huge deal in practice, for non-official packages using such an older LLVM (or our official FreeBSD package, which uses LLVM 15 IIRC). It'd be interesting to see when clang switched to opaque IR pointers by default. Edit: According to godbolt, clang switched in v15 already. |
No concerns from my side. Weka is using LLVM14 at the moment, but that's because of using an older LDC for now. The plan is to upgrade to 1.38 first, then upgrade LLVM, and then to later LDC. So no problem if 1.39 does not support LLVM14. |
Mainly because opaque IR pointers appear buggy in LLVM 14 (LLVM crashes when compiling druntime).
This is ready; it's just that the 'required' CI jobs need to be adapted after landing this. I'll try to follow up with some pointer-bitcast cleanup; I have something locally already, but it appears to be misbehaving badly at the moment. ;) |
Conflicts: CMakeLists.txt tools/CMakeLists.txt
LLVM 14 is the first version supporting both new pass manager and opaque IR pointers.