rustc_codegen_cranelift
rustc_codegen_cranelift copied to clipboard
Cranelift based backend for rustc
Valgrind can show the exact number of executed instructions.
Because [`rustc_codegen_cranelift::driver::jit::run_jit`](https://github.com/bjorn3/rustc_codegen_cranelift/blob/a606fdec730da2eb6f29230739cedb70ec3a7e0e/src/driver/jit.rs#L54) never returns, rustc never runs finalisation actions for jitted runs; e.g. the incremental compilation cache is not committed to disk (in particular, [`rustc_interface::interface::Compiler::enter`](https://github.com/rust-lang/rust/blob/5c029265465301fe9cb3960ce2a5da6c99b8dcf2/compiler/rustc_interface/src/queries.rs#L422-L452) never progresses from invoking the...
I would like to create meta-tracing JIT library that will work like holyjit or RPython and there was a way of interpreting Rust MIR but now I think that it...
On Linux since 5c6bf836fe3d4cfda1b827a5cd3982e5a588c0ff, the arguments passed to libstd by glibc when `dlopen`ing it are used, which are the arguments of the rustc process, not those in `CG_CLIF_JIT_ARGS`.
Wasmtime contains a lot of code to do this. It would be nice to extract this into a common crate.
There are probably quite a few intrinsics and other code paths that are not covered by the existing test suite. They were implemented after compiling various crates that were too...
This will help catching miscompilations and compilation errors. Unfortunately doing a local crater run will probably take several weeks on my system if I would have enough disk space, which...
* [x] Fold `stack_addr` into `load`/`store`. * [x] Remove `stack_{addr,load}` with unused return value. * [ ] Perform store to load forwarding when `stack_addr` is not used on a stack...
* [x] Don't try to load the `rust_metadata_*` symbol, which is part of a section without the `LOAD` flag. (25f7eeec4638694bfeb5dc7569701ee802e2bf45) * [x] Avoid attempted re-initialization of the current thread's `ThreadInfo`...