1116 Commits

Author SHA1 Message Date
bjorn3
11b1c8b5c6 Use multiple codegen units
Fixes #909
2020-03-09 11:29:26 +01:00
bjorn3
6a90b6844f Revert "Use multiple codegen units"
This reverts commit 03acf67a0e3a2780d2a1443f4e4596b69d9a2b09.
2020-03-08 13:27:43 +01:00
bjorn3
03acf67a0e Use multiple codegen units 2020-03-07 12:45:55 +01:00
bjorn3
36ea72c2bd Move emit_module call 2020-03-07 12:45:05 +01:00
bjorn3
97db112295 Move time "codegen mono items" out of codegen_mono_items 2020-03-07 12:16:32 +01:00
bjorn3
575836ebe3 Check for main in current module before codegen of entry wrapper 2020-03-07 12:13:54 +01:00
bjorn3
2ecffb6fc4 Inline codegen_cgus 2020-03-07 11:54:35 +01:00
bjorn3
152bde63fe Misc changes 2020-03-07 11:27:49 +01:00
bjorn3
5d2a1daf83 Remove unused inline asm whitelist 2020-03-07 11:10:33 +01:00
bjorn3
9ab2af56aa Rustup to rustc 1.43.0-nightly (4ad624882 2020-03-03) 2020-03-04 15:04:28 +01:00
bjorn3
900c04a423 Implement simd_fma 2020-02-26 16:35:13 +01:00
bjorn3
c8de552c01 Tls support 2020-02-26 14:41:05 +01:00
bjorn3
53ef00e68c Fix JIT on macOS
Fixes #671
2020-02-22 15:57:53 +01:00
bjorn3
cc30c20293 Silence some warnings 2020-02-22 15:18:03 +01:00
bjorn3
ad7e8ad2cc Update Cranelift 2020-02-22 14:25:22 +01:00
bjorn3
c1bf153049 Rustup to rustc 1.43.0-nightly (8aa9d2014 2020-02-21) 2020-02-22 14:20:37 +01:00
bjorn3
6156f48ffe Update Cranelift and use the new ineg instruction 2020-02-15 11:59:45 +01:00
bjorn3
a3f27a4428 Use archive_format for determining if gnu style archives should be emitted
Fixes #893
2020-02-14 19:12:43 +01:00
bjorn3
430f738392 Update Cranelift for basic blocks 2020-02-14 18:23:29 +01:00
bjorn3
b5b2ffab6a Rustup to rustc 1.43.0-nightly (5d04ce67f 2020-02-13) 2020-02-14 18:20:34 +01:00
bjorn3
e95a300630 Use TrapCode::UnreachableCodeReached in trap_unreachable 2020-02-07 21:38:30 +01:00
bjorn3
bae0d9bb72 [OPT] Don't call monomorphize from clif_type 2020-02-07 20:27:37 +01:00
bjorn3
01f6f40ac2 Rustup to rustc 1.43.0-nightly (442ae7f04 2020-02-06) 2020-02-07 13:49:48 +01:00
bjorn3
fbe36ad68a Revert "Use CachingSourceMapView::byte_pos_to_line_and_col instead of SourceMap::lookup_char_pos"
This reverts commit eb4fc45310c70513d73d893616cd6735465680ca.

It caused a panic while compiling simple-raytracer
2020-02-03 21:36:36 +01:00
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
bjorn3
33e73091f8 Don't mark unwind ebbs as cold
This fixes the code_layout optimization, as it would previously try to
move non-existing ebbs.

Fixes #877
2020-02-01 16:47:35 +01:00
bjorn3
d821f154c5 Disable the code_layout optimization
When compiling libcore, it causes ebb params to be dropped for a certain function
2020-01-25 17:55:48 +01:00
bjorn3
92d4356130 Add #[cfg(debug_assertions)] to write_clif_file
This silences a warning in release mode
2020-01-25 17:54:49 +01:00
bjorn3
8de317dd8f Update compiler_builtins 2020-01-25 17:24:45 +01:00
bjorn3
74c7a7b7c5 Replace unimplemented! with unreachable! when it will never be supported 2020-01-25 16:24:48 +01:00
bjorn3
242f2e3c75 Fix correctness of optimization 2020-01-25 16:24:15 +01:00
bjorn3
9cfb9470c5 Allow unsized types as function parameters 2020-01-25 16:23:54 +01:00
bjorn3
85ce626865 Improve PlaceElem::Subslice handling 2020-01-22 20:10:00 +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
aa5c49cf2f Make unused stack slots zero sized in stack2reg 2020-01-22 18:57:36 +01:00
bjorn3
167c7f2201 Don't force static refs to const memory 2020-01-22 18:56:50 +01:00
bjorn3
c4acc78e4d Allow more types in CValue::const_val 2020-01-22 18:56:36 +01:00
bjorn3
e798f98bb4 Fix debug build 2020-01-15 13:18:54 +01:00
bjorn3
217beab62a Reduce the amount of calls to layout_of 2020-01-15 13:18:54 +01:00
bjorn3
09b44f5d25 Reduce visibility 2020-01-14 17:11:06 +01:00
bjorn3
29fafb44b1 Optimize .debug_line generation
This reduces the amount of time spent in .debug_line generation by about 50%

Fixes #807
2020-01-14 16:11:23 +01:00
bjorn3
b22b184969 Update Cranelift 2020-01-14 13:55:08 +01:00
bjorn3
b44d6311ca Rustup to rustc 1.42.0-nightly (3ebcfa145 2020-01-12) 2020-01-14 12:29:04 +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
38797f8bad Implement #[track_caller]
Fixes #848
2020-01-11 17:10:42 +01:00
bjorn3
fed3b26563 Don't panic on reported const eval errors 2020-01-11 14:28:18 +01:00
bjorn3
2a082209a6 Fix PlaceElem::Subslice length computation 2020-01-11 14:28:18 +01:00
bjorn3
0080f55df2 Fix build 2020-01-11 14:27:39 +01:00
bjorn3
70c9b3b35b Better self profiling integration 2020-01-10 14:16:27 +01:00