Commit Graph

249 Commits

Author SHA1 Message Date
bjorn3
e4f1f3db27 Implement incremental caching of object files 2020-03-11 18:42:51 +01:00
bjorn3
9ab2af56aa Rustup to rustc 1.43.0-nightly (4ad624882 2020-03-03) 2020-03-04 15:04:28 +01:00
bjorn3
c8de552c01 Tls support 2020-02-26 14:41:05 +01:00
bjorn3
430f738392 Update Cranelift for basic blocks 2020-02-14 18:23:29 +01:00
bjorn3
01f6f40ac2 Rustup to rustc 1.43.0-nightly (442ae7f04 2020-02-06) 2020-02-07 13:49:48 +01:00
bjorn3
ddd3d95a7e Make atomic instructions atomic using a global lock 2020-01-22 20:09:55 +01:00
bjorn3
a3f378754b Warn when using LTO 2020-01-22 20:06:05 +01:00
bjorn3
b22b184969 Update Cranelift 2020-01-14 13:55:08 +01:00
bjorn3
c74b306037 Move all cold code to the end of the function
Fixes #836

Benchmark #1: simple-raytracer/raytracer_cg_clif
  Time (mean ± σ):      9.250 s ±  0.056 s    [User: 9.213 s, System: 0.015 s]
  Range (min … max):    9.151 s …  9.348 s    20 runs

Benchmark #2: simple-raytracer/raytracer_cg_clif_cold_separated
  Time (mean ± σ):      9.179 s ±  0.101 s    [User: 9.141 s, System: 0.016 s]
  Range (min … max):    9.070 s …  9.473 s    20 runs

Summary
  'simple-raytracer/raytracer_cg_clif_cold_separated' ran
    1.01 ± 0.01 times faster than 'simple-raytracer/raytracer_cg_clif'
2020-01-11 17:57:18 +01:00
bjorn3
33ad67c124 Rustup to rustc 1.42.0-nightly (caa231d99 2020-01-08) 2020-01-09 17:43:10 +01:00
bjorn3
6652f466ef Rustup to rustc 1.42.0-nightly (bc1571cc3 2020-01-05) 2020-01-06 20:11:03 +01:00
bjorn3
1bb848d4ac Re-use cranelift_codegen::ir::Function for every function
Fixes #844
2020-01-04 17:58:38 +01:00
bjorn3
c5a7fca527 Use DUMMY_SP in less places
Fixes #845
2020-01-04 17:49:00 +01:00
bjorn3
196008bee3 Disable stack2reg opt when optimizations are disabled 2019-12-31 16:43:24 +01:00
bjorn3
8b82f4f989 [WIP] Add stack2reg optimization pass 2019-12-31 15:56:28 +01:00
bjorn3
7e6d533af2 Rustup to rustc 1.42.0-nightly (a9dd56ff9 2019-12-30) 2019-12-31 15:47:58 +01:00
bjorn3
399cada762 Directly depend on cranelift_{codegen,frontend}
Fixes #838
2019-12-24 12:43:20 +01:00
bjorn3
67a0fdad19 Make llvm_intrinsics a submodule of intrinsics 2019-12-23 13:57:55 +01:00
bjorn3
967709f31a [OPT] Use load and store offsets instead of iadd_imm 2019-12-20 16:02:47 +01:00
bjorn3
d502f8e652 [OPT] Avoid calling target_triple for every call to codegen 2019-12-17 16:34:48 +01:00
bjorn3
e1613a69d4 Rustup to rustc 1.41.0-nightly (a605441e0 2019-12-15) 2019-12-16 11:33:57 +01:00
bjorn3
cdab96d05c Rustup to rustc 1.41.0-nightly (53712f863 2019-11-21) 2019-11-22 15:56:49 +01:00
bjorn3
0471ed2776 Add support for object::write 2019-10-18 18:31:38 +02:00
bjorn3
f9ff604d96 Make dylib metadata write backend agnostic 2019-10-18 18:31:38 +02:00
bjorn3
8243a370d2 Rustup to rustc 1.40.0-nightly (fa0f7d008 2019-10-17) 2019-10-18 18:31:26 +02:00
bjorn3
f0c774e05d Rustup to rustc 1.40.0-nightly (237d54ff6 2019-10-15) 2019-10-16 18:43:52 +02:00
bjorn3
75db7cc49d Remove logfile support from unimpl.rs
I haven't used it in months
2019-10-06 17:36:15 +02:00
bjorn3
0f938f68a5 Rustup to rustc 1.40.0-nightly (2daa404e9 2019-10-02) 2019-10-03 17:22:01 +02:00
bjorn3
1b6706c924 Call cg_ssa::base::provide_both in provide{,_extern} 2019-09-28 17:01:17 +02:00
bjorn3
0db605040e Use CallConv::triple_default instead of hard coding SystemV
Fixes #718
2019-09-28 17:00:27 +02:00
bjorn3
44792f1089 Rustup to rustc 1.40.0-nightly (084beb83e 2019-09-27) 2019-09-28 14:06:12 +02:00
bjorn3
a1bf96f630 Wrap linker invocation in time() 2019-09-22 16:21:00 +02:00
bjorn3
dbeca50901 Misc cleanup 2019-09-22 16:05:22 +02:00
bjorn3
3a7aa6c0fa Reduce time required to build from scratch in dev mode
* Disable wasm reading of object
* Use tempfile bundled with rustc
* Don't optimize and don't generate debuginfo for build scripts and some
  build deps

Before: 354s (5m 45s)
After: 207s (3m 27s)
2019-09-21 14:27:45 +02:00
Atul Bhosale
f481a4b685
Format code using 'cargo fmt' 2019-08-31 22:58:09 +05:30
bjorn3
d9d8c69af1 Split extract layout field of all CPlace variants into a sparate struct 2019-08-29 11:23:19 +02:00
bjorn3
2a20cc0b94 Use anonymous lifetimes where possible 2019-08-18 16:52:07 +02:00
bjorn3
32cb5b8c8e Move discriminant get and set to discriminant.rs 2019-08-14 12:01:41 +02:00
bjorn3
883894a07a Move trans_*_binop to num.rs 2019-08-14 11:52:39 +02:00
bjorn3
11b2b86b08 Fix some rustc tests
* Check for `#[rustc_error]` attribute.
* Use the same weak static type error message as cg_llvm
2019-08-13 19:42:16 +02:00
bjorn3
f02d135057 Print error for #[rustc_def_path] like expected 2019-08-13 19:39:46 +02:00
bjorn3
9041db962d Fix it 2019-08-11 17:06:18 +02:00
bjorn3
fb3fa677fa Call assert_module_sources 2019-08-04 13:42:03 +02:00
bjorn3
b806070a88 Fix simd_cast 2019-07-31 09:46:05 +02:00
bjorn3
1a26891170 Replace llvm intrinsics with runtime trap 2019-07-29 11:03:55 +02:00
bjorn3
bdf23c0201 Don't set opt_level to best
LICM is still broken
2019-07-27 16:12:48 +02:00
bjorn3
fe20f8cba6 Rustup to rustc 1.38.0-nightly (c43753f91 2019-07-26) 2019-07-27 11:35:46 +02:00
bjorn3
0a833ba8a1 [WIP] 2019-07-26 11:32:04 +02:00
bjorn3
5180becc7c Fix 128bit CValue::const_val 2019-07-26 11:30:39 +02:00
bjorn3
641a210ff6 Implement most 128bit binops 2019-07-26 11:29:35 +02:00
bjorn3
8c2577c747 Don't disable stdsimd anymore
This doesn't enable simd support. Actually using the functions will
result in a compilation error.
2019-07-20 15:33:57 +02:00
bjorn3
d0db8f0cac
Rustup 2019-07-08 09:54:18 +02:00
bjorn3
c2e6822342 Rustup to rustc 1.37.0-nightly (0beb2ba16 2019-07-02)
Also removes some unnecessary errors.
2019-07-03 16:49:47 +02:00
bjorn3
4d406cdcad Rustup to rustc 1.37.0-nightly (0dc9e9c10 2019-06-15) 2019-06-16 11:13:49 +02:00
bjorn3
6d1bc088a7 Rustup to rustc 1.37.0-nightly (2887008e0 2019-06-12) 2019-06-13 20:44:40 +02:00
bjorn3
e8c50cf2c2 Read and write dylib metadata 2019-06-11 16:45:14 +02:00
bjorn3
466ecad2f0 Move CValue and CPlace to separate file and remove duplicate scalar_to_clif_type 2019-06-11 15:43:22 +02:00
bjorn3
161c8aa5cf Rustup to rustc 1.37.0-nightly (7cdaffd79 2019-06-05) 2019-06-06 20:31:09 +02:00
bjorn3
b625e56488 Rustup to rustc 1.37.0-nightly (3ade426ed 2019-05-30) 2019-05-31 10:56:55 +02:00
bjorn3
d078fde07a Rustup to rustc 1.36.0-nightly (dec4c5201 2019-05-24) 2019-05-25 12:30:21 +02:00
bjorn3
0046ce4c85 Partial support for wasm32-unknown-wasi as host triple
This needs a rustc compiled for wasi (see rust-lang/miri#722)
It also needs CraneStation/target-lexicon#14
2019-05-11 12:23:40 +02:00
bjorn3
bb7a990ee7 Extract driver.rs 2019-05-04 16:54:25 +02:00
bjorn3
98dae86d21 Update cranelift 2019-05-04 16:15:20 +02:00
bjorn3
8598a34e45 Rustup to rustc 1.36.0-nightly (a3404557c 2019-05-03) 2019-05-04 14:57:41 +02:00
bjorn3
11d816cce5 Rustup to rustc 1.36.0-nightly (597f43248 2019-04-26) 2019-04-27 17:44:12 +02:00
bjorn3
f096ad14a3 Change module names back 2019-04-24 20:54:01 +02:00
bjorn3
e8db15f662 Fix filename length for ar files 2019-04-24 19:00:21 +02:00
bjorn3
472b591f90 Use rustc_codegen_ssa:🔙:link instead of copy pasted version 2019-04-24 19:00:21 +02:00
bjorn3
de792ad690 Rustup to rustc 1.35.0-nightly (aa99abeb2 2019-04-14) 2019-04-15 16:34:16 +02:00
bjorn3
d9403bf3fd Implement weak linkage for statics 2019-03-11 20:36:29 +01:00
bjorn3
bfe8c89d41 Remove "Saved incremental data" warning 2019-03-11 20:06:23 +01:00
bjorn3
27e9cfc79f Rustup to rustc 1.35.0-nightly (9d71ec135 2019-03-10) 2019-03-11 20:02:47 +01:00
bjorn3
6c88af3438 Rustup to rustc 1.34.0-nightly (7e001e5c6 2019-02-27) 2019-02-28 10:55:21 +01:00
bjorn3
f02490d960 Rustfmt 2019-02-21 15:06:09 +01:00
bjorn3
b4eff78a9e Pass command-line arguments to JITed function
Cherry-picked from f1f35405e15ca1b77425514b04b96b2749231899 by
@milkey-mouse
2019-02-18 18:53:18 +01:00
bjorn3
4bb8bfca94 Disable macOS debuginfo and on all platforms optimizations 2019-02-11 19:11:55 +01:00
bjorn3
a272efa030 Fix alloc_example 2019-02-11 15:29:46 +01:00
bjorn3
09c4569c87 Implement line debuginfo 2019-01-26 11:59:57 +01:00
bjorn3
8a586eb6cb Rustup to rustc 1.33.0-nightly (68fe5182c 2019-01-05) 2019-01-06 15:27:20 +01:00
bjorn3
16e43c9d21 Fix unsize coercions and the size_of_val and min_align_of_val intrinsics for custom dst's 2018-12-29 15:36:17 +01:00
bjorn3
8f2ca706c2 Setup env_logger 2018-12-29 12:04:35 +01:00
bjorn3
3d05ff922c Use the linkage and visibility produced by tcx.collect_and_partition_mono_itemscc #209 2018-12-23 19:41:35 +01:00
bjorn3
6fa3140222 Introduce CodegenCx 2018-12-18 18:28:02 +01:00
bjorn3
0530d5225f Disable probestack 2018-12-15 17:17:10 +01:00
bjorn3
c8d435aade Put allocator shim in a different object file 2018-12-13 15:24:14 +01:00
bjorn3
77e3612581 Move emit_module a bit up 2018-12-13 15:24:14 +01:00
bjorn3
978add3698 Convenience functions for creating and emitting faerie modules 2018-12-13 15:24:14 +01:00
bjorn3
bc687ee992 Prepare for emitting separate object files for each codegen unit 2018-12-13 15:24:14 +01:00
bjorn3
4d0dba944c Some refactorings for codegen_mono_items 2018-12-12 16:01:34 +01:00
bjorn3
94eac08a48 Extract TargetIsa building to a separate function 2018-12-12 15:11:15 +01:00
bjorn3
bd4b307b42 Support dylibs 2018-12-10 15:10:12 +01:00
bjorn3
3c364134ec Restructure scripts and add flamegraph generator 2018-12-03 18:50:00 +01:00
bjorn3
a16e85707d Rustup to rustc 1.32.0-nightly (3e90a12a8 2018-11-29) 2018-11-30 18:08:08 +01:00
bjorn3
95539518ec Rustfmt 2018-11-24 12:47:53 +01:00
bjorn3
830522af6d Implement BackendTypes for FunctionCx 2018-11-24 11:42:57 +01:00
bjorn3
6559029b9d Use rustc_codegen_ssa::CodegenResults 2018-11-24 11:25:11 +01:00
bjorn3
8e28d80a3d Better use of CodegenResults::modules 2018-11-24 11:25:11 +01:00
bjorn3
f4ae9a4dbb Rustup to rustc 1.32.0-nightly (1f57e4841 2018-11-23) 2018-11-24 11:23:49 +01:00
bjorn3
06202c007c Fix some 2018 edition idioms 2018-11-17 18:23:52 +01:00
bjorn3
2c38313403 Move unimpl! macro to unimpl.rs 2018-11-16 19:53:27 +01:00