Skip to content
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

Drop support for LLVM < 15, legacy pass manager and non-opaque IR pointers #4657

Merged
merged 9 commits into from
May 20, 2024

Conversation

kinke
Copy link
Member

@kinke kinke commented May 12, 2024

LLVM 14 is the first version supporting both new pass manager and opaque IR pointers.

LLVM 14 is the first version supporting both new pass manager and
opaque IR pointers.
@kinke kinke force-pushed the rm_llvm_11_12_13 branch 3 times, most recently from a326e47 to 9a611d5 Compare May 12, 2024 02:51
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.
@kinke kinke force-pushed the rm_llvm_11_12_13 branch 3 times, most recently from 0ec399b to 8df40b4 Compare May 12, 2024 15:57
@kinke
Copy link
Member Author

kinke commented May 12, 2024

Dropping typed IR pointers seems not really feasible yet:

So I guess that'll have to wait until we raise min LLVM to v17.

@kinke
Copy link
Member Author

kinke commented May 19, 2024

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.

@JohanEngelen
Copy link
Member

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).
@kinke kinke changed the title Drop support for LLVM < 14 Drop support for LLVM < 15 May 19, 2024
@kinke kinke changed the title Drop support for LLVM < 15 Drop support for LLVM < 15, legacy pass manager and non-opaque IR pointers May 19, 2024
@kinke kinke marked this pull request as ready for review May 19, 2024 15:46
@kinke
Copy link
Member Author

kinke commented May 19, 2024

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
@kinke kinke merged commit ee9f3a1 into ldc-developers:master May 20, 2024
19 checks passed
@kinke kinke deleted the rm_llvm_11_12_13 branch May 20, 2024 12:16
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants