Repository navigation
Update LLVM to 22.1.7 - #142
Open
mbertuletti wants to merge 19 commits into
Open
mbertuletti wants to merge 19 commits into
mbertuletti wants to merge 19 commits into
Conversation
Build the riscv-tests for RTL simulation from software/riscv_tests.mk instead of the riscv-tests build system, and move snitch_isa.mk to software/.
LLVM now uses the riscv-opcodes mnemonics with the CORE-V XCVmem syntax, e.g. p.lw.irpost rd, (rs1), imm instead of p.lw rd, imm(rs1!). Kernels built only with LLVM use it directly. The matmul_i32p asm kernels are built by both compilers and use the macros of the new xpulp_postmod.h header. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
mbertuletti
requested review from
Paolo309,
sermazz and
yichao-zh
as code owners
October 29, 2026 13:11
The MemPool changes to Halide are small, so instead of maintaining a fork the submodule points to upstream Halide and `make halide` applies `toolchain/halide.patch`. The CI cache key includes the patch. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The sources are formatted with the clang-format of the LLVM 22 toolchain, so the lint job uses the same major version from PyPI instead of clang-format 14. Wrap the lines of gen_trace.py longer than 79 characters. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- Do not clone the riscv-opcodes submodule of llvm-project, which uses an SSH URL and is not needed to build LLVM. - Install the Python requirements (riscv_opcodes) in check-opcodes and unit-test. - Build the BootROM with GCC, as LLVM is not available in that job. - Skip the floating-point applications when compiling with GCC and build all the applications with LLVM. - Download LLVM in the run-apps jobs, as the traces are disassembled with llvm-mc, and pass all the MemPool extensions to llvm-mc. - Do not crash the trace generation on instructions llvm-mc cannot decode. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
update_opcodes.sh ran riscv_opcodes in the MemPool root, so encoding.h was stamped with MemPool's HEAD and check-opcodes failed after any new commit. It now runs in a scratch directory with GIT_DIR set to the riscv-opcodes repository. Cache install/bender per Bender version, so the installer only runs when the version changes. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
mbertuletti
force-pushed
the
mbertuletti/llvm-update
branch
from
October 29, 2026 13:17
eba7ada to
baf0b08
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR updates the LLVM toolchain to v22.1.7.
The PR can be merged once the corresponding PRs on riscv-opcodes PR#50 and llvm toolchain PR#37 are also merged.
Changelog
riscv-opcodes, provide target to generate the backend support for new instruction encodings.riscv-tests(compile and run the tests externally). Currently theriscv-testsare a flattened dependency, ideally they should be also tracking the master repository.Checklist