-
Notifications
You must be signed in to change notification settings - Fork 278
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
Update LLVM intrinsic names for LLVM 15 #1340
Conversation
LLVM 15 removes the pointer type from intrinsic suffixes, effectively replacing `.p0i8` (and other similar types) with just `.p0`. cc rust-lang/rust#102738
@Amanieu: no appropriate reviewer found, use r? to override |
This breaks rustc linked against older LLVM, right? We still support LLVM 13 and up. |
It does unfortunately. According to @nikic LLVM should be automatically translating the builtins to their new name, but this doesn't seem to work correctly in some cases. Maybe this should be fixed in LLVM instead? |
Does that translation only apply for loading bitcode generated by older LLVM versions maybe? |
Generally yes, but we also apply it manually here: https://github.com/rust-lang/rust/blob/fa0ca783f89a83046e6ce0383385ba5b28296435/compiler/rustc_llvm/llvm-wrapper/PassWrapper.cpp#L880-L882 |
I just looked at the code for |
The renaming happens here: https://github.com/llvm/llvm-project/blob/096f93e73dc3f88636cdcb57515e3732385b452d/llvm/lib/IR/AutoUpgrade.cpp#L1088
Hm, possibly somehow related to the latter using a |
Auto-upgrade seems to work fine with |
It seems that this should be handled in LLVM. I'm going to close this PR, discussion should continue in rust-lang/rust#102738. |
LLVM 15 removes the pointer type from intrinsic suffixes, effectively replacing
.p0i8
(and other similar types) with just.p0
.cc rust-lang/rust#102738