Skip to content

Update to LLVM 22.1.6#5364

Merged
SeanTAllen merged 1 commit into
mainfrom
update-llvm-to-22
May 27, 2026
Merged

Update to LLVM 22.1.6#5364
SeanTAllen merged 1 commit into
mainfrom
update-llvm-to-22

Conversation

@SeanTAllen
Copy link
Copy Markdown
Member

Updates the vendored LLVM from 21.1.8 to 22.1.6.

LLVM 22 forced two codegen changes. LLVMGetMDKindID is deprecated, so branch-weight metadata now goes through LLVMGetMDKindIDInContext. The bigger one: the llvm.lifetime.start and llvm.lifetime.end intrinsics dropped their size argument and now take a single pointer. ponyc was still emitting the old two-argument form, which the LLVM 22 verifier rejects for any program with scoped locals, so codegen now emits the one-argument form. A new codegen test asserts the lifetime intrinsics are emitted with a single argument.

Review turned up an unrelated pre-existing issue, an oversized argument array in gencall_memmove, tracked separately in #5363.

@SeanTAllen SeanTAllen added the changelog - changed Automatically add "Changed" CHANGELOG entry on merge label May 25, 2026
@ponylang-main ponylang-main added the discuss during sync Should be discussed during an upcoming sync label May 25, 2026
@SeanTAllen
Copy link
Copy Markdown
Member Author

I'll be kicking off tier2, tier3, and weekly CI jobs on this branch to verify no issues with any. My assumption is they will all pass as this is a small upgrade for us, but, "we shall see".

@SeanTAllen
Copy link
Copy Markdown
Member Author

SeanTAllen commented May 25, 2026

Tier 2: https://github.com/ponylang/ponyc/actions/runs/26419832587

passed with no issues.

@SeanTAllen
Copy link
Copy Markdown
Member Author

SeanTAllen commented May 25, 2026

Tier 3: https://github.com/ponylang/ponyc/actions/runs/26424639378

Tier 3 is failing because the OpenBSD vm runs out of space. Working on addressing that so we can know it is good. The other BSDs all pass CI for this.

Once the space issue was addressed, it passed:

https://github.com/ponylang/ponyc/actions/runs/26464297464

@SeanTAllen
Copy link
Copy Markdown
Member Author

SeanTAllen commented May 26, 2026

Weekly checks: https://github.com/ponylang/ponyc/actions/runs/26444668137

passed with no issue.

@SeanTAllen
Copy link
Copy Markdown
Member Author

modulo review, this is good to merge.

LLVM 22 deprecated LLVMGetMDKindID and dropped the size argument from the llvm.lifetime.start/end intrinsics; adapt codegen to both, and add a codegen test asserting the lifetime intrinsics are emitted with a single argument.

The larger LLVM 22 build overflowed the OpenBSD Tier 3 CI VM's /home (~10.8G), so build that job on a dedicated 50G data disk, mirroring the DragonFly job.
@SeanTAllen SeanTAllen force-pushed the update-llvm-to-22 branch from 144ab76 to 85f3c33 Compare May 27, 2026 11:53
@SeanTAllen SeanTAllen merged commit f4642a0 into main May 27, 2026
18 checks passed
@SeanTAllen SeanTAllen deleted the update-llvm-to-22 branch May 27, 2026 19:34
@ponylang-main ponylang-main removed the discuss during sync Should be discussed during an upcoming sync label May 27, 2026
github-actions Bot pushed a commit that referenced this pull request May 27, 2026
github-actions Bot pushed a commit that referenced this pull request May 27, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

changelog - changed Automatically add "Changed" CHANGELOG entry on merge

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants