Commit graph

250 commits

Author SHA1 Message Date
bjorn3
ae6daf77ba Default to Cranelift newBE 2021-01-22 12:28:32 +01:00
bjorn3
173ec34e3d Add a feature flag to switch between oldbe and newbe 2021-01-21 19:33:29 +01:00
bjorn3
1a1cdac930 Remove code that was moved from the backend to rustc_incremental 2021-01-02 16:59:23 +01:00
bjorn3
3f6a3b5ebe Implement lazy compilation in JIT mode
Lazy compilation has the potential to significantly improve the startup
time of a program. While functions have to be codegened when called, it
is expected that a significant amount of all code is only required when
an error occurs or only when the program is used in certain ways.

The basic approach is to first codegen a shim for each function. This
shim calls the `__cg_clif_jit` function of cg_clif with a pointer to the
`Instance` corresponding to the function for which it is a shim.
`__cg_clif_jit` function then codegens this function and uses the hot
code swapping support of SimpleJIT to redirect future calls to the
function to the real version. Finally it calls the newly codegened
function.
2020-12-25 12:08:21 +01:00
bjorn3
20ffea6b8a Change the way JIT mode is selected 2020-12-25 11:31:33 +01:00
bjorn3
c556e4dd35 Use PIC in JIT mode too 2020-12-25 10:55:11 +01:00
bjorn3
3f47f938ba Enable Cranelift optimizations when optimizing
LICM in Cranelift has been fixed recently
2020-12-12 10:38:46 +01:00
Muhammad Mominul Huque
d27f2f0932
Rename trans to codegen 2020-11-01 19:24:30 +06:00
bjorn3
4cc6b4f9bf Fix many clippy warnings 2020-10-28 21:47:25 +01:00
bjorn3
4971028775 Rustup to rustc 1.49.0-nightly (dd7fc54eb 2020-10-15) 2020-10-16 09:35:48 +02:00
bjorn3
a233646dfc Rustup to rustc 1.49.0-nightly (e160e5cb8 2020-10-14) 2020-10-15 10:34:13 +02:00
bjorn3
e0002c1892 Remove MIR dump on panic
I haven't used it for a long time and it adds a lot of noise to the
panic print.
2020-10-11 13:24:14 +02:00
bjorn3
0a5968dfd2 Use the new cranelift-module interface
This updates Cranelift to include bytecodealliance/wasmtime#2249
2020-10-08 19:00:21 +02:00
bjorn3
3fc673d0a9 Rustup to rustc 1.49.0-nightly (beb5ae474 2020-10-04) 2020-10-05 11:12:41 +02:00
bjorn3
426e55709c Replace CG_CLIF_JIT with --jit 2020-09-29 18:41:59 +02:00
bjorn3
51f816f2a7 Rustfmt 2020-09-16 16:58:58 +02:00
bjorn3
044470a726 Remove hashbrown usage
drain_filter is now supported on nightly
2020-09-15 21:00:04 +02:00
bjorn3
4bb25c3e4a Fix dylib metadata writing
Rustc switched from flate2 to snappy
2020-09-05 11:00:34 +02:00
bjorn3
217b3818b7 Rustup to rustc 1.48.0-nightly (c59199efc 2020-09-04) 2020-09-05 10:38:49 +02:00
CohenArthur
4e685a512e fmt: Run cargo fmt since it is available 2020-08-28 12:10:48 +02:00
bjorn3
e64f523b27 Evaluate all mir.required_consts and report any errors
Fixes #981
2020-08-20 16:51:36 +02:00
bjorn3
7752718e5b Update target_feature_whitelist 2020-08-19 18:52:56 +02:00
bjorn3
0703e98bf6 Remove cg_clif fake target feature 2020-08-15 21:04:33 +02:00
bjorn3
240e178532 Don't panic on io errors
Fixes #920
2020-08-08 16:14:11 +02:00
bjorn3
3e4ddca409 Rustup to rustc 1.47.0-nightly (f9d422ea7 2020-08-04) 2020-08-05 13:55:27 +02:00
bjorn3
e02ffdf795 Use nehalem instead of haswell as target cpu 2020-07-25 16:15:42 +02:00
bjorn3
abc99c6259 Allow storing SIMD vectors in SSA values 2020-07-25 12:16:41 +02:00
bjorn3
c9d5e7da58 Rustup to rustc 1.46.0-nightly (9d09331e0 2020-07-12) 2020-07-13 19:32:31 +02:00
bjorn3
726e329f46 Add basic inline asm support for x86_64 2020-07-10 21:34:26 +02:00
bjorn3
35701d8caa Move global_asm into CodegenCx 2020-07-09 19:24:53 +02:00
bjorn3
893497c93e Infer the path of toolchain binaries from the linker path 2020-07-09 18:55:46 +02:00
bjorn3
ac77371852 Add a feature flag for the JIT 2020-07-09 14:23:00 +02:00
bjorn3
4ada18fd77 Add sess.abort_if_errors() to link 2020-07-03 16:43:59 +02:00
bjorn3
b79102c933 Disable "LTO is not supported" warning for sysroot build 2020-06-20 19:14:58 +02:00
bjorn3
eb8fd197ab Prelude cleanup 2020-06-20 18:44:49 +02:00
bjorn3
431cebdca1 Introduce #[cfg(target_feature = "cg_clif")] 2020-06-20 16:22:03 +02:00
bjorn3
eb5ce4e92a Remove FunctionDebugContext 2020-06-13 17:03:34 +02:00
bjorn3
16b5dac463 Remove all non-tcx references from CodegenCx 2020-06-12 21:15:13 +02:00
bjorn3
c7e0dde38a Rustup to rustc 1.45.0-nightly (7ebd87a7a 2020-05-08) 2020-05-09 14:14:45 +02:00
bjorn3
4da6488d95 Always emit .eh_frame section 2020-05-01 19:21:29 +02:00
bjorn3
e64a7ebcb0 Implement check mode
Fixes #973
2020-04-18 21:13:09 +02:00
bjorn3
016673b0c3 Fix rustc::internals lint warnings 2020-04-09 12:12:55 +02:00
bjorn3
291c75d10b Enable the rust_2018_idioms and unused_lifetimes lints and fix all warnings
They are set to deny by default in the rust-lang/rust repo
2020-04-09 12:12:55 +02:00
bjorn3
ac1c5d6954 Rustup to rustc 1.44.0-nightly (537ccdf3a 2020-04-02) 2020-04-03 11:54:18 +02:00
bjorn3
ab4328db43 Fix opt level names 2020-03-31 14:13:03 +02:00
bjorn3
13e3a3c8b0 Rustup to rustc 1.44.0-nightly (211365947 2020-03-30) 2020-03-31 13:20:19 +02:00
bjorn3
017a9b7641 Rustup to rustc 1.44.0-nightly (699f83f52 2020-03-29) 2020-03-30 19:00:24 +02:00
bjorn3
f288959c00 Limit publicness to crate where possible and remove unused imports 2020-03-27 12:14:45 +01:00
bjorn3
3c9ebdb194 Rustup to rustc 1.44.0-nightly (1edd389cc 2020-03-23) 2020-03-24 13:09:44 +01:00
bjorn3
992fae08c4 Simplify handling of unimplemented stuff 2020-03-17 16:26:56 +01:00