back to home

paradigmxyz / revmc

JIT and AOT compiler for the Ethereum Virtual Machine, built on Revm.

259 stars
34 forks
4 issues
RustShellAssembly

AI Architecture Analysis

This repository is indexed by RepoMind. By analyzing paradigmxyz/revmc in our AI interface, you can instantly generate complete architecture diagrams, visualize control flows, and perform automated security audits across the entire codebase.

Our Agentic Context Augmented Generation (Agentic CAG) engine loads full source files into context on-demand, avoiding the fragmentation of traditional RAG systems. Ask questions about the architecture, dependencies, or specific features to see it in action.

Source files are only loaded when you start an analysis to optimize performance.

Embed this Badge

Showcase RepoMind's analysis directly in your repository's README.

[![Analyzed by RepoMind](https://img.shields.io/badge/Analyzed%20by-RepoMind-4F46E5?style=for-the-badge)](https://repomind.in/repo/paradigmxyz/revmc)
Preview:Analyzed by RepoMind

Repository Overview (README excerpt)

Crawler view

revmc Experimental [JIT] and [AOT] compiler for the [Ethereum Virtual Machine][EVM]. The compiler implementation is abstracted over an intermediate representation backend. It performs very well, as demonstrated below from our criterion benchmarks, and exposes an intuitive API via Revm. This repository hosts two backend implementations: • [LLVM] ([ ]): main backend with full test coverage; • [Cranelift] ([ ]); currently not functional due to missing support in Cranelift. This will likely require a custom fork of Cranelift. [JIT]: https://en.wikipedia.org/wiki/Just-in-time_compilation [AOT]: https://en.wikipedia.org/wiki/Ahead-of-time_compilation [EVM]: https://ethereum.org/en/developers/docs/evm/ [LLVM]: https://llvm.org/ [ ]: /crates/revmc-llvm [Cranelift]: https://cranelift.dev/ [ ]: /crates/revmc-cranelift Requirements • Latest stable Rust version LLVM backend • Linux or macOS, Windows is not supported • LLVM 21 • On Debian-based Linux distros: see apt.llvm.org • On Arch-based Linux distros: • On macOS: • The following environment variables may be required: Usage The compiler is implemented as a library and can be used as such through the crate. A minimal runtime is required to run AOT-compiled bytecodes. A default runtime implementation is provided through symbols exported in the crate and must be exported in the final binary. This can be achieved with the following build script: You can check out the examples directory for example usage. Testing The Ethereum state tests are included as a git submodule. The submodule is configured with so it won't be cloned automatically. To check it out: Then run the state tests: Credits The initial compiler implementation was inspired by . License Licensed under either of Apache License, Version 2.0 or MIT license at your option. Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in these crates by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.