Find a file
bjorn3 eb4fc45310 Use CachingSourceMapView::byte_pos_to_line_and_col instead of SourceMap::lookup_char_pos
The former calculates byte offsets instead of char offsets. It is faster
to calculate byte offsets than char offsets. Also most DWARF producers
and consumers use byte offsets instead of char offsets.
2020-02-03 21:05:18 +01:00
build_sysroot Update compiler_builtins 2020-01-25 17:24:45 +01:00
crate_patches Test rust-lang/regex example shootout-regex-dna 2019-07-30 13:37:54 +02:00
example Implement #[track_caller] 2020-01-11 17:10:42 +01:00
patches Rustup to rustc 1.42.0-nightly (3761dcd34 2020-01-28) 2020-01-29 11:21:29 +01:00
src Use CachingSourceMapView::byte_pos_to_line_and_col instead of SourceMap::lookup_char_pos 2020-02-03 21:05:18 +01:00
.gitignore Better self profiling integration 2020-01-10 14:16:27 +01:00
.travis.yml Remove faerie support 2020-01-10 13:30:21 +01:00
abc.cpp Implement line debuginfo 2019-01-26 11:59:57 +01:00
Cargo.lock Update smallvec to 1.2.0 2020-02-01 12:35:45 +01:00
cargo.sh Display warning when overriding default rustc version in cargo.sh 2020-01-15 19:56:18 +01:00
Cargo.toml Update Cranelift 2020-01-22 18:04:11 +01:00
clean_all.sh Remove simple-raytracer too in clean_all.sh 2019-09-12 20:22:09 +02:00
config.sh Make atomic instructions atomic using a global lock 2020-01-22 20:09:55 +01:00
copy.clif Fix some bugs 2018-08-08 10:26:25 +02:00
flamegraph.sh Stop using xargo for building the sysroot 2018-12-15 16:18:03 +01:00
LICENSE-APACHE Create LICENSE-APACHE 2018-06-22 19:33:35 +02:00
LICENSE-MIT Add LICENSE-MIT 2018-06-22 19:34:27 +02:00
prepare.sh Rustup to rustc 1.40.0-nightly (10a52c25c 2019-10-24) 2019-10-25 21:41:24 +02:00
Readme.md Remove outdated troubleshooting section 2020-01-25 12:28:22 +01:00
rust-toolchain Rustup to rustc 1.42.0-nightly (cd1ef390e 2020-01-31) 2020-02-01 12:35:03 +01:00
rustup.sh Rustup to rustc 1.42.0-nightly (c2d141df5 2020-01-24) 2020-01-25 12:01:35 +01:00
test.sh Implement #[track_caller] 2020-01-11 17:10:42 +01:00

WIP Cranelift codegen backend for rust

⚠⚠⚠ Threads and certain kinds of FFI don't work yet. ⚠⚠⚠

Building

$ git clone https://github.com/bjorn3/rustc_codegen_cranelift.git
$ cd rustc_codegen_cranelift
$ ./prepare.sh # download and patch sysroot src and install hyperfine for benchmarking
$ ./test.sh --release

Usage

$cg_clif_dir is the directory you cloned this repo into in the following instruction.

Cargo

$ CHANNEL="release" $cg_clif_dir/cargo.sh run

If you compiled cg_clif in debug mode you should use CHANNEL="debug" instead or omit CHANNEL="release" completely.

Rustc

$ rustc -Cpanic=abort -Zcodegen-backend=$cg_clif_dir/target/release/librustc_codegen_cranelift.so --sysroot $cg_clif_dir/build_sysroot/sysroot my_crate.rs

Not yet supported