cyx-6 opened a new pull request, #810: URL: https://github.com/apache/tvm-ffi/pull/810
This is stacked on #809 and contains one LLVM-upgrade commit on top of it. Once #809 merges, GitHub will automatically remove its commits from this PR's diff. ## Why Upgrade the ORC JIT addon from LLVM 22.1.0 to LLVM 23.1.1 and use the upstream fixes to reduce local compatibility code. The implementation was derived from a direct comparison of `llvmorg-22.1.0` and `llvmorg-23.1.1`: - LLJIT now owns its `JITLinkMemoryManager`; the object-layer creator receives that manager by reference. - dynamic-library generators now use LLJIT's `DylibManager`. - LLVM 23 ELFNixPlatform registers and runs ELF fini sections, so Linux can use `LLJIT::initialize` / `deinitialize` instead of the local init/fini plugin. - LLVM 23 fixes the x86-64 GOTPCRELX relaxation to use signed PC-relative reachability and `BranchPCRel32`, so the local `GOTPCRELXFixPlugin` is deleted. The source comparison also showed that GenericLLVMIRPlatform was already LLJIT's default in LLVM 22.1.0. This PR therefore preserves generic platform support on macOS and Windows, including unwind registration, rather than treating it as an LLVM 23 behavior change. ## Changes - pin builds and CI to LLVM 23.1.1; - adapt the LLJIT memory-manager, object-layer, and dylib-generator APIs; - move Linux lifecycle handling to LLVM 23 ELFNixPlatform; - keep batched slab deallocation in reverse allocation order, matching LLVM's in-process manager; - remove the upstreamed GOTPCRELX workaround; - retain the existing Mach-O and COFF lifecycle adapters only where native platforms are not yet usable; - make the context-ordering test resistant to LLVM 23 optimizing its constructor away. ## Validation - macOS arm64, LLVM 23.1.1: `136 passed, 54 skipped`. - repository pre-commit suite: all hooks passed. - Linux x86-64, Linux aarch64, Windows, and clean wheel validation are delegated to CI. Depends on #809. -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected] --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
