-
-
Notifications
You must be signed in to change notification settings - Fork 422
Update to LLVM 17.0.1 #4680
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 to LLVM 17.0.1 #4680
Conversation
This is no longer available in LLVM 16. See also: * https://reviews.llvm.org/D135041
This is no longer available in LLVM 16. See also: * https://reviews.llvm.org/D136615
The function LLVMConstFNeg has been removed, because the underlying constant expression in no longer supported. Instead, an instruction should be created using the LLVMBuildFNeg function, which will constant fold the operands if possible and create an instruction otherwise. See also: * https://releases.llvm.org/16.0.0/docs/ReleaseNotes.html#changes-to-the-c-api
Increased LLVM to 17.0.1 Function attribute inaccessiblemem_or_argmemonly replaced with memory(argmem: readwrite, inaccessiblemem: readwrite). Removed readonly and readnone for some pony internal functions because they are functions and not supported with these attributes. Removed deprecated PassRegistry code that is no longer available. Optimizations are already done in optimise function in genopt.cc which already uses the new PassBuilder.
Hi @IgorDeepakM, The changelog - changed label was added to this pull request; all PRs with a changelog label need to have release notes included as part of the PR. If you haven't added release notes already, please do. Release notes are added by creating a uniquely named file in the The basic format of the release notes (using markdown) should be:
Thanks. |
I think regression-1118 is close to the threshold of the timeout of 120 seconds. In a test with LLVM 15: |
Which LLVM version does this update to 17.0.6? |
17.0.1 (tag: llvmorg-17.0.1) |
@IgorDeepakM was there a change that was technically tricky that made it more work to go to the latest llvm 17? |
No, the only changed required for LLVM 17 was removal of LLVMGetGlobalPassRegistry(); LLVMPassRegistryRef passreg = LLVMGetGlobalPassRegistry();
LLVMInitializeCore(passreg);
LLVMInitializeTransformUtils(passreg);
LLVMInitializeScalarOpts(passreg);
LLVMInitializeVectorization(passreg);
LLVMInitializeInstCombine(passreg);
LLVMInitializeIPO(passreg);
LLVMInitializeAnalysis(passreg);
LLVMInitializeIPA(passreg);
LLVMInitializeCodeGen(passreg);
LLVMInitializeTarget(passreg); The rest are LLVM 16 related. |
There is still an open question if the readnone and readonly removal for functions like pony_ctx, should be replaced with memory(none) and memory(read). |
Added defines for memory effects that corresponds to the MemoryEffects C++ LLVM interface. Reinstated the readonly and readnone attributes for @pony_ctx, @pony_get_exitcode and @memcmp but with the new memory effects attributes readnone -> memory(none) readonly -> memory(argmem: read)
I have verified that this is correct (in the sync call today). |
This is a continuation of #4570.
LLVM version is increased to 17.0.1 instead.