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