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