Conversation
Codecov Report❌ Patch coverage is
📢 Thoughts on this report? Let us know! |
This was referenced Feb 15, 2026
There was a problem hiding this comment.
Pull request overview
This pull request removes the LLVM dependency from the Inference compiler, replacing LLVM-based code generation with direct WebAssembly binary generation using the wasm-encoder crate. This is a major architectural simplification that eliminates the need for external binaries (inf-llc, rust-lld) and the LLVM toolchain.
Changes:
- Replaced LLVM IR generation with direct WASM binary generation via
wasm-encoder - Removed all external binary dependencies (inf-llc, rust-lld, libLLVM.so)
- Simplified build configuration by removing build.rs and LLVM-related Cargo settings
- Updated all tests to work with the new WASM-direct output
- Cleaned up documentation to remove LLVM references and installation instructions
Reviewed changes
Copilot reviewed 47 out of 53 changed files in this pull request and generated 1 comment.
Show a summary per file
| File | Description |
|---|---|
core/wasm-codegen/src/compiler.rs |
Complete rewrite to emit WASM instructions directly using wasm-encoder instead of LLVM IR |
core/wasm-codegen/src/output.rs |
Changed from storing LLVM IR text to storing WASM binary bytes |
core/wasm-codegen/src/target.rs |
Removed LLVM-specific methods (triple, cpu, llc_features, as_llc_flag) |
core/wasm-codegen/src/lib.rs |
Removed LLVM initialization and updated to use wasm-encoder directly |
core/wasm-codegen/build.rs |
Deleted - no longer needs to copy external binaries |
core/wasm-codegen/Cargo.toml |
Replaced inkwell dependency with wasm-encoder |
tests/src/utils.rs |
Removed compile_ir_to_wasm_for_tests and 160+ lines of external toolchain invocation code |
tests/src/codegen/wasm/validation.rs |
Updated tests from checking LLVM IR content to checking WASM opcodes |
tests/src/codegen/wasm/base.rs |
Added new tests for i64_uzumaki, bool_literal, and mixed_visibility; simplified instantiation |
tests/test_data/codegen/wasm/base/*.wasm |
Added binary WASM test data files |
tests/Cargo.toml |
Removed tempfile dependency |
core/cli/src/toolchain/* |
Removed llc.rs, lld.rs, env.rs, and paths.rs (external tool invocation) |
core/cli/src/main.rs |
Simplified to use WASM bytes directly from CodegenOutput |
core/cli/Cargo.toml |
Removed tempfile dependency |
book/*.md |
Moved LLVM installation guides to appendix/llvm-legacy-setup.md, updated compilation_targets.md |
book/check_deps.* |
Deleted dependency check scripts (no longer needed) |
README.md |
Removed external binary download instructions, simplified build steps |
Cargo.toml |
Removed inkwell workspace dependency, updated tree-sitter and anyhow versions |
.cargo/config.toml |
Removed LLVM library paths and linking configuration |
.github/workflows/*.yml |
Removed LLVM installation, binary caching, and environment setup steps |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
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.
No description provided.